2015-09-04 180 views
1

我有django + gunicorn + nginx在192.168.1.81:3000上運行。該Web應用程序不會提供任何靜態文件;它會返回一個404錯誤。這表明nginx虛擬服務器配置文件存在問題。我嘗試了幾種堆棧溢出解決方案,但都沒有成功。 nginx虛擬服務器文件有什麼問題?django + gunicorn + nginx 404服務靜態文件

upstream app_server { 
     server unix:/home/pi/door_site/gunicorn.sock fail_timeout=0; 
} 

server { 
     listen 80; 
     server_name 192.168.1.81; 
     client_max_body_size 4G; 
     access_log /home/pi/door_site/logs/nginx-access.log; 
     error_log /home/pi/door_site/logs/nginx-error.log; 
     location /static/ { 
       alias /home/pi/door_site/static/; 
     } 

     location/{ 
       proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 
       proxy_set_header Host $http_host; 
       proxy_redirect off; 
       if (!-f $request_filename) { 
         proxy_pass http://app_server; 
         break; 
       } 
     } 
} 
+0

是的,我已經設置STATIC_ROOT運行'蟒蛇manage.py collectstatic'來填充STATIC_ROOT點 – jkarimi

+0

是教程我跟着該目錄。我再次瀏覽了一遍,看看我是否錯過了關於權限的所有內容,而且這一切似乎都是爲了順序。難道不刪除默認的nginx配置文件導致了這個問題? – jkarimi

+0

您是否檢查了您的nginx日誌以查看'/ static /'url實際嘗試讀取的路徑? – henrikstroem

回答

0

在Nginx的虛擬服務器的conf文件中服務器部分,你需要添加到位置章節的Nginx可以服務於/靜態/和/媒體/文件夾中的文件:

location /media { 
    alias /path/to/your/folder/media; 
} 

location /static { 
    alias /path/to/your/folder/static; 
} 

後那測試Nginx配置:

sudo nginx -t 

並重新載入Nginx:

sudo nginx -s reload 

(或重啓 - sudo /etc/init.d/nginx restart

+0

* add _two_位置部分 - 我拼寫錯誤,對不起 –

相關問題