前端使用nginx进行代理设置

1.开发为什么进行nginx代理设置?

一般在前端开发中设置nginx代理是为了解决跨域问题,问什么要进跨域行为设置呢?因为浏览器的同源策略,导致在a站点拿不到b站点的资源,然而前后端分离开发,前端开起的服务和后端起的服务IP地址不同,导致拿不到资源。如下图所示:

上图两个cookie是后端设置在服务器端的用来验证请求是否合法,前端需要拿到这个cookie传给后端来通过验证,但是这个是在a站点,前端开发环境在b站点,那怎么拿到这个cookie并顺利通过验证呢?

2.上面问题有了,那该怎么解决问题呢?

那么下面我们就来进行nginx配置来解决这个问题,首先在前端项目进行,以vue-cli3为例:先在config文件中配置代理如下所示:

// vue.config.js
devServer: {
   // contentBase: path.join(__dirname, 'dist'),
   compress: true,
   host: '100.110.xxx.xxx', // 本地IP
   port: '8099', // 项目运行端口
   proxy: {
     '/api': {
       target: 'http://100.119.xxx.xxx:8070', // 代理地址,api需要访问地址
       ws: true,
       changeOrigin: true,
       pathRewrite: {
         '^/api' : ''
       }
     }
   }
 }
 // dev.env.js
 module.exports = {
  NODE_ENV: '"development"',
  ENV_CONFIG: '"dev"',
  BASE_API: '"http://100.100.xxx.xxx:8321"' //访问本地ip地址服务,此服务由nginx开启
}

这样配置之后前端访问的API地址已经变成了http://100.100.xxx.xxx:8321/api/login这样子,服务器在收到这个请求之后,会在http://100.100.xxx.xxx这个地址下面种下cookie,前端就可以顺利拿到cookie进行访问。
接下来我们看看nginx

upstream temple {
    server 100.119.xxx.xxx:8070;
    #check interval=3000 rise=2 fall=5 timeout=1000 type=http;
    #check_http_send "HEAD /mwmonitor/check.jsp HTTP/1.0\r\n\r\n";
    #check_http_expect_alive http_2xx; 
}

server {
    listen       8321; #监听端口
    server_name  localhost; #开启一个本地服务
	location /api{ 
	#rewrite ^/api/(.*)$ /$1 break;
		proxy_pass http://temple; #服务代理地址
	}
}

运行nginx,就可以了,总结一下关于nginx代理。
在这里插入图片描述

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值