nginx代理无法访问后端服务的解决

 更新时间:2024年05月31日 11:35:56   作者:liujiangxu  
这篇文章主要介绍了nginx代理无法访问后端服务的解决,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

nginx代理无法访问后端服务

现象

nginx配置location网页显示css/js文件无法加载,但是后端服务访问正常,估计是后端服务将后缀路径写死导致nginx无法跳转

报错

2022/08/05 13:00:24 [error] 3389#e: *1092213 upstream timed out (110: Connection timed out) while reading upstream, client: 10.6. 18.19, server: localhost, request: “POST /rcenter/rpt/api/showReport HTTP/1.1”, upstream: “http://10.6.6.65:8880/rcenter/rpt/api/showReport” host: “10.6.6.67”

处理

以下这种也写法也可以,但是配置有多个location就会乱了

location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
{
proxy_pass "http://域名+端口";

最好一个rewrite针对具体的location

location /prod {
        proxy_pass http://10.1.5.17:20005;
        rewrite ^/prod(.*) http://10.1.5.17:20005/$1 permanent;
}

解决nginx代理后,前端拿不到后端自定义的header

先说结论,因为前端和nginx对接,所以需要在nginx添加如下配置向前端暴露header

add_header 'Access-Control-Expose-Headers' 'Authorization'

排查过程

1.后端设置了Authorization 的响应头作为token的返回,前后端本地联调没有问题

response.setHeader("Authorization", Objects.equals(tokenNew, "") ?token:tokenNew);

2. 发布到服务器上,开启nginx代理,结果前端返回的接口拿不到自定义的Header,然后到network里面一看,明明有啊

3.百度了一下,网上说后端设置属性add_header 'Access-Control-Expose-Headers' 'Authorization'

结果还是不行,为何?突然想到我是用nginx代理的,前端直接访问的nginx,是不是要在nginx中设置

4.果然,如果用nginx代理,需要在nginx中设置,如果不用nginx代理直接在后端响应中设置

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。 

相关文章

  • 解析nginx server_name的具体使用

    解析nginx server_name的具体使用

    nginx server_name对于正确配置虚拟主机非常重要,本文主要介绍了解析nginx server_name的具体使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-08-08
  • 使用nginx部署前端项目的实现

    使用nginx部署前端项目的实现

    前端项目的部署以前一直是把静态资源放到后端工程中,随后端部署一起部署,本文主要介绍了使用nginx部署前端项目的实现,具有一定的参考价值,感兴趣的可以了解一下
    2023-10-10
  • nginx实现多geoserver服务的负载均衡的示例代码

    nginx实现多geoserver服务的负载均衡的示例代码

    本文主要介绍了nginx实现多geoserver服务的负载均衡的示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-05-05
  • 在Nginx浏览器中打开目录浏览功能

    在Nginx浏览器中打开目录浏览功能

    这篇文章主要介绍了在Nginx浏览器中打开目录浏览功能,Nginx的目录浏览功能默认情况下被关闭需要手动打开,需要的朋友可以参考下
    2015-07-07
  • nginx下如何设置上传文件大小

    nginx下如何设置上传文件大小

    这篇文章主要介绍了nginx下如何设置上传文件大小问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-07-07
  • nginx中http-sysguard模块

    nginx中http-sysguard模块

    本文主要介绍了nginx中http-sysguard模块,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2024-08-08
  • nginx配置ssl双向验证的方法

    nginx配置ssl双向验证的方法

    这篇文章主要介绍了nginx配置ssl双向验证的方法,需要的朋友可以参考下
    2014-11-11
  • nginx里的rewrite跳转的实现

    nginx里的rewrite跳转的实现

    这篇文章主要介绍了nginx里的rewrite跳转的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-11-11
  • Nginx+PHP(FastCGI)搭建高并发WEB服务器(自动安装脚本)第二版

    Nginx+PHP(FastCGI)搭建高并发WEB服务器(自动安装脚本)第二版

    Nginx 0.7.x + PHP 5.2.10(FastCGI)搭建胜过Apache十倍的Web服务器(第5版) 编写
    2011-04-04
  • Nginx配置防盗链的完整步骤

    Nginx配置防盗链的完整步骤

    这篇文章主要给大家介绍了关于Nginx配置防盗链的完整步骤,文中通过示例代码介绍的非常详细,对大家学习或者使用Nginx具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-08-08

最新评论