php fast cgi nginx,通过fast-cgi连接php-fpm和nginx之间的连接是持久的(保持活动)连接吗?...
一年后,我問了這個問題,我似乎找到了答案。
(gdb) bt
#0 close () at ../sysdeps/unix/syscall-template.S:84
#1 0x0000000000a40dff in fcgi_close (req=0x1dae3c0, force=0, destroy=1) at /home/dinosaur/Downloads/php-7.2.2/main/fastcgi.c:1311
#2 0x0000000000a41a0d in fcgi_finish_request (req=0x1dae3c0, force_close=0) at /home/dinosaur/Downloads/php-7.2.2/main/fastcgi.c:1670
#3 0x0000000000a4d3b3 in sapi_cgi_deactivate () at /home/dinosaur/Downloads/php-7.2.2/sapi/fpm/fpm/fpm_main.c:828
#4 0x00000000008bcf35 in sapi_deactivate () at /home/dinosaur/Downloads/php-7.2.2/main/SAPI.c:532
#5 0x00000000008afa0e in php_request_shutdown (dummy=0x0) at /home/dinosaur/Downloads/php-7.2.2/main/main.c:1913
#6 0x0000000000a50614 in main (argc=1, argv=0x7ffc8b6936e8) at /home/dinosaur/Downloads/php-7.2.2/sapi/fpm/fpm/fpm_main.c:1994
當php-fpm啟動時,在初始化之后,它會在while循環中處理每個請求
while (fcgi_accept_request(request) >= 0) {
...
php_execute_script(&file_handle); // zend engine compile and run the opcode
...
php_request_shutdown((void *) 0); // close connection
}
在功能fcgi_accept_request中,套接字fd為4
1411 req->fd = accept(listen_socket, (struct sockaddr *)&sa, &len);
(gdb) n
1414 client_sa = sa;
Breakpoint 6, fcgi_accept_request (req=0x1dae3c0) at /home/dinosaur/Downloads/php-7.2.2/main/fastcgi.c:1414
1414 client_sa = sa;
(gdb) p req->fd
$18 = 4
當關閉時,它關閉套接字fd 4
Breakpoint 4, fcgi_close (req=0x1dae3c0, force=0, destroy=1) at /home/dinosaur/Downloads/php-7.2.2/main/fastcgi.c:1272
1272 {
(gdb) p req->fd
$19 = 4
結論
所以,我認為在php7中,請求完成后fpm關閉,因此它不是持久連接?
總結
以上是生活随笔為你收集整理的php fast cgi nginx,通过fast-cgi连接php-fpm和nginx之间的连接是持久的(保持活动)连接吗?...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 保本理财产品收益会很低吗?保本理财产品有
- 下一篇: php5.4 curl,PHP5.0~5