【发布时间】:2017-11-12 21:27:52
【问题描述】:
在一些 ubuntu 16.04 升级和应用程序代码修改后,我以前在 gunicorn 和 nginx 网站上运行的 Flask 现在出现 502 bad gateway 错误。
myapp.conf:
upstream app_server_wsgiapp {
server localhost:8000 fail_timeout=0;
}
server {
listen 80;
server_name www.myserver.com;
access_log /var/log/nginx/www.myapp.access.log;
error_log /var/log/nginx/www.myapp.error.log info;
keepalive_timeout 5;
location /static {
autoindex on;
alias /myapp/static;
}
location / {
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_redirect off;
if (!-f $request_filename) {
proxy_pass http://app_server_wsgiapp;
break;
}
client_max_body_size 2097152;
#to get around upstream sent too big header while reading response header from upstream error
proxy_buffer_size 128k;
proxy_buffers 4 256k;
proxy_busy_buffers_size 256k;
}
# this section allows Nginx to reverse proxy for websockets
location /socket.io {
proxy_pass http://app_server_wsgiapp/socket.io;
proxy_redirect off;
proxy_buffering off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "Upgrade";
}
}
/var/log/nginx/myapp.error.log
2017/06/11 06:42:52 [error] 31054#31054: *1 connect() failed (111: Connection refused) while connecting to upstream, client: clientip, server: www.myserver.com, request: "GET / HTTP/1.1", upstream: "http://127.0.0.1:8000/", host: "www.myapp.com"
从我的应用程序日志文件中,我注意到 Flask 在启动过程中完成了一部分,然后在一个连续的失败/重启循环中重新启动。
有什么想法可以调试导致此问题的原因吗?
【问题讨论】:
-
你是如何启动flask服务的?您是否尝试过以交互模式运行烧瓶服务并检查控制台输出?
-
@hzm 我正在通过 ansible 部署脚本部署和启动烧瓶,该脚本设置 gunicorn 然后使用主管重新启动 nginx。在服务器上手动启动此烧瓶设置并非易事,将继续破解它
-
@hzm 你是一个传奇人物,你能把你的评论放在答案中吗 - 通过在服务器上手动启动应用程序我发现了一个依赖问题并且应用程序每次都崩溃了,然后主管只是重新启动它。现在全部修复
-
已添加答案 :)
标签: python ubuntu nginx flask gunicorn