最終改造點
proxy_set_header Host 這一行
未改之前遇到的問題:
nginx 日志顯示 https://aaa.bbbb.cn:7413
被解析成了 IP 地址,這通常是因為 DNS 解析的結果被緩存或某些中間層(如負載均衡器、防火墻等)將域名替換為 IP 地址。這種情況可能會導致問題,尤其是在上游服務器依賴 SNI 或虛擬主機配置時。
以下是解決此問題的方法和建議:
問題原因分析
-
DNS 緩存
- 如果 Nginx 或操作系統中存在 DNS 緩存,可能會將域名解析為 IP 地址。
-
Nginx 配置中的
resolver
指令- 如果 Nginx 配置中使用了?
resolver
?指令(例如動態解析后端地址),Nginx 會主動解析域名并將其替換為 IP 地址。
- 如果 Nginx 配置中使用了?
-
上游服務的配置
- 上游服務可能不支持通過 IP 地址訪問,而只支持通過域名訪問。
-
日志記錄方式
- Nginx 的日志默認記錄的是解析后的 IP 地址,而不是原始域名。這并不意味著請求中實際使用了 IP 地址。