$ 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 指令,来改变该文件的位置。
主进程可以处理以下的信号:
命令 | 说明 | 备注 |
---|---|---|
TERM, INT | 快速关闭 | |
QUIT | 从容关闭 | |
HUP | 重载配置 | 用新的配置开始新的工作进程 从容关闭旧的工作进程 |
USR1 | 重新打开日志文件 | |
USR2 | 平滑升级可执行程序 | |
WINCH | 从容关闭工作进程 |
下载http://www.lighttpd.net/download/lighttpd-1.4.19.tar.gz
./configure make cp ./src/spawn-fcgi /usr/local/nginx/sbin/
下载http://www.fastcgi.com/dist/fcgi.tar.gz
./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; }
编译后为FastCGISameple
/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.conf
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
安装:
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
from http://blog.csdn.net/marising/article/details/3932938#