nginx高可用实战原理及配置

一、Nginx 反向代理实例 1

location = / {} //用于不含正则表达式url前,要求请求字符串与url严格匹配。

location ~ / {} //用于表示url含正则表达式,并且区分大小写

location ~* / {} //用于表示url含正则表达式,不区分大小写

location ^~ / {}用于不含正则表达式url前,要求nginx服务找到表示url和请求字符串匹配度最高的location后,立即使用此location处理请求,而不是使用location快中的正则url和请求字符串做匹配

在 nginx 进行请求转发的配置(反向代理配置)
请添加图片描述

二、Nginx 反向代理实例 2

找到 nginx 配置文件,进行反向代理配置
在这里插入图片描述

三、Nginx 配置实例-负载均衡

实现效果
浏览器地址栏输入地址 http://192.168.17.129/edu/a.html,负载均衡效果,平均 8080

和 8081 端口中

在 nginx 的配置文件中进行负载均衡的配置

请添加图片描述

nginx 分配服务器策略

  • 第一种 轮询(默认)
    每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器 down 掉,能自动剔除。

  • 第二种 weight
    weight 代表权重默认为 1,权重越高被分配的客户端越多
    在这里插入图片描述

  • 第三种 ip_hash
    每个请求按访问 ip 的 hash 结果分配,这样每个访客固定访问一个后端服务器
    请添加图片描述

  • 第四种 fair(第三方)
    按后端服务器的响应时间来分配请求,响应时间短的优先分配。
    在这里插入图片描述

四、Nginx 配置实例-动静分离

1.什么是动静分离
在这里插入图片描述

Nginx 动静分离简单来说就是把动态跟静态请求分开,不能理解成只是单纯的把动态页面和

静态页面物理分离。严格意义上说应该是动态请求跟静态请求分开,可以理解成使用 Nginx处理静态页面,Tomcat 处理动态页面。一种是纯粹把静态文件独立成单独的域名,放在独立的服务器上,也是目前主流推崇的方案;另外一种方法就是动态跟静态文件混合在一起发布,通过 nginx 来分开。

具体配置

在这里插入图片描述

重点是添加 location,

最后检查 Nginx 配置是否正确即可,然后测试动静分离是否成功,之需要删除后端 tomcat

服务器上的某个静态文件,查看是否能访问,如果可以访问说明静态资源 nginx 直接返回

了,不走后端 tomcat 服务器

四-一高可用nginx配置

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-JairCO2R-1638100439532)(792C4DC61A9B4427B0391CE1F1D1A4B6)]

  • 1.需要两天nginx服务器
  • 2.两台服务器都安装keepalived
yum install keepalived -y

配置文件在/etc/keepalived/keepalived.conf

参考博客:https://www.cnblogs.com/mmdln/p/8988951.html

-3 修改/etc/keepalived/keepalivec.conf 配置文件

global_defs {
notification_email {
acassen@firewall.loc
failover@firewall.loc
sysadmin@firewall.loc
}
notification_email_from Alexandre.Cassen@firewall.loc
smtp_server 192.168.17.129
smtp_connect_timeout 30
router_id LVS_DEVEL
}
vrrp_script chk_http_port {
script "/usr/local/src/nginx_check.sh"
interval 2 #(检测脚本执行的间隔)
weight 2
}
vrrp_instance VI_1 {
state BACKUP # 备份服务器上将 MASTER 改为 BACKUP
interface ens33 //网卡
virtual_router_id 51 # 主、备机的 virtual_router_id 必须相同
priority 90 # 主、备机取不同的优先级,主机值较大,备份机值较小
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.17.50 // VRRP H 虚拟地址
}
}
  • 4.在/usr/local/src 添加检测脚本
#!/bin/bash
A=`ps -C nginx –no-header |wc -l`
if [ $A -eq 0 ];then
/usr/local/nginx/sbin/nginx
sleep 2
if [ `ps -C nginx --no-header |wc -l` -eq 0 ];then
killall keepalived
fi
fi
  • 5.把两台服务器上 nginx 和 和 keepalived 启动
  1. 启动 nginx :./nginx
  2. 启动 keepalived :systemctl start keepalived.service
  • 6.测试

在浏览器地址栏输入 虚拟 ip 地址 192.168.17.50

在浏览器地址栏输入 虚拟 ip 地址 192.168.17.50

五、nginx原理

1.mater 和 worker

在这里插入图片描述在这里插入图片描述

2.worker 如何进行工作的

在这里插入图片描述

3.一个 master 和多个 woker 有好处

(1)可以使用 nginx –s reload 热部署,利用 nginx 进行热部署操作

(2)每个 woker 是独立的进程,如果有其中的一个 woker 出现问题,其他 woker 独立的,

继续进行争抢,实现请求过程,不会造成服务中断

4、设置多少个 woker 合适

worker 数和服务器的 cpu 数相等是最为适宜的

5、连接数 worker_connection

第一个:发送请求,占用了 woker 的几个连接数?

答案:2 或者 4 个
在这里插入图片描述

第二个:nginx 有一个 master,有四个 woker,每个 woker 支持最大的连接数 1024,支持的

最大并发数是多少?

l 普通的静态访问最大并发数是: worker_connections * worker_processes /2,

l 而如果是 HTTP 作 为反向代理来说,最大并发数量应该是 worker_connections *

worker_processes/4。






请添加图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

抬头看天空

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值