使用nginx的反向代理,是解决跨域的一个重要方法。在nginx的配置文件中,我们通常可以看到这么一段:
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
从名字proxy_set_header
可以看出,这些语句是设置请求头的。
在我们的项目代理中,配置的代理地址都直接是服务器ip地址,如:
location ^~ /proxy/v1/ {
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://192.168.5.85:8080/v1/;
}
最近在写一个mock服务,想要通过mock服务来改变请求结果等,但是将proxy_pass改为mock服务的域名后,却发现请求失败了。
域名my.test.com的相关代理设置如下:
location ^~ /proxy/v1/ {
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://test.mock.c