三、Nginx一些基础配置语法

Nginx 模块语法讲解

Nginx官方模块:
Nginx默认的模块和支持的模块

Nginx模块介绍
一.监控状态

 --with-http_stub_status_module	
	作用:Nginx的客户端状态
    语法:stub_status;
    默认:无
    位于环境:server,location

 http_stub_status_module配置

/etc/nginx/conf.d/default.conf 中配置
 location /(自定义名称){
        stub_status;
    }

完成后检查是否正确,使用命令:

nginx -t -c /etc/nginx/nginx.conf  

没问题就重载配置服务,使用命令:

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

访问status 返回的内容:
在这里插入图片描述
Active connections:XX ———— nginx活跃的连接数
server accepts handled requests
32 32 41

 第一个数表示nginx接受的握手的数
 第二个数表示nginx所处理的连接数
 第三个数表示总的请求数
 第一个和第二个应该相等,代表没有缺失

Reading: 0 Writing: 1 Waiting: 0

 Reading:读的个数
 Writing:往nginx写的个数
 Waiting:等待的个数

二.随机主页

 --with-http_random_index_module		
作用:	目录中选择一个随机主页
	
语法:random_index 	on|off;
默认:random_index off
位于环境:location

http_random_index_module 配置
 location / {
        root   /usr/share/nginx/html; #路径,可自定义
        random_index on; #开启
        #index  index.html index.htm;
    }
    这样可以在指定目录下进行随机主页的访问了!

完成后检查是否正确,使用命令:

  nginx -t -c /etc/nginx/nginx.conf  

没问题就重载配置服务,使用命令:

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

三.站点内容过滤功能模块

 --with-http_sub_module					
	作用:	HTTP内容替换

语法:sub_filter '替换内容' '替换后';
默认:无
位于环境:http,sercer,location

语法:sub_filter_once on|off;#是匹配所有还是第一个
默认:sub_filter_once on
位于环境:http,sercer,location

sub_filter 配置
 location / {
        root   /usr/share/nginx/html; #路径,可自定义
        index  index.html index.htm;
        sub_filter '替换内容' '替换后';
    }

完成后检查是否正确,使用命令:

  nginx -t -c /etc/nginx/nginx.conf  

没问题就重载配置服务,使用命令:

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

四.Nginx的请求限制

Http协议的连接与请求

HTTP协议版本 连接关系
HTTP1.0 TCP不能复用
HTTP1.1 顺序性TCP复用
HTTP2.0 多路复用TCP复用
HTTP请求建立在一次TCP连接基础上
一次TCP请求至少产生一次HTTP请求,也可以产生多次

1.连接限制

1.连接频率限制-limit_conn_module

语法:limit_conn_zone key zone=name:size;
key:ip或者别的限制变量
name:开辟的空间的名字,调用时就是调用的这个名字
size:空间大小配置根据情况而定
默认:无
位于环境:http
语法:limit_conn zone number;	#结合上面的zone进行使用
zone: 就是调用的上面的名字:name
number:限制的并发的数量,一时间只能允许number进行
默认:无
位于环境:http,server,location

2.请求限制

2.请求频率限制-limit_req_module
  
语法:limit_req_zone key zone=name:size rate=rate;
key:ip或者别的限制变量 
name:开辟的空间的名字,调用时就是调用的这个名字
size:空间大小配置根据情况而定
rate=rate:速率,先定义好我对于这个限制的请求速率,1r/s ,每秒一个
默认:无
位于环境:http


语法:limit_req zone=name [burst=number] [nodelay]
burst:客户端超过指定速率,遗留的number放到下一秒执行,保证number,后一秒执行,延迟响应
nodelay:
默认:无
位于环境:http,server,location

在这里插入图片描述
我们多次的请求可以建立在一次的连接之上,对一个请求的精度限制比对一个IP的限制,更加的有效

五.

Nginx的访问控制

1.基于Ip的访问控制-http_access_module

1.http_access_module
语法:allow address|CIDR|unix:|all;
address:IP地址
CIDR:网段
nuix:  : socket的方式
all:允许所有
默认:无
位于环境:http,server,location,limit_except


语法:deny address|CIDR|unix:|all;  #用处:不允许 访问
address:IP地址
CIDR:网段
nuix:  : socket的方式
all:允许所有
默认:无
位于环境:http,server,location,limit_except

http_access_module的局限性

如果用户不是直接和服务端连接,而是通过一层代理(NGINX,7layLSB,CDN),就会出现问题,http_access_module是
通过remote_addr 来识别IP的,通过代理,IP会识别成代理的Ip,到时候如果是针对用户IP进行限制或者操作,是没办法完成的,准确性不高。

 解决方法:
 方法一:采用别的HTTP头信息控制访问,如:HTTP_X_FORMWARD_FOR
 方法二:结合geo模块作
 方法三:通过HTTP自定义变量传递

2.基于用户的信任登录-http_auth_basic_module

语法:auth_basic string|off;
string:可作为登录提示
默认:auth_basic off;
位于环境:http,server,location,limit_except


语法:auth_basic_user_file file;
file:账号和密码的路径
默认:无
位于环境:http,server,location,limit_except

http_auth_basic_module局限性
1.用户信息依赖文件方式
2.操作管理机械,效率十分低下

解决方案:
方法一:Nginx结合LUA实现高效验证
方法二:Nginx和LDAP打通,利用Nginx-auth-ldap模块
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值