web-dev-qa-db-ja.com

Apacheproxypassはサブドメインをポートとパスにリダイレクトします

わかりました。タイトルの言い方がわかりませんでしたが、状況を説明しようと思います。

私は、とりわけ「プレックスメディアサーバー」を実行しているdebianを実行しているホームサーバーを持っています。

自分が所有するドメインのサブドメインを使用してサーバーにリモートアクセスします。「mydomain.com "」と呼びましょう。サブドメイン "home.mydomain.com"(現時点では基本的なhtmlが表示されているだけです)でサーバーにアクセスし、 "home.mydomain"の "PlexWebインターフェイス"にアクセスします。 .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.mydomain.com/web"でプレックスインターフェイスにアクセスできますが、それでも "/ web"の部分を削除したいと思います。

だから私はそれをしようとしました:

ProxyPass / http://localhost:32400/web
ProxyPassReverse / http://localhost:32400/web

これはまったく機能しませんでしたが、「404NotFound」が表示されます。


だから、これは私が望む方法で解決できますか?もしそうなら、どうすればいいですか。

どんな助けでも大いに感謝されます。

1
Nobbe

書き換えルールを使用して、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
BamaPookie

変更されたソリューションは次のとおりです。

DNATルールを追加して、すべてのトラフィックを80から32400にリダイレクトします。

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
0
Arlion