nginx代理的端口跳出问题

80/443 标准端口

proxy_set_header Host $host;

自定义端口(8080/8090 等)

proxy_set_header Host $host:$server_port;

通用兼容写法(推荐)

自动适配端口,标准端口不显示,自定义端口自动携带

proxy_set_header Host $http_host;

传递给后端服务器的 Host 请求头是否包含端口号,直接影响后端服务获取到的域名和端口信息。

配置传递给后端的 Host 值携带端口核心用途
$host纯域名 / IP(www.test.com❌ 不携带通用场景、80/443 标准端口
$host:$server_port域名 + 端口(www.test.com:8080✅ 携带自定义端口、后端需要完整端口信息

二是关于静态资源的代理设置,如图片和CSS/JS文件的处理。配置中涉及SSL证书、协议、缓存及不同文件类型的location规则,展示了如何正确配置Nginx以实现后端服务代理和静态资源的高效传递

server {
        listen 443;
        server_name www.sss.com;
        ssl on;
        ssl_certificate   /ss/cert/ltd.pem;
        ssl_certificate_key  /ss/cert/ltd.key;
        ssl_session_timeout 5m;
        ssl_ciphers ECDHE-RSA-AES128-GCM-SHAA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MDD5:!AADH:!RsC4;
        ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
        ssl_prefer_server_ciphers on;
        location / {
                    proxy_pass http://192.168.1.101:1021;
                    #proxy_redirect off;
       				#自动修正重定向
       				proxy_redirect default;
        			#将端口视为变量
                    proxy_set_header Host $host:$server_port;
        			#传递真实客户端IP
                    proxy_set_header X-Real-IP $remote_addr;
                    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        			#传递协议、域名、端口
                    proxy_set_header X-Forwarded-Proto $scheme;
        			proxy_set_header X-Forwarded-Host $http_host;
        			proxy_set_header X-Forwarded-Port $server_port;

            }
               location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
        {
            proxy_pass http://192.168.1.101:1021;
        }

        location ~ .*\.(js|css)?$
        {
            proxy_pass http://192.168.1.101:1021;
        }
      }