下载Apache
1、下载地址:
http://httpd.apache.org/download.cgi
2、点击链接Files for Microsoft Windows:
安装步骤
1、先安装apache补丁
1)下载地址:
https://www.microsoft.com/zh-cn/download/confirmation.aspx?id=48145
2)如果没有安装,启动apache时,会报如下错误:
httpd 系统错误 无法启动此程序,因为计算机中丢失VCRUNTIME140.dll
2、将Apache压缩文件解压到D:/apache/目录下,比如,解压后目录为D:/apache/Apache24
3、修改conf/目录下的httpd.conf文件:
1)修改ServerRoot Apache的根路径:
改为:ServerRoot "D:/apache/Apache24"
2)修改ServerName主机名称:
改为:ServerName www.example.com:80
3)修改DocumentRoot Apache访问的主文件夹目录,就是php、html代码文件的位置。
Apache默认的路径是在htdocs(D:/Apache24/htdocs)下面,里面会有个简单的入口文件index.html。
这个路径可以自己进行修改,这里将其配置在我自己新建的文件夹www(D:/apache/www)下。
DocumentRoot "c:/Apache24/htdocs"
改为=>
DocumentRoot "D:/apache/www"
4)修改入口文件配置:DirectoryIndex一般情况下我们都是以index.php、index.html、index.htm作为web项目的入口。
Apache默认的入口只有index.html需要添加其他两个的支持,当然这个入口文件的设置可以根据自己的需要增减,
如果要求比较严格的话可以只写一个index.php,这样在项目里面的入口就只能是index.php
DirectoryIndex index.html
改为=>
DirectoryIndex index.html index.php index.htm
5)设定serverscript的目录:
ScriptAlias /cgi-bin/ "c:/Apache24/cgi-bin/"改为=> ScriptAlias /cgi-bin/ "D:/apache/Apache24/cgi-bin"
6)修改Directory标签:
AllowOverride None
Options None
Require all granted
改为
AllowOverride None
Options None
Require all granted
7)修改端口:
如果80端口被占用了,可以将80改成81,如果没有被占用,可以不用更改。
4、修改D:\apache\Apache24\conf\extra目录下的httpd-ahssl.conf文件:
将所有的${SRVROOT}替换成D:/apache/Apache24
5、修改D:\apache\Apache24\conf\extra目录下的httpd-ssl.conf文件:
将所有的443端口改成442。
6、启动Apache:
开始---运行,输入cmd,打开命令提示符。接着进入D:/apache/Apache24/bin目录下运行httpd
然后打开浏览器:输入127.0.0.1:80,如果出现内容,没有报错,说明安装成功。
7、把apache安装成windows后台服务:
进入D:/apache/Apache24/bin目录下:
执行:httpd -k install
8、 完成
压力测试
1、在Windows系统下,打开cmd命令行窗口
2、压力测试命令:
2.1)ab -n 800 -c 800 http://192.168.0.10/(-n发出800个请求,-c模拟800并发,相当800人同时访问,后面是测试url)
2.2)ab -t 60 -c 100 http://192.168.0.10/在60秒内发请求,一次100个请求。
2.3)如果需要在url中带参数,这样做 ab -t 60 -c 100 -T "text/plain" -p p.txt http://192.168.0.10/helloworld.html p.txt 是和ab.exe在一个目录 p.txt 中可以写参数,如 p=wdp&fq=78
3、键入命令进行测试:ab -n 1000 -c 800 http://192.168.0.10/
4、结果参数分析:
Completed 100 requests
Completed 200 requests
Completed 300 requests
Completed 400 requests
Completed 500 requests
Completed 600 requests
Completed 700 requests
Completed 800 requests
Finished 800 requests
Server Software: Microsoft-HTTPAPI/2.0
Server Hostname: 192.168.0.10
Server Port: 80
Document Path: /
//1HTTP响应数据的正文长度
Document Length: 315 bytes
Concurrency Level: 800
//2所有这些请求处理完成所花费的时间
Time taken for tests: 0.914 seconds
//3完成请求数
Complete requests: 800
//4失败请求数
Failed requests: 0
Write errors: 0
Non-2xx responses: 800
//5网络总传输量
Total transferred: 393600 bytes
//6内容传输量
HTML transferred: 252000 bytes HTML
//7吞吐量-每秒请求数
Requests per second: 875.22 [#/sec] (mean)
//8服务器收到请求,响应页面要花费的时间
Time per request: 914.052 [ms] (mean)
//9并发的每个请求平均消耗时间
Time per request: 1.143 [ms] (mean, across all concurrent requests)
//10平均每秒网络上的流量,可以帮助排除是否存在网络流量过大导致响应时间延长的问题
Transfer rate: 420.52 [Kbytes/sec] received
网络上消耗的时间的分解:
Connection Times (ms)
min mean[+/-sd] median max
Connect: 0 1 0.5 1 3
Processing: 245 534 125.2 570 682
Waiting: 11 386 189.1 409 669
Total: 246 535 125.0 571 684
整个场景中所有请求的响应情况。在场景中每个请求都有一个响应时间
其中 50% 的用户响应时间小于 571 毫秒
80 % 的用户响应时间小于 652 毫秒
最大的响应时间小于 684 毫秒
Percentage of the requests served within a certain time (ms)
50% 571
66% 627
75% 646
80% 652
90% 666
95% 677
98% 681
99% 682
100% 684 (longest request)
这部分数据用于描述每个请求处理时间的分布情况,比如以上测试,80%的请求处理时间都不超过6ms,这个处理时间是指前面的Time per request,即对于单个用户而言,平均每个请求的处理时间。