nginx通过unix-domain-socket连接fastcgi

网上都说这种方式比较快,今天有机会测试一下!!

先安装 webbench 压力测试工具

下载和安装!

wget http://home.tiscali.cz/~cz210552/distfiles/webbench-1.5.tar.gz
tar zxvf webbench-1.5.tar.gz
cd webbench-1.5
make && make install

报错和解决!

参考:http://js8.in/930.html

------------------------------------------------------------------

在大家平时配置的nginx连接fastcgi的方式上只需要修改三步就能修改成通过unix-domain-socket连接fastcgi !

A:修改nginx的配置文件.

     # fastcgi_pass   127.0.0.1:9000;      (注释掉)      
        fastcgi_pass unix:/tmp/php-cgi.sock;   (新添加)

B:在/tmp目录添加sock文件!
        touch /tmp/php-cgi.sock   (拥有者和所属的组与启动php的用户一样,看情况修改)

C: 修改php-fpm.conf文件!

    我用的nginx版本是1.5.3 在php-fpm.conf配置文件中没有定义9000端口的地方. 但是php-fpm.conf配置文件包含 php-fpm.d目下的配置文件,所以我要修改php-fpm.d目录里的配置文件www.conf!

    vim /etc/php-fpm.d/www.conf

    listen = /tmp/php-cgi.sock  (新添加)
    #listen = 127.0.0.1:9000  (注释掉源文件)

最后重启nginx和php-fpm,


然后用webbench 工具测试!

 webbench -2 -c 800 -t 30 http://192.168.1.220/index.php

经过测试得出的结果是:  Requests: 28438 susceed, 298 failed. 会有300左右个失败, 经过在网上查找是nginx配置文件需要添加 proxy_ignore_client_abort on;. 解释如下

nginx通过unix-domain-socket连接fastcgi

添加上这行配置以后 结果如下:Requests: 28463 susceed, 39 failed.,  失败率明显减少很多了!!

虽然减少了 但是还是有,后来修改了nginx的衍生进程数就好了worker_processes  5; (以前默认是1) .

但是查看nginx的访问日志会发现有一些499和502错误, 449错误的原因一般是客户端或者服务端断开了连接!  502 错误一般是php解析压力过大导致.  



转载于:https://my.oschina.net/denglz/blog/159103