Ok, eu não tinha certeza de como pronunciar o título, mas tentarei explicar minha situação.
Eu tenho um servidor doméstico rodando o Debian que, entre outras coisas, está rodando o "plex media server".
Eu acesso meu servidor remotamente usando um subdomínio de um domínio que possuo, vamos chamá-lo de "meudominio.com". Eu acesso meu servidor no subdomínio "home.meudominio.com" (que no momento exibe apenas algum html básico) e eu acesso a "interface web Plex" em "home.meudominio.com:32400/web".
O que eu quero fazer é redirecionar o subdomínio "plex.meudominio.com" para "home.meudominio.com:32400/web" para facilitar o acesso à "interface plex".
Consegui chegar na metade do caminho, mas não tenho certeza de como proceder ou se isso é de fato possível.
Estes são meus hosts virtuais a partir de agora:
<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>
O que me permite acessar a interface plex em "plex.meudominio.com/web", mas ainda quero me livrar do "/rede" papel.
Então, para fazer isso eu tentei:
ProxyPass / http://localhost:32400/web
ProxyPassReverse / http://localhost:32400/web
O que não funcionou, apenas deu o meu "404 Not Found".
Então, isso pode ser resolvido da maneira que eu quero? E se sim, como faço isso.
Qualquer ajuda é muito apreciada.
Responder1
Você pode se livrar do contexto da web usando uma regra de reescrita:
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]
Observe as condições de reescrita na segunda seção.
Para sua informação, obtive essas configurações aqui:http://matt.coneybeare.me/how-to-map-plex-media-server-to-your-home-domain/
Você deve verificar isso para todos os detalhes essenciais. Digno de nota seria configurar alguma autenticação básica para proteger seu host.
Responder2
Aqui está a solução alterada:
Adicione uma regra DNAT para redirecionar todo o tráfego de 80 para 32.400.
iptables -t nat -I PREROUTING -p tcp -d X.X.X.X--dport 80 -J DNAT --to-destination X.X.X.X:32400
Então seria algo assim:
sudo iptables -t nat -I PREROUTING -p tcp -d 192.168.1.1 --dport 80 -j DNAT --to-destination 192.168.1.1:32400
Lembre-se de suas regras de firewall:
iptables -I INPUT -p tcp --dport 32400 -j ACCEPT
iptables -I INPUT -p tcp --dport 80 -j ACCEPT
E salve suas regras de firewall:
service iptables save