nginx模块

Posted shhnwangjian

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了nginx模块相关的知识,希望对你有一定的参考价值。

nginx模块

官方模块和第三方模块

 

官方模块

1、--with-http_stub_status_module:nginx的客户端状态

http_stub_status_module配置

语法:stub_status;

配置段:server、location

打开文件/etc/nginx/conf.d/default.conf

检查配置语法

nginx -tc /etc/nginx/nginx.conf 

重载服务

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

打开浏览器访问

http://192.168.137.11/mystatus

上面图片中内容介绍

  • Active connections:nginx当前活跃的连接数
  • server accepts handled requests:三个数分别表示nginx接收握手的总次数、nginx处理的连接总数、总请求数
  • Reading:正在读的
  • Writing:正在写的
  • Waiting:正在等待,开启keeplive后

 

2、--with-http_random_index_module:目录中选择一个随机主页

random_index_module配置

语法:random_index on|off;

默认:random_index off;

配置段:location

在/opt/app目录下准备不同的主页

重载nginx后,多次访问首页会显示不同主页

 

3、--with-http_sub_module:HTTP内容替换

http_sub_module配置

  • 替换内容

语法:sub_filter string replacement;

配置段:http、server、location

<html>
<head>
        <meta charset="utf-8">
</head>
<body>
<h1>shhnwangjian</h1></p>
<h1>shhnwangjian</h1></p>
<h1>shhnwangjian</h1>
</body>
</html>

  • 缓存场景

语法:sub_filter_last_modified on|off;

默认:sub_filter_last_modified off;

配置段:http、server、location

  • 匹配,匹配第一个字符串,off匹配所有内容

语法:sub_filter_once on|off;

默认:sub_filter_once on;

配置段:http、server、location

 

4、ngx_http_limit_conn_module 连接频率限制

limit_conn_module配置

  • 语法:limit_conn_zone $key zone=name:size;

配置段:http

该指令描述会话状态存储区域。键的状态中保存了当前连接数,键的值可以是特定变量的任何非空值(空值将不会被考虑)。$key定义键,zone=name定义区域名称,后面的limit_conn指令会用到的。size定义各个键共享内存空间大小。

  • 语法:limit_conn zone number

配置段:http、server、location

http://www.ttlsa.com/nginx/nginx-limited-connection-number-ngx_http_limit_conn_module-module/

 

5、ngx_http_limit_req_module请求频率限制

limit_req_module配置

  • 语法:limit_req_zone $key zone=name:size rate=rate;

配置段:http

设置一块共享内存限制域用来保存键值的状态参数。 特别是保存了当前超出请求的数量。 键的值就是指定的变量(空值不会被计算)。

  • 语法: limit_req zone=name [burst=number] [nodelay];

配置段: http, server, location

[burst=number] 表示 限制平均每秒不超过一个请求,同时允许超过频率限制的请求数不多于number个

如果不希望超过的请求被延迟,可以用nodelay参数

http://www.ttlsa.com/nginx/nginx-limiting-the-number-of-requests-ngx_http_limit_req_module-module/

 

6、ngx_http_access_module:基于IP的访问控制

http_access_module配置

  • allow

语法:     allow address | CIDR | unix: | all;

配置段:     http, server, location, limit_except

  • deny

语法:     deny address | CIDR | unix: | all;

配置段:     http, server, location, limit_except

http_access_module局限性

方法一:采用别的HTTP头信息控制访问,如:HTTP_X_FORWORD_FOR

方法二:结合geo模块

方法三:通过HTTP自定义变量传递

 

7、ngx_http_auth_basic_module:用户认证

http_auth_basic_module配置

  • 语法:     auth_basic string | off;

默认值:     auth_basic off;

配置段:     http, server, location, limit_except

默认表示不开启认证,后面如果跟上字符,这些字符会在弹窗中显示。

  • 语法:     auth_basic_user_file file;

默认值:     —

配置段:     http, server, location, limit_except

用户密码文件

http://nginx.org/en/docs/http/ngx_http_auth_basic_module.html

 

yum install httpd-tools -y

 

使用htpasswd命令生成密码文件

 

htpasswd -c ./auth_conf shhnwangjian

 

以上是关于nginx模块的主要内容,如果未能解决你的问题,请参考以下文章

如何有条件地将 C 代码片段编译到我的 Perl 模块?

nginx如何做到TCP的负载均衡

CTS测试CtsWindowManagerDeviceTestCases模块的testShowWhenLockedImeActivityAndShowSoftInput测试fail项解决方法(代码片段

nginx.conf 忽略了 nginx-ingress 配置映射片段

如何将字符串数据从活动发送到片段?

将 nginx rtmp 片段发送到 WebRTC