Apache-2.2
Apache2 - 使用反向代理時重寫
背景
我想在我的伺服器上使用 webui 設置 utorrent。
問題
Utorrent 設置了自己的網路伺服器,預設情況下,監聽埠 8080。
然後通過訪問 example.com:8080/gui 訪問 ui
我的目標是讓 subdomain.server.com 使用反向代理。
當我發現某些 url 被硬編碼為 /gui/* 時,問題就出現了,這當然會破壞事情。
我現在正在嘗試使用 mod rewrite 從請求中刪除初始 /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>