我们有运行WordPress的Apache的PHP FPM。 有时我会注意到某些调用外部URL的插件能够真正搞乱FPM,导致大量的超时等等,如果外部URL没有响应或者什么的话。 我们从来没有这个问题运行mod_php。 有什么我可以做的,这使得PHP FPM在这些情况下更好地工作?
不是真的。 当一个php-fpm孩子正在执行一个引用外部URL的代码,并且这个URL不能及时回答时,代码会阻塞一些configuration的超时(例如curl连接超时),所以子代码也会等待,无法为php-fpm套接字服务 。 当所有的孩子进入这个状态,你的网站就会获得504的状态。 顺便说一下,Apache的mod_php的行为也是如此。 所以这基本上是一个编程问题,你应该在SO中而不是在SF中讨论它。
在SF上下文中唯一可以做的事情是增加php-fpm 池中的子项数量,但是这通常会适得其反,因为其他项目也迟早会阻止这个URL。 唯一可以在不修改代码的情况下保存你的东西 – 比你有用户连接到你的networking服务器有更多的免费儿童。 但这是一种充满悲伤和挫折的方式。