我在Apache + mod_wsgi上设置了我的Django应用程序。根据Django项目网站的建议,我正在使用Nginx提供静态文件。 http://docs.djangoproject.com/en/dev/howto/deployment/modwsgi/
Apache在端口8081上运行,nginx在端口80上运行。现在有人建议我的配置错误,我应该反转Apache和Nginx的角色。我不确定为什么会这样。如果确实我的配置错了,为什么django网站会提出错误的方法?
答案 0 :(得分:12)
您链接的django文档不建议您使用apache作为反向代理。他们只是建议你使用一个单独的网络服务器,所以我说文档不清楚这个主题 - 他们并没有暗示任何错误的。
我的初步答案是假设您将nginx作为反向代理,因为端口80是HTTP端口,当浏览器尝试转到没有指定端口的URL时使用的端口。
通过快速谷歌搜索设置nginx + apache有很多完整的指南,但这里是设置nginx的要点:
location / {
# proxy / requests to apache running django on port 8081
proxy_pass http://127.0.0.1:8081/;
proxy_redirect off;
}
location /media/ {
# serve static media directly from nginx
root /srv/anuva_project/www/;
expires 30d;
break;
}
您需要做的就是从apache配置中删除代理行,然后将代理语句添加到您的nginx.conf中。
如果您真的想从端口8081为您的站点提供服务,您可能会在端口8081上监听nginx,并让apache在另一个端口上侦听。
关键是,apache位于一个不起眼的端口,只提供从nginx发送给它的请求,而静态文件服务由nginx处理。