nginx设置代理解决跨域问题

vue工程 npm run build 后把dist包放到 nginx代理服务器的html目录,在conf/nginx.conf配置文件中增加配置,这样就可以正常方位后端接口了,配置如下:

javascript 复制代码
server {
    listen  8193;
    server_name  localhost 127.0.0.1;
    location / {
        root D:\agent\html;
        index  index.html  index.htm;
    }
}

vue工程中 配置后端IP地址如下:

javascript 复制代码
const instance = axios.create({
    baseURL: process.env.NODE_ENV === 'development' ? '/api' : '192.168.1.128:8185',
    timeout: 10000,
    headers: {
        'Content-Type': 'application/json;charset=UTF-8'
    }
})

在浏览器中输入 localhost:8193 打开前端网页,但出现了后端接口请求跨域问题。原因是localhost:8193 和发送的后端请求192.168.1.128:8185 IP 和 端口都不同,所以出现了跨域。

我们在nginx上配置转发就可以解决此跨域问题,修改步骤如下:

  1. 在nginx代理服务器配置文件中配置上转发,配置如下:
javascript 复制代码
server {
    listen  8193;
    server_name  localhost 127.0.0.1;
    location / {
        root D:\agent\html;
        index  index.html  index.htm;
    }

    location /file/get {
        proxy_pass 192.168.1.128:8151;
    }
}

发送后端接口/file/get 会被转发到后端192.168.1.128:8151

  1. 修改vue工程中的后端接口地址 和 打开前端页面的地址相同,如下所示:
javascript 复制代码
const instance = axios.create({
    baseURL: process.env.NODE_ENV === 'development' ? '/api' : 'localhost:8193',
    timeout: 10000,
    headers: {
        'Content-Type': 'application/json;charset=UTF-8'
    }
})

这样打开前端网页的地址和请求后端接口的地址相同,浏览器就不会报跨域请求错误了。而接口通过nginx 又被转发到正确的后端接口地址,所以接口就能正常访问了。

相关推荐
小此方22 分钟前
Re:Linux系统篇(五十二)线程篇 · 五:直击 Linux 内核底层:TCB 与 LWP 一体两面全解析(附自定义线程封装)
linux·运维·驱动开发
微三云 - 廖会灵 (私域系统开发)11 小时前
抖店 OPC 自动化运营系统架构与商业代理分控体系完整解析
运维·系统架构·自动化
办公室马主任12 小时前
华南机械加工企业选MES服务商怎么选?
大数据·运维·人工智能·制造
小陈同学!!12 小时前
防火墙双机热备实验
运维·服务器
三言老师12 小时前
CentOS8 Firewalld 高级规则中级实操教程
linux·运维·服务器·网络·centos
Promise微笑13 小时前
露点仪:康高特朝露(冷镜)vs 进口密析尔 、肖氏,怎么选?
运维
云贝贝贝14 小时前
OceanBase认证体系介绍与备考指南
运维·服务器·oceanbase·1024程序员节
tedcloud12314 小时前
Impeccable 部署指南:开源前端设计工具 Linux 环境搭建实践
linux·运维·服务器·前端·人工智能·开源
数智化管理手记14 小时前
传统架构无法适配元数据迭代?业务中台升级改造方案是什么?
运维·数据库·架构
保卫大狮兄15 小时前
设备利用率低,到底是设备问题还是排产问题?
大数据·运维·服务器