【发布时间】:2011-02-07 17:27:37
【问题描述】:
我的服务器间歇性地收到以下错误:
**Proxy Error**
The proxy server received an invalid response from an upstream server.
The proxy server could not handle the request GET /.
Reason: Error reading from remote server
错误日志显示如下:
[Sun Feb 06 03:06:00 2011] [error] [client 82.43.154.57] proxy: Error reading from remote server returned by /login, referer: https://demo.XXXXX.us/
[Sun Feb 06 03:06:30 2011] [error] [client 82.43.154.57] (70007)The timeout specified has expired: proxy: error reading status line from remote server XXXXX.us
[Sun Feb 06 03:06:30 2011] [error] [client 82.43.154.57] proxy: Error reading from remote server returned by /
[Sun Feb 06 03:13:31 2011] [error] [client 82.43.154.57] (70007)The timeout specified has expired: proxy: error reading status line from remote server XXXXX.us
[Sun Feb 06 03:13:31 2011] [error] [client 82.43.154.57] proxy: Error reading from remote server returned by /
我已经阅读了很多关于 Tomcat 中的连接超时设置和 Apache 中的环境设置的帖子。我在 httpd.conf 中设置了以下内容:
<VirtualHost *>
SetEnv force-proxy-request-1.0 1
SetEnv proxy-nokeepalive 1
</VirtualHost>
我还在tomcat server.xml中设置了以下内容:
<Connector port="9080" maxHttpHeaderSize="8192"
maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
enableLookups="false" redirectPort="9443" acceptCount="100"
connectionTimeout="60000" disableUploadTimeout="true" />
另外,一旦发生错误,我必须启动一个新的浏览器才能使错误消失,因为即使在刷新时它也会继续显示。其次,我正在使用 htaccess 来重写 url。不知道这样对报错有没有影响?
编辑> 我的服务器在正常情况下运行在 150mb 的可用内存上,并且可能会下降得很低,但不是在上述错误的确切时间。这会导致这样的错误吗?
我会很感激人们有任何想法。
谢谢。
【问题讨论】:
-
首先,将 Apache 的日志级别设置为调试并尝试捕获有关该问题的更多信息。其次,你可能真的有记忆相关的问题。使用 VisualVM 看看你的 GC 周期需要多长时间。