关于使用nginx反向代理解决跨域问题

1.何为跨域问题

跨域本人经过两天的磨练,大量地翻阅网上资料,通俗地讲,就是,同一ip,同一域名,不同端口下,需要互相访问,需要cookie的传递以及数据的获取。

一般在项目中,前后端完全分离,因此访问的端口号不同,比如:localhost:8090(前端)发送到localhost:8001(后端)请求数据,此时前后端就出现了

跨域问题。

2.如何解决跨域问题

网上的博文都大多都能解决这个问题,比如本人在之前的随笔中,https://www.cnblogs.com/mollie-x/p/10449686.html;记录过,其中前4种都能基本解决,

但是这4种虽然可以让前后端实现数据交互,但是cookie前后端还是不通,还是没有完全解决,因此,也一直没有尝试第5种,nginx,这个东西是可以完全解决

跨域问题的,不但能前后端数据交互,而且cookie前后端也可以相互获取,完美地解决了跨域问题。

3.nginx到底怎么解决跨域问题的

 3.1首先,自己安装好nginx, 到nginx官网上下载相应的安装包,https://www.cnblogs.com/qfb620/p/5508468.html

3.2下载好后将其放置在自己心仪的位置,解压出来,

3.3将自己的前端项目打包好放置在html文件下,

 

3.4修改conf文件夹下的nginx.conf文件

3.4在该文件中加入如下配置

location /apis {
rewrite ^.+apis/?(.*)$ /$1 break;
include uwsgi_params;
proxy_pass http://localhost:8001;
}

其中/apis可以自己定义,这个相当于http://localhost:8001;在前端中请求的url中将http://localhost:8001修改为/apis,

当前端发送请求的时候,比如本来发送的url地址为http://localhost:8001/login,要使用nginx,就将url地址修改为/apis/login即可

上面配置中的proxy_pass 为自己的请求的后端域名或ip地址。

至此nginx配置完毕。

3.5双击nginx.exe或者使用cmd到该目录使用start nginx.exe启动nginx,

并且,nginx.conf中listen为需要请求的端口号,自己可以根据需要修改

3.6启动完毕,打开网址http://localhost:8888;即可访问自己的项目,完美解决跨域问题。

猜你喜欢

转载自www.cnblogs.com/mollie-x/p/10463140.html