美文网首页
用nginx的反向代理机制解决前端跨域问题

用nginx的反向代理机制解决前端跨域问题

作者: 禅大师 | 来源:发表于2019-01-10 23:06 被阅读0次

跨域是指a页面想获取b页面资源,如果a、b页面的协议、域名、端口、子域名不同,或是a页面为ip地址,b页面为域名地址,所进行的访问行动都是跨域的,而浏览器为了安全问题一般都限制了跨域访问,也就是不允许跨域请求资源。

虽然,可以通过一些设置,比如设置header :Access-Control-Allow-Origin,让浏览器允许跨域调用,但是当a页面是https站点的页面时,只要去调用http的页面,都会因为安全降级而导致调用失败。这时候就只能通过nginx反向代理的方式,在本地创建一个https的虚拟路径,指向被调用的站点。此时,从浏览器的角度来看,就是访问的同一个站点,因此也就不存在跨域的问题了。

参考配置如下:在server段中增加配置:

location ^~/proxy/html/{
  rewrite ^/proxy/html/(.*)$ /$1 break;
  proxy_pass http://www.b.com/;
}

这样,就可以将http://www.b.com/下所有的访问,全部用https://www.a.com/proxy/html/ 来代替,以此解决了前端跨域问题。

相关文章

网友评论

      本文标题:用nginx的反向代理机制解决前端跨域问题

      本文链接:https://www.haomeiwen.com/subject/bvnzrqtx.html