Nginx 反向代理正在将 URL 重写为 127.0.0.1

Nginx 反向代理正在将 URL 重写为 127.0.0.1

我在服务器上有一个 nginx 反向代理,在其中运行一堆应用程序,例如 app1.domain.com、app2.domain.com 等。我最近添加了一个具有以下配置的新应用程序(使用 LetsEncrypt for SSL):

server {
    server_name app.domain.com;
    server_name_in_redirect off;
    location / {
        proxy_pass http://127.0.0.1:6767;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection $http_connection;
    }


    listen 443 ssl; # managed by Certbot
    ssl_certificate /etc/letsencrypt/live/app.domain.com/fullchain.pem; # managed by Certbot
    ssl_certificate_key /etc/letsencrypt/live/app.domain.com/privkey.pem; # managed by Certbot
    include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
    ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot

}

server {
    if ($host = app.domain.com) {
        return 301 https://$host$request_uri;
    }
    # managed by Certbot


    server_name app.domain.com;
    listen 80;
    return 404; # managed by Certbot


}

但是,每当我访问时,https://app.domain.com/它都会重定向到https://127.0.0.1:6767/somelandingpage/。更奇怪的是,如果我手动将 URL 修复到,https://app.domain.com/somelandingpage/它可以正常加载,如果我在应用程序周围单击以导航到不同的路径,它会正确地停留在app.domain.com。这个 nginx 配置与我使用的另一个应用程序几乎相同,所以我不确定为什么这个特别会这样重定向。起初我以为是应用程序认为它的 URL 是 127.0.0.1:6767 并重定向到那里,但如果我https://app.domain.com/在 Postman 中尝试 GET 请求,我会得到Error: connect ECONNREFUSED 127.0.0.1:6767(没有 /somelandingpage 路径)所以这让我认为这一定是 nginx 配置。但如果是这样的话,我在这里遗漏了什么?

相关内容