从 apache 代理的 nodejs:代理服务器从上游服务器收到无效响应

从 apache 代理的 nodejs:代理服务器从上游服务器收到无效响应

我有 nodejs 服务器和一些静态内容需要提供。我使用 apache 2.4 来实现这个目的,因为我需要在同一台机器上配置多个主机。

我的 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>

我的 nodejs 服务器在同一台机器的 portt 3001 上运行。问题是使用 mydomain.co.in 访问我的网站的用户可以看到该页面。但在一种情况下,我将用户重定向到支付网关,而支付网关在付款后将用户重定向回我的网站。当支付网关将用户重定向到我的网站时,就会出现问题。

apache 错误日志显示如下:

[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

我在这里做错了什么?

我已经尝试了下面提到的所有解决方案

我尝试过使用 Keepalive on、ProxyBadHeader Ignore,但没有任何效果。有人能帮助我吗?

答案1

代理的应用程序使用的不是有效的 HTTP。nodejs 进程对 Apache 发出的 HTTP 请求的响应返回的内容不是 HTTP。我不知道该如何解释它...

相关内容