首页 > 系统相关 >【问题解决】 网关代理Nginx 301暴露自身端口号

【问题解决】 网关代理Nginx 301暴露自身端口号

时间:2023-06-20 11:25:50浏览次数:67  
标签:redirect 网关 重定向 301 Nginx API 端口号

一般项目上常用Nginx做负载均衡和静态资源服务器,本案例中项目上使用Nginx作为静态资源服务器出现了很奇怪的现象,我们一起来看看。

“诡异”的现象

部署架构如下图,Nginx作为静态资源服务器监听8080端口,客户浏览器通过API网关的443端口(就是https)获取Nginx静态资源。

现象是用户浏览器访问API网关的https地址后,API网关将请求SSL解密再请求Nginx 50001端口的/hd-portal路径,但返回给客户端的却是 https://a.com:50001/hd-portal/ !!! 这还是个重定向响应,响应头里包含 Location: https://a.com:50001/hd-portal/,由于API网关并没有开放这个端口号,所以请求到这里就无法继续下去了。

问题分析

笔者是同事拉进线上会议看的这个问题,大家已经琢磨好一会了,我让同事复现了下现象,也试着调了几个nginx.conf的参数没有奏效,赶上快中午了,就让同事用tcpdump抓下Nginx服务器网络包,我开始Wireshark分析。(常规定位Nginx的问题有两个办法:看access.log判断问题 和 tcpdump抓包分析确定问题。看access.log没看出那个50001是谁返回的)

这里就很明确是Nginx返回的301永久重定向,Nginx使用自己端口号暴露出来做的重定向。到此问题已清晰,只要不让Nginx把端口号暴露出来就可以了。

问题原因

这得先从Nginx的处理流程说起。

案例中,我们请求的是 https://API网关/hd-portal ,Nginx收到请求发现 /hd-portal 是一个目录,就会设置响应头Location 和空的响应体,试图让浏览器以目录方式访问资源。而浏览器收到响应后,解析响应头发现 Location 响应头确定要重定向,就开始跳转 https://API网关/hd-portal/

以上是正确合理的情况,不合理的点在于:Nginx为啥把自己端口号暴露出来了?

经过查询了Nginx官方文档,发现了三个有联系的配置项,分别贴图出来:

这三个配置分别是 absolute_redirect / server_name_in_redirect / port_in_redirect,以下简要说明下三者作用:

  • absolute_redirect:启用时表示绝对路径重定向,默认on启用
  • server_name_in_redirect: 启用时表示使用Nginx的server_name配置替换重定向路径,默认off禁用
  • port_in_redirect:启动时表示重定向时替换重定向的端口号,默认on启用
  • 这三个配置关系中,如果absolute_redirect配置off,则后两个配置失效。

解决方案

至此,可以有两种解决方案,根据实际情况任选其一即可:

  • absolute_redirect配置 off(禁用绝对路径跳转,相当于自动识别目录)
  • port_in_redirect配置 off(禁止替换重定向端口号)

这两个方案的配置位置可以是http / server / localtion块,作用范围也是根据配置位置决定的。

至于本案例中,由于多个项目使用同一个server,就在location块中添加了 port_in_redirect: off; 解决了问题。

总结

本文试图从问题现象到分析与解决方案的提出让读者能对Nginx的301重定向做到心中有数,相信读者看完本文再出现类似的问题解决起来肯定更轻松愉快!

我是Hellxz,如果本文对您有所帮助,请点个赞再走呗!~

标签:redirect,网关,重定向,301,Nginx,API,端口号
From: https://www.cnblogs.com/hellxz/p/nginx-301-redirect-expose-port.html

相关文章

  • 基于工业4G网关的高温监测及预警方案
    随着夏天逐渐到来,户外气温也日渐升高,对于户外工作的劳动者和工业机械设备,都将再度迎来高温考验。如果遭遇到极端高温天气,还会对人、对工业机械造成严重影响,因此就需要借助工业网关和传感器设计高温监测预警方案,用于监测工业场景中的温度变化,以便及早干预和预防潜在危险。  ......
  • API网关-APISIX简介
    本文分享自天翼云开发者社区《API网关-APISIX简介》,作者:w****nApacheAPISIX是一个动态、实时、高性能的云原生API网关,提供了负载均衡、动态上游、灰度发布、服务熔断、身份认证、可观测性等丰富的流量管理功能。APISIX构建于nginx+ngx_lua的技术基础之上,充分利用了LuaJIT所......
  • ORA-00600 [13013],[5001]
    故障现象:Dumpcontinuedfromfile:/u01/app/oracle/diag/rdbms/test/test1/trace/test1_ora_50647.trcORA-00600:internalerrorcode,arguments:[13013],[5001],[455035],[67227408],[31],[67227408],[17],[],[],[],[],[]报错SQL:-updateTESTa-set(a.A,......
  • Freeswitch新增网关
    本文介绍认证模式网关配置配置demo如下,文件存放路径/freeswitch/conf/sip_profiles/external/gw01.xml:1<include>2<gatewayname="gw01">3<paramname="username"value="10000"/>4<paramname="realm"value=&......
  • SX130芯片的LoRa网关吞吐量是SX127芯片的多少倍?
    1.吞吐量,LoRa网关的重要性能从广义上讲,网关是连接2个不同网络的设备。如果一个设备,它能将LoRa无线网络和Internet连接起来,它就是一个LoRa网关。目前,大部分的LoRa网关采用SX1301基带芯片,也有部分使用SX1276/8单信道芯片。那么,SX1301芯片的数据吞吐量是SX1276/8芯片的多少倍呢?我们......
  • 换热站网关精准控制,提升换热站运行效率
    我国供暖行业趋势是随着城镇化进程,集中供暖需求不断增长。集中供暖的热源一般是由热源站生产出的高温蒸汽或热水,经过一次热力管网输送到换热站,换热站经过换热器的热交换循环换热,再将热水通过二次管网输送到千家万户。热水通过室内的散热片,把热量散到室内,完成供热。换热站人工值守方......
  • 智能边缘网关支持视频汇聚集中接入,如何开启云端录像?
    EasyCVR智能边缘网关是TSINGSEE青犀视频旗下软硬一体的一款产品,可提供多协议(RTSP/RTMP/国标GB28181/海康Ehome/大华、海康SDK等)的设备视频接入、采集、视频处理、分发等服务,可分发多种格式的视频流,包括HTTP-FLV/WS-FLV/RTMP/RTSP/WebRTC/HLS。智能边缘网关支持通过国标GB28181协议......
  • 指纹打卡机语音方案,快速响应、低功耗MP3芯片N9301
    随着科技的不断进步,语音技术在各个领域中的应用也越来越广泛。在指纹考核机领域中,语音方案的加入能够有效提高用户的使用便利性和安全性。为此,一种新型的语音芯片加入指纹考核机语音方案被研发出来。语音指纹考勤机,目前市场上采用的高性价比的语音芯片N9301;此款芯片是一个提供串口......
  • 指纹打卡机语音方案,快速响应、低功耗MP3芯片N9301
    随着科技的不断进步,语音技术在各个领域中的应用也越来越广泛。在指纹考核机领域中,语音方案的加入能够有效提高用户的使用便利性和安全性。为此,一种新型的语音芯片加入指纹考核机语音方案被研发出来。语音指纹考勤机,目前市场上采用的高性价比的语音芯片N9301;此款芯片是一个提供串......
  • 计讯物联AI视频网关TG452在5G智能公交车的应用
    在智慧城市的规模化建设中,万物互联进入全面爆发期。交通行业作为经济发展的大动脉和风向标,势必在新基建的引领下步入发展快轨。公交车是城市公共交通中不可缺少的客运交通工具,其信息化与智能化发展更是必然趋势。 计讯物联以5G专网作为通信载体,利用其高速率、低时延、大带宽、......