当前位置: 首页 > news >正文

nginx配置跳转设置Host有误导致报404问题

我们有个项目,前端调用了第三方接口。为了避免跨域,所以使用nginx进行转发。一直正常工作,相安无事。近日第三方调整了安全策略,http转换成https,原本使用ip,现在也改成使用域名,所以nginx这里我们也需要改一下。结果改了以后,报404。

nginx的相关配置如下:

location /other3/ {
		proxy_pass https://gh.abc.com/3-18035/;
		proxy_set_header   X-Forwarded-Proto $scheme;
		proxy_set_header   Host              $http_host;
		proxy_set_header   X-Real-IP         $remote_addr;
		proxy_read_timeout 180;
}

我再三拷问AI,它说了几次废话后,说有可能是Host头部的原因:
默认情况下,Nginx 会将客户端请求的 Host 头部(即客户端本身的地址,例如 10.26.40.24:9988)转发给后端服务器。
如果后端服务器对 Host 头部有严格要求(例如必须是 gh.abc.com),则需要显式设置 Host 为后端服务器的域名。

于是再次修改,问题解决:

location /other3/ {
		proxy_pass https://gh.abc.com/3-18035/;
   		proxy_set_header   X-Forwarded-Proto $scheme;
   		#proxy_set_header   Host              $http_host;
		proxy_set_header   Host              gh.abc.com;  # 修改这里
   		proxy_set_header   X-Real-IP         $remote_addr;
   		proxy_read_timeout 180;
}

主要是nginx的配置代码,都是抄过来的,东抄西抄,不知道具体含义。请教AI,它给出的含义是:

# 匹配所有以 "/other3/" 开头的请求
location /other3/ {
    # 将匹配到的请求转发到 https://gh.abc.com/3-18035/
    proxy_pass https://gh.abc.com/3-18035/;
    
    # 设置 "X-Forwarded-Proto" 请求头为客户端请求的协议(HTTPHTTPS)
    # 即将客户端请求的协议类型(HTTPHTTPS)传递给后端服务器
    # 比如我的客户端是http,则以http向目标服务器请求,尽管目标服务器是是https;
    # 如果目标服务器只认https,那只能是这样设置:proxy_set_header X-Forwarded-Proto https;
    proxy_set_header   X-Forwarded-Proto $scheme;

	# 将 Host 头设置为客户端请求中原始的 Host 头部值
	# proxy_set_header   Host              $http_host;
	
    # 显式设置 "Host" 请求头为 "gh.abc.com"
    proxy_set_header   Host              gh.abc.com;  

    # 设置 "X-Real-IP" 请求头为客户端的真实 IP 地址
    proxy_set_header   X-Real-IP         $remote_addr;

    # 设置 Nginx 等待后端服务器响应的超时时间为 180 秒
    proxy_read_timeout 180;
}

学习了。

相关文章:

  • 洛克人2游戏秘籍
  • 一种监控录像视频恢复的高效解决方案,从每一帧中寻找可能性
  • 小样本学习综述2025
  • Vulnhub:Digitalword.local: FALL靶机渗透
  • 海拔案例分享-新华书店新零售系统开发解决方案
  • 自然语言处理,能否成为人工智能与人类语言完美交互的答案?
  • HTML~视频音频在网页中不能自动播放
  • 项目-苍穹外卖(十五) Apache ECharts+数据统计
  • 腾讯混元 T1 正式发布:混合架构重塑推理模型范式,解码速度提升 2 倍
  • java项目之基于ssm的新生报到系统(源码+文档)
  • 向内求解人生
  • Socket函数用法详解
  • 人工智能技术全景图谱:从基础理论到前沿应用
  • Java-servlet(八)详细讲解get请求和post请求的区别,get请求和post请求分别在哪种场景使用
  • 数据结构——单链表(C语言)
  • 《Operating System Concepts》阅读笔记:p489-p489
  • 编译原理——自底向上语法优先分析
  • linux中如何获取其他进程的退出状态
  • 交通数据集
  • leetcode日常刷题
  • 百货店怎么做网站送货/免费发帖推广的平台
  • 做模板网站赚钱吗/媒体发稿网
  • 用网站源码怎么做网站/360搜图片识图
  • 网络营销跟做网站有什么区别/杭州seo网站哪家好
  • 网站空间后台密码/论文收录网站有哪些
  • 温州做网站的公司/最好用的磁力搜索器