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

6 configuration nginx

我正在尝试设置 nginx 来提供静态文件。基本上我需要的只是让http://mydomain.com/site_media/指向 /var/django/myproject/site_media。

我尝试了很多配置,当我测试它时,我总是收到静态文件的 404 错误。

谁能告诉我我做错了什么或者我应该如何设置?

这是我当前的 nginx 配置文件。

用户 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 {

    # 在这里枚举所有 Tornado 服务器
    上游前端{
        服务器 127.0.0.1:8000;
        服务器 127.0.0.1:8001;
        服务器 127.0.0.1:8002;
        服务器 127.0.0.1:8003;
    }

    包括 mime.types;
    default_type 应用程序/八位字节流;

    #access_log /usr/local/nginx/logs/access.log;

    keepalive_timeout 65;
    proxy_read_timeout 200;
    发送文件;
    tcp_nopush 开启;
    tcp_nodelay 开启;
    gzip 上;
    gzip_min_length 1000;
    gzip_proxyed 任何;
    gzip_types 文本/纯文本/html 文本/css 文本/xml
               应用程序/x-javascript 应用程序/xml
               应用程序/atom+xml 文本/javascript;

    proxy_next_upstream 错误;

    服务器 {
        听80;

        # 允许文件上传
        client_max_body_size 50M;

        位置 ^~ /site_media/ {
            root /var/django/myproject/site_media;
            如果($query_string){
                最大到期;
            }
        }
        位置 = /favicon.ico {
            重写 (.*) /site_media/favicon.ico;
        }
        位置 = /robots.txt {
            重写 (.*) /site_media/robots.txt;
        }

        地点 / {
            proxy_pass_header 服务器;
            proxy_set_header 主机 $http_host;
            proxy_redirect 关闭;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Scheme $scheme;
            proxy_pass http://frontends;
        }
    }

    #include /usr/local/nginx/sites-enabled/*;

}

谢谢,

卡塔

小智 3

/var/django/myproject/site_media/site_media我查看了 nginx 错误日志,发现它试图从--weird提供媒体服务/var/django/myproject/site_media

我更改root /var/django/myproject/site_media;root /var/django/myproject;现在可以使用了。

:)