nginx未配置proxy_set_header Host $host;引起的服务请求失败

2 篇文章 0 订阅

背景:前端vue和后端java放在一台机器上,nginx做请求转发。用户未登录状态下,会返回给前端信息。前端判断后发起登录校验请求。
else if (res.code == 401 || res.code==402) {
if(res.data.sso){
// debugger;
console.log(“—”,response.data.data);
window.location.href = res.data.sso;
}
//debugger;
return Promise.reject(response || “error”);
}
然后nginx来做请求转发,发现此时一直请求失败。

原因:nginx请求转发时,没有携带之前客户端的请求头信息,导致请求失败。
nginx需要配置 proxy_set_header Host $host; 转发时会把请求头信息也带上。此时就可以了


server {
  listen 80;
  server_name test-xxx.xxx.com ;
  access_log /data/logs/access_userlevel.log main;
  error_log /data/logs/error_userlevel.log;
  root /data/apps/ysdq-userlevel-front/front;
  index index.html;
  location /api/ {    
    proxy_pass  http://xxx:xxx/api/;
    proxy_set_header Host $host;
  }
  location /sso/ {
    proxy_pass  http://xxx:xxx/sso/;
    proxy_set_header Host $host;  
  }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值