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

Apache перестает отвечать на HTTP-запросы - https продолжает работать

Ладно. Очень странная проблема, которая у меня здесь. Я недавно обновился до Apache 2.4.2 с 2.2.17, в основном для того, чтобы попытаться заставить работать SSL VirtualHosts на основе имен (хотя они должны были работать с 2.2.17). Сервер - это Win2008 R2 (т.е. x64 по определению), работающий с PHP 5.4.3 и MySQL 5.1.40 (устаревший, я знаю).

Когда я запускаю сервер, он изначально работает нормально. На все запросы отвечает, VirtualHosts, все в порядке. Однако по прошествии неопределенного времени (по большей части это занимает всего несколько минут, но иногда занимает несколько часов) он перестает отвечать на обычные HTTP-запросы (на любом VirtualHost). HTTPS продолжает работать. Никаких ошибок в журнале и ничего в журналах доступа, когда я пытаюсь подключиться.

Мне сложно найти источник этой ошибки, учитывая ее прерывистый характер. При удалении всех виртуальных хостов на основе SSL это, по-видимому, повысило стабильность (все еще отвечая на HTTP-запросы через двенадцать часов). Хотя это могло быть простым совпадением.

Полнота SSL VirtualHost выглядит следующим образом, если с ним возникнут проблемы.

<VirtualHost *:443>
   DocumentRoot "C:\Server\www\virtualhosts\mysite.net"
   ErrorLog logs/ssl.mysite.net-error_log
   CustomLog logs/ssl.mysite.net-access_log common env=!dontlog
   SSLEngine on
   SSLProtocol all -SSLv2
   SSLCipherSuite ALL:!ADH:!EXPORT:!SSLv2:RC4+RSA:+HIGH:+MEDIUM
   SSLCertificateFile C:/Server/bin/apache/apache2.4.2/conf/ssl/server.crt
   SSLCertificateKeyFile C:/Server/bin/apache/apache2.4.2/conf/ssl/server.key
   SSLCertificateChainFile C:/Server/bin/apache/Apache2.4.2/conf/ssl/sub.class1.server.ca.pem
   SSLCACertificateFile C:/Server/bin/apache/Apache2.4.2/conf/ssl/ca.pem
</VirtualHost>

Есть идеи, что мне не хватает?

Мы решили очень похожую проблему на нашем сервере. Видеть Apache случайно перестает обслуживать HTTPS, но HTTP работает нормально

Эти настройки в файле httpd.conf устранили проблему:

AcceptFilter http none
AcceptFilter https none

Включите Отладку журнала и просмотрите журнал ошибок.

http://httpd.apache.org/docs/2.4/mod/core.html#loglevel

Если запросы не обслуживаются, должно быть что-то, по крайней мере, какое-то уведомление о segfault.

Кроме того, вы можете использовать утилиту «ab» для повторной генерации ошибки после обслуживания определенного типа запросов.

http://httpd.apache.org/docs/2.4/programs/ab.html

В крайнем случае, вы можете запустить httpd из командной строки и принудительно включить режим отладки / передний план с помощью некоторого переключателя двоичного файла apache2. Невозможно, чтобы об этом ничего не попало в журнал. Какое приложение вы используете на нем, это fastcgi или какой-то мост .net?

Более того, что именно вы подразумеваете под «перестает отвечать на обычные HTTP-запросы»? У вас в браузере ошибка 503 или просто ничего не появляется / не удается установить соединение?