Хорошо, я не знал, как назвать название, но постараюсь объяснить свою ситуацию.
У меня есть домашний сервер, на котором работает debian, на котором, помимо прочего, работает «plex media server».
Я получаю удаленный доступ к своему серверу, используя поддомен в принадлежащем мне домене, давайте назовем его "mydomain.com". Я получаю доступ к своему серверу на субдомене"home.mydomain.com"(который на данный момент отображает только базовый HTML-код), и я получаю доступ к" Веб-интерфейсу Plex "на"home.mydomain.com:32400/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 по адресу "plex.mydomain.com/web", но я все еще хочу избавиться от"/ Интернет" часть.
Для этого я попробовал:
ProxyPass / http://localhost:32400/web
ProxyPassReverse / http://localhost:32400/web
Что вообще не сработало, это просто дает мой "404 Not Found".
Итак, можно ли это решить так, как я хочу? И если да, то как мне это сделать.
Любая помощь приветствуется.
Вы можете избавиться от веб-контекста, используя правило перезаписи:
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/
Вы должны проверить это для всех мельчайших деталей. Особо следует отметить настройку базовой аутентификации для защиты вашего хоста.
Вот измененное решение:
Добавьте правило 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