1. 什么是nginx高可用?
之前提及,如果 Tomcat宕机,则会被自动剔除,但是如果nginx 宕机了怎么办?
---> nginx 宕机请求无法实现效果
解决方法
将nginx配置成高可用(配置多台nginx)
当前有两台nginx服务器,但是他们的 ip 不同,这样不好提供给客户端,于是会使用一个虚拟 ip,比如 192.168.0.105,作为暴露给客户端的 ip 去访问
当主服务器挂了之后,会自动切换到备用服务器代替主服务器工作
当中使用到一个 keepalive 软件(将虚拟ip与alive的ip进行绑定,主服务器异常,keepalive自动重新将虚拟ip绑定至备服务器ip),会检测服务器状态,当异常会自动切换至正常的nginx服务器
配置高可用的准备工作
(1)两台虚拟机环境:192.168.0.109 和 192.168.0.111
(2)都安装 nginx 和 keepalive
完成高可用配置(主从配置)
1. 修改 keepalived.conf 文件(主备都要改)
(1)global_defs:全局配置,其中的 router_id 是主机id,在host文件中可配置,负载均衡标识,在局域网内唯一
(2)vrrp_script chk_http_port:检测脚本(名为 nginx_check.sh,路径注意要能取到,取不到就把脚本直接拎到这个路径,检测服务器是否alive)和一些权重参数
(3)vrrp_instance VI_1:虚拟ip配置,其中state表状态,主服务器为master,备份为backup;interface 是网卡;priority 表示主备机取不同优先级,主机较大,备机值较小;virtual_ipaddress 是虚拟 ip 地址,就是上图设置的虚拟ip:192.168.0.105
2. 启动两台服务器的 nginx 和 keepalive(启动方式:systemctl start keepalived.service)
测试效果
(1)浏览器地址栏直接输入虚拟ip地址,效果可访问
(2)将主服务器的nginx停止,浏览器地址栏输入虚拟ip地址,效果依然可访问