当做前后端分离系统时,

前后端的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,也就是轮询 

 

可以给服务器设置权重,如下

解决前端请求后端接口跨域问题还可以配置放行请求,可能解决不了,还是推荐使用上面的方式

 

查看原文