nginx启动http server,监听http请求,代理proxy_pass至https请求(如https:api.weixin.qq.com)。
从web应用A发起http访问nginx服务器,转发至https:api.weixin.qq.com,在微弱并发下,有时会出现,返回respone时nginx报错,链接后端(web应用A)timeout。
已确认web应用一直的链接中,web应用的http请求过了超时时间后,httpclient返回500错误状态。
应该是应用处理的时间超过了nginx和应用之间连接的有效期,nginx自动断开了连接……可以把相应的参数设置的长一点就行
想法和差不多,排查之后感觉就是并发问题。尝试把连接数和抗并发都设置到最高了,linux服务器(虚拟机)65535连接数。但是还是有出现,奇怪的是,有时候是链接微信时直接返回超时,但是微信确实是收到请求并正确处理的。大神,有nginx与tomcat的集群配置吗?谢谢,能发一个吗?web应用A ->nginx->weixin 每一层都有超时时间的控制,先确认每一层的超时时间多少。你这个看起来像是nginx->weixin这一层的超时时间过短,可以配置长点。另外httpClient的超时间应该,比稍微比你设置的nginx的长一点点,httpClient一样收不到。
web应用A ->nginx设置了12秒超时nginx->weixin是10秒超时看nginx日志中,错误日志,timedout是1秒内就返回了http转https,这种处理方式,会不会导致这个问题?
使用专业的代理工具,额外搭建一个专门的代理服务器?
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。