0%

nginx响应超慢

Nginx是一款轻量级的Web服务器、反向代理服务器,由于它的内存占用少,启动极快,高并发能力强,在互联网项目中广泛应用。

一、定位问题

  1. 监控php-fpm的状态

    • 修改对应的vhost,在server内加入以下配置
      1
      2
      3
      4
      5
      location ~ ^/status$ {
      include fastcgi_params;
      fastcgi_pass 127.0.0.1:9000;
      fastcgi_param SCRIPT_FILENAME $fastcgi_script_name;
      }
    • 修改php-fpm.conf,打开以下选项:
    1
    pm.status_path = /status
    • 访问http://域名/status以查看当前的php情况,
    • 结果说明
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    pool: www php运行的组
    process manager: dynamic php-fpm运行的方式
    start time: 04/Jun/2012:16:05:32 +0800 开始时间
    start since: 5932
    accepted conn: 65678 接受链接
    listen queue: 0 监听队列
    max listen queue: 1 最大监听队列
    listen queue len: 128 监听队列len
    idle processes: 82 空闲进程
    active processes: 4 活动进程
    total processes: 86 总进程
    max active processes: 25 最大活动进程
    max children reached: 0 最大的子进程达到
  2. 按上面的步骤弄完并看不出来什么问题,查看对应的日志,报了一堆upstream timed out (60: Operation timed out)

二、解决问题

  1. 在server内加入以下配置
1
2
3
4
5
6
7
8
9
10
large_client_header_buffers 4 16k;
client_max_body_size 30m;
client_body_buffer_size 128k;
fastcgi_connect_timeout 300;
fastcgi_read_timeout 300;
fastcgi_send_timeout 300;
fastcgi_buffer_size 64k;
fastcgi_buffers 4 32k;
fastcgi_busy_buffers_size 64k;
fastcgi_temp_file_write_size 64k;
  1. 重启ngix,响应速度并没有快多少,只是不再报upstream timed out (60: Operation timed out)