Nginx proxy_pass 适用于子路径,但不适用于根路径

Nginx proxy_pass 适用于子路径,但不适用于根路径

我在 Ubuntu20 上运行 Nginx,使用 proxy_pass 从https://example.com0.0.0.0:8000,这是一个 docker 容器。当我点击时,https://example.com/literally/any/path/at/all代理按预期工作,但是当我点击根路径时,https://example.com我得到了 301 重定向到https://docker:8000。我不明白为什么子路径可以正常代理,但根路径却被重定向。

我的 Nginx 网站配置:

upstream docker {
    server 0.0.0.0:8000;
}


server {
    listen 80;
    server_name example.com www.example.com mail.example.com;

    location /.well-known {
        alias /ssl/well-known;
    }

    location / {
        return 301 https://$host$request_uri;
    }
}

server {

    listen 443 ssl;
    server_name example.com www.example.com mail.example.com;

    ssl_certificate /etc/letsencrypt/live/example.com/cert.pem;
    ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;

    ssl_session_cache  builtin:1000  shared:SSL:10m;
    ssl_protocols  TLSv1 TLSv1.1 TLSv1.2;
    ssl_ciphers HIGH:!aNULL:!eNULL:!EXPORT:!CAMELLIA:!DES:!MD5:!PSK:!RC4;
    ssl_prefer_server_ciphers on;

    location / {
        proxy_pass http://docker;
    }
}

相关内容