Ubuntu Apache Server 503 Ошибка: отключено соединение для (localhost)

В некотором роде здесь. Я пытаюсь переместить веб-сайт (www.monkhouselaw.com) из одной хостинговой компании в мой Digital Ocean VPS. Я изменил настройки DNS на:

* -> 107.170.29.18
www -> 107.170.29.18
monkhouselaw -> 107.170.29.18

Затем он направляется на виртуальный хост Apache на моем VPS.

В настоящее время я просто пытаюсь загрузить одну индексную страницу PHP на моем сервере. Как только это сработает, я приведу установку WordPress. К сожалению, это, ну, не работает.

Доступ к www.monkhouselaw.com в настоящее время возвращает ошибку 503. Я просто не могу определить, почему. Изучение журнала ошибок Apache показывает мне:

(111)Connection refused: AH00957: HTTP: attempt to connect to 127.0.0.1:3000 (localhost) failed
[Sun Jun 05 16:44:46.900331 2016] [proxy:error] [pid 2207] AH00959: ap_proxy_connect_backend disabling worker for (localhost) for 60s
[Sun Jun 05 16:44:46.900339 2016] [proxy_http:error] [pid 2207] [client 108.63.121.42:51559] AH01114: HTTP: failed to make connection to backend: localhost, referer: (long url)

И, позже, это:

[Sun Jun 05 16:45:21.841236 2016] [proxy:error] [pid 2198] AH00940: HTTP: disabled connection for (localhost)

Я попытался проверить, слушает ли порт 3000 на локальном хосте, но это не так. Однако существует уже существующий виртуальный хост, который, как я понимаю, должен перенаправлять запросы на порт 3000 на порт 80. Файл 000-default.conf. Файл гораздо больше, чем следующий, но вот соответствующие биты:

<VirtualHost *:80>
    ...

    LoadModule proxy_module {path-to-modules}/mod_proxy.so 
    ProxyPass / http://localhost:3000/
    ProxyPassReverse / http://localhost:3000/

    ...       
</VirtualHost>

Хотя, честно говоря, я не уверен, почему он даже пытается получить доступ к порту 3000, поскольку файл виртуального хоста для monkhouselaw направлен на порт 80:

<VirtualHost *:80>
    DocumentRoot /var/www/monkhouse
    ServerName monkhouselaw.com
    <Directory "/var/www/monkhouse">
        allow from all
        Options None
        Require all granted
    </Directory>
</VirtualHost>

На данный момент я в растерянности. Поиск в Google показывает множество результатов, касающихся SELinux, который, похоже, не установлен. Я видел рекомендации, например, набрать следующее:

togglesebool httpd_can_network_connect

Который просто возвращает мне сообщение о том, что программа 'togglesebool' не существует.

По сути, это серьезная проблема, которую мне нужно решить, и я просматривал двузначные страницы результатов Google, пытаясь найти решения без удачи.

в состоянии предложить помощь Является ли кто?

1 ответ

Решение

Ваше понимание конфигурации Apache немного задом наперед. Я бы посоветовал прочитать документацию по любому новому программному обеспечению, которое вы пытаетесь настроить.:)

Короче говоря, эта часть вашего config виртуального хоста:

<VirtualHost *:80>

... не имеет ничего общего с тем, как apache обрабатывает подключения к виртуальному хосту. Скорее, он настраивает слушателя, который получает ваш запрос. В этом случае он прослушивает все IP-адреса (*), на порту 80 (80).

Вещи внутри объявления vhost описывают apache, как он должен обрабатывать соединения с этим виртуальным хостом. В случае предоставленного вами перехвата, он прослушивает порт 80 и направляет запросы на порт 3000, как это настроено. Вы не включили весь этот блок конфигурации, поэтому неясно, является ли это виртуальным хостом на основе имени.

Далее, ваш второй фрагмент включает в себя только monkhouselaw.com как ServerName, Это единственное имя, которое вы можете использовать на этом сайте и ожидать, что все будет работать. Поскольку у вас в данный момент настроены вещи, www.monkhouselaw.com не будет работать. Вы должны добавить это как ServerAlias,

Другие вопросы по тегам