1. 程式人生 > 實用技巧 >nginx通過unix-domain-socket連線fastcgi

nginx通過unix-domain-socket連線fastcgi

>>> hot3.png

網上都說這種方式比較快,今天有機會測試一下!!

先安裝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;. 解釋如下



新增上這行配置以後 結果如下:Requests: 28463 susceed, 39 failed., 失敗率明顯減少很多了!!

雖然減少了 但是還是有,後來修改了nginx的衍生程序數就好了worker_processes 5; (以前預設是1) .

但是檢視nginx的訪問日誌會發現有一些499和502錯誤, 449錯誤的原因一般是客戶端或者服務端斷開了連線! 502 錯誤一般是php解析壓力過大導致.



轉載於:https://my.oschina.net/denglz/blog/159103