nginx代理websocket时ws遇到仅支持域名访问的处理

最终改造点

proxy_set_header Host 这一行

未改之前遇到的问题:

nginx 日志显示 https://aaa.bbbb.cn:7413 被解析成了 IP 地址,这通常是因为 DNS 解析的结果被缓存或某些中间层(如负载均衡器、防火墙等)将域名替换为 IP 地址。这种情况可能会导致问题,尤其是在上游服务器依赖 SNI 或虚拟主机配置时。

以下是解决此问题的方法和建议:


问题原因分析

  1. DNS 缓存

    • 如果 Nginx 或操作系统中存在 DNS 缓存,可能会将域名解析为 IP 地址。
  2. Nginx 配置中的 resolver 指令

    • 如果 Nginx 配置中使用了 resolver 指令(例如动态解析后端地址),Nginx 会主动解析域名并将其替换为 IP 地址。
  3. 上游服务的配置

    • 上游服务可能不支持通过 IP 地址访问,而只支持通过域名访问。
  4. 日志记录方式

    • Nginx 的日志默认记录的是解析后的 IP 地址,而不是原始域名。这并不意味着请求中实际使用了 IP 地址。
相关推荐
HLC++14 分钟前
Linux的基本指令+权限+基础开发工具
linux·运维·服务器
dxdz42 分钟前
一文搞定 Linux Nginx 从安装、启动到 nginx.conf 全配置详解(新手也能看懂)
nginx
遇见火星1 小时前
Nginx 负载均衡配置模板:轮询、权重、IP哈希、最少连接
tcp/ip·nginx·负载均衡
时空自由民.1 小时前
WebSocket 协议介绍
网络·websocket·网络协议
杨云龙UP2 小时前
ODA运维实战:Oracle 19c YJXT PDB表空间在线扩容全过程_20260503
linux·运维·服务器·数据库·oracle
yyuuuzz3 小时前
aws 基础认知与实践注意点
运维·服务器·网络·云计算·github·aws
Rust语言中文社区3 小时前
【Rust日报】2026-05-02 Temper - 用 Rust 编写的 Minecraft 服务器项目发布 0.1.0 版
运维·服务器·开发语言·后端·rust
吠品3 小时前
高性能JS数组操作:何时选用push、unshift、splice或扩展运算符?
linux·服务器·数据库
fish_xk3 小时前
Linux中的指令和权限
linux·运维·服务器
暴力求解3 小时前
Linux---内核态
linux·运维·服务器