Nginx配置反向代理解决跨域问题

这篇具有很好参考价值的文章主要介绍了Nginx配置反向代理解决跨域问题。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

通过Nginx配置反向代理结果跨域问题

第一步:下载Nginx

一、下载

官网下载地址:http://nginx.org/en/download.html
我下载的版本:http://nginx.org/download/nginx-1.15.2.zip
(我也是参考网上的步骤,所以下载的不是最新版)

二、解压

将文件解压到本地地址(地址尽量不要出现中文)
Nginx配置反向代理解决跨域问题

三、启动

使用cmd进入nginx.exe所在文件夹下,并执行start nginx
(如果开启了window防火墙,点击允许访问)
Nginx配置反向代理解决跨域问题

四、测试

启动成功后,浏览器访问 localhost,即可看到Nginx 欢迎页
Nginx配置反向代理解决跨域问题
如果启动启动失败,可能是IIS占用了80端口,先往后看。

第二步:了解配置文件

一、nginx配置文件介绍

nginx配置文件:/nginx-1.15.2/conf/nginx.conf

配置文件组成

  • 全局快:
    从开始到events块之间的内容,主要设置一些影响nginx服务器整体运行的指令。
  • events块:
    events块涉及的指令主要影响nginx服务器与用户的网络连接。
  • http块:
    nginx服务器配置中最频繁的部分
    http块也分为http全局块和server块
    (我们要修改的部分也是这里的server块)

此处我只是简单说一下配置文件的组成,方便后文知道在哪里修改内容,具体知识点可自行去查相关资料

二、修改配置文件

通过编译软件或直接txt方式打开配置文件
(此处我是通过vscode打开的文件)
Nginx配置反向代理解决跨域问题
前文中启动失败的,找到http块下的server块,修改其中的端口号(比如改成8000),保存后重新启动nginx,然后再打开浏览器(localhost:8000)看看是否能访问到Nginx 欢迎页
Nginx配置反向代理解决跨域问题
Nginx配置反向代理解决跨域问题
Nginx配置反向代理解决跨域问题

反向代理

代理前

  • 前端页面
<template>
  <div>
    <el-input v-model="user.name" placeholder="请输入用户名"></el-input>
    <el-input v-model="user.password" placeholder="请输入密码"></el-input>
    <el-button @click="add">添加</el-button>
    <el-button @click="all">获取</el-button>
  </div>
</template>

<script>
export default {
  data () {
    return {
      user: {
        name: '',
        password: ''
      }
    };
  },

  methods: {
    add() {
      this.axios.post('http://localhost:9090/api/insert', this.user).then(res => {
        this.$message("添加成功")
      }).catch(err => {
        this.$message("添加失败:" + err)
      })
    },
    all() {
      this.axios.get('http://localhost:9090/api/all').then(res => {
        console.log(res);
      }).catch(err => {
        console.log(err);
      })
    }
  }
}
</script>

Nginx配置反向代理解决跨域问题

  • 数据接口
    Nginx配置反向代理解决跨域问题
    此时前端点击“获取”按钮,一定会出现跨域错误
    无法从8080端口获取9090端口的数据
    Nginx配置反向代理解决跨域问题

配置代理

在配置文件的http块下的server块中,删除/注释掉 location / 下的内容,配置成项目运行的地址,再添加 location /api 配置
此时的配置内容意思为,将http://127.0.0.1:8080和http://127.0.0.1:9090都代理到localhost:8000地址下,这样就不会有跨域的问题了
Nginx配置反向代理解决跨域问题

代理后

保存配置文件后,启动(start nginx)/重启(nginx -s reload )nginx

  • 前端页面
<template>
  <div>
    <el-input v-model="user.name" placeholder="请输入用户名"></el-input>
    <el-input v-model="user.password" placeholder="请输入密码"></el-input>
    <el-button @click="add">添加</el-button>
    <el-button @click="all">获取</el-button>
  </div>
</template>

<script>
export default {
  data () {
    return {
      user: {
        name: '',
        password: ''
      }
    };
  },

  methods: {
    add() {
      this.axios.post('http://localhost:8000/api/insert', this.user).then(res => { 
        this.$message("添加成功")
      }).catch(err => {
        this.$message("添加失败:" + err)
      })
    },
    all() {
      this.axios.get('http://localhost:8000/api/all').then(res => {
        console.log(res);
      }).catch(err => {
        console.log(err);
      })
    }
  }
}
</script>

Nginx配置反向代理解决跨域问题
Nginx配置反向代理解决跨域问题
可以看到,此时的项目和数据都被代理到8000端口下了,点击“获取”按钮,就可以成功获取数据了
Nginx配置反向代理解决跨域问题

补充知识点

Nginx常用命令说明文章来源地址https://www.toymoban.com/news/detail-465028.html

命令 说明
start nginx 启动Nginx
nginx -s stop 停用Nginx
nginx -s quit 优雅的停用Nginx(处理完正在进行中请求后停用)
nginx -s reload 重新加载配置,并优雅的重启进程

到了这里,关于Nginx配置反向代理解决跨域问题的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Nginx反向代理 跨域问题

    H5项目部署在自己服务器上,后端数据调用第三方。第三方不愿意解决跨域问题 1.H5项目部署在 a.com 2.H5项目的所有接口请求由第三方的 c.com 改为 b.com 。 3.反向代理用 b.com ,由 b.com 把所有请求转发请求第三方的 c.com 。加上跨域请求头 1. vue 本地开发有代理的问题,如果路径不

    2024年02月16日
    浏览(59)
  • 微服务Gateway网关(自动定位/自定义过滤器/解决跨域)+nginx反向代理gateway集群

    目录 Gateway网关 1.0.为什么需要网关? 1.1.如何使用gateway网关 1.2.网关从注册中心拉取服务 1.3.gateway自动定位 1.4.gateway常见的断言 1.5.gateway内置的过滤器 1.6.自定义过滤器-全局过滤器 1.7.解决跨域问题 2.nginx反向代理gateway集群 2.1.配置文件 继  nacos注册中心+Ribbon负载均衡+完成

    2024年02月06日
    浏览(66)
  • 解决Nginx 404反向代理问题的方法

    当你在使用Nginx进行反向代理时,有时候会遇到404错误,这是因为Nginx无法找到对应的资源。这个问题通常出现在配置反向代理的过程中,导致用户无法正常访问所需的资源,给网站的稳定性和用户体验带来负面影响。 要解决Nginx 404反向代理问题,需要注意以下几点: 1. 检查

    2024年04月12日
    浏览(51)
  • Nginx 代理解决跨域问题分析

    当你遇到跨域问题,不要立刻就选择复制去尝试。请详细看完这篇文章再处理 。我相信它能帮到你。 分析前准备: 前端网站地址:http://localhost:8080 服务端网址:http://localhost:59200  首先保证服务端是没有处理跨域的,其次,先用postman测试服务端接口是正常的。 当网站8080去

    2024年02月09日
    浏览(54)
  • nginx反向代理502-Bad Gateway问题解决

    配置nginx反向代理时出现502 通过nginx -t检查配置以成功 通过nginx -s reload重新加载 通过cat /var/log/nginx/error.log查看错误日志发现错误信息,这里的错误信息是“connecting to upstream ”。这里怀疑是selinux拒绝nginx 转发 8080端口。 关闭selinux重新测试 关闭后重新测试正常,可以通过反向

    2024年01月19日
    浏览(64)
  • nginx反向代理502-Bad Gateway问题解决方法

    用nginx反向代理 localhost:80 域名到服务器 localhost:8080 端口服务时,访问出现502 bad gateway 原因分析: 1.查看8080端口服务启动 2.查看错误日志:error.log,以centos7.x为例: 192.168.10.202 - - [08/May/2023:20:53:43 +0800] \\\"GET /jenkinsx/ HTTP/1.1\\\" 502 3693 \\\"-\\\" \\\"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/53

    2024年02月06日
    浏览(93)
  • 解决你的 Nginx 代理跨域问题详细完整版

    当你遇到跨域问题,不要立刻就选择复制去尝试。请详细看完这篇文章再处理 。我相信它能帮到你。 分析前准备: 前端网站地址:http://localhost:8080 服务端网址:http://localhost:59200  首先保证服务端是没有处理跨域的,其次,先用postman测试服务端接口是正常的 当网站8080去访

    2024年02月21日
    浏览(52)
  • 配置代理——解决跨域问题(详解)

    之前写项目的时候总会遇到 配置代理 的问题,可是配置了之后有时有用,有时就没有用,自己之前学的也是懵懵懂懂,于是专门花了一个小时去了解了如何配置代理跨域,然后在此记录一下,方便自己以后查阅。 1、通过原生的 xhr(XMLHttpRequest) 发起 ajax 请求 ——比较麻烦,

    2024年02月15日
    浏览(39)
  • Vue-配置代理(解决跨域问题)

    现在解决跨域主要有两种方式是CORS和Jsonp,但是在开发中用的比较多的是配置一个代理服务器。   上面那个图,左边是客户端所处位置,中间是代理服务器,要注意,红色框是客户所处位置,右边蓝色框是5000服务器,中间的粉色框因为是服务器和蓝色框服务器 之间进行数据

    2024年02月05日
    浏览(46)
  • 巧用Nginx配置解决跨域问题

    1,前端页面放在域名根目录,比如,http://www.xuecheng.com/ ,对应的nginx配置: 页面目录: 2,前端请求接口路径,在域名后面加一个目录 nginx 对api接口配置 其中的 $http_origin并不是nginx的内置参数,nginx支持取自定义的参数值,$http_XXX这个格式是nginx取请求中header的XXX的值的。这

    2023年04月11日
    浏览(38)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包