Linux
Apache proxypass 將子域重定向到埠和路徑
好的,我不知道如何表達標題,但我會嘗試解釋我的情況。
我有一個執行 debian 的家庭伺服器,除其他外,它正在執行“plex 媒體伺服器”。
我使用子域遠端訪問我的伺服器到我擁有的域,我們稱之為“ mydomain.com ”。我訪問子域“ home.mydomain.com ”上的伺服器(目前只顯示一些基本的 html),然後訪問“ home.mydomain.com:32400/web ”上的“Plex Web 界面”。
我想要做的是將子域“ plex.mydomain.com ”重定向到“ home.mydomain.com:32400/web ”,以便更輕鬆地訪問“plex 介面”。
我已經設法做到了一半,但我不確定如何進行,或者這實際上是否可行。
這些是我現在的虛擬主機:
<VirtualHost *:80> ServerAdmin webmaster@localhost ServerName home.mydomain.com DocumentRoot /var/www/home.mydomain.com/public_html <Directory /> Options FollowSymLinks AllowOverride None </Directory> <Directory /var/www/> Options Indexes FollowSymLinks MultiViews AllowOverride None Order allow,deny allow from all </Directory> ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/ <Directory "/usr/lib/cgi-bin"> AllowOverride None Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch Order allow,deny Allow from all </Directory> ErrorLog ${APACHE_LOG_DIR}/error.log # Possible values include: debug, info, notice, warn, error, crit, # alert, emerg. LogLevel warn CustomLog ${APACHE_LOG_DIR}/access.log combined </VirtualHost> <VirtualHost *:80> ServerName plex.mydomain.com ProxyRequests Off ProxyPreserveHost On ProxyPass / http://localhost:32400/ ProxyPassReverse / http://localhost:32400/ </VirtualHost>
這允許我訪問“ plex.mydomain.com/web ”上的 plex 界面,但我仍然想擺脫“ /web ”部分。
為此,我嘗試了:
ProxyPass / http://localhost:32400/web ProxyPassReverse / http://localhost:32400/web
這根本不起作用,這只是給了我的“404 Not Found”。
那麼,這可以按我想要的方式解決嗎?如果是這樣,我該怎麼做。
任何幫助都非常感謝。
您可以使用重寫規則擺脫 Web 上下文:
ProxyRequests Off ProxyPreserveHost On ProxyPass / http://127.0.0.1:32400/ ProxyPassReverse / http://127.0.0.1:32400/ RewriteEngine on RewriteCond %{REQUEST_URI} !^/web RewriteCond %{HTTP:X-Plex-Device} ^$ RewriteRule ^/$ /web/$1 [R,L]
注意第二部分中的重寫條件。
僅供參考,我從這裡獲得了這些設置:http: //matt.coneybeare.me/how-to-map-plex-media-server-to-your-home-domain/
你應該檢查一下所有的細節。特別值得注意的是設置一些基本身份驗證來保護您的主機。