背景:
几天前项目上线,改了一堆配置。上线后顺手也清了配置缓存。然而打开页面发现接口读的依然是老配置。
原因:
我们上线的方式以前是增量,现在改成了替换软链来实现变更版本,这样也就引发了这次的问题。下面是我们的NGINX配置截取。
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param DOCUMENT_ROOT $document_root;
由于realpath_cache的原因,导致上线新版本后,软链虽然发生了切换,但是实际运行的依然是上一个版本。推荐阅读 Is it all PHP OPCache's fault?
配置调整如下:
fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
fastcgi_param DOCUMENT_ROOT $realpath_root;