微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

django-gunicorn-nginx:502坏的网关

我试图将我的Web应用程序发送到服务器,这是我第一次configuration服务器。 我正在使用django–gunicorn–Nginx设置按照这个教程http://ijcdigital.com/blog/django-gunicorn-and-Nginx-setup/首先,一切都很完美,我得到了Django的欢迎页面 。 然后,我在django项目中加载应用程序,并设置静态根,现在我得到502坏的网关你可以在http://qlimp.com

一切都取决于gunicorn和监督安装程序是相同的教程中显示。 但是我修改了一些Nginx conf。 这里是:

upstream app_server_djangoapp { server localhost:8001 fail_timeout=0; } server { listen 80; server_name qlimp.com; access_log /var/log/Nginx/guni-access.log; error_log /var/log/Nginx/guni-error.log info; keepalive_timeout 5; 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_djangoapp; break; } } location /files/ { autoindex on; root /home/nirmal/qlimp/qlimp/files/; } }

这是我的媒体url:

MEDIA_URL = '/files/'

文件是我拥有所有静态文件文件夹。 我怎样才能让我的项目在服务器上工作? 谁能指导我?

如何在我的Wsgi apache上为Django执行多个进程?

MysqL-Python&Django 1.5.0:没有名为MysqL.base的模块错误

将os.popen命令转换为一个subprocess.Popen实例

在Windows上的IPython – 没有突出显示自动完成

与多站点IIS上的Django:如何使ISAPI.py合作

UPDATE

Errors.log https://gist.github.com/2768425

谢谢!

调度一个常规事件:Cron / Cron替代品(包括芹菜)

Django + gunicorn + Nginx上传文件502错误

Django与Apache的mod_wsgi – 500错误:Authtype没有设置?

uwsgi不创build套接文件

在MS Windows上安装Django,manage.py“无法导入Django”

第一。 不要在Nginx conf中使用。 这不好。 真的很可怕 请改用以下内容

location / { try_files $uri @proxy; } location @proxy { proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Host $http_host; proxy_redirect off; proxy_pass http://app_server_djangoapp; }

请参阅: http : //wiki.Nginx.org/IfIsEvil和http://wiki.Nginx.org/Pitfalls

现在,就调试而言。 你的gunicorn工人正在启动,因为有一些致命的错误。 尝试关闭gunicorn。 如果你正在使用主管:

sudo supervisorctl stop [gunicorn process name]

然后,从您的项目根目录运行:

python manage.py run_gunicorn -c path/to/gunicorn.conf

请注意任何启动错误或者实际启动错误,请在浏览器中测试您的站点。 如果你还没有得到任何有意义的信息,只需运行标准的runserver即可

python manage.py runserver

再次,请注意任何错误,如果加载正常,请在浏览器中测试您的网站。 我建议像在开发中一样测试localhost:8000。 其中一个应该给你一些工作。

UPDATE

你得到的错误说不能连接到“ind = 127.0.0.1”。 然后,看看你正在运行的命令, gunicorn_django -bind=127.0.0.1:8001 ,很容易看到问题。 您可以使用-b或--bind指定要绑定的IP和端口。 由于您只使用了一个-它将IP解释为ind=127.0.0.1 ,这显然是不正确的。 你需要使用:

gunicorn_django --bind=127.0.0.1:8001

要么

gunicorn_django -b 127.0.0.1:8001

增加keepalive_timeout。

server { listen 5000 default deferred; client_max_body_size 4G; keepalive_timeout 5; server_name _; location / { proxy_read_timeout 800; proxy_pass http://localhost:9000; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; break; } }

你需要正确理解指令。 “server_name”指令保存IP地址,“proxy_pass”将连接到托管服务器的端口。 在你的情况下:

server_name 127.0.0.1; proxy_pass http://127.0.0.1:8001;

没有理由不工作,但如果不是,然后尝试“python manage.py runserver”命令,以确保您的网站运行没有错误,因为在案件网站不能够提交数据到wsgi.py可能会显示相同的错误

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐