我有一个tomcat实例为请求服务,nginx作为这个tomcat实例的反向代理。
当我更新我的Java应用程序时,大约花费了10秒。但是这10秒的站点已经关闭,nginx返回HTTP 503页面。
我希望nginx做的是:暂停所有传入连接,直到后端结束。那就开始为他们服务。理想情况下进行一些智能检查,例如"/“返回HTTP 200。在我看来,用户等待10秒比查看HTTP 503页面更好。
我不想为此聚在一起。我使用应用程序中的缓存,而且我的web应用程序还远未加载。集群会带来很多问题,我不想花时间在上面。
我使用以下指令连接到tomcat:
proxy_pass http://127.0.0.1:8080;发布于 2015-03-13 05:45:53
如果您使用快速for与应用程序通信,则将fastcgi_read_timeout、fastcgi_connect_timeout和fastcgi_send_timeout设置为nginx“持有”客户端并等待应用程序响应的期望值。(即60秒)
浏览器将保持空白,直到应用程序响应,将等待60秒抛出503 (服务不可否认)或504 (网关超时),但应用程序上的套接字/端口必须侦听,即使是高负载,否则nginx可以从后端接收“拒绝连接”并将503抛给客户端。如果您的应用程序正在崩溃并移除套接字或关闭侦听端口,我不能100%确定这些优化是否会对您有所帮助,但是让它们进行配置是很好的。
如果您通过代理与应用程序交谈,正确变量的名称是proxy_read_timeout、proxy_connect_timeout和proxy_send_timeout。
也许你只需要read和connect的。
https://serverfault.com/questions/675166
复制相似问题