NGINX - balanceador de carga de verniz - conexão SSL do Apache = BAD REQUEST

1

Esta é minha configuração:

Servidor 1 = Nginx está recebendo o pedido na porta 443 e é usado como um proxy reverso para enviá-lo para o Varnish 5, no mesmo servidor na porta 80.

Varnish é solicitações de balanceamento de carga nos servidores 2 e 3 (que são idênticos) na porta 443.

Servidor 2 & 3 = O Apache está recebendo as solicitações na porta 443 e acessando o aplicativo.

Certificados SSL são instalados em todos os servidores.

Quando tento acessar o site, tenho este erro 400:

Your browser sent a request that this server could not understand. Reason: You're speaking plain HTTP to an SSL-enabled server port. Instead use the HTTPS scheme to access this URL, please.

Aqui estão minhas configurações:

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

Verniz:

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

Apache:

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

Eu entendo o problema, mas não encontrei a solução. Algum conselho?

Atenciosamente

    
por GregOs 05.04.2018 / 04:31

0 respostas