应该是你本机的 php-cgi 进程繁忙,请求得不到响应。
要搞清 curl localhost 这个问题,假设环境是 nginx + fpm, nginx 部分配置如下:
location ~ \.php {
include fastcgi_params;
fastcgi_index index.php;
fastcgi_pass 127.0.0.1:9000;
}
想像一次 http 请求到来, nginx 匹配到 php 文件时, 通过 fastcgi 协议把请求交由 php-cgi 处理,
php-cgi 进程监听到 9000 端口(可以通过 netstat -tl 命令查看端口状态)请求到来处理并返回...
假若某一时刻 php-cgi 进程繁忙 (或者说就只有一个 >_
nginx 可以通过负载均衡来增加 php-cgi 进程
# http context
upstream backend {
server 127.0.0.1:9000 weight = 5 max_fails=0 fail_timeout=30s;
server 127.0.0.1:9001 weight = 5 max_fails=0 fail_timeout=30s;
}
# server context
location ~ \.php {
include fastcgi_params;
fastcgi_index index.php;
fastcgi_pass backend;
}