配置Nginx开启高效传输模式

1.配置nginx
vi /usr/local/nginx/conf/nginx.conf
http {
......
sendfile	on;
tcp_nopush  on;
keepalive_timeout  65;
tcp_nodelay on;
client_header_timeout 15;
client_body_timeout 15;
send_timeout 15;
......
}

#检查nginx配置文件
nginx -t
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful

#重启nginx服务
nginx -s reload
参数名称参数说明
sendfile onsendfile on 用于开启文件高效传输模式,同时将tcp_nopush on 和tcp_nodelay on 两个指令设置为on,可防止网络及磁盘I/O阻塞,提升Nginx工作效率;注意:如果图片显示不正常把这个改成off
tcp_nopush on在sendfile开启模式才有效,设置数据包会累积一下再一起传输,可以提高一些传输效率,积极的减少网络报文段的数量
keepalive_timeout 65一个请求完成之后还要保持连接多久,不是请求时间多久,目的是保持长连接,减少创建连接过程给系统带来的性能损耗,类似于线程池,数据库连接池
tcp_nodelay on最核心的功能,就是把小包组成成大包,提高带宽利用率
client_header_timeout 15指定客户端与服务端建立连接后发送 request body 的超时时间。如果客户端在指定时间内没有发送任何内容,Nginx 返回 HTTP 408(Request Timed Out),默认是60秒
client_body_timeout 15客户端向服务端发送一个完整的 request header 的超时时间。如果客户端在指定时间内没有发送一个完整的 request header,Nginx 返回 HTTP 408(Request Timed Out),默认60秒
send_timeout 15指在客户端两次读取数据时,发送数据至客户端超时,默认60s, 如果连续的60s内客户端没有收到1个字节, 连接关闭

2.在另一台主机进压力测试

听说Nginx可以连接10万个请求,那我就来尝试一下

先在Nginx主机上删除原来的访问日志,再重启一下Nginx,然后就可以用访问日志做统计的访问量

#删除访问日志
rm   /usr/local/nginx/logs/access.log 

#重启Nginx会自动生成访问日志
nginx -s reload

前期工作准备好了,那我们开始测试了!

再另一台主机上测试

ab -n 100000 -c 1020  http://172.25.0.20/
This is ApacheBench, Version 2.3 <$Revision: 1430300 $>
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Licensed to The Apache Software Foundation, http://www.apache.org/

Benchmarking 172.25.0.20 (be patient)
Completed 10000 requests
Completed 20000 requests
Completed 30000 requests
Completed 40000 requests
Completed 50000 requests
Completed 60000 requests
Completed 70000 requests
Completed 80000 requests
Completed 90000 requests
Completed 100000 requests
Finished 100000 requests


Server Software:        nginx/1.18.0
Server Hostname:        172.25.0.20
Server Port:            80

Document Path:          /
Document Length:        4247 bytes

Concurrency Level:      1020
Time taken for tests:   16.232 seconds
Complete requests:      100000
Failed requests:        0
Write errors:           0
Total transferred:      448200000 bytes
HTML transferred:       424700000 bytes
Requests per second:    6160.79 [#/sec] (mean)
Time per request:       165.563 [ms] (mean)
Time per request:       0.162 [ms] (mean, across all concurrent requests)
Transfer rate:          26965.48 [Kbytes/sec] received

Connection Times (ms)
              min  mean[+/-sd] median   max
Connect:        0   56 248.9      2    7018
Processing:     1   94 170.8     61    3296
Waiting:        1   92 170.5     59    3295
Total:          2  150 307.5     68    7093

Percentage of the requests served within a certain time (ms)
  50%     68
  66%     81
  75%     93
  80%    105
  90%    232
  95%   1056
  98%   1095
  99%   1242
 100%   7093 (longest request)

在Nginx主机上统计访问数量

#统计访问的日志数量
 cat  /usr/local/nginx/logs/access.log | wc -l
200000

#查看最后几条记录
tail  /usr/local/nginx/logs/access.log 
172.25.0.100 - - [29/Jun/2020:23:50:31 +0800] "GET / HTTP/1.0" 200 4247 "-" "ApacheBench/2.3"
172.25.0.100 - - [29/Jun/2020:23:50:31 +0800] "GET / HTTP/1.0" 200 4247 "-" "ApacheBench/2.3"
172.25.0.100 - - [29/Jun/2020:23:50:31 +0800] "GET / HTTP/1.0" 200 4247 "-" "ApacheBench/2.3"
172.25.0.100 - - [29/Jun/2020:23:50:31 +0800] "GET / HTTP/1.0" 200 4247 "-" "ApacheBench/2.3"
172.25.0.20 - - [29/Jun/2020:23:50:32 +0800] "GET /first.html HTTP/1.0" 200 4247 "-" "ApacheBench/2.3"
172.25.0.20 - - [29/Jun/2020:23:50:32 +0800] "GET /first.html HTTP/1.0" 200 4247 "-" "ApacheBench/2.3"
172.25.0.20 - - [29/Jun/2020:23:50:32 +0800] "GET /first.html HTTP/1.0" 200 4247 "-" "ApacheBench/2.3"
172.25.0.100 - - [29/Jun/2020:23:50:32 +0800] "GET / HTTP/1.0" 200 4247 "-" "ApacheBench/2.3"
172.25.0.100 - - [29/Jun/2020:23:50:32 +0800] "GET / HTTP/1.0" 200 4247 "-" "ApacheBench/2.3"
172.25.0.100 - - [29/Jun/2020:23:50:32 +0800] "GET / HTTP/1.0" 200 4247 "-" "ApacheBench/2.3"

我做了代理所以会有双倍数的出现

Nginx性能很好…

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

路来了

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值