keepalived+nginx

简介:

高集成:keepalived

负载均衡:nginx

1、服务器IP

Client: 172.25.254.25

Keepalived+Nginx1: 172.25.254.115 Vip: 172.25.254.100

Keepalived+Nginx2: 172.25.254.215 Vip: 172.25.254.100

二、安装

1、安装keepalived

     yum install keepalived

2、编译安装Nginx

[root@node1 ~] #useradd -r nginx
[root@node1 ~] #yum -y groupinstall "Development tools" "Server  Platform Development"
[root@node1 ~] #yum -y install pcre-devel
[root@node1 ~] #tar xf nginx-1.4.2.tar.gz
[root@node1 ~] #cd nginx-1.4.2
[root@node1 nginx-1.4.2] # ./configure \
--prefix= /usr \
--sbin-path= /usr/sbin/nginx \
--conf-path= /etc/nginx/nginx .conf \
--error-log-path= /var/log/nginx/error .log \
--http-log-path= /var/log/nginx/access .log \
--pid-path= /var/run/nginx/nginx .pid  \
--lock-path= /var/lock/nginx .lock \
--user=nginx \
--group=nginx \
--with-http_ssl_module \
--with-http_flv_module \
--with-http_stub_status_module \
--with-http_gzip_static_module \
--http-client-body-temp-path= /var/tmp/nginx/client/ \
--http-proxy-temp-path= /var/tmp/nginx/proxy/ \
--http-fastcgi-temp-path= /var/tmp/nginx/fcgi/ \
--http-uwsgi-temp-path= /var/tmp/nginx/uwsgi \
--http-scgi-temp-path= /var/tmp/nginx/scgi \
--with-pcre

提示:在两台服务器上都要安装Nginx

   [root@node1 nginx-1.4.2]# service nginx start

Starting nginx:                                            [  OK  ]

三、实现高可用

1、修改配置keepalived


[root@node1 ~] # cd /etc/keepalived
[root@node1 keepalived] # mv keepalived.conf keepalived.conf.bak    
[root@node1 keepalived] #vim keepalived.conf                    
! Configuration File  for keepalived
global_defs {
notification_email {
root@localhost
}
notification_email_from kaadmin@localhost
smtp_server 127.0.0.1
smtp_connect_timeout 30
router_id LVS_DEVEL
}
vrrp_script chk_nginx {
script  "killall -0 nginx"
interval 1
weight 2
}
vrrp_instance VI_10 {
state MASTER
interface eth0
virtual_router_id 131
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass 123456
}
virtual_ipaddress {
172.16.3.100
}
track_script {
chk_nginx
}

3、验证

[root@node1 ~] # ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN
link /loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1 /8 scope host lo
inet6 ::1 /128 scope host
valid_lft forever preferred_lft forever
2:  eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN qlen 1000
link /ether 00:0c:29:65:a0:2f brd ff:ff:ff:ff:ff:ff
inet 172.16.3.3 /16 brd 172.16.255.255 scope global eth0
inet 172.16.3.100 /32 scope global eth0           # Vip此时在Keepalived+Nginx1上
inet6 fe80::20c:29ff:fe65:a02f /64 scope link
valid_lft forever preferred_lft forever

然后关闭Keepalived+Nginx1上的keepalived服务Vip会跳转到Keepalived上

四、实现负载均衡

1、修改Keepalived配置文件

Keepalived+Nginx1:


[root@node1 ~] # cd /etc/keepalived
[root@node1 keepalived] # mv keepalived.conf keepalived.conf.bak     # 备份keepalived配置文件
[root@node1 keepalived] #vim keepalived.conf                         # 创建配置文件,如下
! Configuration File  for keepalived
global_defs {
notification_email {
root@localhost
}
notification_email_from kaadmin@localhost
smtp_server 127.0.0.1
smtp_connect_timeout 30
router_id LVS_DEVEL
}
vrrp_script chk_nginx {
script  "killall -0 nginx"
interval 1
weight 2
}
vrrp_instance VI_10 {
state MASTER
interface eth0
virtual_router_id 131
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass 123456
}
virtual_ipaddress {
172.16.3.100
}
track_script {
chk_nginx
}
vrrp_instance VI_20 {
state BACKUP
interface eth0
virtual_router_id 132
priority 99
advert_int 1
authentication {
auth_type PASS
auth_pass 123456
}
virtual_ipaddress {
172.16.3.200
}
track_script {
chk_nginx
   }
}

Keepalived+Nginx2  同理


[root@node2 ~] # cd /etc/keeplived
[root@node2 keepalived] # mv keepalived.conf keepalived.conf.bak
[root@node2 keepalived] # vim keepalived.conf
! Configuration File  for keepalived
global_defs {
notification_email {
root@localhost
}
notification_email_from kaadmin@localhost
smtp_server 127.0.0.1
smtp_connect_timeout 30
router_id LVS_DEVEL
}
vrrp_script chk_nginx {
script  "killall -0 nginx"
interval 1
weight 2
}
vrrp_instance VI_10 {
state BACKUP
interface eth0
virtual_router_id 131
priority 99
advert_int 1
authentication {
auth_type PASS
auth_pass 123456
}
virtual_ipaddress {
172.16.3.100
}
track_script {
chk_nginx
}
}
vrrp_instance VI_20 {
state MASTER
interface eth0
virtual_router_id 132
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass 123456
}
virtual_ipaddress {
172.16.3.200
}
track_script {
chk_nginx
}

}

2、重启Keepalived服务


[root@node1 ~] # service keepalived restart
[root@node2 ~] # service keepalived restart

3、验证


[root@node2 ~] # ip addr show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN
link /loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1 /8 scope host lo
inet6 ::1 /128 scope host
valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN qlen 1000
link /ether 00:0c:29:52:ee:44 brd ff:ff:ff:ff:ff:ff
inet 172.16.3.4 /16 brd 172.16.255.255 scope global eth0
inet 172.16.3.200 /32 scope global eth0     #此时vip2在Keepalived+Nginx2上
inet6 fe80::20c:29ff:fe52:ee44 /64 scope link
valid_lft forever preferred_lft forever

4、关闭Keepalived+Nginx2上的Keepalived服务模拟故障,vip2会转移到Keepalived+Nginx1上,反之依然


[root@node1 ~] # ip addr show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN
link /loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1 /8 scope host lo
inet6 ::1 /128 scope host
valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN qlen 1000
link /ether 00:0c:29:65:a0:2f brd ff:ff:ff:ff:ff:ff
inet 172.16.3.3 /16 brd 172.16.255.255 scope global eth0
inet 172.16.3.100 /32 scope global eth0
inet 172.16.3.200 /32 scope global eth0
inet6 fe80::20c:29ff:fe65:a02f /64 scope link
valid_lft forever preferred_lft forever
















本文转自铁骑传说51CTO博客,原文链接:  http://blog.51cto.com/ybzbfs/1952129 ,如需转载请自行联系原作者


相关文章
|
8月前
|
网络协议 算法 Java
nginx与keepalived的那些事
nginx与keepalived的那些事
112 0
|
1月前
|
运维 应用服务中间件 Linux
keepalived详解(三)——keepalived与Nginx配合实战
keepalived详解(三)——keepalived与Nginx配合实战
58 1
|
7月前
|
负载均衡 应用服务中间件 Linux
Nginx系列教程(14) - LVS+KeepAlived+Nginx实现高性能负载均衡集群
Nginx系列教程(14) - LVS+KeepAlived+Nginx实现高性能负载均衡集群
288 0
|
1月前
|
负载均衡 网络协议 应用服务中间件
【亮剑】在Linux中构建高可用性和高性能网络服务的负载均衡工具HAProxy、Nginx和Keepalived。
【4月更文挑战第30天】本文介绍了在Linux中构建高可用性和高性能网络服务的负载均衡工具HAProxy、Nginx和Keepalived。HAProxy是一个高性能的开源TCP和HTTP负载均衡器,适合处理大量并发连接;Nginx是一个多功能Web服务器和反向代理,支持HTTP、HTTPS和TCP负载均衡,同时提供缓存和SSL功能;Keepalived用于监控和故障切换,通过VRRP实现IP热备份,保证服务连续性。文中详细阐述了如何配置这三个工具实现负载均衡,包括安装、配置文件修改和启动服务,为构建可靠的负载均衡系统提供了指导。
|
1月前
|
Kubernetes 搜索推荐 应用服务中间件
通过keepalived+nginx实现 k8s apiserver节点高可用
通过keepalived+nginx实现 k8s apiserver节点高可用
76 16
|
1月前
|
负载均衡 前端开发 应用服务中间件
NGINX高可用之keepalived+nginx主从模式+主主模式配置实践
NGINX高可用之keepalived+nginx主从模式+主主模式配置实践
201 1
|
7月前
|
应用服务中间件 Shell nginx
Nginx + keepalived 实现高可用 + 防盗链 + 动静分离(二)
Nginx + keepalived 实现高可用 + 防盗链 + 动静分离
|
7月前
|
负载均衡 NoSQL 应用服务中间件
Nginx + keepalived 实现高可用 + 防盗链 + 动静分离(一)
Nginx + keepalived 实现高可用 + 防盗链 + 动静分离
|
7月前
|
Kubernetes 应用服务中间件 Linux
suse 12 编译部署Keepalived + nginx 为 kube-apiserver 提供高可用
suse 12 编译部署Keepalived + nginx 为 kube-apiserver 提供高可用
69 0
|
8月前
|
Ubuntu
nginx+keepalived实现高可用
如果通过keepalived实现高可用
70 0