Nginx负载均衡模块(二)

本文涉及的产品
传统型负载均衡 CLB,每月750个小时 15LCU
应用型负载均衡 ALB,每月750个小时 15LCU
网络型负载均衡 NLB,每月750个小时 15LCU
简介: (一):Nginx的目录索引1:当用户访问Nginx搭建的网站,当网站的location中定义的/路径中的index.html页面找不到,那么就会报Not found错误,所以创建目录索引就是解决这个问题的,当用户访问不到html页面时,Nginx会根据自己设置的索引返回一个目录列表!也可以配...

(一):Nginx的目录索引

1:当用户访问Nginx搭建的网站,当网站的location中定义的/路径中的index.html页面找不到,那么就会报Not found错误,所以创建目录索引就是解决这个问题的,当用户访问不到html页面时,Nginx会根据自己设置的索引返回一个目录列表!

也可以配置内网YUM仓库

例如:
1

首先需要设置索引语法,这里可以看一下官方文档
2

2:先进入/etc/nginx/conf.d中

创建一个新的配置文件
3
再在/code1中创建10个文件,查看效果
4

网页效果如下图
5

3:如果想实现,输入域名能看到页面,但是在域名后加一个down就会显示文件目录,怎么做呢?

首先需要新建两个location
6

7

(二):Nginx的访问控制

比如除了10.0.0.1这个地址不能访问我,其他所有地址都能访问我

deny 10.0.0.1/32
allow all;

比如只允许10.0.0.1这个地址能够访问我,其他所有的地址都不能访问我

allow 10.0.0.1/32;
deny all;

如果是希望整个网段可以访问我

10.0.0.0/24;

本机的地址改为10.0.0.100后
8
在配置文件里面写入控制访问语句,并重启nginx
9

再次访问这个down目录就会被拒绝

10

(三):Nginx的资源限制

资源限制也就是设置验证,用户想访问我后台,那么就需要输入用户名和密码才可以进入,通常和访问控制一起设置,双安全认证

首先看一下设置密码的格式

location / {
    auth_basic   "closed site";    #描述信息
    auth_basic_user_file 路径;
}

验证的密码放在一个文件里面,和rsync守护进程类似

密码里面的书写格式是,并且密码必须是进过加密的,所以可以使用htpasswd进行加密

username:password

所以下载htpasswd密码加密包

yum -y install httpd-tools

使用htpasswd的-c参数创建密码文件,并设置用户名和密码

htpasswd -c /etc/nginx/auth_conf oldboy 回车
输入密码

11

再写入配置文件中

12

再在浏览器上进行访问,就会提示输入密码
13

(四):Nginx的状态监控

会记录多少人访问我,连接我,请求我

使用stub_status模块,但是这种一般需要直接编译才可以使用

所以yum安装的需要使用nginx -V查看有没有这个模块,有就直接使用


location  /nginx_status {
    stub_status;
}

然后进入浏览器输入、地址/nginx_status 就可以看到,也叫nginx的七种状态

失败的连接数是总的TCP连接数减去以处理的请求accepts-handled

也可以使用httpd软件包自带的模拟请求工具ab命令 -c是并发,-n请求数

ab -n1000 -c100 http://10.0.0.7/nginx_status

一般这种状态监控不会给外人访问,给测试人员本地查看即可,所以要加本地访问规则

location /nginx_status {
                stub_status;
                allow 127.0.0.1;
                deny all;
}

然后使用curl命令去访问

curl 127.0.0.1/nginx_status

14

一般企业会进行对curl命令结果进行取值,从而进行监控
15

(五):Nginx的访问限制

针对大流量访问,恶意访问,带来的影响是严重消耗带宽,需要采取措施进行限制

主要针对连接数限制,和请求数进行限制

1:对连接数限制:对连接数限制并不是特别有效,因为一个连接建立可以包含多个请求,还是无法进行对资源获取的限制

​ 首先进行设定指令,语法如下,

其中key表示日志中记录到的访问地址,一般key=$remote_addr或者也可以写$binary_remote_addr,二者的区别就是占用的字节大小不一样,前者占用15个字节,后者占用4个字节左右!

name表示自己定义的指令名称,

size表示在内存中开辟的内存大小

limit_conn_zone key zone=name:size;  指令只能在http中设定

​ 设定完指令后进行调用,语法如下,其中number表示限制的最大连接数是多少,超过这个值,那就直接返回503错误

limit_conn zone number;    调用指令可以在http,server,location中使用

2:对请求数限制:对请求数限制是使用最多的

首先进行设定指令,语法如下

其中rate表示每秒请求速率

limit_req_zone key zone=name:size rate=rate;  只能在http下定义

16
定义好后然后调用

limit_req zone=req_zone;   也是可以在http,server,location中使用

17
在浏览器页面进行Ctrl+f5强制刷新,会变成大面积报错,只有一个成功

18
所以还有几个参数需要介绍一下

定义时加上这几个参数

limit_req zone=req_zone burst=3 nodelay;

其中burst=3表示同一时刻请求时,延迟增加处理三个,nodelay表示直接返回503错误,这也就相当于一秒钟请求4个,原来是1个

19

20

(六):Nginx Location(重要)

location匹配的优先级 = > ^~ > ~ > ~* > /

相关实践学习
SLB负载均衡实践
本场景通过使用阿里云负载均衡 SLB 以及对负载均衡 SLB 后端服务器 ECS 的权重进行修改,快速解决服务器响应速度慢的问题
负载均衡入门与产品使用指南
负载均衡(Server Load Balancer)是对多台云服务器进行流量分发的负载均衡服务,可以通过流量分发扩展应用系统对外的服务能力,通过消除单点故障提升应用系统的可用性。 本课程主要介绍负载均衡的相关技术以及阿里云负载均衡产品的使用方法。
目录
相关文章
|
1月前
|
负载均衡 应用服务中间件 API
Nginx:location配置模块的用法(一)
Nginx:location配置模块的用法(一)
199 2
|
9天前
|
负载均衡 网络协议 Unix
Nginx负载均衡与故障转移实践
Nginx通过ngx_http_upstream_module模块实现负载均衡与故障转移,适用于多服务器环境。利用`upstream`与`server`指令定义后端服务器组,通过`proxy_pass`将请求代理至这些服务器,实现请求分发。Nginx还提供了多种负载均衡策略,如轮询、权重分配、IP哈希等,并支持自定义故障转移逻辑,确保系统稳定性和高可用性。示例配置展示了如何定义负载均衡设备及状态,并应用到具体server配置中。
|
24天前
|
缓存 应用服务中间件 nginx
安装nginx-http-flv-module模块
本文介绍如何为Nginx安装`nginx-http-flv-module`模块。此模块基于`nginx-rtmp-module`二次开发,不仅具备原模块的所有功能,还支持HTTP-FLV播放、GOP缓存、虚拟主机等功能。安装步骤包括:确认Nginx版本、下载相应版本的Nginx与模块源码、重新编译Nginx并加入新模块、验证模块安装成功。特别注意,此模块已包含`nginx-rtmp-module`功能,无需重复编译安装。
66 1
|
29天前
|
负载均衡 应用服务中间件 Linux
在Linux中,常用的 Nginx 模块有哪些,常来做什么?
在Linux中,常用的 Nginx 模块有哪些,常来做什么?
|
1月前
|
负载均衡 应用服务中间件 Linux
"揭晓nginx的神秘力量:如何实现反向代理与负载均衡,拯救服务器于水火?"
【8月更文挑战第20天】在Linux环境下,nginx作为高性能HTTP服务器与反向代理工具,在网站优化及服务器负载均衡中扮演重要角色。本文通过电商平台案例,解析nginx如何解决服务器压力大、访问慢的问题。首先介绍反向代理原理,即客户端请求经由代理服务器转发至内部服务器,隐藏真实服务器地址;并给出配置示例。接着讲解负载均衡原理,通过将请求分发到多个服务器来分散负载,同样附有配置实例。实践表明,采用nginx后,不仅服务器压力得到缓解,还提升了访问速度与系统稳定性。
48 3
|
1月前
|
负载均衡 算法 应用服务中间件
在Linux中,nginx反向代理和负载均衡实现原理是什么?
在Linux中,nginx反向代理和负载均衡实现原理是什么?
|
1月前
|
负载均衡 应用服务中间件 nginx
Nginx怎么去做负载均衡?
Nginx的负载均衡器配置就完成了,而且由于Nginx的配置文件结构清晰而且简洁,调整和维护也相对方便。通过上述步骤,你可以将Nginx设置为一款强大的负载均衡器,提升服务器集群的处理能力及高可用性。
37 4
|
1月前
|
域名解析 负载均衡 网络协议
双重神器合璧,流量洪流中的稳如磐石:揭秘Bind+Nginx负载均衡的超级力量!
【8月更文挑战第9天】在现代网站架构中,负载均衡至关重要,它通过分散客户端请求至多台服务器,确保了系统的高可用性和稳定性。本文介绍如何结合Bind与Nginx实现高效负载均衡。Bind作为DNS服务器,可为单一域名解析出多个IP地址;Nginx作为高性能HTTP服务器,则在这些IP对应的服务器间智能分配流量。通过配置Bind的A记录与Nginx的`upstream`和`proxy_pass`指令,我们能够构建一个既稳定又易扩展的负载均衡系统,显著提升用户体验与系统可靠性。
46 11
|
1月前
|
负载均衡 监控 算法
Nginx:负载均衡小专题(二)
Nginx:负载均衡小专题(二)
36 2
|
1月前
|
缓存 前端开发 应用服务中间件
Nginx:location配置模块的用法(二)
Nginx:location配置模块的用法(二)
38 2