我的 django 应用程序托管在 Apache 上,现在我想通过 nginx 提供其静态媒体,我之前没有任何使用 nginx 的经验...而且目前静态媒体是通过 Apache 提供的...希望得到一些帮助。
Apache 2.2 mod_wsgi nignx-0.7.65 Django 1.1.1
谢谢..
答案1
你能告诉我你现在做了什么吗?你必须安装 nginx 并将 apache 设置为反向代理。你需要将 apache 监听的端口更改为 8080,这样 nginx 将监听端口 80。
静态媒体的请求将直接从磁盘传送,其他文件将被重定向到 apache 的 8080 端口。
如果您可以提出一些更具体的问题,我可以帮助您解答。
更新
查看Apache ProxyPassReverse 的 Nginx 解决方案有关反向代理的示例。如需更详细的示例,您可以直接询问,我会发布它。
更好的:使用 Nginx 作为反向代理来充分利用你的 VPS
更新
我的子域名的 nginx.conf 部分如下所示:
server {
listen 80;
server_name domain.nl www.domain.nl ;
error_log /var/www/vhosts/domain.nl/statistics/logs/error_log.nginx warn;
location / {
proxy_pass http://www.domain.nl:8080$request_uri;
include /etc/nginx/proxy.conf;
}
location ~* ^.+\.(jpg|jpeg|gif|png|css|bmp|js|ico|swf)$ {
root /var/www/vhosts/domain.nl/httpdocs;
expires 7d;
}
}
这将监听 domain.nl 和 www.domain.nl 的 80 端口。当收到非静态文件的请求时,该请求将传递到 8080 端口http://www.domain.nl:8080$request_ur。
当发现对静态文件的请求时,发现 jpg 等。这是直接从磁盘 /var/www/vhosts/domain.nl/httpdocs(我的网站存储位置)给出的。