2017-04-20 59 views
3

我正在配置一個服務器,使用Nginx將子域重定向到遠程服務器(在同一本地網絡上)的網站(使用Django製作)。爲每個站點的內容提供服務工作良好,但我無法提供靜態和媒體文件(例如css)。下面是配置文件的內容:使用Django和Nginx在遠端服務器上提供靜態和媒體文件

server { 
      listen 80; 
      server_name myaddress.fr 

      location/{ 
        proxy_pass    http://192.168.0.85:8000; 
      } 
} 

這裏是settings.py的Django的網站結束(這在聽192.168.0.85:8000):

STATIC_ROOT = os.path.join(BASE_DIR, "static") 
STATIC_URL = '/static/' 


MEDIA_ROOT = os.path.join(BASE_DIR, "media") 
MEDIA_URL = '/media/' 

通常,當我的網站是不是nginx的同一臺服務器上,我只是將這些行添加到nginx的的c​​onf文件:

location /media/ { 
    alias /local/path/to/media/; 
} 

location /static/ { 
    alias /local/path/to/static/; 
} 

我怎麼能概括這個配置服務於遠程服務器上的媒體和靜態文件(在這裏192.168 0.0 0.85)?我應該在遠處的機器上安裝另一臺網絡服務器嗎?

在此先感謝您的幫助!

回答

3

您需要某種方式來提供路線來顯示這些文件。

這樣做的一種方法是在遠程服務器上安裝nginx並對其進行代理,就像使用應用程序本身一樣。

另一種選擇,因爲你說這是在同一個本地網絡。將使用類似NFS的東西來將靜態目錄掛載到代理服務器上,以便現有的nginx可以直接爲它們提供服務。

類似的選項是配置staticfiles應用程序以及用戶上傳文件的存儲,以將其文件直接保存在代理上。

+0

非常感謝,它使用了第一個解決方案(在遠程服務器上安裝nginx),但其他解決方案也顯得有趣,有一天我可能需要它們:) – artix41

相關問題