You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Nginx多域名代理异常:cards.mywebsite跳转至qbit.mywebsite求助

问题修复方案

问题根源

你的Nginx配置中,qbit.mywebsite的HTTPS server块未在listen指令后添加ssl参数,导致Nginx将该server作为默认HTTPS服务器(配置文件中第一个出现的443端口server块)。所有HTTPS请求(包括cards.mywebsite)都会被匹配到这个默认server,从而返回qbit的证书并代理到qbit后端,这就是你看到证书错误、显示qbit内容的原因。

修复步骤

  1. 修正qbit的HTTPS server配置
    在listen 443后添加ssl参数,让Nginx正确识别这是HTTPS虚拟主机:

    server {
        listen      443 ssl; # 添加ssl参数
        server_name  qbit.mywebsite;
        ssl_certificate      C:\sslqbit\certificate.crt;
        ssl_certificate_key  C:\sslqbit\private.key;
        location / {
            proxy_pass http://localhost:8080;
            proxy_set_header X-Forwarded-Host $host:$server_port;
        }
    }
    
  2. 完善cards的反向代理配置
    为WordPress补充必要的代理头,确保WordPress能正确识别域名和请求协议:

    server {
        listen       443 ssl;
        server_name  cards.mywebsite;
        ssl_certificate      C:\sslcards\certificate.crt;
        ssl_certificate_key  C:\sslcards\private.key;
        location / {
            proxy_pass http://localhost:32769;
            # 补充代理头
            proxy_set_header Host $host;
            proxy_set_header X-Forwarded-Proto $scheme;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        }
    }
    
  3. 验证Docker端口映射
    确认localhost:32769确实是WordPress容器的对外映射端口,可通过docker ps命令查看容器的PORTS列信息。

  4. 重启Nginx生效
    在Windows命令行执行:

    nginx -s reload
    

    若配置有误,Nginx会输出错误提示,根据提示修正即可。

额外说明

  • 添加ssl参数后,Nginx会基于SNI(服务器名称指示)正确匹配不同域名的HTTPS请求,确保cards.mywebsite请求路由到对应的server块。
  • 补充的代理头能让WordPress获取到正确的请求域名和协议,避免出现内容路径错误或强制跳转问题(这也是本地访问正常、反向代理后异常的常见原因)。

内容的提问来源于stack exchange,提问作者Eli Gibbs

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.13 18:22:33