Eu tenho um webapp que se comunica com o usuário final pela porta 80 e com um Express Server pela porta 3001. Configurei umproxy reversomas o código parece estar retornando a resposta do servidor diretamente ao usuário final, em vez do código HTML do aplicativo da web. Preciso que o aplicativo da web continue enviando sua resposta html típica enquanto envia as solicitações de API do servidor para a porta 3001. Configurei meu proxy incorretamente?
O complicado aqui é que meu aplicativo da web atua tanto como servidor (para o usuário final) quanto como cliente (para o servidor Express).
Aqui está minha configuração do vhost:
<VirtualHost *:443>
SSLEngine on
SSLProxyEngine on
SSLProxyCheckPeerCN off
SSLProxyCheckPeerName off
SSLProxyCheckPeerExpire off
ServerName 192.168.253.101
ServerAlias example.com
DocumentRoot /var/www/example.com/public_html
ErrorLog /var/www/example.com/error.log
CustomLog /var/www/example.com/request.log combined
SSLCertificateFile "/etc/ssl/certs/Client_Cert.crt"
SSLCertificateKeyFile "/etc/ssl/certs/Client_Key.key"
ProxyRequests Off
<Proxy *>
Order deny,allow
Allow from all
</Proxy>
ProxyPass / https://localhost:3001/
ProxyPassReverse / https://localhost:443/
</VirtualHost>
Responder1
Modificar a linha ProxyPass para ProxyPassMatch me permitiu ainda acessar minha página HTML do domínio raiz enquanto passava quaisquer chamadas de API adicionais para meu servidor de escuta.
<VirtualHost *:443>
SSLEngine on
SSLProxyEngine on
SSLProxyCheckPeerCN off
SSLProxyCheckPeerName off
SSLProxyCheckPeerExpire off
ServerName 192.168.253.101
ServerAlias example.com
DocumentRoot /var/www/example.com/public_html
ErrorLog /var/www/example.com/error.log
CustomLog /var/www/example.com/request.log combined
SSLCertificateFile "/etc/ssl/certs/Client_Cert.crt"
SSLCertificateKeyFile "/etc/ssl/certs/Client_Key.key"
ProxyRequests Off
<Proxy "*">
Require host yournetwork.example.com
</Proxy>
ProxyPassMatch ^/([a-z]+)$ https://localhost:3001/$1
</VirtualHost>