Назад | Перейти на главную страницу

HTTP в HTTPS с mod_rewrite; Apache требует перезапуска

Я только что зарегистрировался и это мой первый вопрос. Дайте мне знать, если мне нужно будет спросить об этом в другом месте.

Нам необходимо настроить сайт для SSL и перенаправить весь HTTP-трафик на HTTPS. Мы решили использовать mod_rewrite, так как мы уже использовали некоторые правила перезаписи. Изменения были протестированы в нашей среде разработки, и все сработало, как ожидалось. Мы внесли изменения в рабочую среду и обнаружили, что она работает несколько часов, но в конечном итоге начинает давать сбой, и сайт становится недоступным. После перезапуска службы Apache сайт снова заработает. К сожалению, это длится недолго и в конечном итоге необходимо повторить.

Кто-то направил меня к руководству, в котором говорится, что mod_rewrite не рекомендуется и вместо этого нужно использовать VirtualHosts. Я хотел бы понять, почему это предпочтительный метод, и, надеюсь, найти основную причину проблем, с которыми мы сталкиваемся. Мы просто отключили правило перезаписи, и сайт работал стабильно при прослушивании как на 443, так и на 80.

https://wiki.apache.org/httpd/RewriteHTTPToHTTPS "Примечание: использование mod_rewrite для этого не рекомендуется"

https://wiki.apache.org/httpd/RedirectSSL «Хотя решение рекомендуется, потому что оно проще и безопаснее, вы также можете использовать mod_rewrite, чтобы получить тот же эффект, что описан здесь»

Кто-нибудь знает, почему это рекомендуется вместо mod_rewrite? Подобный опыт? Рекомендации по дальнейшим действиям?

Apache 2.4.18

Работает на Windows Server 2008 R2

Мы пробовали MaxConnectionsPerChild 0 и другие значения без разницы. я видел MaxConnectionResetsPerChild достигнуто во время «простоя», и эти сбросы, похоже, не решают проблему ... в отличие от ручного перезапуска службы / родительского процесса Apache.

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

Отвечу на один из ваших вопросов:

mod_alias, который обеспечивает Redirect и RedirectMatch. Redirect достаточно для простых редиректов, а RedirectMatch предоставляет средства для перенаправления классов URL-адресов.

В качестве дополнительной ссылки см. Когда не использовать mod_rewrite, который содержит множество примеров и хорошее объяснение того, почему не использовать mod_rewrite За все.

mod_rewrite следует рассматривать как крайнюю меру, когда не хватает других альтернатив. Использование его, когда есть более простые альтернативы, приводит к запутанным, хрупким и сложным в обслуживании конфигурациям.