免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 22149 | 回复: 8
打印 上一主题 下一主题

[Web] 求助,请大家帮忙看看! [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-07-31 10:10 |只看该作者 |倒序浏览
10可用积分
公司web服务器系统是linux AS3.6 。 网站配置是apache+tomcat。但是一直都有个问题,
就是隔个几天网站就会莫明其妙的打不开,重启下tomcat就解决了。原因一直都没有找到。
  tomcat没有报错,apache报错是:Proxy Error The proxy server received an invalid response from an upstream server. The proxy server could not handle the request GET /concert/fw/. Reason: Error reading from remote server
                                                   proxy: Error reading f rom remote server returned by /concert/fw/company/company_statistics/c, referer: http://www.precious.com/concert/fw/company/company_statistics/c


请大家帮帮忙,指点下迷津,小弟在线等,谢谢!

论坛徽章:
0
2 [报告]
发表于 2008-07-31 10:21 |只看该作者
httpd.conf增加这两行试试:
SetEnv force-proxy-request-1.0.1
SetEnv proxy-nokeepalive 1

论坛徽章:
0
3 [报告]
发表于 2008-07-31 10:29 |只看该作者
谢谢,楼上的朋友。我们以前这样做过,但是好像不是这个问题。还有其他的方法吗?

论坛徽章:
0
4 [报告]
发表于 2008-07-31 11:11 |只看该作者
没有人能再帮帮忙吗?

论坛徽章:
0
5 [报告]
发表于 2008-07-31 19:30 |只看该作者
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

    刷新两次之后,又可以正常浏览,再刷新又故障!  无耐之下,四处求教,加了两个FreeBSD群,竟然在里面遇到熟人.可惜这个群人气旺,就是欠缺解答问题气氛,整天在吹!BS 另一个FB群很热情,虽然对我的帮助不大,但人家都有问必答,呵,人气比前一个差一点.  
    无奈,求人不如求已!  自己仔细想想,既然错误,日志中应该有提示的.马上显示日志
        # more /var/log/httpd-error.log
  
    有很多这样的错误 proxy: error reading status line from remote server

  马上GG一搜索,哈有了! 在英文网站,理解到是Apache 和Proxy_mod的BUG ,但某人30小时内没出现问题
    全文如下      
------- Additional Comments From [EMAIL PROTECTED]  2006-07-05 16:05 -------
With the following 'Murxaround' it's working now:
- Added 'keeplive Off' in httpd.conf  -> No effect
- Set keep-alive timeout to 1 day in IIS -> No effect
- Added
'SetEnv force-proxy-request-1.0 1'
'SetEnv proxy-nokeepalive 1'
in httpd.conf
It's working now without errors since 30 hours...
Don't know if first steps were necessary, I let them in place
  如了.修改 httpd.conf

<VirtualHost  *:80>
        ServerAdmin asion@mail.com
        ServerName www.domain.com
        ProxyPass / http://192.168.0.92
        ProxyPassReverse  / http://192.168.0.92
        SetEnv force-proxy-request-1.0.1
        SetEnv proxy-nokeepalive 1
</virtualHost>
然后重启Apache, 刷新了N次,正常!!

      后话: 转贴APACHE官方中文说明,关于协议调整


当mod_proxy向一个没有正确实现持久连接(KeepAlive)或HTTP/1.1的原始服务器发送请求的时候,可以通过设置两个环境变量来发送不带持久连接(KeepAlive)的HTTP/1.0请求。这两个变量是通过SetEnv指令设置的。

以下是force-proxy-request-1.0和proxy-nokeepalive的例子:

<Location /buggyappserver/>
ProxyPass http://buggyappserver:7001/foo/
SetEnv force-proxy-request-1.0 1
SetEnv proxy-nokeepalive 1
</Location>

论坛徽章:
0
6 [报告]
发表于 2008-08-01 10:24 |只看该作者

论坛徽章:
0
7 [报告]
发表于 2008-08-22 06:03 |只看该作者

论坛徽章:
0
8 [报告]
发表于 2008-10-30 08:58 |只看该作者
我也遇到了这个问题:(((

论坛徽章:
0
9 [报告]
发表于 2008-10-30 10:26 |只看该作者
原帖由 precious3612 于 2008-7-31 10:10 发表
公司web服务器系统是linux AS3.6 。 网站配置是apache+tomcat。但是一直都有个问题,
就是隔个几天网站就会莫明其妙的打不开,重启下tomcat就解决了。原因一直都没有找到。
  tomcat没有报错,apache报错是: ...

apache 的http代理出错 502 Proxy Error
关键字: apache 502 proxy error
前不久刚部署好的网站,忽然访问报错提示错误
引用

Http 502 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

看了半天也没看出个所以然来, 刚刚还好好的呢!过了一会网站又能打开了....
查看了一下apache的access_log。发现
引用
.....Get / HTTP/1.0....
这是ie5.5以下的版本访问过。所以又找来台ie5.5(挺难整,这年头这玩意少了!!)访问了一下,然后出错。在用别的机器访问错误还有。在刷新了一会又好了!
就这个问题Google了一下发现是mod_proxy的事,又G了一下他的文档
http://httpd.apache.org/docs/2.3/mod/mod_proxy.html
找到了这一段话
引用
For circumstances where mod_proxy is sending requests to an origin server that doesn't properly implement keepalives or HTTP/1.1, there are two environment variables that can force the request to use HTTP/1.0 with no keepalive. These are set via the SetEnv directive.
These are the force-proxy-request-1.0 and proxy-nokeepalive notes.
译了一下大概是这意思(不是我译的)
引用
当mod_proxy向一个没有正确实现持久连接(KeepAlive)或HTTP/1.1的原始服务器发送请求的时候,可以通过设置两个环境变量来发送不带持久连接(KeepAlive)的HTTP/1.0请求。这两个变量是通过SetEnv指令设置的。
以下是force-proxy-request-1.0和proxy-nokeepalive的例子:

Java代码 复制代码

   1. <Location /buggyappserver/>  
   2.   ProxyPass http://buggyappserver:7001/foo/  
   3.   SetEnv force-proxy-request-1.0 1  
   4.   SetEnv proxy-nokeepalive 1  
   5. </Location>   

<Location /buggyappserver/>
  ProxyPass http://buggyappserver:7001/foo/
  SetEnv force-proxy-request-1.0 1
  SetEnv proxy-nokeepalive 1
</Location>


最后在我的httpd.conf的VirtualHost里加上了上面的两行设置
Java代码 复制代码

   1. <VirtualHost *:80>   
   2.    JkMount /hr/servlet/* worker1   
   3.    JkMount /hr/*.jsp worker1   
   4.    JkMount /hr/*.do worker1   
   5.    ServerAdmin njgnini@163.com   
   6.    ServerName www.javaeye.com   
   7.    ServerAlias www.javaeye.com.cn   
   8.    RewriteEngine On   
   9.    RewriteRule ^/$ /hr/ [R,P]         
  10.      
  11.    SetEnv force-proxy-request-1.0.1   
  12.    SetEnv proxy-nokeepalive 1   
  13. </VirtualHost>   

<VirtualHost *:80>
   JkMount /hr/servlet/* worker1
   JkMount /hr/*.jsp worker1
   JkMount /hr/*.do worker1
   ServerAdmin njgnini@163.com
   ServerName www.javaeye.com
   ServerAlias www.javaeye.com.cn
   RewriteEngine On
   RewriteRule ^/$ /hr/ [R,P]      
   
   SetEnv force-proxy-request-1.0.1
   SetEnv proxy-nokeepalive 1
</VirtualHost>


重启apache,在拿ie5.5访问O了
http://javadonkey.javaeye.com/blog/218672
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP