nginx反向代理处理跨域的例子
例子:
假如项目系统时前后端分离,页面部署在http://localhost:18080的tomcat上,后端代码部署在 http://localhost:18082的tomcat上,也就是说页面和后端代码分别部署在不同tomcat服务器上,这时候如果在页面上的异步请求上直接访问后端的方法(http://localhost:18082/XXX),那么就会被浏览器拦截,请求发送不到后台获取数据。
解决方法:
下载nginx,我的版本是nginx-1.13.9,解压出来即可,打开修改config目录下的nginx.conf文件,找到server{},修改花括号里的内容即可,我的配置如下:
server {
listen 80;
server_name localhost;
location ^~/modeler {
rewrite ^/modeler(.*)$ /$1 break;
proxy_pass http://localhost:18080;
}
location ^~/service {
rewrite ^/service(.*)$ /$1 break;
proxy_pass http://localhost:18082;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
使用方法:
访问页面地址:http://localhost/modeler/xxx.html
在页面的异步请求地址:http://localhost/service/XXX (原先地址:http://localhost:18082/XXX)