Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/csharp-4.0/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 调试uwsgi/nginx(适用于OpenBSD,不适用于Linux)_Python_Nginx_Uwsgi - Fatal编程技术网

Python 调试uwsgi/nginx(适用于OpenBSD,不适用于Linux)

Python 调试uwsgi/nginx(适用于OpenBSD,不适用于Linux),python,nginx,uwsgi,Python,Nginx,Uwsgi,我正在运行一段非常简单的python代码,它在OpenBSD下完美地运行(使用httpd+uwsgi)。相同的代码和相同的uwsgi配置根本不在Linux下运行(使用nginx) 代码为,而uwsgi.ini文件如下所示: [uwsgi] fastcgi-socket = 127.0.0.1:3031 uid = uwsgi module = url_share callable = parent_app virtualenv = %d/venv chdir = %d # daemonize a

我正在运行一段非常简单的python代码,它在OpenBSD下完美地运行(使用httpd+uwsgi)。相同的代码和相同的uwsgi配置根本不在Linux下运行(使用nginx)

代码为,而
uwsgi.ini
文件如下所示:

[uwsgi]
fastcgi-socket = 127.0.0.1:3031
uid = uwsgi
module = url_share
callable = parent_app
virtualenv = %d/venv
chdir = %d
# daemonize after loading app
daemonize2 = True
我假设问题出在nginx中,这是我唯一可以控制的变化变量。其配置也非常简单:

server {
        location /urlsh/ {
                include uwsgi_params;
                uwsgi_pass 127.0.0.1:3031;
        }
特别是,nginx的错误日志为:

2015/11/30 23:03:32 [error] 27894#0: *1 upstream prematurely closed connection while reading response header from upstream, client: 192.168.1.107, server: , request: "GET /urlsh/ HTTP/1.1", upstream: "uwsgi://127.0.0.1:3031", host: "192.168.1.10"
这在使用web浏览器打开页面后的8.1秒内发生:

    $ time curl 127.0.0.1/urlsh/
<html>
<head><title>502 Bad Gateway</title></head>
<body bgcolor="white">
<center><h1>502 Bad Gateway</h1></center>
<hr><center>nginx/1.2.1</center>
</body>
</html>

real    0m8.120s
user    0m0.060s
sys     0m0.020s
$time curl 127.0.0.1/urlsh/
502坏网关
502坏网关

nginx/1.2.1 实际0m8.120s 用户0m0.060s sys 0m0.020s
我的问题是:如何让uwsgi打印更多输出

我试图找出问题的地方:

  • 在python代码中添加
    print
    语句:它们被打印出来,因此应用程序运行
  • 将应用程序作为独立的Python程序运行:在Linux下没有问题
  • 删除nginx,安装默认配置

该系统是Linux Raspbian 7.8版的“喘息”。Python是2.7.3,uwsgi(通过pip安装)是2.0.11.2

您是否尝试过将fastcgi套接字更改为普通的旧“套接字”?我倾向于在我的配置中使用unix套接字,但uwsgi也会通过TCP套接字。原因是您的nginx配置需要uwsgi,但您的uwsgi实例将使用快速cgi。@Matiucar说得对-socket而不是fastcgi套接字解决了这个问题。请把它作为答案贴出来,这样我就可以标记它了。谢谢您是否尝试过将fastcgi套接字更改为普通的旧“套接字”?我倾向于在我的配置中使用unix套接字,但uwsgi也会通过TCP套接字。原因是您的nginx配置需要uwsgi,但您的uwsgi实例将使用快速cgi。@Matiucar说得对-socket而不是fastcgi套接字解决了这个问题。请把它作为答案贴出来,这样我就可以标记它了。谢谢