nodejs proxied do apache: o servidor proxy recebeu uma resposta inválida de um servidor upstream

1

Eu tenho o servidor nodejs e algum conteúdo estático para servir. Eu estou usando o Apache 2.4 para este fim, pois preciso configurar vários hosts na mesma máquina.

Tenho a seguinte configuração para meu host virtual no meu apache 2.4

<IfModule mod_ssl.c>
<VirtualHost *:443>
    ServerAdmin [email protected]
    ServerName mydomain.co.in
    ServerAlias mydomain.co.in
    ProxyPass /api http://127.0.0.1:3001/api
    ProxyPassReverse /api http://127.0.0.1:3001/api
    DocumentRoot /root/VEFA-test-admin/vefa-admin/platforms/browser/www
    <Directory /root/VEFA-test-admin/vefa-admin/platforms/browser/www>
                Options -Indexes +FollowSymLinks +MultiViews
                AllowOverride All
                Require all granted
    </Directory>
    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
SSLCertificateFile /etc/encrypt/live/mydomain.co.in/fullchain.pem
SSLCertificateKeyFile /etc/encrypt/live/mydomain.co.in/privkey.pem
</VirtualHost>
</IfModule>

E meu servidor nodejs está sendo executado na portt 3001 na mesma máquina. O problema é que o usuário que acessa meu site usando mydomain.co.in consegue ver a página. Mas, em um cenário, estou redirecionando o usuário para o gateway de pagamento e o gateway de pagamento está redirecionando o usuário bak em meu site após o pagamento. O problema ocorre quando o gateway de pagamento redireciona o usuário para o meu site.

O log de erros do apache diz isso:

[Thu Sep 07 12:08:06.291298 2017] [proxy_http:error] [pid 12226:tid 139763780601600] (20014)Internal error (specific information not available): [client 219.91.211.175:11159] AH01102: error reading status line from remote server 127.0.0.1:3001, referer: https://test.payumoney.com/payment/postBackParam.do
[Thu Sep 07 12:08:06.291358 2017] [proxy:error] [pid 12226:tid 139763780601600] [client 219.91.211.175:11159] AH00898: Error reading from remote server returned by /api/u/payments/success, referer: https://test.payumoney.com/payment/postBackParam.do

O que estou fazendo errado ??

Eu tentei todas as soluções que estou mencionando abaixo

Eu tentei usar o Keepalive, o ProxyBadHeader Ignore, mas nada me ajudou. Alguém pode me ajudar?

    
por nikhil mehta 07.09.2017 / 14:22

1 resposta

1

O aplicativo que está sendo intermediado por proxy não está falando HTTP válido. O que quer que esteja voltando do processo nodejs em resposta à solicitação HTTP que o Apache está fazendo não é HTTP. Não sei mais como explicar isso ...

    
por 07.09.2017 / 14:47