介绍
Nginx模块分为:
- Nginx官方模块
- 第三方模块
本节主要介绍Nginx官方模块。主要就是--with
。
一、_sub_status模块
编译选项 | 作用 |
---|---|
–with-http_stub_status_module | Nginx的客户端状态 |
这个模块主要用于展示nginx当前处理连接的状态,用于监控nginx当前的连接信息。配置语法:
1 | Syntax: stub_status; |
示例:default.conf
1 | server { |
检查语法
1
2
3[root@node1 conf.d]# nginx -tc /etc/nginx/nginx.conf
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful重载服务
1
[root@node1 conf.d]# nginx -s reload -c /etc/nginx/nginx.conf
访问测试,浏览器访问:
1
2
3
4
5
6192.168.x.xxx/mystatus
Active connections: 1 // nginx当前活跃的连接数
server accepts handled requests
1 1 1 // nginx处理的接收的握手的总次数 nginx所处理的连接数 总的请求数
Reading: 0 Writing: 1 Waiting: 0 // 正在读的个数 正在往nginx写的个数 等待个数(主要是在nginx开启了keep alive长连接的情况下,客户端和服务端正在空闲的等待,建立连接的数量)
二、_random_index模块
编译选项 | 作用 |
---|---|
–with-http_random_index_module | 目录中选择一个随机主页 |
这个模块主要用于在主目录中随机选择一个文件作为主页。配置语法:
1 | Syntax: random_index on|off; |
示例:
新建3个html文件
在/opt/app/code目录下新建red.html,black.html和blue.html。内容如下
1
2
3
4
5
6
7
8<html>
<head>
<meta charset="utf-8">
<title>duan1</title>
</head>
<body style="background-color:red;">
</body>
</html>将该目录配置在default.conf中。
修改配置default.conf
1
2
3
4
5
6
7server {
location / {
root /opt/app/code;
random_index on;
#index index.html index.htm;
}
}重载服务
1
2
3
4[root@node1 conf.d]# nginx -tc /etc/nginx/nginx.conf
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
[root@node1 conf.d]# systemctl reload nginx访问测试,多次访问观察页面颜色变化:
1
192.168.x.xxx
nginx会随机选择一个html文件作为主页,但是不会选择一个隐藏文件,我们将blue.html文件隐藏测试:
1
2
3
4
5
6
7
8[root@node1 conf.d]# cd /opt/app/code/
[root@node1 code]# ls
black.html blue.html red.html
[root@node1 code]# mv blue.html .blue.html
[root@node1 code]# ls
black.html red.html
[root@node1 code]# ls -a
. .. black.html .blue.html red.html再次访问则不会出现blue颜色的页面。
三、_sub_module模块
编译选项 | 作用 |
---|---|
–with-http_sub_module | http内容替换 |
这个模块用于nginx服务端在给客户端response http的内容的时候,用于对http的内容进行替换。应用场景:
nginx作为http server的时候,有多个虚拟主机,当我们需要对多个虚拟机返回的http内容进行替换时,一般依赖开发进行开发,周期是比较长的,但是用该模块可以将制定返回的内容替换成我们想要的内容,从而提高效率。配置语法:
1 | Syntax: sub_filter string replacement; //string表示需要替换的内容,replacement表示替换后内容 |
还有一个就是nginx服务端用于完成和客户端(浏览器)进行每一次请求的时候校验服务端的内容是否有发生过变更。这个里面一般记录一串时间记录在http头信息里。
1 | Syntax: sub_filter_last_modfiled on|off; |
还有一个就是匹配所有html代码里面的的第一个还是匹配所有指定的字符串,on表示匹配第一个。
1 | Syntax: sub_filter_once on|off; |
示例:sub_filter,sub_filter_once
新建一个submodules.html文件
1
2
3
4
5
6
7
8
9
10
11
12
13<html>
<head>
<meta charset="utf-8">
<title>submodules</title>
</head>
<body>
<a>duan</a>
<a>hello</a>
<a>world</a>
<a>哈</a>
<a>哈</a>
</body>
</html>用于替换!。
修改default.conf
1
2
3
4
5location / {
root /opt/app/code;
index index.html index.htm;
sub_filter '<a>哈' '<a>呵';
}重载服务
1
2
3
4[root@node1 conf.d]# nginx -tc /etc/nginx/nginx.conf
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
[root@node1 conf.d]# nginx -s reload -c /etc/nginx/nginx.conf访问测试:
1
http://192.168.x.xxx/submodule.html // duan hello world 呵 呵