nginx反向代理及js跨域问题

来源:互联网 发布:淘宝无线店铺分类 编辑:程序博客网 时间:2024/05/18 09:08
首先说一下什么是js跨域问题:
js跨域指的是js在不同域之间进行数据传输或通信,域名、端口、协议任何一个不同都会被认为是不同域,由于javascript安全策略中的同源策略限制了跨域所以会导致这种通信不被允许。
以下表格形象地描述了各种场景:
URL说明是否允许通信http://www.a.com/a.js 
http://www.a.com/b.js同一域名下允许http://www.a.com/lab/a.js 
http://www.a.com/script/b.js同一域名下不同文件夹允许http://www.a.com:8000/a.js 
http://www.a.com/b.js同一域名,不同端口不允许http://www.a.com/a.js 
https://www.a.com/b.js同一域名,不同协议不允许http://www.a.com/a.js 
http://70.32.92.74/b.js域名和域名对应ip不允许http://www.a.com/a.js 
http://script.a.com/b.js主域相同,子域不同不允许http://www.a.com/a.js 
http://a.com/b.js同一域名,不同二级域名(同上)不允许(cookie这种情况下也不允许访问)http://www.cnblogs.com/a.js 
http://www.a.com/b.js不同域名不允许nginx的反向代理功能能够有效解决跨域问题,通过conf文件夹下的nginx.conf配置文件中的属性来设置这一功能。以下配置将部署在springboot内置的jetty服务器(端口8080)的请求映射到了nginx上
location /service {
            proxy_pass http://127.0.0.1:8080/service;
        }
        location /loginService {
            proxy_pass http://127.0.0.1:8080/loginService;
        }
        location /mobileService {
            proxy_pass http://127.0.0.1:8080/mobileService;
        }
配置了这些之后,我们本来要访问jetty的url,端口改为nginx对应的端口就能正常访问了。
0 0
原创粉丝点击