【发布时间】:2026-01-12 14:05:01
【问题描述】:
我一直无法在 nginx 版本:nginx/1.9.14 上找到此 NGINX 错误的解释。
此 nginx.conf 尝试将客户端请求从网络服务器端口 442 转发到端口 9442。
当使用 IPv4 客户端和服务器地址时,一切正常,网络服务器请求被转发到 9442。当使用 IPv6 地址客户端和服务器地址时,会出现以下错误:
2017/08/21 19:05:56 [error] 6694#0: *5 invalid port in upstream "2000::157:9442/", client: 2000::158, server: , request: "GET / HTTP/1.1", host: "[2000::157]:442"
nginx.conf:
http {
server {
listen 442 ssl; # IPv4 support
listen [::]:442 ssl; # IPv6 support
ssl_certificate /etc/ssl/active.crt;
ssl_certificate_key /etc/ssl/active.key;
ssl on;
ssl_session_cache builtin:1000 shared:SSL:10m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
location / {
proxy_pass https://$server_addr:9442$request_uri;
}
}
}
“上游端口无效”究竟是什么意思?
请注意,本示例中的 IPv6 地址是为了本示例而编造的,并且位于外部世界看不到的专用网络上。
【问题讨论】:
-
试试这个
listen [::]:442 ssl ipv6only=on; # IPv6 support -
为什么要使用 $server_address 而不是 localhost?
-
@TarunLalwani 我试过 ipv6only=on 并得到相同的结果。另外,我认为无论如何在查看文档时它在我的版本中默认为 on。
-
@AlexeyTen localhost 收到以下错误:2017/08/22 18:47:42 [error] 32549#0: *276 no resolver defined to resolve localhost, client: 2000::158, server : ,请求:“GET /favicon.ico HTTP/1.1”,主机:“[2000::157]:442”
-
@Chadness3,我知道为什么会发生这个问题,只需要测试如何解决它
标签: nginx