Обратный прокси с Apache показывает пустую страницу

Вопрос или проблема

У меня есть один Raspberry Pi 2 Model B, который работает на Deluge и Deluge Web UI 24/7. Я настроил бесплатный хост No-IP, чтобы иметь доступ к Raspberry Pi для загрузки данных, которые я хранил на диске на 3 ТБ.

Я использую Apache2 в качестве веб-сервера, но собираюсь перейти на приложение на Go, которое создаю сам.

Порт, на котором слушает WebUI Deluge, 9090.

Я хотел получить доступ к Deluge WebUI, не вводя :9090 в конце имени хоста (через /del было бы идеально).

Я прочитал множество вопросов на SO, где упоминались обратные прокси. Я быстро проверил официальную документацию.

Изменения, которые я сделал в своих конфигурационных файлах, следующие:

/etc/apache2/sites-enabled/000-default.conf

ProxyPass /del http://hostname:9090/
ProxyPassReverse /del http://hostname:9090/

Я также пробовал rewrite в 000-default (но в разное время)

RewriteEngine on
RewriteCond %{REQUEST_URI} /del [NC]
RewriteRule ^(.*)$ http://hostname:9090 [P]

Перезапустил Apache, и результат — пустая страница, когда я посещаю http://hostname/del (через браузер)

Перенаправление веб-трафика на прокси-приложение

Используя Apache ProxyPass

Обратный прокси

ProxyPass "/del" "http://127.0.0.1/"
ProxyPassReverse "/del" "http://127.0.0.1/"
Прямой прокси

ProxyRequests On
ProxyVia On

<Proxy "*">
  Require host localhost
</Proxy>
  • Проверьте вашу конфигурацию на наличие ошибок : apachectl -t
  • Перезапустите веб-сервер apache : service apache2 restart

Перенаправление веб-трафика на прокси-приложение

Используя iptables

iptables -t nat -A PREROUTING -p -tcp -d 127.0.0.1 \
--dport http -j DNAT --to-destination 127.0.0.1:9090

Вышеуказанное перенаправляет весь трафик, приходящий на 127.0.0.1 порт 80, на 127.0.0.1 порт 9090.

Ответ или решение

Решение проблемы с пустой страницей при использовании обратного прокси на Apache

Ваша задача заключается в настройке Apache в качестве обратного прокси для доступа к интерфейсу Deluge Web UI без необходимости указывать порт в URL, например, через /del. Вы сталкиваетесь с проблемой пустой страницы при попытке открыть http://hostname/del. Давайте проанализируем вашу конфигурацию и предложим шаги для устранения проблемы.

Шаг 1: Проверка конфигурации Apache

Сначала давайте убедимся, что настройки Apache для обратного прокси правильно указаны. Вам необходимо добавить следующие строки в файл конфигурации вашего виртуального хоста /etc/apache2/sites-enabled/000-default.conf:

<VirtualHost *:80>
    ServerName your_hostname_here

    ProxyPass /del http://localhost:9090/
    ProxyPassReverse /del http://localhost:9090/

    # Опционально: для корректной работы WebSocket (если используется)
    ProxyPass /del/websockets ws://localhost:9090/websockets
    ProxyPassReverse /del/websockets ws://localhost:9090/websockets
</VirtualHost>

Обратите внимание на следующее:

  • Замените your_hostname_here на фактический адрес вашего хоста.
  • Используйте localhost вместо hostname, если Deluge работает на том же сервере, на котором запущен Apache.
  • Используйте настройку прокси для WebSocket, если Deluge использует WebSocket для связи.

Шаг 2: Включение необходимых модулей Apache

Убедитесь, что нужные модули включены:

sudo a2enmod proxy
sudo a2enmod proxy_http

Если у вас используются WebSocket, активируйте также:

sudo a2enmod proxy_wstunnel

После активации модулей перезагрузите Apache:

sudo service apache2 restart

Шаг 3: Тестирование конфигурации

Сначала проверьте корректность конфигурации вашего сервера Apache:

sudo apachectl -t

Это команда даст вам возможность убедиться в отсутствии ошибок в конфигурационных файлах.

Шаг 4: Проверка доступности Deluge Web UI

Перед тем как возвращаться к Apache, проверьте, доступен ли интерфейс Deluge непосредственно на http://localhost:9090. Сделайте это, открыв этот адрес в браузере на Raspberry Pi. Если интерфейс загружается корректно, переходите к следующему шагу.

Шаг 5: Проверка прав доступа

Убедитесь, что Apache имеет права на доступ к Deluge Web UI. В вашем случае, это может быть связано с неправильной настройкой разрешений или конфликтами с файрволом. Для отладки можно временно отключить файрвол (например, iptables) и проверить поведение Apache.

Шаг 6: Логи

Обратите внимание на логи Apache, чтобы найти возможные ошибки. Логи можно найти по пути /var/log/apache2/error.log и /var/log/apache2/access.log. Эти логи могут содержать информацию о том, почему вы видите пустую страницу.

Заключение

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

Оцените материал
Добавить комментарий

Капча загружается...