我有一个由nginx提供的fastcgi应用程序。站点配置非常基础:
upstream foo {
server unix:/var/run/fastcgi/foo.sock;
}
server {
listen 8080;
server_name _;
root /usr/share/nginx/www;
index index.html index.htm;
location / {
include fastcgi_params;
fastcgi_param PATH_INFO $fastcgi_script_name;
fastcgi_pass foo;
}
}
应用程序本身非常快,它在大约3-5毫秒内处理典型请求 - 我可以在应用程序日志和$ upstream_response_time中看到这个记录到access.log(这不是静态文件或类似的东西, app正在处理普通的HTTP POST并返回application / json http响应)。但是,总请求时间($ request_time变量)非常长,为140-160毫秒。
什么是nginx这样做需要花费这么多时间?我怀疑它可能是为每个请求打开/关闭套接字连接或类似的东西(但是140毫秒?!?),我该如何追踪问题的原因?