2014-03-13 36 views
1

我在nginx的conf下以下配置結合Nginx位置塊。

location /request1 { 
      proxy_pass http://hostname:port/request1; 
      proxy_set_header Host  $host; 
      proxy_set_header X-Real-IP $remote_addr; 
} 

location /request2 { 
      proxy_pass http://hostname:port/request2; 
      proxy_set_header Host  $host; 
      proxy_set_header X-Real-IP $remote_addr; 
} 

location /request3 { 
      proxy_pass http://hostname:port/request3; 
      proxy_set_header Host  $host; 
      proxy_set_header X-Real-IP $remote_addr; 
} 

我想將它們合併成一個配置像

location ~ /(request1|request2|request3)/ { 
      proxy_pass http://hostname:port/$1; 
      proxy_set_header Host  $host; 
      proxy_set_header X-Real-IP $remote_addr; 
} 

我無法弄清楚的語法。任何人都可以幫助我?

回答我的問題:

對我來說,以下工作:

location ~ ^/(request1|request2|request3) { 
    proxy_pass http://hostname:port; 
    proxy_set_header Host  $host; 
    proxy_set_header X-Real-IP $remote_addr; 
} 
+0

實際上你的配置應該在這個狀態下工作,你會得到什麼問題? –

回答

0

請刪除從匹配的最後/。此外,請添加一個^以確保從uri開始匹配。

location ~ ^/(request1|request2|request3) { 
+0

尾隨的'/'是例如'/ request11'這樣的東西沒有匹配。 –