帮助需要设置nginx来提供静态文件

我试图设置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; 指令它将追加位置。 如果你确实包含了尾部的斜杠,它不会。