使用Nginx和PHP FPM进行primefaces部署

我试图获得primefaces部署,我不想丢失/丢弃任何请求。

我使用Capistrano部署代码,经典的情况是你有一个'当前'目录,这是'release'文件夹中最新版本的符号链接。 我正在使用Nginx,带有Opcache的PHP 5.5 FPM。 遵循在Nginx中使用$ realpath_root的想法,我期望一个简单的nginx重载就足够了,但事实并非如此。 用nginx重新加载,似乎我没有丢失任何请求,但php-fpm仍在执行前一个旧目录中的代码。 如果我做了一个“PHP的FMP重新加载”,然后PHP FPM阅读新的目录,但我仍然可以看到,我失去了一些要求:

'recv()失败(104:连接重置对等),而从上游读取响应头“

问题是: 我应该重新加载PHP FPM吗?

根据我的理解,nginx将path传递给php-fpm,并从nginxdebugging日志中看到,通过的path是正确的,但是php-fpm仍然执行旧path。

2014/09/23 17:13:22 [debug] 26234#0: *1742 http script var: "/shop/www/htdocs/current/web" 2014/09/23 17:13:22 [debug] 26234#0: *1742 posix_memalign: 00000000010517A0:4096 @16 2014/09/23 17:13:22 [debug] 26234#0: *1742 http script copy: "SCRIPT_FILENAME" 2014/09/23 17:13:22 [debug] 26234#0: *1742 http script var: "/shop/www/htdocs/ive/releases/20140923124417/web" 2014/09/23 17:13:22 [debug] 26234#0: *1742 http script var: "/app.php" 2014/09/23 17:13:22 [debug] 26234#0: *1742 fastcgi param: "SCRIPT_FILENAME: /shop/www/htdocs/live/releases/20140923124417/web/app.php" 2014/09/23 17:13:22 [debug] 26234#0: *1742 http script copy: "DOCUMENT_ROOT" 2014/09/23 17:13:22 [debug] 26234#0: *1742 http script var: "/shop/www/htdocs/live/releases/20140923124417/web" 2014/09/23 17:13:22 [debug] 26234#0: *1742 fastcgi param: "DOCUMENT_ROOT: /shop/www/htdocs/live/releases/20140923124417/web" 2014/09/23 17:13:22 [debug] 26234#0: *1742 http script copy: "APPLICATION_ENV" 

我错过了什么? 谢谢

这听起来像你已经改变了默认的OPcacheconfiguration。

默认值是:

 opcache.validate_timestamps = 1 opcache.revalidate_freq = 2 

这指定在检查磁盘上的文件是否已经改变之前,OPcache是​​否应该等待多长时间。 在这种情况下,是的,两秒钟之后。

首先,尝试重新启用此选项,因为它听起来像是closures了它。