开发者社区> 问答> 正文

nginx启动http server,监听http请求,代理proxy_pass?400报错

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错误状态。

展开
收起
爱吃鱼的程序员 2020-06-08 10:16:04 908 0
1 条回答
写回答
取消 提交回答
  • https://developer.aliyun.com/profile/5yerqm5bn5yqg?spm=a2c6h.12873639.0.0.6eae304abcjaIB

    应该是应用处理的时间超过了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,这种处理方式,会不会导致这个问题?

    使用专业的代理工具,额外搭建一个专门的代理服务器?

    2020-06-08 11:13:58
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
CDN助力企业网站进入HTTPS时代 立即下载
CentOS Nginx PHP JAVA 多语言镜像使用手 立即下载
CentOS Nginx PHP JAVA多语言镜像使用手册 立即下载