わかりました。タイトルをどう表現したらよいか分かりませんでしたが、自分の状況を説明してみたいと思います。
私は Debian を実行しているホーム サーバーを所有しており、その中で「plex media server」を実行しています。
私は、自分が所有するドメインのサブドメインを使用して、リモートでサーバーにアクセスします。これを「マイドメイン「サブドメインのサーバーにアクセスします」ホーム「(現時点では基本的なHTMLのみを表示しています)そして、「Plexウェブインターフェース」にアクセスします」home.mydomain.com:32400/web「」。
私がやりたいのはサブドメインをリダイレクトすることです」plex.mydomain.com" に "home.mydomain.com:32400/web「プレックスインターフェース」に簡単にアクセスできるようになります。
なんとか半分まで到達しましたが、どのように進めればよいのか、実際にそれが可能かどうかはわかりません。
現時点での私の仮想ホストは次のとおりです:
<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インターフェースにアクセスできます。plex.mydomain.com/ウェブ「しかし、私はまだ「/ウェブ" 一部。
そこで私は次のことを試しました:
ProxyPass / http://localhost:32400/web
ProxyPassReverse / http://localhost:32400/web
まったく機能せず、「404 Not Found」というエラーが表示されるだけです。
それで、これは私が望む方法で解決できるのでしょうか? もしできるなら、どうすればいいのでしょうか。
どのような助けでも大歓迎です。
答え1
書き換えルールを使用して 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]
2 番目のセクションの書き換え条件に注意してください。
参考までに、これらの設定はここから取得しました:http://matt.coneybeare.me/how-to-map-plex-media-server-to-your-home-domain/
細かい詳細については、これをチェックしてください。特に注目すべきは、ホストを保護するために基本的な認証を設定することです。
答え2
変更された解決策は次のとおりです。
すべてのトラフィックを 80 から 32400 にリダイレクトする DNAT ルールを追加します。
iptables -t nat -I PREROUTING -p tcp -d X.X.X.X--dport 80 -J DNAT --to-destination X.X.X.X:32400
つまり、次のようになります。
sudo iptables -t nat -I PREROUTING -p tcp -d 192.168.1.1 --dport 80 -j DNAT --to-destination 192.168.1.1:32400
ファイアウォールのルールを覚えておいてください:
iptables -I INPUT -p tcp --dport 32400 -j ACCEPT
iptables -I INPUT -p tcp --dport 80 -j ACCEPT
ファイアウォール ルールを保存します。
service iptables save