欢迎来到代码驿站!

Nginx

当前位置:首页 > 服务器 > Nginx

nginx解决跨域问题的实例方法

时间:2021-11-22 11:10:49|栏目:Nginx|点击:

前后端分离,使用nginx解决跨域问题

前端:vue.js+nodejs+webpack

后台:SpringBoot

反向代理服务器:nginx

思想:将前端代码打包,让nginx指向静态资源,nginx对后台请求进行转发。

1、将前端代码打包:

npm run build

会生成一个dist文件夹。包含一个index.html文件和一个static文件夹,路径以我本地为例:

/Users/xxx/ideaProjects/webtest/dist

2、打开

/usr/local/etc/nginx目录下的nginx.conf,在server中添加如下:

listen  80; #原为8080,避免冲突,更改为80

  server_name localhost;

 

  #charset koi8-r;

 

  #access_log logs/host.access.log main;

 

 

  location / {

   root /Users/xxx/ideaProjects/webtest/dist;

   index index.html;

    

   # 此处用于处理 Vue、Angular、React 使用H5 的 History时 重写的问题

   if (!-e $request_filename) {

    rewrite ^(.*) /index.html last;

    break;

   }

  }

 

 

  # 代理服务端接口

  location /api/ {

   proxy_pass http://localhost:8080/;# 代理接口地址

  }

测试

前端发送请求:http://localhost/test ,vue-router将其重定向为http://localhost/api/demo/1,实际访问是http://localhost:8080/demo/1。

直接向后台发送请求:访问http://localhost/api/demo/1,实际访问是:http://localhost:8080/demo/1

内容扩展思考:

1).
# 代理服务端接口

location /api/ {
proxy_pass http://localhost:8080/;# 代理接口地址
}

代理接口地址只到8080,那么他会自动将后台项目的名称加上??? 比如接口是http://148.70.110.87:8080/项目名称/方法名称 。。。

2).js 中是这样请求的 ,nginx是按照您上面的配置,但是请求出错http://148.70.110.87/api/index2 404 (Not Found)

axios.post('/api/index2')
.then( (response) =>{
console.log(response);
})
.catch( (error)=> {
console.log(error);
});

3).您的第三个步骤,测试,实在看不懂要是能有相关的代码就好了

上一篇:Svn安装和使用_动力节点Java学院整理

栏    目:Nginx

下一篇:Nginx服务器下配置使用索引目录的教程

本文标题:nginx解决跨域问题的实例方法

本文地址:http://www.codeinn.net/misctech/184390.html

推荐教程

广告投放 | 联系我们 | 版权申明

重要申明:本站所有的文章、图片、评论等,均由网友发表或上传并维护或收集自网络,属个人行为,与本站立场无关。

如果侵犯了您的权利,请与我们联系,我们将在24小时内进行处理、任何非本站因素导致的法律后果,本站均不负任何责任。

联系QQ:914707363 | 邮箱:codeinn#126.com(#换成@)

Copyright © 2020 代码驿站 版权所有