У меня очень странная проблема в том, что после включения поддержки 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>