当做前后端分离系统时,
前后端的url域名ip不同,或者域名ip相同,但是端口号不同。例如
1. 前端页面为:http://127.0.0.2:8080/ , 后端接口api根路径为 http://127.0.0.3:8888
2.前端页面为:http://127.0.0.1:8080/ , 后端api根路径为 http://127.0.0.1:8888
上面两种情况都会导致跨域问题,前端设置的request header或者cookies后端接收不到,导致接口没有返回值,前端调用后端接口状态码为0等情况,这是很蛋疼的问题。用nginx配置端口转发完美解决。
例如,前端请求进来,配置端口转发到后端接口上,去调用对应的接口
前端请求如下
配置端口请求转发,配置proxy_pass 配置代理地址,这里如果后端只有一台服务器,直接配置对应服务器ip加端口,如下
如果有多台,可以配置upstream,设置多台服务器,并且配置对应的权重,均匀打到每台服务器
配置如下,不配置权重,默认为1,也就是轮询
可以给服务器设置权重,如下
解决前端请求后端接口跨域问题还可以配置放行请求,可能解决不了,还是推荐使用上面的方式