Я пытаюсь получить доступ к своему веб-интерфейсу plex через более чистый URL-адрес. В настоящее время вы можете получить к нему доступ по адресу 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 admin@futurehax.org
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.
Я инженер-программист для мобильных устройств, но это одно из моих первых приключений в сети, и оно меня довольно сильно побили.
Вот пара вещей, на которые вам нужно обратить внимание:
Убедитесь, что вы используете правильный файл конфигурации. Когда я установил apache 2.4 на свой компьютер с El Capitan, основные конфигурации фактически указывают на другой каталог. /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"
Для обратного прокси вы можете просто использовать что-то вроде этого:
<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>
Итак, вы действительно пытаетесь получить доступ Plex Media Server с настраиваемым URL-адресом. Как видите, это не просто сайт, а медиа-сервер. В любом случае, вот упрощенный фрагмент конфигурации, который должен работать, от Вот:
<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.
Обновить: Из дальнейшего расследования мне кажется, что ваша запись vhost игнорируется 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/