美文网首页
nginx配置代理解决浏览器跨域问题

nginx配置代理解决浏览器跨域问题

作者: mingzhi618 | 来源:发表于2018-09-10 16:53 被阅读0次

节选自:https://segmentfault.com/a/1190000010197683,亲测有效

项目前后端分离后,前后端项目分开开发,尤其是单页面应用,前端代码会开启单独的服务器,若直接在前端项目中访问后端API,肯定会遇到因跨域不能访问的问题。

这时候,用nginx反向代理实现跨域,是最简单的跨域方式。只需要修改nginx的配置即可解决跨域问题,支持所有浏览器,支持session,不需要修改任何代码,并且不会影响服务器性能。

只需要配置nginx,在一个服务器上配置多个前缀来转发http/https请求到多个真实的服务器即可。这样,这个服务器上所有url都是相同的域名、协议和端口。因此,对于浏览器来说,这些url都是同源的,没有跨域限制。而实际上,这些url实际上由物理服务器提供服务。

环境:CentOS 7,  nginx/1.12.2

修改nginx 配置文件:/etc/nginx/nginx.conf, 添加以项选项

location / {

    proxy_pass http://192.168.1.10:8080/;        # 前端服务器地址

}

location /api/ {

    # 所有对后端的请求加一个 api 前缀方便区分,真正访问的时候移除这个前缀

    rewrite ^/api/(.*)$ /$1 break;                        

 # 将真正的请求代理到真实的服务器地址,如 ajax 的 url 为 /api/user/1 的请求被转发到http://www.serverA.com/user/1

    proxy_pass http://localhost:8080;              

}

现在浏览器通过访问 nginx 地址即可打开前端页面,前端所有对后台接口的请求都会通过 nginx 转发到真正的后端服务器,

因为前后端域名一样,所以浏览器不会有跨域问题

2. nginx 代理websocket配置:

$ vim /usr/local/nginx/conf/nginx.conf

# 在http上下文中增加如下配置,确保Nginx能处理正常http请求。

location /ws {

proxy_pass http://192.168.1.117:8080/ws;

proxy_read_timeout 300s;

proxy_set_header Host $host;

proxy_set_header X-Real-IP $remote_addr;

proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

proxy_http_version 1.1;

proxy_set_header Upgrade $http_upgrade; p

roxy_set_header Connection "Upgrade";

}

111

相关文章

  • ajax跨域--nginx反向代理

    用nginx反向代理实现跨域,是最简单的跨域方式。只需要修改nginx的配置即可解决跨域问题,支持所有浏览器,支持...

  • vue cli 解决跨域 线上 nginx 反向代理配置

    vue cli 解决跨域 线上 nginx 反向代理配置 前后分离 axios 接 api 跨域问题如图: 解决办...

  • 跨域问题,解决方案

    跨域问题,解决方案 - Nginx反向代理跨域问题,解决方案 - CORS方案此为原作者的链接:跨域问题,解决之道

  • 用nginx的反向代理机制解决前端跨域问题

    用nginx的反向代理机制解决前端跨域问题 Vue做前台,后台走接口就会遇到跨域问题。这里Nginx做反向代理是一...

  • webpack设置代理出现的问题

    一、解决跨域问题有几种解决方案:跨域资源共享 CORSjsonpproxy (Nginx代理或其他的服务器代理)在...

  • nginx 配置

    1、nginx访问配置 2、代理本地3000端口到3066端口 3、代理网络端口和本地端口到3066解决跨域问题 ...

  • 配置Nginx后上传文件出现跨域问题

    问题详情:服务端已开启跨域,在配置Nginx反向代理后,使用ELMENT UI 反而出现跨域问题 Nginx监听9...

  • Nginx的进阶二

    Nginx的进阶二 nginx的配置跨域问题 为什么会出现跨域问题 出于浏览器的同源策略限制。同源策略(Sameo...

  • 浏览器跨域的那些事

    整理中 目标: 了解跨域 解决跨域 服务器配置跨域(java, nginx) 前端调试时配置解决跨域 一、什么是跨...

  • vue前端配置代理实现跨域请求

    跨域的解决方法:设置让服务器允许跨域,使用nginx反向代理服务器实现 在config.js中配置config配置...

网友评论

      本文标题:nginx配置代理解决浏览器跨域问题

      本文链接:https://www.haomeiwen.com/subject/xknsgftx.html