如何使用nginx、uwsgi和flask来防止这个错误的网关错误?

2024-09-30 04:40:45 发布

您现在位置:Python中文网/ 问答频道 /正文

当我运行uwsgi --ini /root/code/poetree/uwsgi.ini时,下面的设置总是出现错误的网关502错误。但是,正如您在最后的日志中看到的,应用程序在启动工人时运行良好(如ps aux | grep uwsgi)中所示。另一个观察结果是,下面的服务器块(在/etc/nginx/sites available/conf中)在/audio中获取静态数据时工作正常,但是在尝试加载任何动态页面时会出现网关错误。在

如果我改为使用app.flask_app.run(host='0.0.0.0', port=8080),那么我可以看到这个页面没有问题,所以这告诉我这与uwsgi/nginx有关。在

在uwsgi.ini文件在

[uwsgi]
base = /root/code/poetree
app = app
module = %(app)
callable = flask_app
pythonpath = /usr/local/lib/python2.7/dist-packages
socket = %(base)/%n.sock                                                                                                                                                         
master = true
processes = 5
chmod-socket    = 666
logto = /var/log/uwsgi/%n.log

/etc/nginx/sites available/配置

^{pr2}$

/var/log/uwsgi/uwsgi.log文件公司名称:

*** Starting uWSGI 2.0.6 (64bit) on [Wed Jul 16 11:48:13 2014] ***
compiled with version: 4.8.2 on 16 July 2014 11:38:51
os: Linux-3.13.0-24-generic #46-Ubuntu SMP Thu Apr 10 19:11:08 UTC 2014
nodename: cinjon
machine: x86_64
clock source: unix
pcre jit disabled
detected number of CPU cores: 1
current working directory: /root/code/poetree
detected binary path: /usr/local/bin/uwsgi
uWSGI running as root, you can use --uid/--gid/--chroot options
*** WARNING: you are running uWSGI as root !!! (use the --uid flag) *** 
your processes number limit is 3751
your memory page size is 4096 bytes
detected max file descriptor number: 1024
lock engine: pthread robust mutexes
thunder lock: disabled (you can enable it with --thunder-lock)
uwsgi socket 0 bound to UNIX address /root/code/poetree/uwsgi.sock fd 3
Python version: 2.7.6 (default, Mar 22 2014, 23:03:41)  [GCC 4.8.2]
*** Python threads support is disabled. You can enable it with --enable-threads ***
Python main interpreter initialized at 0x11af010
your server socket listen backlog is limited to 100 connections
your mercy for graceful operations on workers is 60 seconds
mapped 436608 bytes (426 KB) for 5 cores
*** Operational MODE: preforking ***
added /usr/local/lib/python2.7/dist-packages/ to pythonpath.
WSGI app 0 (mountpoint='') ready in 1 seconds on interpreter 0x11af010 pid: 580 (default app)
*** uWSGI is running in multiple interpreter mode ***
spawned uWSGI master process (pid: 580)
spawned uWSGI worker 1 (pid: 583, cores: 1)
spawned uWSGI worker 2 (pid: 584, cores: 1)
spawned uWSGI worker 3 (pid: 585, cores: 1)
spawned uWSGI worker 4 (pid: 586, cores: 1)
spawned uWSGI worker 5 (pid: 587, cores: 1)

Tags: logappyourisoncoderootsocket
1条回答
网友
1楼 · 发布于 2024-09-30 04:40:45

我假设这些台词可以解释问题,如果我在某个地方错了,请纠正我

!!! no internal routing support, rebuild with pcre support !!!
uWSGI running as root, you can use  uid/ gid/ chroot options
*** WARNING: you are running uWSGI as root !!! (use the  uid flag) *** 

要解决uwsgi中的pcre问题,请参考这个thread可能会对您有所帮助

另外,最好运行uwsgi,以防止在root下运行,而不是在当前用户下运行。在

编辑2:

我建议您尝试使用反向代理传递,而不是uwsgi params。在

^{pr2}$

更改端口号

相关问题 更多 >

    热门问题