nginx GET-Anfrage mit internem Servernamen anstelle des öffentlichen Domänennamens

nginx GET-Anfrage mit internem Servernamen anstelle des öffentlichen Domänennamens

Ich habe einen nginx Reverse Proxy mit Ubuntu Server 22.04 LTS eingerichtet. Die Abacus Webanwendung sollte erreichbar sein mithttps://abacus.contoso.comaus dem Internet. Der interne Servername ist srv06. Meine aktuelle Konfiguration sieht so aus (das ist im Wesentlichen die offizielle Vorlage von 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;
    }
}

Die Website ist erreichbar und der Login funktioniert grundsätzlich. Das Problem ist die Webanwendung, die über die Website selbst gestartet wird. Nach dem Login wird eine .abalink-Datei heruntergeladen und mit der Software AbaClient gestartet. Dieser AbaClient versucht, mit der URI auf den Server zuzugreifenhttps://abacus.contoso.comüber den Proxy - was richtig ist - aber es scheint, dass nginx oder der interne Server die Anfrage mit dem internen Servernamen srv06 statt dem Domänennamen beantwortet. Dies ist die Fehlermeldung, die ich erhalte: „GET-Anfrage an den Abacus-Server fehlgeschlagen (srv06)“.

Fehlt etwas in meinem Code? Ich bin relativ neu bei nginx und hoffe daher, dass mir jemand helfen kann.

Danke schön!

Antwort1

Ich bin nicht sicher, warum man diese überkomplizierten Proxy-Einstellungen anstelle der einfachen Standardeinstellungen verwenden würde.

Versuche dies:

    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;
    }

verwandte Informationen