有一个需求,在本地项目页面中加载iframe,然后这个iframe需要加载第三方的页面。因为涉及到跨域了而且第三方页面用到了cookie,导致页面无法正常展示。
可以采用nginx代理本地项目和第三方请求的方式,绕过浏览器跨域限制。
server {
listen 80;
server_name localhost;
location / {
proxy_pass http://第三方ip:10001;
}
#本地项目,上下文为hzj
location /hzj/ {
proxy_pass http://localhost:8081/;
}
}
这样,本地项目hzj的请求都转发到本地8081端口,其他请求转发到第三方。
还有个坑,由于第三方页面使用了带下划线的header,nginx代理的时候会忽略掉带下划线的参数,因为带下划线的不符合http规范。可以做如下配置。
# 保留下划线
underscores_in_headers on;
网友评论