Windows下 nginx+php快速配置及性能测试
一、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好啊!?配置上有问题?

Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

AI Hentai Generator
Generate AI Hentai for free.

Hot Article

Hot Tools

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Hot Topics



Yes, MySQL can be installed on Windows 7, and although Microsoft has stopped supporting Windows 7, MySQL is still compatible with it. However, the following points should be noted during the installation process: Download the MySQL installer for Windows. Select the appropriate version of MySQL (community or enterprise). Select the appropriate installation directory and character set during the installation process. Set the root user password and keep it properly. Connect to the database for testing. Note the compatibility and security issues on Windows 7, and it is recommended to upgrade to a supported operating system.

Solving the problem of slow Photoshop startup requires a multi-pronged approach, including: upgrading hardware (memory, solid-state drive, CPU); uninstalling outdated or incompatible plug-ins; cleaning up system garbage and excessive background programs regularly; closing irrelevant programs with caution; avoiding opening a large number of files during startup.

How to implement Windows-like in front-end development...

Pull vertical guides in Photoshop: Enable ruler view (View > ruler). Hover the mouse over the vertical edge of the ruler, and then the cursor becomes a vertical line with double arrows and hold and drag the mouse to pull out the reference line. Click Delete by dragging the guide, or hovering it into a cross.

The solution to MySQL installation error is: 1. Carefully check the system environment to ensure that the MySQL dependency library requirements are met. Different operating systems and version requirements are different; 2. Carefully read the error message and take corresponding measures according to prompts (such as missing library files or insufficient permissions), such as installing dependencies or using sudo commands; 3. If necessary, try to install the source code and carefully check the compilation log, but this requires a certain amount of Linux knowledge and experience. The key to ultimately solving the problem is to carefully check the system environment and error information, and refer to the official documents.

The main reasons for MySQL installation failure are: 1. Permission issues, you need to run as an administrator or use the sudo command; 2. Dependencies are missing, and you need to install relevant development packages; 3. Port conflicts, you need to close the program that occupies port 3306 or modify the configuration file; 4. The installation package is corrupt, you need to download and verify the integrity; 5. The environment variable is incorrectly configured, and the environment variables must be correctly configured according to the operating system. Solve these problems and carefully check each step to successfully install MySQL.

Unable to access MySQL from the terminal may be due to: MySQL service not running; connection command error; insufficient permissions; firewall blocks connection; MySQL configuration file error.

The MySQL connection may be due to the following reasons: MySQL service is not started, the firewall intercepts the connection, the port number is incorrect, the user name or password is incorrect, the listening address in my.cnf is improperly configured, etc. The troubleshooting steps include: 1. Check whether the MySQL service is running; 2. Adjust the firewall settings to allow MySQL to listen to port 3306; 3. Confirm that the port number is consistent with the actual port number; 4. Check whether the user name and password are correct; 5. Make sure the bind-address settings in my.cnf are correct.
