공개 도메인 이름 대신 내부 서버 이름을 사용하는 nginx GET 요청

공개 도메인 이름 대신 내부 서버 이름을 사용하는 nginx GET 요청

Ubuntu Server 22.04 LTS를 사용하여 nginx 역방향 프록시를 설정했습니다. 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는 URI를 사용하여 서버에 액세스하려고 시도합니다.https://abacus.contoso.com프록시를 통해(정확하지만) nginx 또는 내부 서버가 도메인 이름 대신 내부 서버 이름 srv06을 사용하여 요청에 응답하는 것 같습니다. "Abacus 서버에 대한 GET 요청이 실패했습니다(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;
    }

관련 정보