云计算实训17——nginx反向代理、负载均衡、nginx软件平滑升级

一、nginx实战

开启 nginx 状态监听模块

1.修改配置

[root@server2 ~]# vim /usr/local/nginx/conf/nginx.conf

server {      

listen       80; #监听端⼝

      server_name localhost; #服务器名称

      charset utf-8; #字符集,utf-8为中⽂ 字符集

[root@server2 ~]# systemctl restart nginx.service #重启nginx

2、访问测试

浏览器访问 192.168.33.110/status,查看 nginx 状态信息。

nginx 虚拟主机配置

[root@server2 ~]# vim /usr/local/nginx/conf/nginx.conf

location / {      

            root   html; #⽹站在服务器上的⽬ 录,默认为/usr/local/nginx/html

             index index.html index.htm; #跳转到 的⽹站⾸⻚

                }

[root@server2 ~]# systemctl restart nginx.service #重启nginx

nginx 反向代理配置

反向代理:⽤户直接访问反向代理服务器就可以获得⽬标服务器 (后端服务器)的资源

修改配置

[root@server2 ~]# vim /usr/local/nginx/conf/nginx.conf

[root@server2 ~]# systemctl reload nginx.service #重载nginx配置

建⽴后端服务器

使⽤另⼀台虚拟机,安装 nginx ,然后进⼊ /usr/share/nginx/html/ ⽬录,修改其中的 index.html ⽂件,随 便写⼊⼀条内容进⾏测试。

[root@YH1 ~]# vim /usr/share/nginx/html/index.html

这⾥是192.168.33.11

访问测试

浏览器输⼊本机地址 192.168.33.110,将会⾃动跳转到后端服 务器 192.168.33.11 上。

nginx 访客 IP ⿊名单

1、修改配置

作为运维⼈员,我们可以选择允许哪些⽤户 IP 来访问我们的服 务器,也可以选择允许哪个⽹段的⽤户。

allow:允许

deny:拒绝 在 nginx 配置⽂件的 server 模块内可以添加下⾯的内容。 当访问被拒绝时,会显示 403 错误⻚⾯。

[root@server2 ~]# vim /usr/local/nginx/conf/nginx.conf

2、访问测试

(1)因为当前服务器拒绝了 33.0 ⽹段的⽤户访问,⽽本机浏览器 正是通过 33.1 ⽹关与服务器建⽴连接,所以浏览器被拒绝访问了, 显示 403 错误信息。

(2)使⽤也是 192.168.33.0 ⽹段的 33.11 的 YH1 主机访问服务器 进⾏测试。

(3)使⽤之前允许的 192.168.33.22 的 YH2 主机进⾏访问服务器 测试

二、nginx负载均衡

负载均衡原理

负载均衡NAT(Network Address Translation网络地址转换)简单地说就 是将一个IP地址转换为另一个IP地址,一般用于未经注册的内部地址与合法 的、已获注册的Internet IP地址间进行转换。适用于解决Internet IP地址紧 张、不想让网络外部知道内部网络结构等的场合下。 系统的扩展可以分为纵向扩展和横向扩展。

纵向扩展:从单机的角度出发,通过增加系统的硬件处理能力来提升服 务器的处理能力;

横向扩展:通过添加机器来满足大型网站服务的处理能力。

这里面涉及到两个重要的角色分别是“应用集群”和“负载均衡器

应用集群:将同一应用部署到多台机器上,组成处理集群,接收负载均 衡设备分发的请求,进行处理并返回响应的数据。

负载均衡器:将用户访问的请求根据对应的负载均衡算法,分发到集群 中的一台服务器进行处理。

负载均衡的作用

解决服务器的高并发压力,提高应用程序的处理性能;

提供故障转移,实现高可用;

通过添加或减少服务器数量,增强网站的可扩展性;

在负载均衡器上进行过滤,可以提高系统的安全性;

负载均衡常用处理方式

负载均衡分为四层负载均衡和七层负载均衡。

1. 四层负载均衡是工作在 OSI 七层协议的第四层——传输层,基于IP+PORT的负载均衡,主要工作是转发。

2. 它在接收到客户端的流量以后通过修改数据包的地址信息(目标地址和 端口和源地址)将流量转发到应用服务器。

3. 实现四层负载均衡的方式:

硬件:F5、BIG-IP、Radware等;

软件:LVS、Nginx、Haproxy等。

1. 七层负载均衡是工作在七层协议的第七层-应用层,基于虚拟的URL或主 机IP的负载均衡,主要工作是代理。

2. 它首先会与客户端建立一条完整的连接并将应用层的请求流量解析出 来,再按照调度算法选择一个应用服务器,并与应用服务器建立另外一 条连接将请求发送过去。

3. 实现七层负载均衡的方式:

软件:Nginx、Hayproxy等。

四层和七层负载均衡的区别

1. 四层负载均衡数据包是在底层就进行了分发,而七层负载均衡数据包则 在最顶端进行分发,所以四层负载均衡的效率比七层负载均衡的效率要高;

2. 四层负载均衡不识别域名,而七层负载均衡识别域名。

3. 除了四层和七层负载均衡以外其实还有二层、三层负载均衡。二层负载 均衡是在数据链路层基于MAC地址来实现负载均衡,三层是在网络层一 般采用虚拟IP地址的方式实现负载均衡。

4. 实际环境采用的方式:四层负载 (LVS) +七层负载 (Nginx)

nginx 七层负载均衡

1、七层负载均衡基础配置

2、负载均衡状态

在服务器组的组内服务器后填写该服务器的状态,如:

3、负载均衡策略

(1)轮询

(2)weight 加权

(3)ip_hash

当对后端的多台动态应用服务器做负载均衡时,ip_hash指令能够将某 个客户端IP的请求通过哈希算法定位到同一台后端服务器上。 这样,当来自某一个IP的用户在后端Web服务器A上登录后,再访问该 站点的其他URL,能保证其访问的还是后端web服务器A。

注意: 使用ip_hash指令无法保证后端服务器的负载均衡,可能导致有些 后端服务器接收到的请求多,有些后端服务器接受的请求少,而且设置 后端服务器权重等方法将不起作用

(4)least_conn

least_conn:最少连接,把请求转发给连接数较少的后端服务器。轮询 算法是把请求平均地转发给各个后端,使它们的负载大致相同;但是, 有些请求占用的时间很长,会导致其所在的后端负载较高。这种情况 下,leastconn这种方式就可以达到更好的负载均衡效果。

(5)url_hash

按访问url的hash结果来分配请求,使每个url定向到同一个后端服务 器,要配合缓存命中来使用。同一个资源多次请求,可能会到达不同的 服务器上,导致不必要的多次下载,缓存命中率不高,以及一些资源时 间的浪费。而使用ur_hash,可以使得同一个url (也就是同一个资源请 求)会到达同一台服务器,一旦缓存住了资源,再次收到请求,就可以从 缓存中读取。

nginx 四层负载均衡

四层使用 stream 模块,与七层的 http 模块同级。

三、nginx软件平滑升级

不停用业务,使用平滑升级 需要有kill命令的支持

kill不仅仅用于杀死进程,还可以向软件进程发送信号

常用的-9和-15一个是强杀,一个是正常杀

kill 信号 进程编号

-USR2 平滑启动一个进程,平滑升级

-WINCH 优雅关闭子进程

-QUIT 优雅关闭主进程

步骤

1.不停止原有服务,但是必须使用原生方式启动或者更改nginx脚本(会创 建一个新的进程)

2.重新编译nginx新版本

3.使用kill -USR@ 启动新版本

4.把旧的Nginx子进程全部退出

5.优雅的退出Nginx的老进程 系统就只剩下新的nginx了

使用原生方式启动nginx

查看进程,分主进程和work进程

上传新的版本并且解压

对新版本进行编译安装,安装目录必须和旧版本一致

使用kill -USR2 启用新版本的Nginx的软件

kill -USR2 老版本的pid编号

主要功能会根据上一次的启动方式再重新运行一次之前的启动命令

重装新的版本以后,会出现新的启动工具

再次查看进程,找到老版本的pid

此时会出现两套master进程,这个时候处理客户请求的就是新的nginx服务 了 关闭老版本的所有子进程 关闭老版本的主进程

使用curl 查看当前服务器的版本

  • 16
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值