我试图设置nginx来提供静态文件。 基本上我需要的是http://mydomain.com/site_media/指向/ var / django / myproject / site_media。
我已经尝试了这么多的configuration,当我testing它时,我总是得到一个静态文件的404错误。
任何人都可以告诉我我做错了什么,或者我应该如何设置?
这是我当前的nginxconfiguration文件。
用户www-data;
worker_processes 1;
#error_log /usr/local/nginx/logs/error.log;
#pid /usr/local/nginx/logs/nginx.pid;
事件{
worker_connections 1024;
使用epoll;
}
http {
#在这里列举所有的龙卷风服务器
上游前端{
服务器127.0.0.1:8000;
服务器127.0.0.1:8001;
服务器127.0.0.1:8002;
服务器127.0.0.1:8003;
}
包括mime.types;
default_type application / octet-stream;
#access_log /usr/local/nginx/logs/access.log;
keepalive_timeout 65;
proxy_read_timeout 200;
发送文件;
tcp_nopush;
tcp_nodelay;
gzip on;
gzip_min_length 1000;
gzip_proxied任何;
gzip_types文本/纯文本/ html文本/ css文本/ xml
应用程序/ x-javascript应用程序/ xml
application / atom + xml text / javascript;
proxy_next_upstream错误;
服务器{
听80;
#允许file upload
client_max_body_size 50M;
位置^〜/ site_media / {
root / var / django / myproject / site_media;
if($ query_string){
到期最大;
}
}
location = /favicon.ico {
重写(。*)/site_media/favicon.ico;
}
location = /robots.txt {
重写(。*)/site_media/robots.txt;
}
位置 / {
proxy_pass_header服务器;
proxy_set_header主机$ http_host;
proxy_redirectclosures;
proxy_set_header X-Real-IP $ remote_addr;
proxy_set_header X-Scheme $ scheme;
proxy_pass http:// frontends;
}
}
#include / usr / local / nginx / sites-enabled / *;
}
谢谢,
卡塔
我查看了nginx错误日志,发现它试图从/ var / django / myproject / site_media / site_media服务媒体而不是/ var / django / myproject / site_media – 很奇怪。
我改变了根/ var / django / myproject / site_media; 到根/ var / django / myproject; 现在它工作。
🙂
如果你的root /blah;没有包含斜线root /blah; 指令它将追加位置。 如果你确实包含了尾部的斜杠,它不会。