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 又被转发到正确的后端接口地址,所以接口就能正常访问了。

相关推荐
广州服务器托管14 小时前
[2026.4.27]WIN10.1809.17763.8647[PIIS]中简优化版LTSC2019 丝滑流畅 老爷机续命系统
运维·人工智能·windows·计算机网络·可信计算技术
北方的流星14 小时前
华三网络设备MSTP+VRRP架构配置
运维·网络·华三
薪火铺子15 小时前
OAuth2 + JWT 微服务认证方案深度解析
java·运维·微服务
日取其半万世不竭16 小时前
服务器自动备份方案:用 rsync + cron 实现异地增量备份
运维·服务器·php
艾莉丝努力练剑16 小时前
【Linux网络】Linux 网络编程入门:UDP Socket 编程(下)
linux·运维·服务器·网络·计算机网络·安全·udp
qq_452396231 天前
第十五篇:《UI自动化中的稳定性优化:解决flaky tests的七种武器》
运维·ui·自动化
j_xxx404_1 天前
Linux:静态链接与动态链接深度解析
linux·运维·服务器·c++·人工智能
Elastic 中国社区官方博客1 天前
Elastic-caveman : 在不损失 Elastic 最佳效果的情况下,将 AI 响应 tokens 减少64%
大数据·运维·数据库·人工智能·elasticsearch·搜索引擎·全文检索
jsons11 天前
给每台虚拟机设置独立控制台密码
linux·运维·服务器
云栖梦泽1 天前
Linux内核与驱动:14.SPI子系统
linux·运维·服务器·c++