nginx模块

  • 官方模块
  • 第三方模块

下图所示的是一个nginx从编译,语法检查到重载的过程

重载完以后 执行ip -a命令查看网卡地址

在浏览器中拼接mystatus 就可以查看一些请求相关信息(这里mystatus 使用的是一个在default.conf中自定义的location地址),server是握手数,accepts是请求的连接数

handled requests是总的连接数;server和accepts相等说明没有丢包

Active connections是当前活跃的连接数

reading---当前进行读操作的连接数

writing----往nginx写入的连接数

waiting----长连接的情况下客户端与服务端之间等待的状态

  • 一个能随机向访问用户提供主页的参数 random_index_module

 

 

如下所示:root对应我们随意建好的一个文件夹,

random_index 我们选择on 就可以向用户随机展示索引页面

 

注意,有一种隐藏的页面文件是无法作为随机展示页面的(传统文件都会命名为xxxx.html 但有一种 .xxxx.html是隐藏文件 )

  • 内容替换

过滤器,可以加在http{} server{} 或location{}中

 

上图所示:subfilter 后的第一个参数是替换之前的内容,第二个参数是替换之后的内容;sub_filter_once参数是指是否所有内容都要被替换,还是只替换一次(通常是网页标签中的第一个此内容)

  • limit_conn_zone 连接限制

http请求三次握手

下图所示:limit_conn_zone表示连接参数 key zone=name 定义了该链接的名称 size是带宽;底下的number表示连接数量

  • limit_req_zone 请求限制

下图中,1m代表服务器1m的空间内,对于同一远程客户端,1r/s 代表每秒钟处理1次请求

$binary_remote_addr是一远程地址;remote_addr也是远程地址,然而binary开头的地址节省10个字节的空间,对于成百上千的请求来说,这种节省也是十分可观的。

压力测试工具 ab是一种测试工具, -n 总共的请求数  -c并发的请求数 下入所示是对目标网络地址发起的请求

 

测试一

default.conf文件配置如下:

 

测试default.cont 语法是否有误 :语法nginx -t -c 并且nginx -s reload -c,这样做可能是因为nginx中加载了default.conf文件的缘故

再度发起测试

 

 结果如下;有4条请求执行完毕,这说明存在了超时的现象

查看AB端的提示信息:compieted requests表明提交的20条请求(Concurrency Level)执行完毕,但是Non-2xx又显示19条没有拿到状态为200的结果,所以真正成功执行的只有1条请求。

 

再次修改default.conf,burst = 3代表有3条请求可以延时响应,nodelay表示其余的请求不响应

 ab端显示的测试结果

  • 连接的限制 limit_conn-----同一时刻只允许一个连接

查看ab端的日志,20条请求里,只有3条执行失败,这说明连接限制(limit_conn)的政策要比请求限制(limit_req)政策宽松得多,这是因为一次连接中可能包含了多个请求!

 

posted @ 2018-10-23 14:54  saintdingtheGreat  阅读(152)  评论(0编辑  收藏  举报