Subdomínio de redirecionamento do proxypass do Apache para porta e caminho

1

Ok, eu não sabia como escrever o título, mas vou tentar explicar minha situação.

Eu tenho um servidor doméstico executando o Debian que, entre outras coisas, está executando o "plex media server".

Eu acesso meu servidor remotamente usando um subdomínio para um domínio que possuo, vamos chamá-lo de " mydomain.com ". Eu acesso meu servidor no subdomínio " home.mydomain.com " (que no momento apenas exibe alguns html básicos) e acesso a "interface da web do Plex" em " home.mydomain. com: 32400 / web ".

O que eu quero fazer é redirecionar o subdomínio " plex.mydomain.com " para " home.mydomain.com:32400/web " para facilitar o acesso ao "interface plex".

Eu consegui chegar no meio do caminho, mas não tenho certeza de como proceder ou se isso é realmente 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 do plex em " plex.mydomain.com/web ", mas ainda quero me livrar da parte " / web " .

Então, para fazer isso, tentei:

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

O que não funcionou de jeito nenhum, apenas mostra 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 appreaciated.

    
por user1150856 15.06.2015 / 02:42

2 respostas

2

Você pode se livrar do contexto da Web usando uma regra de regravação:

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.

FYI, eu tenho estas configurações aqui: link

Você deve verificar isso para todos os detalhes importantes. De particular interesse seria configurar alguma autenticação básica para proteger seu host.

    
por 16.06.2015 / 22:36
0

Aqui está a solução alterada:

Adicione uma regra DNAT para redirecionar todo o tráfego de 80 para 32400.

iptables -t nat -I PREROUTING -p tcp -d X.X.X.X--dport 80 -J DNAT --to-destination X.X.X.X:32400

Por isso, seria algo como isto:

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 das 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
    
por 16.06.2015 / 02:47