I block ads too. Donate?

Nginx中fastcgi_pass直接写unix和使用upstream

2017-03-26 21:48:47

[服务器开发] , ,

 

这两天虽然很忙,但是由于某些情况需要折腾一个反向代理服务器。解决了我一个困扰了很久的问题——为什么nginx不能检测后面php-fpm或者hhvm运行的状态;如果php-fpm或者hhvm挂了为什么nginx的fastcgi_cache_use_stale的参数不起作用?

我一直想当php-fpm或者hhvm挂掉的时候nginx能够提供cache的旧页面,但是fastcgi_cache_use_stale的参数似乎不起作用,今天仔细地读了一个nginx的文档。为了实现这个目的,我们需要用的是fastcgi_cache_use_stale 中 error这个参数,然而error这个参数的说明中提到了一句话

 

The error parameter also permits using a stale cached response if a FastCGI server to process a request cannot be selected.

 

仔细一想,如果你直接在fastcgi_pass使用unix://接口,直接将server弄上去,还需要什么selected?换个意思说,使用这个参数,你就必须使用 upstream 定义你的FastCGI server。尝试了一下,果然如此。

以下是配置的例子

这里是结合了fastcgi_cache_use_stale 的配置

 

 

注意,fastcgi_cache_use_stale 和 proxy_cache_use_stale 相比,少了两个错误提示,一个是502,一个是504

 

注意这里的 proxy_connect_timeout,十分重要,要是后端关机了,这个就是连接的等待时间。

 

 

这篇博文发表在 服务器开发 目录下,标签为 , ,
版权所有,请勿转载。如需引用,请使用链接:https://note.masterchan.me/?p=1626
 

您的邮箱地址不会被公开,评论使用Gravatar头像。
Your email address will not be published. This blog is using Gravatar.

正在提交评论...
正在为您准备评论控件