NGINX -> 광택 로드 밸런서 -> Apache SSL 연결 = 잘못된 요청

NGINX -> 광택 로드 밸런서 -> Apache SSL 연결 = 잘못된 요청

이것은 내 설정입니다.

서버 1 = Nginx는 포트 443에서 요청을 수신하고 이를 역방향 프록시로 사용하여 포트 80의 동일한 서버에 있는 Varnish 5로 보냅니다.

Varnish는 서버 2와 3(동일)의 포트 443에 대한 로드 밸런싱 요청입니다.

서버 2 및 3 = Apache가 요청을 수신하고 포트 443에서 애플리케이션에 액세스하고 있습니다.

SSL 인증서는 모든 서버에 설치됩니다.

웹사이트에 접속하려고 하면 다음과 같은 오류 400이 발생합니다.

귀하의 브라우저가 이 서버가 이해할 수 없는 요청을 보냈습니다. 원인: SSL 지원 서버 포트로 일반 HTTP를 보내고 있습니다. 대신 이 URL에 액세스하려면 HTTPS 체계를 사용하세요.

내 구성은 다음과 같습니다.

nginx:

server {
   listen 443 ssl;

   server_name server.mydomain.com;

   ssl_certificate /etc/letsencrypt/live/server.mydomain.com/fullchain.pem;
   ssl_certificate_key/etc/letsencrypt/live/server.mydomain.com/privkey.pem;

    location / {
        proxy_pass http://127.0.0.1:80;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-Proto https;
        proxy_set_header X-Forwarded-Port 443;
        proxy_set_header X-Secure on;
    }
 }

페인트:

backend server1 { 
  .host = "xx.xx.xx.xxx";
  .port = "443";
}

backend server2 { 
  .host = "xx.xx.xx.xxx";
  .port = "443";
}


sub vcl_recv {
  if (req.restarts == 0) {
    if (req.http.x-forwarded-for) {
           set req.http.X-Forwarded-For =
               req.http.X-Forwarded-For + ", " + client.ip;
       } else {
           set req.http.X-Forwarded-For = client.ip;
       }
   }

   if (req.http.X-Real-IP) {
       set req.http.X-Forwarded-For = req.http.X-Real-IP;
   } else {
       set req.http.X-Forwarded-For = client.ip;
   }
   ...
}

아파치:

<VirtualHost *:443>
    ServerName server.mydomain.com

   DocumentRoot /var/www/mydomain/

    <Directory /var/www/mydomain/>
            AllowOverride All
            Order allow,deny
            allow from all
    </Directory>

    SSLEngine on
    SSLCertificateFile /etc/letsencrypt/live/server.mydomain.com/cert.pem
    SSLCertificateKeyFile /etc/letsencrypt/live/server.mydomain.com/privkey.pem
    SSLCertificateChainFile /etc/letsencrypt/live/server.mydomain.com/chain.pem

    SSLProtocol all -SSLv2 -SSLv3
    SSLHonorCipherOrder on
    SSLCompression off
    SSLOptions +StrictRequire
    SSLCipherSuite ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-E$

    LogLevel warn
    ErrorLog ${APACHE_LOG_DIR}/server.mydomain.com-error.log
    CustomLog ${APACHE_LOG_DIR}/server.mydomain.com-access.log combined

</VirtualHost>

문제를 이해하지만 해결책을 찾지 못했습니다. 어떤 제안이 있으십니까?

인사

관련 정보