我们正在运行 nginx + php5-fpm,作为部署过程的一部分,我们使用符号链接指向最新版本的 PHP 代码。为了避免在部署新版本时更改文件出现问题,我们使用如下的 nginx-config,其中使用 $realpath_root 将真实文件路径发送给 php-fpm:
location ~* ^/(app|app_dev|config)\.php(/|$) {
fastcgi_pass php;
fastcgi_split_path_info ^(.+\.php)(/.*)$;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
fastcgi_param DOCUMENT_ROOT $realpath_root;
}
当我们使用 AWS 实例时,这种设置在去年运行良好。现在我们切换到 Google Cloud,每次部署新版本时,我们的服务器响应时间都会增加 2-3 倍。使用(其中 17 是主进程的进程 ID)重新加载 PHP-fpm 后kill -USR2 17
,响应时间恢复到正常值。
任何建议如何在每次发布后不重新启动 php-fpm 工作进程的情况下解决这个问题?
最好的,托拜厄斯