Stunnel + Varnish + perguntas sobre o Apache

2

No momento, estou executando o Varnish na frente do apache para todo o tráfego HTTP. Eu adicionei o stunnel para aproveitar também o cache para conexões HTTPS. Então, para HTTPS, stunnel fala com o verniz que fala com o Apache.

O problema é que quando o verniz retorna uma página em cache para stunnel, stunnel a envia por HTTPS para o cliente, mas o restante dos recursos, por exemplo, arquivos css, arquivos js, etc, são solicitados pelo cliente através de HTTP simples. Eu acho que isso é devido às páginas em cache contendo links para os recursos com apenas HTTP.

Minhas perguntas são:

  1. Este é um problema comum com proxies SSL reversos?

  2. Existe alguma maneira de impedir que esse formulário aconteça?

  3. Digamos que eu tenha um domínio, www.example.com, e quero que ele seja acessível somente por HTTPS e também quero link para não retornar 404, mas redirecionar para o link . Como isso pode ser feito evitando loops (isto é, redirecionando o verniz para stunnel, que então solicita a página novamente do verniz através do HTTP, que por sua vez redireciona novamente para stunnel, etc.). Existe alguma maneira de o stunnel inserir um cabeçalho que o verniz irá procurar para não redirecionar se o cabeçalho estiver presente?

por Nikolaos Kakouros 05.05.2013 / 13:30

1 resposta

1

Em algum site, se você mudar de HTTP para HTTPS, você deve informar a configuração do site como "Ei, nós somos servidos via HTTPS agora". Bem, a razão é que algum site tem uma configuração codificada para seu gerador de URL de arquivo estático. Assim, mesmo que eles sejam veiculados por meio de HTTPS, o gerador de URL de recursos estáticos ainda pensa que estamos falando de HTTP.

Agora, você suspeita que o cache de verniz ainda forneça conteúdo antigo. O palpite pode ser verdade ... Bem, você pode limpar o cache para confirmar a teoria .

Para redirecionar as peças, você pode configurar o verniz para que elas façam a tarefa de redirecionamento. Adicione esta linha à configuração do verniz dentro de sub vcl_recv

if (!req.http.X-Forward-For && client.ip !~ localhost) {
    set req.http.x-Redir-Url = "https://" + req.http.host + req.url;
    error 750 req.http.x-Redir-Url;
}

A lógica: se algum IP aleatório (outro que localhost) se conectar ao verniz (porque eles ainda usam a versão HTTP), do que o problema de verniz redirecionar para HTTPS. A lógica VCL tirada de este blog .

Resumo

  1. Para resolver a parte da URL do arquivo estático, você deve (1) verificar a configuração do site e informá-la de que somos atendidos pelo HTTPS agora e (2) limpar o cache do verniz.

  2. Redirecionar a tarefa HTTP para HTTPS pode ser feito por verniz

por 15.12.2014 / 23:16