需要两台nginx服务器
需要keepalived
需要虚拟ip
yum install keepalived -y 安装keepalived
rpm -q -a keepalived 检测keepalived是否安装成功
安装好后去修改配置文件
cd /etc。cd keepalived/。vim keepalived.conf
keepalived.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 虚拟地址
} }
在/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
把两台服务器上
nginx
和
keepalived
启动
启动
nginx
:
./nginx
启动
keepalived
:
systemctl start keepalived.service
在浏览器地址栏输入 虚拟
ip
地址
192.168.17.50
这里遇到个问题,教程写着192.168.17.50,但是我是192.168.128.50。一开始我也写 17,但是访问不了。后来改成跟虚拟机同的128即可
测试主从机制
把主服务器(
192.168.17.129
)
nginx
和
keepalived
停止,再输入
192.168.17.50
Nginx
的原理
3
、一个
master
和多个
woker
有好处
(
1
)可以使用
nginx –s reload
热部署,利用
nginx
进行热部署操作
(
2
)每个
woker
是独立的进程,如果有其中的一个
woker
出现问题,其他
woker
独立的,
继续进行争抢,实现请求过程,不会造成服务中断
4
、设置多少个
woker
合适
worker 数和服务器的 cpu 数相等是最为适宜的
5
、连接数
worker_connection
第一个:发送请求,占用了
woker
的几个连接数?因为一来一回就是2,如果还有个tomcat就是两个一来一回
答案:
2
或者
4
个
第二个:
nginx
有一个
master
,有四个
woker
,每个
woker
支持最大的连接数
1024
,支持的
最大并发数是多少?
普通的静态访问最大并发数是:
worker_connections * worker_processes /2
,
而如果是
HTTP
作 为反向代理来说,最大并发数量应该是
worker_connections *
worker_processes/4
。