内容简介:获取全套nginx教程,请访问小菜简单介绍nginx模块,模块太多,就不一一介绍。这里是nginx的所有模块nginx模块在编译的时候就作为选项被添加进去,查看添加哪些模块
获取全套nginx教程,请访问 瓦力博客
小菜简单介绍nginx模块,模块太多,就不一一介绍。这里是nginx的所有模块 http://nginx.org/en/docs/ {:target="_blank"}。在后面的操作中用到了 ab
压力测试工具,不会的伙伴请查看ab{:target="_blank"}这篇博客
nginx模块在编译的时候就作为选项被添加进去,查看添加哪些模块
nginx -V
1.http_stub_status_module配置
syntax: stub_status; default: - contentx: server,location
下面小菜配置到自己walidream.com的域名下,展示一下做什么用处的。根据语法知道配置在server,和location下,小菜就配置location下面
cd /etc/nginx/conf.d/ vim server1.conf
将这段代码添加到 location /
下面
location /mystatus { stub_status; }
然后在浏览器上输入walidream.com/mystatus
ssl
Active connections: 2 #连接数 server accepts handled requests 94 94 86 #总握手次数 总连接数 总请求数 Reading: 0 Writing: 1 Waiting: 1 #读的数 写的数 等待的数
2.random_index_module
语法
syntax: random_index on|off; default: random_index off; context: location
随机的获取目录下面后缀为 .html
,进入配置
location / { root /var/share/nginx/html/server; random_index on; }
在/var/share/nginx/html/server目录下新建1.html,2.html,3.html内容分别为
<!--这个是1.html内容 --> <!doctype html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> </head> <body style="background:red;"> </body> </html> <!--这个是2.html内容 --> <!doctype html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> </head> <body style="background:blue;"> </body> </html> <!--这个是3.html内容 --> <!doctype html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> </head> <body style="background:blank;"> </body> </html>
然后在浏览器输入 walidream.com,多按几次f5刷新看看:
3.http_sub_module
替换返回html的内容
1.sub_filter 作用是替换返回html的内容
syntax: sub_filter string replacement; default: - contentx: http,server,location
2.sub_filter_last_modified用来校验服务端的html内容是否有更新,主要用于缓存
syntax: sub_filter_last_modified on|off; default: sub_filter_last_modified off; context: http,server,location
3.sub_filter_once 只匹配第一个还是匹配所有
syntax: sub_filter_once on|off; default: sub_filter_once on; contentx: http,server,location;
4.sub_filter_types 替换的类型
Syntax: sub_filter_types mime-type ...; Default: sub_filter_types text/html; Context: http, server, location
除了 text/html
之外,还在具有指定MIME类型的响应中启用字符串替换。特殊值 *
匹配任何MIME类型。
示例配置
将返回内容中 Golang
字符串替换成 Nginx
,只匹配一次。
location / { root /opt/app/code; index sub_module.html sub_module.htm; sub_filter 'Golang' 'Nginx'; sub_filter_once on; }
4.http_limit_conn_module
连接频率限制
1.limit_conn
Syntax: limit_conn zone number; Default: — Context: http, server, location
2.limit_conn_log_level
Syntax: limit_conn_log_level info | notice | warn | error; Default: limit_conn_log_level error; Context: http, server, location
3.limit_conn_status
Syntax: limit_conn_status code; Default: limit_conn_status 503; Context: http, server, location
4.limit_conn_zone
Syntax: limit_conn_zone key zone=name:size; Default: — Context: http
5.limit_zone
Syntax: limit_zone name $variable size; Default: — Context: http
示例配置
$binary_remote_addr
比 remote_addr
占用的字节少。
limit_conn_zone $binary_remote_addr zone=conn_zone:1m; server { listen 80; server_name walidream.com; location / { root /opt/app/code; limit_conn conn_zone 1; index sub_module.html sub_module.htm; } }
用压力测试工具 ab
进行压力测试。
ab -n 100 -c 20 http://walidream/sub_module.html
5.limit_req_module
请求频率限制
1.limit_req
Syntax: limit_req zone=name [burst=number] [nodelay | delay=number]; Default: — Context: http, server, location
2.limit_req_log_level
Syntax: limit_req_log_level info | notice | warn | error; Default: limit_req_log_level error; Context: http, server, location
3.limit_req_status
Syntax: limit_req_status code; Default: limit_req_status 503; Context: http, server, location
4.limit_req_zone
Syntax: limit_req_zone key zone=name:size rate=rate [sync]; Default: — Context: http
示例配置
$binary_remote_addr
比 remote_addr
占用的字节少。
limit_req_zone $binary_remote_addr zone=req_zone:1m rate=1r/s; server { listen 80; server_name walidream.com; location / { root /opt/app/code; #limit_req zone=req_zone burst=3 nodelay; #limit_req zone=req_zone burst=3 nodelay; #limit_req zone=req_zone burst=3; limit_req zone=req_zone; index sub_module.html sub_module.htm; } }
用压力测试工具 ab
进行压力测试。
ab -n 100 -c 20 http://walidream/sub_module.html
输出
Server Software: nginx/1.14.1 Server Hostname: walidream.com Server Port: 80 Document Path: /sub_module.html Document Length: 143 bytes Concurrency Level: 20 Time taken for tests: 1.009 seconds Complete requests: 100 Failed requests: 98 (Connect: 0, Receive: 0, Length: 98, Exceptions: 0) Write errors: 0 Non-2xx responses: 98 Total transferred: 72388 bytes HTML transferred: 52912 bytes Requests per second: 99.06 [#/sec] (mean) Time per request: 201.895 [ms] (mean) Time per request: 10.095 [ms] (mean, across all concurrent requests) Transfer rate: 70.03 [Kbytes/sec] received Connection Times (ms) min mean[+/-sd] median max Connect: 0 10 100.0 0 1001 Processing: 0 1 0.1 1 2 Waiting: 0 1 0.2 1 2 Total: 1 12 99.9 2 1001 Percentage of the requests served within a certain time (ms) 50% 2 66% 2 75% 2 80% 2 90% 2 95% 2 98% 3 99% 1001 100% 1001 (longest request)
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:- Node.js模块系统 (创建模块与加载模块)
- 黑客基础,Metasploit模块简介,渗透攻击模块、攻击载荷模块
- 022.Python模块序列化模块(json,pickle)和math模块
- 024.Python模块OS模块
- 023.Python的随机模块和时间模块
- Laravel 模块化开发模块 – Caffienate
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Programming Ruby中文版
托马斯 / 孙勇、姚延栋、张海峰 / 电子工业出版社 / 2007-3 / 99.00元
《Programming Rudy》(中文版)(第2版)是它的第2版,其中包括超过200页的新内容,以及对原有内容的修订,涵盖了Ruby 1.8中新的和改进的特性以及标准库模块。它不仅是您学习Ruby语言及其丰富特性的一本优秀教程,也可以作为日常编程时类和模块的参考手册。Ruby是一种跨平台、面向对象的动态类型编程语言。Ruby体现了表达的一致性和简单性,它不仅是一门编程语言,更是表达想法的一种简......一起来看看 《Programming Ruby中文版》 这本书的介绍吧!