2013-07-31 79 views
3

我嘗試設置nginx,以便它將請求代理到多個位置。例如。 /location1/location2都應代表http://localhost:8080。我無法弄清楚如何在不使用多個位置塊的情況下進行配置。我已經嘗試過了:帶有多個位置的nginx proxypass

location /(location1|location2) { 
    proxy_pass http://localhost:8080/ 
} 

哪個只給404s。我也試過:

location ~ /(location1|location2) { 
    proxy_pass http://localhost:8080/ 
} 

這會引發一個錯誤,即正則表達式不允許使用代理傳遞。

是否可以配置此代理而不必創建多個位置塊?

+0

對於缺少';'不是問題嗎? –

+0

這是一個很好的問題。 – Aley

+0

你可以試試這個配置'location〜^/location [12] $ {return 200「$ uri」;}'。 – xiaochen

回答

0

顯然缺少斜線和';'。試試這個:

location ~ (/location1|/location2) { proxy_pass http://localhost:8080; }

+0

有沒有辦法做到這一點,而不涉及正則表達式?這看起來像是一組嵌套指令應該匹配的位置的一個簡單情況 - 幾乎沒有一個使用正則表達式匹配的大型槍的用例,這總是在這裏不必要的開銷。我的意思是,這種模式幾乎是一個退化的案例。 – amn