08 上 nginx模块

 

LNMP架构是什么?

 

LNMP是一套技术的组合,L=Linux、N=Nginx、M~=MySQL、P~=PHP

1、目录索引模块

1.开启目录索引

语法: autoindex on | off;
默认: autoindex off;
位置: http, server, location

2.格式化文件大小

语法: autoindex_exact_size on | off;
默认: autoindex_exact_size on;
位置: http, server, location

3.输出的格式

语法: autoindex_format html | xml | json | jsonp;
默认: autoindex_format html;
位置: http, server, location

4.使用时区

语法: autoindex_localtime on | off;
默认: autoindex_localtime off;
位置: http, server, location

2、访问限制模块

allow: 允许IP访问

deny: 禁止IP访问

语法: allow address | CIDR | unix: | all;
默认: —
位置: http, server, location, limit_except

语法: deny address | CIDR | unix: | all;
默认: —
位置: http, server, location, limit_except

备注:

address :ip地址
CIDR : 网段
unix: socket文件
all : 所有

案例1:只允许192.168.15.1来访问

 

案例2:只允许192.168.15.0来访问。

allow 192.168.15.0/24;
deny all;

案例3:要求禁止192.168.15.1来访问。

deny 192.168.15.1;
allow all;

3、认证模块

1.需要先安装httpd-tools(安装此软件可使用htpasswd命令)

yum install httpd-tools -y

2.语法

语法: auth_basic string | off; #如果跟string,就代表开启。
默认: auth_basic off;
位置: http, server, location, limit_except

语法: auth_basic_user_file file;
默认: —
位置: http, server, location, limit_except

3.配置密码文件

htpasswd -c /etc/nginx/auth dzg

4.配置server

auth_basic "This is auth_basic!";
auth_basic_user_file /etc/nginx/auth;

5.重启nginx并测试

nginx -t

systemctl restart nginx

6.在命令行中的访问方式

curl -H'Host: index.test.com' http://dzg:123456@192.168.15.8

4、nginx状态模块

1.语法

语法: stub_status;
默认: —
位置: server, location

2.使用

location /status {
      stub_status;
    }

3.重启nginx并测试

http://index.test.com/status

Active connections:当前活动客户端连接数,包括等待连接。
accepts :总的连接次数
handled:已经处理的总连接数
requests:客户端请求的总数
Reading:nginx正在读取请求头的当前连接数
Writing:nginx将响应写回客户端的当前连接数
Waiting:当前等待请求的空闲客户端连接数

5、限制连接数模块

ngx_http_limit_conn_module
创建一个内存空间存放访问者的IP
设置每一个访问者的同时连接次数

1.语法

#设置限制的空间
Syntax: limit_conn_zone key zone=name:size;
Default:    —
Context:    http
 
limit_conn_zone     #设置空间的模块
key                 #指定空间存储的内容
zone                #指定空间
=name               #空间名字
:size;              #空间的大小
 
#调用限制的空间
Syntax: limit_conn zone number;
Default:    —
Context:    http, server, location
 
limit_conn          #调用空间的模块
zone                #空间的名字
number;             #指定可以同时连接的次数

2.使用

vim /etc/nginx/conf.d/game1.conf

# 创建一个叫linux的空间,主要用来存放客户端IP,大小是10M
limit_conn_zone $remote_addr zone=linux:10m;


server{

    server_name game1.test.com;
    listen 80;
    location / {
      # 调用linux空间,限制连接数是1
      limit_conn linux 1;
     
      root /usr/share/nginx/html5-mario;
      index index.html;

}
}

3.重启nginx

systemctl restart nginx

4.配置hosts文件

vim /etc/hosts
#192.168.15.8 game1.test.com

5.测试

ab -c 200 -n 10000 http://game1.test.com/

6、限制请求数模块

创建一个内存空间存放访问者的IP
设置每一个访问者的同时请求次数

1.语法

#设置空间的语法
Syntax: limit_req_zone key zone=name:size rate=rate [sync];
Default:    —
Context:    http
 
limit_req_zone          #设置空间的模块
key                     #空间存储的内容
zone                    #指定空间
=name                   #空间的名字
:size                   #空间的大小
rate=rate [sync];       #读写速率
 
#调用的语法
Syntax: limit_req zone=name [burst=number] [nodelay | delay=number];
Default:    —
Context:    http, server, location
 
limit_req               #调用控件模块
zone=name               #指定空间=空间的名字
[burst=number]          #允许多请求几次
[nodelay | delay=number]; #延时

2.使用

vim /etc/nginx/conf.d/game1.conf

# 创建一个叫linux的空间,主要用来存放客户端IP,大小是10M
limit_conn_zone $remote_addr zone=linux:10m;

# 每秒一次
limit_req_zone $remote_addr zone=python:10m rate=1r/s;

server{

    server_name game1.test.com;
    listen 80;
    location / {
      # 调用linux空间,限制连接数是1
      limit_conn linux 1;
     
      #每秒最多5此
      limit_req zone=python burst=5;

      root /usr/share/nginx/html5-mario;
      index index.html;

}
}

3.重启nginx并测试

 

知识储备:

ab : 创建请求的命令,(yum install httpd-tools -y )

-c : 设置并发
-n : 设置请求的总数
posted @ 2021-10-27 23:53  甜甜de微笑  阅读(24)  评论(0编辑  收藏  举报