【发布时间】:2017-09-02 23:35:30
【问题描述】:
我正在尝试编写一个服务器演示来连接 php-fpm ,但我不知道 fast-cgi 与 php-fpm 和 nginx 之间的连接是否是持久(keep-alive)连接? 每次向 nginx 发出 http 请求时,nginx 会再次通过 tcp 3-Way Handshake 连接 php-fpm 吗?或者 nginx 和 php-fpm 之间的连接是 keep-alive 连接,nginx 尝试重用它?
【问题讨论】:
-
我看到一个声明,但没有问题
-
@RiggsFolly 也许有点苛刻?对我来说似乎很清楚这个问题是 php-fpm 和 nginx 之间通过 fast-cgi 的连接是持久(保持活动)连接吗?
-
客户端连接服务器,向nginx发送请求,nginx可能要求PHP-FPM处理(通过fcgi),PHP处理并产生响应,PHP给nginx响应,PHP -FPM 完成并与 nginx 断开连接。之后发生的一切都在 nginx 和客户端之间。
-
不,
php-fpm和nginx不会在请求发送后断开连接。连接将持续存在。 -
@Mjh FPM 线程保持活动状态的事实并不意味着与 nginx 的连接也保持活动状态。并没有你想的那么浪费。通常发生的情况是,操作系统不会在请求时立即关闭连接,而是在资源允许的情况下将它们暂停,这意味着重新连接成本最小,同时技术上终止连接。请记住,套接字连接是操作系统的有限资源,因此将正在使用的连接最小化是最佳策略。