http://blog.csdn.net/marising/article/details/3932938html
$ sudo nginx -t 2008/03/12 19:15:11 info 12384#0: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok 2008/03/12 19:15:11 info 12384#0: the configuration file /usr/local/nginx/conf/nginx.conf was tested successfully
/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
$ ps -ef | grep "nginx: master process"
| grep -v "grep"
| awk -F ' ' '{print $2}
26010
$sudo kill -HUP 26010
經過系統的信號控制 Nginx
能夠使用信號系統來控制主進程。默認,nginx 將其主進程的 pid 寫入到 /usr/local/nginx/logs/nginx.pid 文件中。經過傳遞參數給 ./configure 或使用 pid 指令,來改變該文件的位置。
主進程能夠處理如下的信號:java
命令 | 說明 | 備註 |
---|---|---|
TERM, INT | 快速關閉 | |
QUIT | 從容關閉 | |
HUP | 重載配置 | 用新的配置開始新的工做進程 從容關閉舊的工做進程 |
USR1 | 從新打開日誌文件 | |
USR2 | 平滑升級可執行程序 | |
WINCH | 從容關閉工做進程 |
下載http://www.lighttpd.net/download/lighttpd-1.4.19.tar.gzios
./configure make cp ./src/spawn-fcgi /usr/local/nginx/sbin/
下載http://www.fastcgi.com/dist/fcgi.tar.gznginx
./configure make make install
#include <iostream> #include <fcgi_stdio.h>
using namespace std;
int main() {
/* Initialization Code */
int count = 0;
/* Start of response loop */
while (FCGI_Accept() >= 0)
{
//* body of response loop /*/
printf("Content-type: text/html/r/n" "/r/n" ""
"FastCGI Hello/! (C, fcgi_stdio library)" "Request number %d running on host %s " "Process ID: %d/n", /++count, getenv("SERVER_NAME"), getpid()); }
/* End of response loop */ return 0;
}
編譯後爲FastCGISamepleweb
/usr/local/nginx/sbin/spawn-fcgi -a 127.0.0.1 -p 9000 -C 25 -u www -f /usr/local/nginx/fcgi/FactCGISample
vi /usr/local/nginx/conf/nginx.confapache
location ~ /.cgi$
{
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.cgi;
fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;
include fastcgi_params;
}
別忘了,從新加載配置文件瀏覽器
$sudo kill -HUP 26010
打開瀏覽器,輸入http://localhost/1.cgi ,就顯示併發
FastCGI Hello! (C, fcgi_stdio library)Request number 1 running on host localhost Process
ID: 25473
下載:http://home.tiscali.cz:8080/~cz210552/distfiles/webbench-1.5.tar.gz工具
安裝:oop
tar zxvf webbench-1.5.tar.gz cd webbench-1.5
make && make install
使用:
webbench -c 500 -t 30 http://127.0.0.1/test.jpg
500是併發鏈接數,30是時間單位是秒
用ab測試的結果,在個人虛擬機上,看起來性能很不錯
(Apache Bench是Apache自帶的工具包)
ab -n 10000 -c 100 http://127.0.0.1/1.cgi
This is ApacheBench, Version 2.3 <$Revision: 655654 $>
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Licensed to The Apache Software Foundation, http://www.apache.org/
Benchmarking 127.0.0.1 (be patient)
Completed 1000 requests
Completed 2000 requests
Completed 3000 requests
Completed 4000 requests
Completed 5000 requests
Completed 6000 requests
Completed 7000 requests
Completed 8000 requests
Completed 9000 requests
Completed 10000 requests
Finished 10000 requests
Server Software: nginx/0.7.38
Server Hostname: 127.0.0.1
Server Port: 80
Document Path: /1.cgi
Document Length: 143 bytes
Concurrency Level: 100
Time taken for tests: 3.982 seconds
Complete requests: 10000
Failed requests: 8399
(Connect: 0, Receive: 0, Length: 8399, Exceptions: 0)
Write errors: 0
Total transferred: 2658399 bytes
HTML transferred: 1438399 bytes
Requests per second: 2511.06 [#/sec] (mean)
Time per request: 39.824 [ms] (mean)
Time per request: 0.398 [ms] (mean, across all concurrent requests)
Transfer rate: 651.89 [Kbytes/sec] received
Connection Times (ms)
min mean[+/-sd] median max
Connect: 0 1 4.6 0 51
Processing: 22 39 6.8 36 93
Waiting: 4 39 6.8 36 93
Total: 24 39 8.2 36 97
Percentage of the requests served within a certain time (ms)
50% 36
66% 39
75% 41
80% 42
90% 48
95% 54
98% 70
99% 84
100% 97 (longest request)
模塊列表
http://wiki.codemongers.com/NginxModules
FastCGI模塊源碼:nginx/src/http/modules/ngx_http_fastcgi_module.c