Nginx代理以/ feed结尾的一切

时间:2015-03-01 02:58:04

标签: nginx proxy

我想将以/feed结尾的所有内容代理到另一个域。

例如我想要

http://example.com/blog/feed成为

http://api.example2.com/blog/feed

http://example.com/blog/categories/my-category/feed成为

http://api.example2.com/blog/categories/my-category/feed

这是我到目前为止所得到的

server {
  listen 80;
  server_name example.com

  location ~ \feed$ {
    proxy_pass api.example2.com;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-NginX-Proxy true;
    proxy_hide_header Content-Type;
    add_header Content-Type application/rss+xml;
    proxy_redirect off;
  }

1 个答案:

答案 0 :(得分:2)

您自己的解决方案应该是正确的,但您需要使用正斜杠而不是反斜杠。

location ~ /feed$ {
    proxy_pass api.example2.com;
    # the rest of the settings
}

对于那些在没有说任何事情的情况下只是贬低的人,我只是复制了written in the documentation

  

使用rewrite指令在代理位置内更改URI时,将使用相同的配置来处理请求(中断):

location /name/ {
    rewrite    /name/([^/]+) /users?name=$1 break;
    proxy_pass http://127.0.0.1;
}
     

在这种情况下,将忽略指令中指定的URI,并将完整更改的请求URI传递给服务器。