Nginx解决前端访问资源跨域问题的方法详解


Posted in Servers onMarch 31, 2021

被前端跨域问题折磨快2天后,终于用ngnx的方式解决了,所以在此总结下。

该篇只探讨如何用Ngnx解决跨域问题,对于原理不作讨论。

1、首先介绍Windows环境下Nignx的相关命令操作

nginx常用命令:

  • 验证配置是否正确: nginx -t
  • 查看Nginx的版本号:nginx -V
  • 启动Nginx:start nginx
  • 快速停止或关闭Nginx:nginx -s stop
  • 正常停止或关闭Nginx:nginx -s quit
  • 配置文件修改重装载命令:nginx -s reload

在停止ngix后,会自动删除/logs目录下的nginx.pid

  • 可以使用命令nginx -c conf/nginx.conf 重新创建 或者 再次启动nginx

查看nignx 监听端口 是否启动成功

  • netstat -ano | findstr 端口号

解决关闭nignx后 端口仍在监听中

1、netstat -ano | findstr 端口号 #获取到PID

2、tasklist | findstr "PID" #命令找到nginx进程信息

3、taskkill /f /t /im nginx.exe #结束nginx进程

2、介绍如何配置Nignx 解决跨域问题

前端ip端口号:http://localhost:8080/

后端ip端口号:http://localhost:8082/

现在我们在不做跨域设置时,前端请求如下

uni.request({
  url:'http://localhost:8082/ApiController/test',
  success:(res)=>{
  console.log(res.data)
  },
})

访问地址:'http://localhost:8082/ApiController/test',就会出现

Nginx解决前端访问资源跨域问题的方法详解

那么我们进行Nignx配置

编辑 /config/nginx.conf此文件

1)添加头信息,在nginx.conf配置文件http块中添加跨域访问配置

add_header Access-Control-Allow-Origin *; //允许所有域名跨域访问代理地址
add_header Access-Control-Allow-Headers X-Requested-With;
add_header Access-Control-Allow-Methods GET; //跨域请求访问请求方式,

2)设置反向代理

server {
  listen  80; #配置nignx的监听端口
  server_name localhost; #配置nignx的监听地址
  location /ApiController{ #监听地址 以/ApiController开头的地址
   proxy_pass http://localhost:8082; #转发地址
  }
}

此时配置后我们前端访问url

http://localhost:8082/ApiController/test 应修改为http://localhost:80/ApiController/test

#此时监听

以localhost为域名

以80为端口

以/ApiController为地址开头

才会进行地址转发

uni.request({
   url:'http://localhost:80/ApiController/test',
   success:(res)=>{
   console.log(res.data)
   },
})

结果:(访问成功)

Nginx解决前端访问资源跨域问题的方法详解

总结

到此这篇关于Nginx解决前端访问资源跨域问题的文章就介绍到这了,更多相关Nginx解决前端访问资源跨域内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Servers 相关文章推荐
nginx proxy_cache 缓存配置详解
Mar 31 Servers
nginx里的rewrite跳转的实现
Mar 31 Servers
nginx反向代理时如何保持长连接
Mar 31 Servers
Nginx配置80端口访问8080及项目名地址方法解析
Mar 31 Servers
Nginx工作原理和优化总结。
Apr 02 Servers
JVM上高性能数据格式库包Apache Arrow入门和架构详解(Gkatziouras)
May 26 Servers
Nginx配置https的实现
Nov 27 Servers
使用 Apache 反向代理的设置技巧
Jan 18 Servers
Kubernetes关键组件与结构组成介绍
Mar 31 Servers
如何开启Apache,Nginx和IIS服务器的GZIP压缩功能
Apr 29 Servers
解决Vmware虚拟机安装centos8报错“Section %Packages Does Not End With %End. Pane Is Dead”
Jun 01 Servers
win10+RTX3050ti+TensorFlow+cudn+cudnn配置深度学习环境的方法
Jun 25 Servers
nginx实现发布静态资源的方法
Nginx中break与last的区别详析
nginx网站服务如何配置防盗链(推荐)
本地通过nginx配置反向代理的全过程记录
nginx优化的六点方法
Mar 31 #Servers
Nginx优化服务之网页压缩的实现方法
Nginx 负载均衡是什么以及该如何配置
Mar 31 #Servers
You might like
destoon调用企业会员公司形象图片的实现方法
2014/08/21 PHP
PHP使用CURL模拟登录的方法
2015/07/08 PHP
php传值方式和ajax的验证功能
2017/03/27 PHP
PHP简单实现正则匹配省市区的方法
2018/04/13 PHP
PHP 进程池与轮询调度算法实现多任务的示例代码
2019/11/26 PHP
nodejs的require模块(文件模块/核心模块)及路径介绍
2013/01/14 NodeJs
JS文本框不能输入空格验证方法
2013/03/19 Javascript
推荐6款基于jQuery实现图片效果插件
2014/12/07 Javascript
谷歌浏览器调试JavaScript小技巧
2014/12/29 Javascript
js动态修改表格行colspan列跨度的方法
2015/03/30 Javascript
JavaScript里四舍五入函数round用法实例
2015/04/06 Javascript
javascript截取字符串小结
2015/04/28 Javascript
手机Web APP如何实现分享多平台功能
2016/08/19 Javascript
Bootstrap中点击按钮后变灰并显示加载中实例代码
2016/09/23 Javascript
原生JS实现幻灯片
2017/02/22 Javascript
jQuery实现jQuery-form.js实现异步上传文件
2017/04/28 jQuery
Element-ui中元素滚动时el-option超出元素区域的问题
2019/05/30 Javascript
Vue中的transition封装组件的实现方法
2019/08/13 Javascript
VUE实现Studio管理后台之鼠标拖放改变窗口大小
2020/03/04 Javascript
分享8个JavaScript库可更好地处理本地存储
2020/10/12 Javascript
原生js中运算符及流程控制示例详解
2021/01/05 Javascript
js简单粗暴的发布订阅示例代码
2021/01/23 Javascript
[45:40]Ti4 冒泡赛第二天NEWBEE vs NaVi 1
2014/07/15 DOTA
使用Python绘制图表大全总结
2017/02/11 Python
Python中模块与包有相同名字的处理方法
2017/05/05 Python
python 把列表转化为字符串的方法
2018/10/23 Python
为什么你还不懂得怎么使用Python协程
2019/05/13 Python
Keras—embedding嵌入层的用法详解
2020/06/10 Python
html5实现多图片预览上传及点击可拖拽控件
2018/03/15 HTML / CSS
庆八一活动方案
2014/01/25 职场文书
乡镇八一建军节活动方案
2014/08/24 职场文书
幼儿园教师师德师风演讲稿:爱我所爱 无悔青春
2014/09/10 职场文书
向国旗敬礼活动小结
2014/09/27 职场文书
2014年党建工作汇报材料
2014/10/27 职场文书
2014个人年度工作总结
2014/12/15 职场文书
Golang中channel的原理解读(推荐)
2021/10/16 Golang