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

Apache2 - перезапись при использовании обратного прокси

Задний план

Я хочу настроить utorrent с помощью webui на своем сервере.

Проблема

Utorrent настраивает собственный веб-сервер, который по умолчанию прослушивает порт 8080.

Затем доступ к пользовательскому интерфейсу осуществляется путем доступа к example.com:8080/gui

Моя цель - иметь subdomain.server.com с использованием обратного прокси.
Проблема возникает, когда я обнаружил, что некоторые URL-адреса жестко запрограммированы в / gui / *, что, конечно, ломает вещи.

Теперь я пытаюсь удалить этот начальный / gui из запроса с помощью перезаписи мода, но по какой-то причине он не работает.

Я могу получить доступ к сайту (я получаю экран загрузки utorrent), но если я проверю свой журнал, я вижу, что все запросы к /gui/token.html получить ответ 404 Not Found, /token.html работает нормально, если я попробую вручную.

Я попытался переписать на прокси, но это тоже не сработало.

Что у меня есть до сих пор

Вот мой файл виртуального хоста:

<IfModule mod_ssl.c>
<VirtualHost *:443>
    ServerName subdomain.example.com

    RewriteEngine  on
    RewriteRule ^/gui(/?)(.*)$ /$2

    ProxyRequests off
    ProxyPass / http://127.0.0.1:8080/gui/
    ProxyPassReverse / http://127.0.0.1:8080/gui/
    RequestHeader set Authorization "Basic YWRtaW46"
    ErrorLog /var/log/apache2/utorrent-error.log
    CustomLog /var/log/apache2/utorrent-access.log common

    SSLEngine on
    SSLCertificateFile /etc/ssl/certs/*.domain.crt
    SSLCertificateKeyFile /etc/ssl/private/*.domain.key
    SSLCACertificateFile /etc/ssl/certs/domain-ca-ssl.crt

    BrowserMatch "MSIE [2-6]" \
        nokeepalive ssl-unclean-shutdown \
        downgrade-1.0 force-response-1.0
    BrowserMatch "MSIE [17-9]" ssl-unclean-shutdown

</VirtualHost>

<proxy http://127.0.0.1:8080/gui/*>
    Order deny,allow
    Deny from all
    Allow from all
    AuthName subdomain.example.com
    AuthType Basic
    AuthUserFile /etc/utorrent/.htpasswd
    Require valid-user
</proxy>
</IfModule>

Оказывается, это было так же просто, как добавить флаг [PT] к перезаписи

Работал как шарм с добавленным переключателем PT

<VirtualHost *:80>
        ServerName utorrent.yourdomain.com
        ProxyPreserveHost on
        RewriteEngine  on
        RewriteRule ^/gui(/?)(.*)$ /$2 [PT]
        ProxyPass / http://127.0.0.1:8080/gui/   
        ProxyPassReverse / http://127.0.0.1:8080/gui/   
</VirtualHost>