두 번째 역방향 프록시 하위 도메인에서 이상한 SSL 및 업스트림 오류가 발생합니다.

두 번째 역방향 프록시 하위 도메인에서 이상한 SSL 및 업스트림 오류가 발생합니다.

내 현재 상황은 docker를 실행하는 우분투 서버가 있다는 것입니다. 해당 도커에서 NGINX를 역방향 프록시로 실행합니다. 이는 portainer에 대해 잘 작동하지만 동일한 구성(다른 IP를 사용하는 ofc)으로 두 번째 하위 도메인을 추가하려고 하면 다음 오류가 발생합니다. 또한 브라우저에서 502 오류가 발생합니다.

2022/06/13 12:33:29 [오류] 22#22: *5 SSL_do_handshake() 실패(SSL: 오류: 1408F10B: SSL 루틴: ssl3_get_record: 잘못된 버전 번호), 업스트림과의 SSL 핸드셰이크, 클라이언트: 172.71. 94.85, 서버: prometheus.x.net, 요청: "GET /favicon.ico HTTP/1.1", 업스트림: "https://172.20.0.110:9090/favicon.ico", 호스트: "prometheus.x.net" , 리퍼러: "https://prometheus.x.net/"

Cloudflare를 사용하여 원본 및 에지 SSL 인증서를 관리합니다.

이것은 작동하지 않는 페이지에 대한 구성입니다. 작동하는 다른 하위 도메인과 정확히 동일하고 IP만 다릅니다. IP와 포트를 세 번 확인했는데 제대로 작동할 것입니다.

upstream prometheus {
        server          prometheus:9090;
}

server {
        listen 80;
        listen [::]:80;
        server_name prometheus.x.net;
        return 302 https://$server_name$request_uri;
}

server {
        listen          443 ssl;
        listen          [::]:443 ssl;
        ssl_certificate         /etc/ssl/cert.pem;
        ssl_certificate_key     /etc/ssl/key.pem;
        ssl_client_certificate  /etc/ssl/cloudflare.crt;
        ssl_verify_client       on;
        server_name     prometheus.x.net;

        location / {
                # Allow websockets
                proxy_http_version 1.1;
                proxy_set_header Connection "upgrade";
                proxy_set_header Upgrade $http_upgrade;

                # Default headers
                proxy_set_header X-Real-IP $remote_addr;
                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                proxy_set_header Host $host;
                proxy_set_header X-Forwarded-Proto $scheme;
                proxy_pass https://prometheus;
        }
}

이 문제를 어떻게 해결할 수 있나요?

편집: conf.d 폴더의 각 하위 도메인에 대해 .conf 파일을 사용합니다. 이것이 중요한지 모르겠습니다.

답변1

포스팅하고 1분만에 알았네요. 문제를 해결하는 데 1분 정도 더 소요됩니다.

Portainer와 달리 애플리케이션에는 HTTPS가 내장되어 있지 않으므로 현재 구성에서 NGINX는 HTTP만 지원하는 반면 HTTPS를 사용하여 로컬로 애플리케이션에 액세스하려고 시도합니다.

proxy_pass https://prometheus;

~해야 한다

proxy_pass http://prometheus;

관련 정보