正向代理,简单来说,就是你想请求A,但是不能直接访问A,所以你托Nginx帮你请求A,再将请求的结果返回给你。一般用来处理跨域、翻墙等。
下面以处理跨域来举例。
配置
1 | server { |
前端往http://localhost:8088/juhe/
上发送的请求,都会代理到http://v.juhe.cn/
上。根据API接口的地址往请求url上追加即可。
如:想请求http://v.juhe.cn/weather/index
,则访问http://localhost:8088/juhe/weather/index
。
proxy_pass说明
在NGINX中配置proxy_pass代理转发时,如果在proxy_pass后面的url加 / ,表示绝对根路径;如果没有 / ,表示相对路径,把匹配的路径部分也给代理。
下面举4种情况来说明,注意看proxy_pass中末尾有无 / 。
访问地址:
http://localhost:8088/juhe/weather/index
1
2
3location /juhe/ {
proxy_pass http://v.juhe.cn/;
}真实地址:
http://v.juhe.cn/
+weather/index
=http://v.juhe.cn/weather/index
访问地址:
http://localhost:8088/weather/index
1
2
3location /weather/ {
proxy_pass http://v.juhe.cn;
}真实地址:
http://v.juhe.cn
+/weather/index
=http://v.juhe.cn/weather/index
访问地址:
http://localhost:8088/juhe/index
1
2
3location /juhe/ {
proxy_pass http://v.juhe.cn/weather/;
}真实地址:
http://v.juhe.cn/weather/
+index
=http://v.juhe.cn/weather/index
访问地址:
http://localhost:8088/juhe/ther/index
1
2
3location /juhe/ {
proxy_pass http://v.juhe.cn/wea;
}真实地址:
http://v.juhe.cn/wea
+ther/index
=http://v.juhe.cn/weather/index
补充
参数都在ajax的data中,会自动带到地址的url中。
参数中如果有中文,可能需要编码或解码。
请求示例
1 |
|