HTTP para HTTPS com mod_rewrite; O Apache precisa ser reiniciado

2

Acabei de me inscrever e esta é a minha primeira pergunta. Deixe-me saber se preciso perguntar isso em outro lugar.

Precisamos configurar um site para SSL e redirecionar todo o tráfego HTTP para HTTPS. Decidimos usar o mod_rewrite, pois já estávamos usando algumas regras de reescrita. As alterações foram testadas em nosso ambiente de desenvolvimento e funcionaram conforme o esperado. Fizemos a mudança para a produção e descobrimos que ela funciona por algumas horas, mas, eventualmente, começa a falhar e o site fica indisponível. Uma vez que o serviço Apache é reiniciado, o site volta a funcionar. Infelizmente não dura e precisa ser repetido eventualmente.

Alguém me indicou uma orientação que diz que o mod_rewrite não é recomendado e usa o VirtualHosts. Eu gostaria de entender por que esse é o método preferido e espero encontrar uma causa básica para os problemas que estamos enfrentando. Acabamos de desativar a regra de reescrita e o site ficou estável enquanto ouvíamos em 443 e 80.

link "Nota: Usar o mod_rewrite para fazer isso não é o comportamento recomendado"

link "Embora a solução seja recomendada porque é mais simples e segura, você também pode usar mod_rewrite para obter o mesmo efeito descrito aqui"

Alguém sabe detalhes sobre por que isso é recomendado sobre o mod_rewrite? Experiência semelhante? Recomendação sobre os próximos passos?

Apache 2.4.18

em execução no Windows Server 2008 R2

Nós tentamos MaxConnectionsPerChild 0 e outros valores sem diferença. Eu vi MaxConnectionResetsPerChild alcançado durante a "interrupção", e essas reconfigurações não parecem resolver o problema ... ao contrário do reinício manual do processo de serviço / pai do Apache.

RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteRule ^/?(.*) https//wontletmepostlink.duetorep/1$ [R,L]
    
por StankieFranki3 18.04.2016 / 21:55

1 resposta

1

Eu responderei uma de suas perguntas:

mod_alias , que fornece Redirect e RedirectMatch . Redirect é suficiente para redirecionamentos simples, enquanto RedirectMatch fornece os meios para redirecionar classes de URLs.

Como referência adicional, consulte Quando não usar o mod_rewrite , que fornece muitos exemplos, e uma boa explicação sobre por que não usar mod_rewrite para tudo.

mod_rewrite should be considered a last resort, when other alternatives are found wanting. Using it when there are simpler alternatives leads to configurations which are confusing, fragile, and hard to maintain.

    
por 18.04.2016 / 22:11