Python 调试uwsgi/nginx(适用于OpenBSD,不适用于Linux)
我正在运行一段非常简单的python代码,它在OpenBSD下完美地运行(使用httpd+uwsgi)。相同的代码和相同的uwsgi配置根本不在Linux下运行(使用nginx) 代码为,而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
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套接字解决了这个问题。请把它作为答案贴出来,这样我就可以标记它了。谢谢