我想将以/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;
}
答案 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传递给服务器。