欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  php教程

Windows下 nginx+php快速配置及性能测试

程序员文章站 2022-06-04 15:37:08
...

一、Windowsnginxphp环境配置: 1.下载php-5.3.16-nts-Win32-VC9-x86.zip(nts-非线程安全,nginx需要php的cgi模式运行),解压缩至d:\wnmp\php5 2.配置php.ini(可以将php.ini-development复制成php.ni,然后主要是4个位置配置): extension_dir = D:/wnmp/p

一、Windows+nginx+php环境配置:

1.下载php-5.3.16-nts-Win32-VC9-x86.zip(nts-非线程安全,nginx需要php的cgi模式运行),解压缩至d:\wnmp\php5

2.配置php.ini(可以将php.ini-development复制成php.ni,然后主要是4个位置配置):

extension_dir = "D:/wnmp/php5/ext"

extension=php_mysql.dll
...

cgi.fix_pathinfo=1

doc_root ="D:/wnmp/wwwroot"

3.下载nginx-1.3.4.zip Windows版,解压至d:\wnmp\nginx

4.配置nginx.conf,主要是站点目录和启用php:

location / {
            root   D:/wnmp/wwwroot; #站点根目录
            index  index.html index.htm;
        }

# 去掉注释,指明目录
location ~ \.php$ {
            root           D:/wnmp/wwwroot;
            fastcgi_pass   127.0.0.1:9000;
            fastcgi_index  index.php;
            fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
            include        fastcgi_params;
        }

配置就这么简单。


二、运行

1.运行php:

@echooff
echo Starting php...
php5\php-cgi.exe -b 127.0.0.1:9000 -c D:/wnmp/php5/php.ini

2.运行nginx:
@echooff
echo Starting nginx
nginx.exe -p D:/wnmp/nginx

3.停止php和nginx:
@echooff
echo Stopping nginx...  
taskkill /F /IM nginx.exe > nul
echo Stopping PHP FastCGI...
taskkill /F /IM php-cgi.exe > nul
pause
exit

三、性能测试

apache是xampp包,可能有些优化,nginx纯粹按上面的手工配置,感觉php-cgi不稳定

1.html测试:

ab -n 200000 -c 20 -k http://localhost/test/index.htm

apache,7945.38个请求每秒.

D:\xampp\apache\bin>ab -n 200000 -c 20 -k http://localhost/test/index.htm
This is ApacheBench, Version 2.3 
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Licensed to The Apache Software Foundation, http://www.apache.org/

Benchmarking localhost (be patient)
Completed 20000 requests
Completed 40000 requests
Completed 60000 requests
Completed 80000 requests
Completed 100000 requests
Completed 120000 requests
Completed 140000 requests
Completed 160000 requests
Completed 180000 requests
Completed 200000 requests
Finished 200000 requests


Server Software:        Apache/2.2.21
Server Hostname:        localhost
Server Port:            80

Document Path:          /test/index.htm
Document Length:        42354 bytes

Concurrency Level:      20
Time taken for tests:   25.172 seconds
Complete requests:      200000
Failed requests:        0
Write errors:           0
Keep-Alive requests:    198031
Total transferred:      8544538023 bytes
HTML transferred:       8471021747 bytes
Requests per second:    7945.38 [#/sec] (mean)
Time per request:       2.517 [ms] (mean)
Time per request:       0.126 [ms] (mean, across all concurrent requests)
Transfer rate:          331492.01 [Kbytes/sec] received

Connection Times (ms)
              min  mean[+/-sd] median   max
Connect:        0    0   0.2      0      16
Processing:     0    3   5.8      0      31
Waiting:        0    2   5.0      0      31
Total:          0    3   5.8      0      31

Percentage of the requests served within a certain time (ms)
  50%      0
  66%      0
  75%      0
  80%      0
  90%     16
  95%     16
  98%     16
  99%     16
 100%     31 (longest request)

nginx,6986个请求每秒

D:\xampp\apache\bin>ab -n 200000 -c 20 -k http://localhost:8080/index.htm
This is ApacheBench, Version 2.3 
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Licensed to The Apache Software Foundation, http://www.apache.org/

Benchmarking localhost (be patient)
Completed 20000 requests
Completed 40000 requests
Completed 60000 requests
Completed 80000 requests
Completed 100000 requests
Completed 120000 requests
Completed 140000 requests
Completed 160000 requests
Completed 180000 requests
Completed 200000 requests
Finished 200000 requests


Server Software:        nginx/1.3.4
Server Hostname:        localhost
Server Port:            8080

Document Path:          /index.htm
Document Length:        42354 bytes

Concurrency Level:      20
Time taken for tests:   28.641 seconds
Complete requests:      200000
Failed requests:        0
Write errors:           0
Keep-Alive requests:    198012
Total transferred:      8519030702 bytes
HTML transferred:       8471038962 bytes
Requests per second:    6983.09 [#/sec] (mean)
Time per request:       2.864 [ms] (mean)
Time per request:       0.143 [ms] (mean, across all concurrent requests)
Transfer rate:          290474.31 [Kbytes/sec] received

Connection Times (ms)
              min  mean[+/-sd] median   max
Connect:        0    0   0.1      0      16
Processing:     0    3   6.1      0      47
Waiting:        0    2   4.8      0      31
Total:          0    3   6.1      0      47

Percentage of the requests served within a certain time (ms)
  50%      0
  66%      0
  75%      0
  80%      0
  90%     16
  95%     16
  98%     16
  99%     16
 100%     47 (longest request)

2.php测试

ngnix下的php-cgi直接奔溃,apache大概600个请求每秒。

怎么感觉还是apache好啊!?配置上有问题?