web-dev-qa-db-ja.com

リバースプロキシがOSXElCapitanで機能しない

よりクリーンなURLを介してプレックスWeb UIにアクセスしようとしています。現在、 http://marvin.boldlygoingnowhere.org:32400/web/index.html でアクセスできます。 http://marvin.boldlygoingnowhere.org/plex にしたい

これが私が持っているものです、

marvin:〜Marvin $ httpd -vサーバーのバージョン:

 Apache/2.4.16 (Unix)
Server built:   Aug 22 2015 16:51:57
Server's Module Magic Number: 20120211:47
Server loaded:  APR 1.4.8, APR-UTIL 1.5.2
Compiled using: APR 1.4.8, APR-UTIL 1.5.2
Architecture:   64-bit
Server MPM:     prefork
  threaded:     no
    forked:     yes (variable process count)
Server compiled with....
 -D APR_HAS_SENDFILE
 -D APR_HAS_MMAP
 -D APR_HAVE_IPV6 (IPv4-mapped addresses enabled)
 -D APR_USE_FLOCK_SERIALIZE
 -D APR_USE_PTHREAD_SERIALIZE
 -D SINGLE_LISTEN_UNSERIALIZED_ACCEPT
 -D APR_HAS_OTHER_CHILD
 -D AP_HAVE_RELIABLE_PIPED_LOGS
 -D DYNAMIC_MODULE_LIMIT=256
 -D HTTPD_ROOT="/usr"
 -D SUEXEC_BIN="/usr/bin/suexec"
 -D DEFAULT_PIDLOG="/private/var/run/httpd.pid"
 -D DEFAULT_SCOREBOARD="logs/Apache_runtime_status"
 -D DEFAULT_ERRORLOG="logs/error_log"
 -D AP_TYPES_CONFIG_FILE="/private/etc/Apache2/mime.types"
 -D SERVER_CONFIG_FILE="/private/etc/Apache2/httpd.conf"

/private/etc/Apache2/extra/httpd-vhosts.conf

Listen 80

    # Listen for virtual Host requests on all IP addresses
    <VirtualHost *:80>
        ServerName marvin.boldlygoingnowhere.org
        ErrorLog "/private/var/log/Apache2/marvin-error_log"
        CustomLog "/private/var/log/Apache2/marvin-access_log" common
        ServerAdmin [email protected]
        ProxyRequests Off

        <Proxy http://marvin.boldlygoingnowhere.org/plex>

          Order deny,allow
          Allow from all

          ProxyPreserveHost off
          ProxyPass http://localhost:32400
          ProxyPassReverse http://localhost:32400

        </Proxy>
    </VirtualHost>

/private/etc/Apache2/httpd.conf

コメントなし

Include /private/etc/Apache2/extra/httpd-vhosts.conf

そして

LoadModule vhost_alias_module libexec/Apache2/mod_vhost_alias.so

この現在のセットアップでの私の期待は http://marvin.boldlygoingnowhere.org/plex/web に到達できることですが、代わりに404を取得します。

私はモバイルソフトウェアエンジニアですが、これはネットワーキングへの私の最初の冒険の1つであり、私をかなり打ち負かしています。

2
r2DoesInc

ここで確認する必要があるいくつかの事項:

  1. 正しい構成ファイルを使用していることを確認してください。 ElCapitanマシンにApache2.4をインストールしたとき、メイン構成は実際には別のディレクトリを指しています/usr/local/etc/Apache2/2.4/httpd.conf

    $ httpd -V
    Server version: Apache/2.4.17 (Unix)
    Server built:   Nov 13 2015 19:31:42
    Server's Module Magic Number: 20120211:51
    Server loaded:  APR 1.5.2, APR-UTIL 1.5.4
    Compiled using: APR 1.5.2, APR-UTIL 1.5.4
    Architecture:   64-bit
    Server MPM:     prefork
      threaded:     no
        forked:     yes (variable process count)
    Server compiled with....
     -D APR_HAS_SENDFILE
     -D APR_HAS_MMAP
     -D APR_HAVE_IPV6 (IPv4-mapped addresses enabled)
     -D APR_USE_SYSVSEM_SERIALIZE
     -D APR_USE_PTHREAD_SERIALIZE
     -D SINGLE_LISTEN_UNSERIALIZED_ACCEPT
     -D APR_HAS_OTHER_CHILD
     -D AP_HAVE_RELIABLE_PIPED_LOGS
     -D DYNAMIC_MODULE_LIMIT=256
     -D HTTPD_ROOT="/usr/local/Cellar/httpd24/2.4.17"
     -D SUEXEC_BIN="/usr/local/Cellar/httpd24/2.4.17/bin/suexec"
     -D DEFAULT_PIDLOG="/usr/local/var/run/Apache2/httpd.pid"
     -D DEFAULT_SCOREBOARD="logs/Apache_runtime_status"
     -D DEFAULT_ERRORLOG="logs/error_log"
     -D AP_TYPES_CONFIG_FILE="/usr/local/etc/Apache2/2.4/mime.types"
     -D SERVER_CONFIG_FILE="/usr/local/etc/Apache2/2.4/httpd.conf"
    
  2. リバースプロキシの場合は、次のようなものを使用できます。

    <VirtualHost *:80>
      ServerName marvin.boldlygoingnowhere.org
      DocumentRoot /var/www/html
      ProxyPreserveHost On
      ProxyPass /plex http://127.0.0.1:32400
      ProxyPassReverse /plex http://127.0.0.1:32400
    
    </VirtualHost>
    
1
Rico

したがって、実際には、カスタムURLを使用して Plex Media Server にアクセスしようとしています。ご覧のとおり、これは単なるWebサイトではなく、メディアサーバーです。とにかく、これは here から機能する単純化された構成スニペットです:

<VirtualHost *:80>
    ServerName marvin.boldlygoingnowhere.org
<Proxy *>
    Order deny,allow
    Allow from all
</Proxy>

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]

必要なすべてのApacheモジュールがインストールされていることを確認し、Apacheエラーログを確認してトラブルシューティングを行ってください。

Plexが提供するより良いソリューションがあるようです。ここで登録するだけです: https://plex.tv/users/sign_in 。そして、ドメイン登録者でmarvin.boldlygoingnowhere.orgが https://app.plex.tv/web/app を指すように設定できます。

Update:さらに調査したところ、あなたの仮想ホストエントリはApacheによって無視されているようです。また、 http://marvin.boldlygoingnowhere.org にアクセスしようとすると、Apacheドキュメントルートに到達します。あなたができることは、plex.yourdomain.comのような代替サーバー名で試すか、ユーザーディレクトリに仮想ホストを設定して何が起こるかを確認することです。ここの記事の最初の部分はあなたを助けることができます: http://coolestguidesontheplanet.com/get-Apache-mysql-php-and-phpmyadmin-working-on-osx-10-11-el-capitan/

0
Diamond