首页 > 解决方案 > Nginx 重定向到后端-nginx 服务器返回错误的端口

问题描述

我正在开发一些 docker 容器,其中有一个“主”nginx 主机,然后代理到其他 nginx 主机

server {
    listen 80;
    server_name mcaq.me www.mcaq.me files.mcaq.me dev.mcaq.me priv.mcaq.me;

    location / {
        proxy_pass http://mcaq:8080;
        proxy_redirect http://mcaq:8080/;
        proxy_set_header    Host                   $http_host;
        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;
    }
}

这个(上图)是主要的 nginx 容器

server {
    listen 8080;
    index index.html index.php;
    server_name mcaq.me www.mcaq.me;
    root /code;

    location ~ \.php$ {
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        fastcgi_pass localhost:9000;
        fastcgi_index index.php;
        include fastcgi_params;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        fastcgi_param PATH_INFO $fastcgi_path_info;
    }
}

这(上图)是其中一个子 nginx 容器的示例 主 nginx 服务器在运行后由 certbot 控制,因此实际上正在侦听 443 ssl 这在连接到https://mcaq.me时表现如我所料/ 然后,当去https://mcaq.me/portfolio时,它会中断

它显示了 8080 端口,我不明白如果您改为使用https://mcaq.me/portfolio/ 它按预期工作我尝试了不同的方法,例如使用 proxy_redirect,但我正在努力寻找解决方案,或者了解问题出在任何建议,或者如果您需要更多信息,请告诉我。干杯!

标签: dockernginx

解决方案


推荐阅读