GET-запрос nginx с внутренним именем сервера вместо имени публичного домена

GET-запрос nginx с внутренним именем сервера вместо имени публичного домена

Я настроил обратный прокси nginx с Ubuntu Server 22.04 LTS. Веб-приложение Abacus должно быть доступно сhttps://abacus.contoso.comиз интернета. Внутреннее имя сервера — srv06. Моя текущая конфигурация выглядит так (это по сути официальный шаблон от Abacus):

server {
    listen 443 ssl;
    server_name abacus.contoso.com;

    ssl_certificate /etc/nginx/ssl_certs/cert.pem;
    ssl_certificate_key /etc/nginx/ssl_certs/cert.key;

    ssl_session_cache    shared:SSL:1m;
    ssl_session_timeout  5m;

    ssl_ciphers  HIGH:!aNULL:!MD5;
    ssl_protocols TLSv1.2;
    ssl_prefer_server_ciphers  on;

    location / {
            root   html;
            index  index.html index.htm;
            resolver 127.0.0.53;
            proxy_pass https://abacus.contoso.com:40001$uri$is_args$query_string;
            proxy_redirect https://abacus.contoso.com:40001/ https://$host/;
            proxy_set_header Host abacus.contoso.com;

            client_max_body_size 0;
            proxy_connect_timeout 90s;
            proxy_send_timeout 90s;
            proxy_read_timeout 90s;
            send_timeout 90s;
    }
}

Веб-сайт доступен, и вход в систему работает в основном. Проблема в веб-приложении, которое запускается поверх самого веб-сайта. После входа в систему загружается файл .abalink и запускается с помощью программного обеспечения AbaClient. Этот AbaClient пытается получить доступ к серверу с помощью URIhttps://abacus.contoso.comчерез прокси - что правильно - но похоже, что nginx или внутренний сервер отвечает на запрос с внутренним именем сервера srv06 вместо имени домена. Это сообщение об ошибке, которое я получаю: "GET request to the Abacus server failed (srv06)".

Что-то не хватает в моем коде? Я относительно новичок в nginx, поэтому надеюсь, что кто-нибудь сможет мне помочь.

Спасибо!

решение1

Я не совсем понимаю, зачем использовать эти слишком сложные настройки прокси-сервера вместо простых настроек по умолчанию.

Попробуй это:

    location / {
            proxy_pass https://abacus.contoso.com:40001;
            proxy_set_header Host abacus.contoso.com;

            client_max_body_size 0;
            proxy_connect_timeout 90s;
            proxy_send_timeout 90s;
            proxy_read_timeout 90s;
            send_timeout 90s;
    }

Связанный контент