2016-06-09 57 views
1

我已經運行我的django應用程序在我的Ubuntu的lxc容器在127.0.0.1:8001與gunicorn和nginx。Nginx的 - 如何提供上游模型的靜態文件

這是host的nginx的conf:

upstream django_app { 
     server 10.0.8.100:8001; 
} 

server { 
     listen 80; 
     server_name  mysite.com; 

     location/{ 
       proxy_pass  http://django_app; 
       proxy_redirect off; 
       proxy_set_header Host $host; 
       proxy_set_header X-Real-IP $remote_addr; 
       proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 
       } 
     } 

這是nginx的CONF在container

server { 
    listen 80; 

    location/{ 
     proxy_set_header X-Forward-For $proxy_add_x_forwarded_for; 
     proxy_set_header Host $http_host; 
     proxy_pass http://127.0.0.1:8001; 
    } 

    location /static { 
      alias /opt/static_files/django_app/; 
    } 

} 

此配置工作。我可以看到我的應用程序從瀏覽器運行,但靜態文件未加載。瀏覽器中的每個靜態文件都有404 not found

路徑/opt/static_files/django_app/是通過collectstatic命令收集的所有靜態文件。

我無法找到一種方法來爲上游提供靜態文件。

謝謝

+0

,如果你第一次把靜態位置它的工作原理! –

+0

@DanielRoseman不,先生。它沒有工作。一切都很美好。但不知何故,主機無法到達'/ opt/static_files/django_app /'路徑。這是在集裝箱機器。 – user6447377

回答

0

/opt/static_files/應該是相同的settings.py的Django文件STATIC_ROOT設置。

而且,變化:

location /static { 
     alias /opt/static_files/django_app/; 
} 

到:

location /static/ { 
     alias /opt/static_files/django_app/; 
} 
+0

與STATIC_ROOT設置相同。應用程序正常工作,沒有上游模型。問題出在這裏(我想),主機無法訪問'/ opt/static_files/django_app /'文件夾下的靜態文件。它位於容器中。 – user6447377