Redirecionar HTTP para HTTPS com ldirectord / LVS

1

Estamos usando o LVS para balanceamento de carga e queremos fazer um redirecionamento 301 para link para link

O LVS está habilitando https sem problemas, mas os servidores http reais não estão sendo adicionados ao pool (peso de 0).

O LVS não segue redirecionamentos 301? Se não, como configuro o ldirectord para enviar todo o tráfego HTTP para HTTPS?

Aqui está a configuração do nginx:

server {
    listen      80;
    server_name example.com;
    return 301 https://example.com$request_uri;
}

server {
        listen       443;
        ssl on;
        ssl_certificate         server.crt;
        ssl_certificate_key     server.key;
        server_name  example.com;

# more here

}

E o ldirectord.cf tem esta aparência:

virtual=VIP:80
        fallback=127.0.0.1:80
        real=10.0.0.7:80 masq 5
        real=10.0.0.8:80 masq 5
        service=http
        request="lvs.htm"
        receive="lvs"
        virtualhost=example.com
        scheduler=wlc
        protocol=tcp
        checktype=negotiate

virtual=VIP:443
        fallback=127.0.0.1:443
        real=10.0.0.7:443 masq 5
        real=10.0.0.8:443 masq 5
        service=https
        request="lvs.htm"
        receive="lvs"
        virtualhost=example.com
        scheduler=wlc
        protocol=tcp
        checktype=negotiate

Eu também tentei definir meu VIP para a porta 80 e minhas portas RIP para 443, o que resultou na adição dos servidores ao pool, mas o nginx retorna um erro 400 "A solicitação HTTP simples foi enviada para a porta HTTPS".

    
por Brian 23.07.2013 / 15:08

1 resposta

1

Eu estava fazendo isso mais difícil do que precisava ser.

Eu modifiquei meu nginx.conf da seguinte forma:

server {
    listen      80;
    server_name example.com;

    root    /var/www;

    location = /lvs.htm {
        #do nothing
    }

    location / {
        return 301 https://example.com$request_uri;
    }
}

lvs.htm reside em / var / www, de modo que o local é correspondido, a pesquisa é interrompida e o lvs.htm é exibido com um código de resposta 200. O LVS adiciona o servidor ao pool e quando é atingido, o nginx redireciona corretamente para https com um 301.

    
por 31.07.2013 / 05:12