2014-03-13 37 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'这样的东西没有匹配。 –