第十七天笔记

上午
反向代理
安装 nginx 1.26.1 平滑升级 负载均衡
1 nginx 反向代理配置
反向代理:⽤户直接访问反向代理服务器就可以获得⽬标服务器 (后端服务器)的资源。
nginx 代理其他服务器的时候,不需要对方同意,更加方便了模块化操作。
2 、代理优化( 1 )简单轮询
3 、代理优化( 1 nginx 访客 IP ⿊名单
作为运维⼈员,我们可以选择允许哪些⽤户 IP 来访问我们的服务器,也可以选择允许哪个⽹段的⽤
户。
allow :允许 deny :拒绝
nginx 配置⽂件的 server 模块内可以添加下⾯的内容。 当访问被拒绝时,会显示 403 错误⻚
⾯。
4 nginx 日志查看与分析
访问来源
10.0.0.201 10.0.0.200
访问时间
2024 7 30 11 27 42
2024 7 30 11 27 46
2024 7 30 11 37 18
访问方式和协议
GET 方法
HTTP/1.1 协议和 HTTP/1.0 协议
访问结果
200 状态码,表示请求成功,返回了 26 字节的数据。
403 状态码,表示禁止访问,分别返回了 153 字节和 555 字节的数据。
用户代理
curl/7.29.0
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like
Gecko) Chrome/127.0.0.0 Safari/537.36 Edg/127.0.0.0
下午
nginx 默认情况下同一个文件只允许 1024 人访问
1 、代理优化( 2 )负载均衡
四层负载均衡使用 stream 模块,与七层的 http 模块同级。编译安装时需要加 --with-http_stub_
status_module 模块。
早期的网站流量和业务功能都比较简单,单台服务器足以满足基本的需求, 但是随着互联网的发
展,业务流量越来越大并且业务逻辑也跟着越来越复杂,单台服务器的性能及单点故障问题就凸显出来
了,因此需要多台服务器进行性能的水平扩展及避免单点故障出现。
负载均衡是将负载分摊到不同的服务单元,既保证服务的可用性,又保证响应足够快,给用户很好
的体验,快速增长的访问量和数据流量催生了各式各样的负载均衡的产品,很多专业的的负载均衡硬件
提供了很好的功能,但价格不菲,这使得负载均衡软件大受欢迎, nginx 就是其中一个,在 linux 下有
nginx Ivs haproxy 等服务,可以提供复杂均衡服务。
1 )作用
解决服务器的高并发压力,提高应用程序的处理性能;
提供故障转移,实现高可用;
通过添加或减少服务器数量,增强网站的可扩展性; 在负载均衡器上进行过滤,可以提高系统的安全性;
1 、提高系统性能
负载均衡可以扩展网络设备和服务器的带宽,优化访问请求在服务器组之间的分配,提高系统的反
应速度和总体性能。
2 、监控服务器的运行状态
负载均衡能够监控服务器的运行状态,提高整个服务器组的可靠性。
3 、提供服务一致性
负载均衡器具有提供服务一致性的功能,负载均衡器通过读取客户端所发出 请求内的信息,进行重
写报头程序然后将请求发送至合适的服务器上,该服务器会维护着该客户端信息。在 http 通信当中,负
载均衡器提供服务一致性的功能就得到了很好的发挥,但提供该服务的途径并不是非常安全。但若将消
息加密后,负载均衡器就无法读取隐藏其中的信息了。
4 、摆脱停机时间
服务器托管公司可能会在维护期间将服务器关闭一段时间,这可能发生在业 务的高峰期。在基于云
服务器中,可以在将流量引导到另一台服务器的资源之后进行维护,前提是它们不在维护中,从而可以
消除网站的停机时间。
5 、管理服务器故障
由于它具有根据需要添加或删除实例的功能,因此可以跨云平台拥有多个数据中心。如果其中一台
服务器发生故障,则可以快速移动流量,将故障服务 器的流量流入到另一台服务器中。
6 、转发功能
按照一定的算法,将客户端请求转发到不同应用服务器上,减轻单个服务器 压力,提高系统并发
量。
7 、恢复添加
如检测到发生故障的应用服务器恢复工作,自动将其添加到处理用户请求队 伍中。
8 、分发流量
分发流量、请求到不同的服务器。使流量平均分配,提高整个集群的响应速 度、服务的高可用性。
2 )策略
3 )配置
4 )状态
在服务器组的组内服务器后填写该服务器的状态
2 nginx 版本平滑升级
1 )原理
1 、启动后完成配置加载和端⼝绑定等动作, 分离出指定数量的⼯作⼦进程 ,这些⼦进程会持有监
听端⼝的⽂件描述符 (fd) ,并通过在该描述符上添加监听事件来接受连接。
2 Nginx 主进程在启动完成后会进⼊等待状态,负责响应各类系 统消息,如 SIGCHLD
SIGHUPSIGUSR2 等。
3 、主进程⽀持的信号
TERM INT :⽴刻退出
least_conn :最少连接,把请求转发给连接数较少的后端服务器。轮询算法是把请求平均地转发给各个
后端,使它们的负载大致相同;
但是,有些请求占用的时间很长,会导致其所在的后端负载较高。这种情况下, least_conn 这种方式就
可以达到更好的负载均衡效果。
[root@server ~] # vim /usr/local/nginx/conf/nginx.conf
least_conn;
server 10 .0.0.20:80 weight = 4 ;
server 10 .0.0.30:80 weight = 2 ;
server 10 .0.0.40:80 weight = 1 ;
[root@server ~] # /usr/local/nginx/sbin/nginx -s reload
5 url_hash:
按访问 url hash 结果来分配请求,使每个 url 定向到同一个后端服务器,要配合缓存命中来使用。同一
个资源多次请求,可能会到达不同的服务器上,导致不必要的多次下载,缓存命中率不高,以及一些资源
时间的浪费。而使用 ur_hash ,可以使得同一个 url ( 也就是同一个资源请求 ) 会到达同一台服务器,一
旦缓存住了资源,再次收到请求,就可以从缓存中读取。
[root@server ~] # vim /usr/local/nginx/conf/nginx.conf
hash $request_url ;
server 10 .0.0.20:80 weight = 4 ;
server 10 .0.0.30:80 weight = 2 ;
server 10 .0.0.40:80 weight = 1 ;
[root@server ~] # /usr/local/nginx/sbin/nginx -s reload
[root@server ~] # vim /usr/local/nginx/conf/nginx.conf
server 10 .0.0.30:80 down;
[root@server ~] # /usr/local/nginx/sbin/nginx -s reload
1
2
3 QUIT :等待⼯作进程结束后再退出
KILL :强制终⽌进程
HUP :重新加载配置⽂件,使⽤新的配置启动⼯作进程,并逐步关闭旧进程
USR1 :重新⽣成⽇志⽂件
USR2 :启动新的主进程,实现热升级
WINCH :逐步关闭⼯作进程及⼯作进程⽀持的信号
2 )过程
1 、查看旧版 nginx 的编译参数 ;
2 、编译新版本 Nginx 源码包,安装路径需与旧版⼀致,注意 : 不要执⾏ make install;
3 、备份⼆进制可执⾏⽂件,⽤新版本的替换 ;
4 、确保配置⽂件⽆报错 ;
5 、发送 USR2 信号:向主进程 (master) 发送 USR2 信号, Nginx 会启动⼀个新版本的 master 进程和
对应⼯作进程,和旧版⼀起处理请求 ;
6 、发送 WINCH 信号:向旧的 Nginx 主进程 (master) 发送 WINCH 信号,它会逐步关闭⾃⼰的⼯作进
( 主进程不退出 ) ,这时所有请求都会由新版 Nginx 处理
7 、发送 QUIT 信号 : 升级完毕,可向旧的 Nginx 主进程 (master) 发送 (QUIT TERM 、或者 KILL)
号,使旧的主进程退出 ;
8 、验证 nginx 版本号,并访问测试 .
3 )配置
  • 12
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值