Nginx模块讲解

Nginx模块分为:nginx官方模块、第三方模块

通过nginx -V查看编译参数,可以看到官方编译的模块

--with-compat 
--with-file-aio 
--with-threads 
--with-http_addition_module 
--with-http_auth_request_module 
--with-http_dav_module 
--with-http_flv_module 
--with-http_gunzip_module 
--with-http_gzip_static_module 
--with-http_mp4_module 
--with-http_random_index_module 
--with-http_realip_module 
--with-http_secure_link_module 
--with-http_slice_module 
--with-http_ssl_module 


--with-http_stub_status_module 
作用:nginx的客户端连接状态
Syntax:stub_status;
Default:——
Context:server,location
--with-http_sub_module 
--with-http_v2_module 
--with-mail 
--with-mail_ssl_module 
--with-stream 
--with-stream_realip_module 
--with-stream_ssl_module 
--with-stream_ssl_preread_module 
--with-cc-opt='-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong 
--param=ssp-buffer-size=4 -grecord-gcc-switches -m64 -mtune=generic -fPIC' 
--with-ld-opt='-Wl,-z,relro -Wl,-z,now -pie'

--with-http_stub_status_module
作用:nginx的客户端连接状态

Syntax:stub_status

Default:——

Context:server,location

演示:

vi /etc/nginx/conf.d/default.conf

配置如图下:

location /mystatus {
        stub_status;
        }

使用配置是否正确

nginx -tc /etc/nginx/nginx.conf

然后重载服务

nginx -s reload -c /etc/nginx/nginx.conf

在浏览器中输入ip+路径

http://192.168.96.188/mystatus

Active connections: 1    #当前活跃的连接数
server accepts handled requests
 1 1 1    # 第一个值代表握手总次数;第二个值代理处理的连接数;第三个值是总的请求数;(握手次数一般都等于连接数,代表连接没有丢失)
Reading: 0 Writing: 1 Waiting: 0 #读、写、等待

--with-http_random_index_module

作用:目录中选择一个随机主页

Syntax:random_index on | off

Default:random_index off

Context:location

演示:

在/opt/app/code目录下定义3个html文件1.html、2.html、3.html

分别复制如下代码

<html>
<head>
        <meta charset="utf-8">
        <title>imooc1</title>
</head>
<body style="">        # 红色
</body>
</html>


<html>
<head>
	<meta charset="utf-8">
	<title>imooc1</title>
</head>
<body style="">        #黑色
</body>
</html>


<html>
<head>
	<meta charset="utf-8">
	<title>imooc1</title>
</head>
<body style="">      #蓝色
</body>
</html>


修改配置文件

vi /etc/nginx/conf.d/default.conf

 location / {
        root   /opt/app/code;
        random_index on;
        #index  index.html index.htm;
    }

查看配置是否正确

nginx -tc /etc/nginx/nginx.conf

然后重载服务

nginx -s reload -c /etc/nginx/nginx.conf

在浏览器中访问ip,刷新页面就会变颜色了

--with-http_sub_module

作用:http内容替换

#1语法

Syntax:sub_filter string replacement

Default:——

Context:http,server,location

#2语法

Syntax:sub_filter_last_modified on|off

Default:sub_filter_last_modified off

Context:server,location

#3语法

Syntax:sub_filter_last_once on | off

Default:sub_filter_last_once on

Context:http,server,location

演示:

在/opt/app/code目录下添加html文件

复制如下代码,保存
<html>
<head>
        <meta charset="utf-8">
        <title>submodules</title>
</head>
<body>
        <a>joy</a>
        <a>at</a>
        <a>imooc</a>
        <a>joy</a>
        <a>imooc</a>
</head>
</body>
</html>

访问 192.168.96.188/submodule.html。

通过配置语法替换“imooc“”的内容为“IMOOC_JOY”

vi /etc/nginx/conf.d/default.conf

加入下列代码

location / {
   root   /opt/app/code;
   index  index.html index.htm;
   sub_filter '<a>imooc' '<a>IMOOC_JOY';  #sub_filter 后面添加需要替换内容,已经替换后的内容
    }

访问 192.168.96.188/submodule.html

默认只替换一个

如果替换全部,加入新的语法

location / {
        root   /opt/app/code;
        index  index.html index.htm;
        sub_filter '<a>imooc' '<a>IMOOC_JOY';
        sub_filter_once off;        #在原有基础加上此模块,off 关闭
    }

保存访问地址,记得强刷或者清理缓存,此时内容全部替换

原文地址:https://www.cnblogs.com/joy-sir/p/12162379.html