- Вопрос или проблема
- Перенаправление веб-трафика на прокси-приложение
- Перенаправление веб-трафика на прокси-приложение
- Ответ или решение
- Решение проблемы с пустой страницей при использовании обратного прокси на Apache
- Шаг 1: Проверка конфигурации Apache
- Шаг 2: Включение необходимых модулей Apache
- Шаг 3: Тестирование конфигурации
- Шаг 4: Проверка доступности Deluge Web UI
- Шаг 5: Проверка прав доступа
- Шаг 6: Логи
- Заключение
Вопрос или проблема
У меня есть один 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 из другого источника. Если у вас возникнут дополнительные вопросы или трудности, не стесняйтесь обращаться за дальнейшей помощью.