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