Execução de proxy reverso em uma pasta específica com apache2

1

Eu quero executar um site normal em mydomain.tld, mas o diretório mydomain.tld / ws deve redirecionar / proxy para o servidor de websocket local em execução em 127.0.0.1:8989.

Isso é o que eu consegui até agora:

<VirtualHost *:80>
    ServerAdmin webmaster@localhost
    ServerName mydomain.tld

    DocumentRoot /var/www/mydomain.tld/

    ProxyPass /ws ws://127.0.0.1:8989/
    ProxyPassReverse /ws ws://127.0.0.1:8989/
    <Directory />
        Options FollowSymLinks
        AllowOverride None
    </Directory>

    <Directory /var/www/mydomain.tld/>
        Options -Indexes +FollowSymLinks +MultiViews
        AllowOverride All
        Require all granted
    </Directory>

    ErrorLog ${APACHE_LOG_DIR}/error.mydomain.tld.log
    CustomLog ${APACHE_LOG_DIR}/access.mydomain.tld.log combined
</VirtualHost>

No entanto, o site normal funciona, mas não consigo me conectar a / ws, porque recebo o código de status 403 Forbidden, embora eu receba o cabeçalho de resposta HTTP correto X-Powered-By: Ratchet/0.3.4 , que é o servidor websocket.

Isso é do CustomLog combinado:

someip - - [15/Apr/2016:08:59:31 +0200] "GET /ws HTTP/1.1" 500 668 "-" "-"

Estou executando o Apache 2.4 no Ubuntu 14.04 - O que estou fazendo errado?

UPDATE

Apenas tentei adicionar um subdomínio, mas continua com o mesmo erro:

<VirtualHost *:80>
        ServerName ws.mydomain.tld
        ProxyPreserveHost On
        ProxyRequests Off
        ProxyPassReverse / ws://127.0.0.1:8989/
        ProxyPass / ws://127.0.0.1:8989/
</VirtualHost>
    
por Stefan 15.04.2016 / 08:55

1 resposta

1

Você precisa passar o proxy para http:// enquanto ouve a porta 80.

<VirtualHost *:80>
        ServerName ws.mydomain.tld
        ProxyPreserveHost On
        ProxyRequests Off
        ProxyPassReverse / http://127.0.0.1:8989/
        ProxyPass / http://127.0.0.1:8989/
</VirtualHost>
    
por 15.04.2016 / 13:18

Tags