2014-10-19 156 views
2

如何設置nginx將一個文件夾的代理反向代理到一臺服務器,其餘的根文件到另一臺服務器?nginx proxy_pass到一個目錄

根「/」由CMS管理,而「其他」是我自己的程序(獨立於CMS)。

這裏是我當前的配置

server { 
    listen 80; 
    server_name www.example.com; 
    rewrite ^ https://$server_name$request_uri? permanent; 
} 

server { 
    listen 443; 
    ... <ssl stuff> ... 

    server_name www.example.com; 

    location /other { 
     proxy_pass http://192.168.2.2/other ; 
    } 

    location/{ 
     proxy_pass http://192.168.1.1; 
    } 
} 

回答

4

參考nginx的文檔:

http://wiki.nginx.org/HttpCoreModule#location

http://wiki.nginx.org/HttpProxyModule#proxy_pass

,則應該更換other位置是:

location /other/ { 
    proxy_pass http://192.168.2.2/other/ ; 
} 

注意尾隨/。它實際上有所作爲,因爲它得到proxy_pass來正常化請求。我引用:

當請求傳遞給服務器時,與該位置匹配的規範化請求URI的一部分被在[proxy_pass]指令中指定的URI替換。

這應該有助於那些找到這個頁面的人。

+0

非常感謝你。我需要一種使用nginx作爲反向代理的方式,但希望URL能夠被重新編譯/以文件夾爲前綴。這就像一個魅力(沒有位於課程的位置部分的文件夾)! – 2017-07-21 17:04:25