如何使用 gunicorn 为 django 配置 nginx?
Posted
技术标签:
【中文标题】如何使用 gunicorn 为 django 配置 nginx?【英文标题】:How to configure nginx for django with gunicorn? 【发布时间】:2017-02-23 21:57:54 【问题描述】:我已成功运行 gunicorn 并确认我的网站在 localhost:8000 上运行。但我无法正确使用 nginx。我的配置文件是这样的:
server
listen 80;
server_name 104.224.149.42;
location /
proxy_pass http://127.0.0.1:8000;
104.224.149.42是外界的ip。
【问题讨论】:
究竟是什么不正常?你有什么具体的错误吗? 你检查过Nginx的配置文件吗?您可以强制 nginx 使用以下命令检查您的设置文件: nginx -t -c /path/to/configuration/file.conf @PanchoJay 该命令非常有用,并给出如下错误消息:[emerg] "server" directive is not allowed.然后在谷歌搜索后,我添加了 http 标签来包含服务器标签并收到错误消息:[emerg] no "events" section in configuration。可能我应该查看文档。 @Borg 我认为您将设置放在不正确的文件中。您粘贴的代码应该放在站点配置文件中,而不是放在 nginx.conf 中。您是否使用了教程或指南? @PanchoJay 我搞定了。即使所有在线教程都建议从可用的站点链接配置文件,启用站点的软链接似乎也不起作用。复制效果很好! 【参考方案1】:这样做
从/etc/nginx/sites-enabled/default
中删除default
创建/etc/nginx/sites-available/my.conf
并关注
server
listen 80;
server_name 104.224.149.42;
location /
proxy_pass http://127.0.0.1:8000;
然后sudo ln -s /etc/nginx/sites-available/my.conf /etc/nginx/sites-enabled/my.conf
nginx
您必须配置static
文件和media
文件服务。
【讨论】:
完全删除默认站点配置不是一个好主意。只需从启用的站点中删除默认设置即可。以上是关于如何使用 gunicorn 为 django 配置 nginx?的主要内容,如果未能解决你的问题,请参考以下文章
如何运行多个Django App Gunicorn systemd?
68. Django项目部署nginx + gunicorn
在 Heroku 上为 Django 配置 gunicorn