通过nginx实现链接重定向
如果只是单纯地借助nginx实现重定向,可以通过rewrite
来实现。
需求:
请求/foo/xxx
时,重定向到 另一个站点的/bar/xxx
server {
listen 80;
# ...
rewrite ^/foo/(.*)$ /bar/$1 break;
}
rewrite
的第一个参数是一个正则表达式,()
之内是一个capture,捕获到的内容会放到变量$1
中。第二个参数使用了$1
。
通过nginx实现反向代理
需求:
请求/foo/xxx
时,链接地址不变,但实际返回的是另一个站点的/bar/xxx
接口的响应结果。
server {
listen 80;
# ...
location /foo {
rewrite ^/foo/(.*)$ /bar/$1 break;
proxy_pass /;
}
}
这里面通过rewrite
实现了请求路径的修改,通过proxy_pass
实现了反向代理。
最终表现出来的行为就是,请求地址看上去没有变化,但实际请求的是另外一个地址。
当借助nginx避免浏览器跨域时,可以使用这个方案。