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

Apache HTTP не работает при включенном SSL

У меня очень странная проблема в том, что после включения поддержки SSL в Apache я могу получить доступ к своему сайту только через SSL, а не через http.

Я могу подтвердить, что Apache определенно прослушивает оба порта 80 и 443 (согласно netstat). Кроме того, в журналах доступа Apache отображаются запросы - просто прохождение через http приводит к тайм-ауту, и я никогда не смогу добраться до контента. Как я уже сказал, https работает.

Вот мой httpd.conf: http://pastebin.com/kG2dPjJ2

а вот мой httpd-ssl.conf: http://pastebin.com/thqvjgGJ

Может ли кто-нибудь обнаружить какие-либо проблемы с этими конфигурациями? или есть какие-то предложения?

Я искал и искал, но, похоже, очень мало людей испытали то же самое.

Также стоит упомянуть, что я провел сравнение этих конфигураций и рабочих настроек и ничего не заметил.

Вы используете два отдельных экземпляра httpd, которые оба пытаются использовать одни и те же файлы журналов. Это означает, что один из них не сможет записать в файл, и этот экземпляр будет зависать.

Если вы хотите использовать один и тот же файл для них обоих, вы должны запустить их в одном экземпляре, используя VirtualHost чтобы отделить SSL от не-SSL. В противном случае используйте отдельные файлы журнала.

РЕДАКТИРОВАТЬ

Кроме того, ваш httpd.conf для порта 80 содержит строку:

Include /storage/.xbmc/userdata/addon_data/service.web.lamp/srvroot/conf/extra/httpd-ssl.conf

Это означает, что вы сначала делаете большинство вещей в своем httpd.conf до этого Include-линия. Затем вы выполняете все действия в httpd-ssl.conf, а после этого выполняете все действия из httpd.conf, указанные ниже Include-линия. Вряд ли это будет то, что вы хотите.

Apache может показывать подобные симптомы, в частности, отправляются заголовки, но нет данных, если в вашей системе нарушена поддержка файлов отправки ядра. Стоит экспериментально добавить

EnableSendfile Off

в вашу конфигурацию.

Для того, чтобы иметь «сайт» Вам необходим VHOST (виртуальный хост).

В предоставленных файлах конфигурации есть только vhost для SSL (443). Я не уверен, чего вы пытаетесь достичь, но добавление раздела, подобного следующему (в httpd.conf), поможет:

<VirtualHost _default_:80> DocumentRoot "/some/place" ServerName www.example.org ServerAdmin dominic@dcrdev.com ErrorLog "/some/place/for/logs/error" TransferLog "/some/place/for/logs/transfer" CustomLog "/some/place/for/logs/access" </VirtualHost>