我在尝试访问网站网址时收到以下错误。
The proxy server received an invalid response from an upstream server.
The proxy server could not handle the request GET /abcef/report. Reason: Error reading from remote server Apache/2.2.15 (Red Hat) Server at www.abc.nl Port 80
我很困惑,因为当我直接输入 IP 地址并尝试访问 URL 时,同样的方法也有效。任何人都可以帮助我解决这个问题。我搜索了这个问题,并了解到问题可能出在 vhost.conf 文件中。我们正在使用 ajp 传输,使用 mod_jk 从端口 8080 重定向到端口 80,反之亦然,使用的文件是 mod_jk.conf 和 /etc/httpd/conf/worker .properties。下面定义的工作属性 ajp13 的名称将在虚拟主机配置 worker.list=ajp13 中使用
我对文件进行了一些修改并尝试验证,但没有任何效果。以下是我的 vhosts.conf 文件:
NameVirtualHost *:80
<VirtualHost *:80>
ServerName aa.bb.cc.dd
<ifModule mod_headers.c>
Header set Connection keep-alive
</ifModule>
RewriteEngine on ....
请找到 httpd.conf 文件
ServerRoot "/etc/httpd"
PidFile run/httpd.pid
Timeout 300
KeepAlive Off
MaxKeepAliveRequests 100
KeepAliveTimeout 15
TraceEnable off
<IfModule prefork.c>
StartServers 20
MinSpareServers 5
MaxSpareServers 100
ServerLimit 512
MaxClients 512
MaxRequestsPerChild 0
</IfModule>
<IfModule worker.c>
StartServers 4
MaxClients 300
MinSpareThreads 25
MaxSpareThreads 75
ThreadsPerChild 25
MaxRequestsPerChild 0
</IfModule>
mod_jk 文件:
LoadModule jk_module modules/mod_jk.so
JkWorkersFile conf/workers.properties
JkLogLevel info
JkLogStampFormat "[%a %b %d %H:%M:%S %Y]"
JkOptions +ForwardKeySize +ForwardURICompat -ForwardDirectories
JkRequestLogFormat "%w %V %T"
JkMount /zwr* ajp13
工人.属性:
worker.list=ajp13
worker.ajp13.port=8009
worker.ajp13.host=localhost
worker.ajp13.type=ajp13
worker.ajp13.socket_keepalive=true
worker.ajp13.connection_pool_size=10000
worker.ajp13.connect_timeout=5000000
worker.ajp13.prepost_timeout=5000000
答案1
你试过用 httpd 的mod_proxy_ajp代替mod_jk? 以下是简短的两种连接器的比较(不仅仅是他们)。
你说的“直接 IP”是什么意思?是工作人员的 IP(绕过代理)吗?
除此之外,你可以尝试嗅探 AJP 通信tcpdump命令行实用程序,然后在 ie 中查看它。Wireshark。这将告诉您,即,如果没有任何格式错误的标头或任何其他可能影响基于 httpd 的反向代理的问题,但您的浏览器可以容忍这些问题。
另外,注意 httpd 的代理超时指示。