centos 安装keepalived1.3.5并配置nginx
- 格式:docx
- 大小:22.82 KB
- 文档页数:8
CentOS8下Nginx使⽤教程1、nginx安装dnf install nginx -y2、nginx常⽤⽬录nginx.conf⽬录:/etc/nginx.nginx.confnginx启动⽬录:/usr/sbin/nginx3、nginx热部署所谓热部署,就是配置⽂件nginx.conf修改后,不需要stop Nginx,不需要中断请求,就能让配置⽂件⽣效!/usr/sbin/nginx -s reload4、配置nginx 访问资源⽬录修改 nginx.conf 配置⽂件,在service标签内部加⼊下⾯的location,通过访问 ip地址:端⼝/source 就能访问 /home/source ⽬录了。
location /source { root /home; autoindex:on;}还可以有如下写法:location /source { alias /home/source; autoindex:on;}5、反向代理听着反向代理是不是很⽜逼的事,实际上很容易理解:正向代理:A要访问C的地址,但是由于⽹络或是墙的问题,A不能直接访问到C,但是呢有个B可以访问C,A也可以访问B,那么A在访问C的时候通过B代理,这就是正向代理。
A ---/---> C ; A ------>B ; B ------>C ;那么 A ------> B ------> C反向代理:A要访问C的地址,但是由于⽹络或安全的问题,A不能直接访问到C,但是呢有个B可以访问C,A也可以访问B,那么A在访问C的时候通过B代理,这就是正向代理。
A ---/---> C ; A ------>B ; B ------>C ;那么 A ------> B ------> C通过上⾯的⽰例是不是觉得 正向代理和反向代理⼀样?对,确实原理⼀样,但是有有个明显的差别就是:在正向代理中 A访问C,A是明确知道C的地址(要想访问)。
Centos配置Keepalived 做双机热备切换分类:网站架构2009-07-25 13:53 7823人阅读评论(0) 收藏举报centosserverdelayauthenticationsnscompilerKeepalived系统环境:************************************************************两台服务器都装了CentOS-5.2-x86_64系统Virtual IP: 192.168.30.20Squid1+Real Server 1:网卡地址(eth0):192.168.30.12Squid2+Real Server 2:网卡地址(eth0):192.168.30.13************************************************************软件列表:keepalived/software/keepalived-1.1.17.tar.gzopenssl-develyum -y install openssl-devel***************************************************************配置:配置基于高可用keepalived,确定LVS使用DR模式1.安装配置keepalived1.1安装依赖软件如果系统为基本文本安装,需要安装一下软件# yum -y install ipvsadm# yum -y install kernel kernel-devel# reboot 重启系统切换内核# yum -y install openssl-devel ;安装keepalived依赖软件#ln -s /usr/src/kernels/`uname -r`-`uname -m`/ /usr/src/linux;建立内核链接,编译keepalived支持lvs时需要注意建立链接的内核名和当前运行的内核一致,否则导致安装失败#tar zxvf keepalived-1.1.17.tar.gz#cd keepalived-1.1.17#./configure --prefix=/usr --sysconf=/etcKeepalived configuration------------------------Keepalived version : 1.1.17Compiler : gccCompiler flags : -g -O2Extra Lib : -lpopt -lssl -lcryptoUse IPVS Framework : Yes ;注意编译时一定要支持lvsIPVS sync daemon support : YesUse VRRP Framework : YesUse LinkWatch : NoUse Debug flags : No#make#make install1.2编辑keepalived配置文件#Vi /etc/keepalived/keepalived.confglobal_defs {notification_email {test@}notification_email_from root@localhostsmtp_server 127.0.0.1smtp_connect_timeout 30router_id LVS_DEVEL}vrrp_instance VI_1 {state MASTER #备份服务器上将MASTER改为BACKUPinterface eth0 # HA 监测网络接口virtual_router_id 51 #主、备机的virtual_router_id必须相同priority 100 #主、备机取不同的优先级,主机值较大,备份机值较小 advert_int 2 # VRRP Multicast 广播周期秒数authentication {auth_type PASS #VRRP 认证方式auth_pass 1111 #VRRP 口令字}virtual_ipaddress {192.168.30.20 # VRRP HA 虚拟地址如果有多个VIP,继续换行填写 }}virtual_server 192.168.30.20 80 {delay_loop 2 #每隔6秒查询realserver状态lb_algo rr #lvs 算法lb_kind DR #Direct Routepersistence_timeout 50 #同一IP 的连接60 秒内被分配到同一台realserverprotocol TCP #用TCP协议检查realserver状态real_server 192.168.30.12 80 {weight 3 #(权重)TCP_CHECK {connect_timeout 10 #(10秒无响应超时)nb_get_retry 3delay_before_retry 3connect_port 80}}real_server 192.168.30.13 80 {weight 3 #(权重)TCP_CHECK {connect_timeout 10 #(10秒无响应超时)nb_get_retry 3delay_before_retry 3connect_port 80}}}1.3BACKUP服务器同上配置,先安装lvs再按装keepalived,仍后配置/etc/keepalived/keepalived.conf,只需将红色标示的部分改一下即可.global_defs {notification_email {test@}notification_email_from root@localhostsmtp_server 127.0.0.1smtp_connect_timeout 30router_id LVS_DEVEL}vrrp_instance VI_1 {state BACKUP #备份服务器上将MASTER改为BACKUPinterface eth0 # HA 监测网络接口virtual_router_id 51 #主、备机的virtual_router_id必须相同priority 99 #主、备机取不同的优先级,主机值较大,备份机值较小 advert_int 2 # VRRP Multicast 广播周期秒数authentication {auth_type PASS #VRRP 认证方式auth_pass 1111 #VRRP 口令字}virtual_ipaddress {192.168.30.20 # VRRP HA 虚拟地址}}virtual_server 192.168.30.20 80 {delay_loop 2 #每隔6秒查询realserver状态lb_algo rr #lvs 算法lb_kind DR #Direct Routepersistence_timeout 50 #同一IP 的连接60 秒内被分配到同一台realserver protocol TCP #用TCP协议检查realserver状态real_server 192.168.30.12 80 {weight 3 #(权重)TCP_CHECK {connect_timeout 10 #(10秒无响应超时)nb_get_retry 3delay_before_retry 3connect_port 80}}real_server 192.168.30.13 80 {weight 3 #(权重)TCP_CHECK {connect_timeout 10 #(10秒无响应超时)nb_get_retry 3delay_before_retry 3connect_port 80}}}2. 配置lvs客户端脚本[c-sharp]view plaincopyprint?1.#vi /usr/local/sbin/realserver.sh2. #!/bin/bash3. # description: Config realserver lo and apply noarp4. #Written by :NetSeek 5.6. SNS_VIP=192.168.30.207.8. . /etc/rc.d/init.d/functions9.10.case"$1"in11. start)12. ifconfig lo:0 $SNS_VIP netmask 255.255.255.255 broadcast $SNS_VIP13. /sbin/route add -host $SNS_VIP dev lo:014. echo "1" >/proc/sys/net/ipv4/conf/lo/arp_ignore15. echo "2" >/proc/sys/net/ipv4/conf/lo/arp_announce16. echo "1" >/proc/sys/net/ipv4/conf/all/arp_ignore17. echo "2" >/proc/sys/net/ipv4/conf/all/arp_announce18. sysctl -p >/dev/null 2>&119. echo "RealServer Start OK"20.21. ;;22. stop)23. ifconfig lo:0 down24. route del $SNS_VIP >/dev/null 2>&125. echo "0" >/proc/sys/net/ipv4/conf/lo/arp_ignore26. echo "0" >/proc/sys/net/ipv4/conf/lo/arp_announce27. echo "0" >/proc/sys/net/ipv4/conf/all/arp_ignore28. echo "0" >/proc/sys/net/ipv4/conf/all/arp_announce29. echo "RealServer Stoped"30. ;;31. *)32. echo "Usage: $0 {start|stop}"33. exit 134. esac35.36. exit 0或者采用secondary ip address方式配置# vi /etc/sysctl.confnet.ipv4.conf.lo.arp_ignore = 1net.ipv4.conf.lo.arp_announce = 2net.ipv4.conf.all.arp_ignore = 1net.ipv4.conf.all.arp_announce = 2#sysctl -p#ip addr add 192.168.30.20/32 dev lo#ip add list 查看是否绑定3. 启动lvs-dr脚本和realserver启本,在DR上可以查看LVS当前状态: #watch ipvsadm -ln4. 启动keepalived 服务#service httpd start#/etc/init.d/keepalived start查看keepalived的安装位置:# find / -name keepalived将keepalived作为服务添加到chkconfig中,并设置开机启动# chkconfig --add keepalived# chkconfig --level 35 keepalived on# chkconfig --list keepalivedkeepalived 0:关闭 1:关闭 2:关闭 3:启用 4:关闭 5:启用 6:关闭“各等级”包括2、3、4、5等级等级0表示:表示关机等级1表示:单用户模式等级2表示:无网络连接的多用户命令行模式等级3表示:有网络连接的多用户命令行模式等级4表示:不可用等级5表示:带图形界面的多用户模式等级6表示:重新启动5. 测试lvs服务是否正常5.1通过浏览器访问http://192.168.30.20是否正常多次刷新浏览器,在主LVS上看连接数变化5.2停止主LVS上的keepalived 看看备份keepalived是否正常接管服务注:realserver如果为windows主机的话需要安装microsoft loopback,设置IP为VIP确认之后搜索注册表,关键字"VIP"把搜到结果的每项里面的subnet mask都改成255.255.255.255然后重启即可。
nginx详细配置Nginx内容概览1、nginx简介(1)介绍 nginx的应⽤场景和具体可以做什么事情(2)介绍什么是反向代理(3)介绍什么是负载均衡(4)介绍什么是动静分离2、nginx安装(1)介绍 nginx在 linux系统中如何进⾏安装3、nginx常⽤的命令和配置⽂件(1)介绍 nginx启动、关闭、重新加载命令(2)介绍 nginx的配置⽂件4、nginx配置实例-反向代理5、nginx配置实例-负载均衡6、nginx配置实例-动静分离7、nginx原理与优化参数配置8、搭建 nginx⾼可⽤集群(1)搭建 nginx⾼可⽤集群(主从模式)(2)搭建 nginx⾼可⽤集群(双主模式)第 1 章 Nginx 简介1.1 Nginx 概述Nginx ("engine x") 是⼀个⾼性能的 HTTP 和反向代理服务器,特点是占有内存少,并发能⼒强,事实上 nginx的并发能⼒确实在同类型的⽹页服务器中表现较好,中国⼤陆使⽤ nginx⽹站⽤户有:百度、京东、新浪、⽹易、腾讯、淘宝等1.2 Nginx 作为 web 服务器Nginx 可以作为静态页⾯的 web 服务器,同时还⽀持 CGI 协议的动态语⾔,⽐如 perl、php等。
但是不⽀持 java。
Java程序只能通过与tomcat配合完成。
Nginx专为性能优化⽽开发,性能是其最重要的考量,实现上⾮常注重效率,能经受⾼负载的考验,有报告表明能⽀持⾼达50,000个并发连接数。
1.3 正向代理Nginx 不仅可以做反向代理,实现负载均衡。
还能⽤作正向代理来进⾏上⽹等功能。
正向代理:如果把局域⽹外的 Internet 想象成⼀个巨⼤的资源库,则局域⽹中的客户端要访问Internet,则需要通过代理服务器来访问,这种代理服务就称为正向代理。
1.4 反向代理反向代理,其实客户端对代理是⽆感知的,因为客户端不需要任何配置就可以访问,我们只需要将请求发送到反向代理服务器,由反向代理服务器去选择⽬标服务器获取数据后,在返回给客户端,此时反向代理服务器和⽬标服务器对外就是⼀个服务器,暴露的是代理服务器地址,隐藏了真实服务器 IP地址。
keepalived基线要求标题:Keepalived基线要求引言:在网络系统中,为了保证高可用性和负载均衡,我们经常会使用Keepalived这样的软件来实现故障转移和服务冗余。
为了确保系统的稳定性和安全性,我们需要遵循一些基线要求。
本文将介绍Keepalived基线要求的相关内容。
一、Keepalived基本介绍Keepalived是一款基于VRRP(虚拟路由冗余协议)的开源软件,用于实现故障转移和负载均衡。
它可以将多个服务器组成一个高可用的集群,通过监控服务器的状态来实现故障转移和服务冗余。
二、Keepalived基线要求1. 服务器配置要求:- 每个服务器必须具备至少两个网络接口,分别用于内部通信和对外服务。
- 服务器应具备足够的计算和存储资源,以满足系统的负载需求。
- 服务器的操作系统必须支持Keepalived软件,并且已经安装了所需的依赖软件。
2. Keepalived配置要求:- 所有服务器的Keepalived配置文件必须保持一致,并且按照规范进行填写。
- 配置文件中的密码和敏感信息必须进行加密或者隐藏处理,确保系统的安全性。
- Keepalived的监控和故障转移策略必须能够满足实际需求,确保系统的高可用性。
3. 监控和故障转移要求:- Keepalived必须能够实时监控服务器的状态,包括CPU、内存、磁盘等关键指标。
- 当主服务器出现故障时,Keepalived必须能够自动将备用服务器切换为主服务器,确保服务的连续性。
- 故障转移过程中不能出现数据丢失或服务中断的情况,必须保证系统的稳定性和可靠性。
4. 日志和报警要求:- Keepalived必须能够生成详细的日志,记录系统的运行状态和故障转移过程。
- 日志文件必须按照规定的格式进行存储和管理,便于后续的故障分析和排查。
- Keepalived必须能够及时发送报警信息给管理员,以便及时处理系统故障和异常情况。
结论:通过遵循以上的Keepalived基线要求,我们可以确保系统的高可用性和负载均衡能力。
nginx下载安装
环境:centos 7
1:下载Nginx
访问Nginx官⽹,选择⼀个版本获取下载链接,如下:
使⽤wget 命令下载Nginx,如下:
wget /download/nginx-1.16.0.tar.gz
2:解压Nginx
使⽤tar -zxvf 命令解压Nginx安装包,如下:
3:安装Nginx
进⼊到解压后的Nginx⽬录,使⽤ ./configure --prefix=/usr/local/nginx 命令指定nginx的安装位置,我们指定了/usr/local/nginx这个⽬录
执⾏过程中如果出现如下错误:
则需要安装prce 库,使⽤yum installl pcre 命令进⾏安装
这⾥仅仅安装pcre是不⾏的,⼀样会提⽰需要pcre库,这⾥
还要安装pcre-devel,我们继续执⾏yum install pcre-devel 命令进⾏安装
我们再次执⾏./configure --prefix=/usr/local/nginx
会出现如下错误:
提⽰我们安装zlib,我们继续执⾏yum install zlib命令安装zlib,⼀样我们也要安装zlib-devel 。
安装完毕后,重新执⾏./configure --prefix=/usr/local/nginx命令,如下:
说明我们已经ok
接下来,我们使⽤make && make install 命令进⾏编译安装nginx
进⼊到/usr/local⽬录下我们可以看到多了nginx⽬录,说明我们已经安装成功。
Linux安装Nginx步骤详解1. Nginx安装步骤1.1 官⽹介绍1.2 上传安装包上传到指定⽬录中 /usr/local/src1.3 解压Nginx 压缩⽂件1.移动安装⽬录到指定⽂件mv nginx-1.19.4.tar.gz software/2.修改⽂件名称mv nginx-1.19.4 nginx1.4 关于nginx ⽬录说明1.5 安装nginx服务器说明:在源⽂件中执⾏如下命令./configure直接结果:makemake install1.6 nginx命令说明说明: nginx⼯作⽬录说明路径:命令:1.windows命令:1.启动命令: start nginx2.重启命令: nginx -s reload3.关闭命令: nginx -s stop2.Linux命令:1.启动命令: ./nginx2.重启命令: ./nginx -s reload3.关闭命令: ./nginx -s stop1.7 修改nginx配置⽂件需求说明:1.实现图⽚反向代理2.实现tomcat负载均衡实现具体实现:修改完成之后,重启nginx服务器.#配置图⽚代理服务器 :80server {listen 80;server_name ;location / {#root D:/JT-SOFT/images;root /usr/local/src/images;}}#配置商品后台服务器server{listen 80;server_name ;location / {#代理真实服务器地址#proxy_pass http://localhost:8091;#映射到集群#proxy_pass http://jtWindows;proxy_pass http://jtLinux;}}#配置tomcat服务器集群 1.默认轮询策略 2.权重策略 3.ip_hash策略 upstream jtWindows {#ip_hash; down 标识宕机 backup 备⽤机#max_fails=1 表⽰最⼤的失败次数#fail_timeout=60s 如果访问不通,则在60秒内,不会再次访问故障机 server 127.0.0.1:8081 max_fails=1 fail_timeout=60s;server 127.0.0.1:8082 max_fails=1 fail_timeout=60s;server 127.0.0.1:8083 max_fails=1 fail_timeout=60s;}upstream jtLinux {server 192.168.126.129:8081;server 192.168.126.129:8082;server 192.168.126.129:8083;}1.8.修改hosts⽂件说明:由于没有购买image/的域名,所以需要通过hosts⽂件修改转向.修改windows中的hosts⽂件:# 京淘配置192.168.126.129 192.168.126.129 #IP 域名映射关系#127.0.0.1 #127.0.0.1 127.0.0.1 127.0.0.1 127.0.0.1 localhost#bug 丢最后⼀个字母问题1.9效果展现到此这篇关于Linux安装Nginx步骤详解的⽂章就介绍到这了,更多相关Linux安装Nginx步骤内容请搜索以前的⽂章或继续浏览下⾯的相关⽂章希望⼤家以后多多⽀持!。
Nginx+keepalived+heartbeat双机热备份配置手册正文目录1 双机热备简介 (3)2 双机热备安装与配置 (4)2.1 安装环境和软件版本说明 (4)2.2 系统安装 (4)2.3 JDK环境安装配置 (4)2.4 MYSQL安装配置 (6)2.4.1 基本安装配置 (6)2.4.2 数据库双机互备 (7)2.5 反向代理服务器NGINX的安装配置 (9)2.6 KEEPALIVED安装配置 (13)2.7 HEARTBEAT的安装配置 (15)2.8 APACHE-TOMCAT安装配置 (18)3 CENTOS下安装配置的改动 (20)3.1 NGINX (20)3.2 KEEPALIVED (23)3.3 HEARTBEAT (26)3.4 添加SHELL脚本 (29)1 双机热备简介双机热备及负载均衡配置图如下所示2 双机热备安装与配置2.1 安装环境和软件版本说明系统:Linux Ubuntu 10.10JDK环境:jdk-6u31-linux-i586方向代理服务器Nginx:nginx-0.7.67探测服务器状态软件Keepalived:keepalived-1.1.17Web服务器:Apache-tomcat:apache-tomcat-6.0.35数据库MySQL:mysql-5.1.612.2 系统安装2.3 JDK环境安装配置1 、安装jdk 程序最新版本jdk: jdk-6u31-linux-i586.bin进入usr 目录: cd /usr在当前目录创建目录java : mkdir java将jdk 安装文件复制到java 目录下:cp /usr/software/ jdk-6u31-linux-i586.bin /usr/java给安装程序赋予权限:chmod +x jdk-6u31-linux-i586.bin 执行安装命令:./ jdk-6u31-linux-i586.bin安装成功后,在java 目录下会出现jdk1.6.0_31 的目录。
nginx安装升级及配置详解1.简介2.安装配置3.配置⽂件介绍4.启动、停⽌、平滑重启、升级⼀、Nginx简介Nginx(engine x)是俄罗斯⼈Igor Sysoev编写的⼀款⾼性能的http和反向代理服务器。
在连接⾼并发的情况下,nginx是apache服务器不错的替代品,它能够⽀持50000个并发连接数的响应,⽽内存、cpu等系统资源资源消耗却⾮常低,运⾏⾮常稳定。
性能优势:作为web服务器,处理静态⽂件、索引⽂件及⾃动索引效率⾼作为代理服务器,快速⾼效反向代理作为负载均衡服务器性能,⽀持多并发的连接,占⽤低内存稳定,采⽤分段资源分配技术⾼可⽤,⽀持热部署,启动迅速其它特点:成本低廉;配置⽂件⾮常简单;⽀持Rewrite重写规则,能够根据域名、URL的不同,将http请求分到不同的后端服务器群组;内置健康检查功能,如果nginx proxy后端的某台web服务器宕机了,不会影响到前端的访问;节省带宽,⽀持gzip压缩;⼆、Nginx安装与配置编译安装1.⾸先下载gcc编译器以及nginx⼀些模块的依赖库,通常有pcre库(⽀持rewrite模块),zlib(⽀持gzip模块)库,openssl(⽀持ssl模块)库等。
这些库可以编译安装,也可以yum安装,这⾥选择yum安装。
# yum install -y gcc gcc-c++ pcre pcre-devel zlib zlib-devel openssl openssl-devel2.然后选择nginx版本下载源码并解压# tar –zxvf nginx-1.12.2.tar.gz –C /PATH3.使⽤configure脚本⾃动⽣成Makefile⽂件,nginx的configure脚本⽀持常⽤选项如下,但⾸先给出⼀个例⼦:./configure --prefix=/usr/local/nginx \--conf-path=/etc/nginx/nginx.conf \--error-log-path=/datadisk/data/log/nginx/error.log \--http-log-path=/datadisk/data/log/nginx/access.log \--pid-path=/var/run/nginx.pid \--lock-path=/var/run/nginx.lock \--http-client-body-temp-path=/var/cache/nginx/client_temp \--http-proxy-temp-path=/var/cache/nginx/proxy_temp \--http-fastcgi-temp-path=/var/cache/nginx/fastcgi_temp \--http-uwsgi-temp-path=/var/cache/nginx/uwsgi_temp \--http-scgi-temp-path=/var/cache/nginx/scgi_temp \--user=nginx \--group=nginx \--with-http_ssl_module \--with-http_realip_module \--with-http_addition_module \--with-http_sub_module \--with-http_dav_module \--with-http_flv_module \--with-http_mp4_module \--with-http_gunzip_module \--with-http_gzip_static_module \--with-http_random_index_module \--with-http_secure_link_module \--with-http_stub_status_module \--with-http_auth_request_module \--with-threads --with-stream \--with-stream_ssl_module \--with-http_slice_module \--with-file-aio \--with-http_v2_module \--with-ipv6然后make && make install即可。
keepalived简介keepalived是一个类似于layer3, 4 & 5交换机制的软件,也就是我们平时说的第3层、第4层和第5层交换。
Keepalived的作用是检测web 服务器的状态,如果有一台web服务器死机,或工作出现故障,Keepalived 将检测到,并将有故障的web服务器从系统中剔除,当web服务器工作正常后Keepalived自动将web服务器加入到服务器群中,这些工作全部自动完成,不需要人工干涉,需要人工做的只是修复故障的web服务器。
编辑本段keepalived理论工作原理Layer3,4&5工作在IP/TCP协议栈的IP层,TCP层,及应用层,原理分别如下:Layer3:Keepalived使用Layer3的方式工作式时,Keepalived会定期向服务器群中的服务器发送一个ICMP的数据包(既我们平时用的Ping程序),如果发现某台服务的IP地址没有激活,Keepalived便报告这台服务器失效,并将它从服务器群中剔除,这种情况的典型例子是某台服务器被非法关机。
Layer3的方式是以服务器的IP地址是否有效作为服务器工作正常与否的标准。
在本文中将采用这种方式。
Layer4:如果您理解了Layer3的方式,Layer4就容易了。
Layer4主要以TCP端口的状态来决定服务器工作正常与否。
如web server的服务端口一般是80,如果Keepalived检测到80端口没有启动,则Keepalived将把这台服务器从服务器群中剔除。
Layer5:Layer5就是工作在具体的应用层了,比Layer3,Layer4要复杂一点,在网络上占用的带宽也要大一些。
Keepalived将根据用户的设定检查服务器程序的运行是否正常,如果与用户的设定不相符,则Keepalived 将把服务器从服务器群中剔除。
编辑本段keepalived作用随着你的网站业务量的增长你网站的服务器压力越来越大?需要负载均衡方案!商业的硬件如F5又太贵,你们又是创业型互联公司如何有效节约成本,节省不必要的浪费?同时实现商业硬件一样的高性能高可用的功能?有什么好的负载均衡可伸张可扩展的方案吗?答案是肯定的!有!我们利用 LVS+Keepalived基于完整开源软件的架构可以为你提供一个负载均衡及高可用的服务器。
keepalived原理及nginx+keepalived⼀、keepalived⾼可⽤简介keepalived是⼀个类似与layer3、4和7交换机制的软件,keepalived软件有两种功能,分别是监控检查、VRRP(虚拟路由器冗余协议) keepalived的作⽤是检测Web服务器的状态,⽐如有⼀台Web服务器、MySQL服务器宕机或⼯作出现故障,keepalived检测到后,会将故障的Web服务器或者MySQL服务器从系统中剔除,当服务器⼯作正常后keepalived⾃动将服务器加⼊到服务器群中,这些⼯作全部⾃动完成,不需要⼈⼯⼲涉,需要⼈⼯做的值是修复故障的Web和MySQL服务器。
layer3、4、7⼯作在TCP/IP协议栈的IP层、传输层、应⽤层,实现原理为:layer3:keepalived使⽤layer3的⽅式⼯作时,keepalived会定期向服务器群中的服务器发送⼀个ICMP数据包,如果发现某台服务的IP地址⽆法ping通,keepalived便报告这台服务器失效,并将它从服务器集群中剔除。
layer3的⽅式是以服务器的IP地址是否有效作为服务器⼯作是否正常的标准layer4:layer4主要以TCP端⼝的状态来决定服务器⼯作是否正常。
例如Web服务端⼝⼀般为80,如果keepalived检测到80端⼝没有启动,则keepalived把这台服务器从服务器集群中剔除layer7:layer7⼯作在应⽤层,keepalived将根据⽤户的设定检查服务器的运⾏是否正常,如果与⽤户的设定不相符,则keepalived将把服务器从服务器集群中剔除⼆、nginx+keepalived集群1、原理及环境Nginx负载均衡⼀般位于整个架构的最前端或者中间层,如果为最前端时单台nginx会存在单点故障,⼀台nginx宕机,会影响⽤户对整个⽹站的访问。
如果需要加⼊nginx备份服务器,nginx主服务器与备份服务器之间形成⾼可⽤,⼀旦发现nginx主宕机,能够快速将⽹站切换⾄备份服务器。
centos 安装keepalived-1.3.5并配置nginx Keepalived是一个免费开源的,用C编写的类似于layer3, 4 & 7交换机制软件,具备我们平时说的第3层、第4层和第7层交换机的功能。
主要提供loadbalancing(负载均衡)和high-availability(高可用)功能,负载均衡实现需要依赖Linux的虚拟服务内核模块(ipvs),而高可用是通过VRRP协议实现多台机器之间的故障转移服务。
官网源码包下载地址(2017-07-31 Keepalived最新版
keepalived-1.3.5.tar.gz):/download.html
1.# service keepalived start
错误如下
Job for keepalived.service failed because a configured resource limit was exceeded. See "systemctl status keepalived.service" and "journalctl -xe" for details. Job for keepalived.service failed because a configured resource limit was exceeded. See "systemctl status keepalived.service" and "journalctl -xe" for
details.
查看错误
1.# systemctl status keepalived.service
我们可以看到日志,是写日志出了问题
1.[root@zk-02 sbin]# systemctl status keepalived.service
2.● keepalived.service - LVS and VRRP High Availability Monitor
3. Loaded: loaded (/usr/lib/systemd/system/keepalived.service; enabled
; vendor preset: disabled)
4. Active: failed (Result: resources) since Fri 2017-08-04 15:32:31 CS
T; 4min 59s ago
5. Process: 16764 ExecStart=/usr/local/program/keepalived/sbin/keepaliv
ed $KEEPALIVED_OPTIONS (code=exited, status=0/SUCCESS)
6.
7.Aug 04 15:32:25 zk-02 Keepalived_healthcheckers[16768]: Activating hea
lthchecker for service [10.10.10.2]:1358
8.Aug 04 15:32:25 zk-02 Keepalived_healthcheckers[16768]: Activating hea
lthchecker for service [10.10.10.3]:1358
9.Aug 04 15:32:25 zk-02 Keepalived_healthcheckers[16768]: Activating hea
lthchecker for service [10.10.10.3]:1358
10.Aug 04 15:32:25 zk-02 Keepalived_vrrp[16769]: (VI_1): No VIP specified
; at least one is required
11.Aug 04 15:32:26 zk-02 Keepalived[16766]: Keepalived_vrrp exited with p
ermanent error CONFIG. Terminating
12.Aug 04 15:32:26 zk-02 Keepalived[16766]: Stopping
13.Aug 04 15:32:31 zk-02 systemd[1]: keepalived.service never wrote its P
ID file. Failing. ##写日志出了问题
14.Aug 04 15:32:31 zk-02 systemd[1]: Failed to start LVS and VRRP High Av
ailability Monitor.
15.Aug 04 15:32:31 zk-02 systemd[1]: Unit keepalived.service entered fail
ed state.
16.Aug 04 15:32:31 zk-02 systemd[1]: keepalived.service failed.
17.[root@zk-02 sbin]# vi /var/run/keepalived.pid
18.[root@zk-02 sbin]# vim /lib/systemd/system/keepalived.service
19.[root@zk-02 sbin]# vim /lib/systemd/system/keepalived.service
查看keepalived.service
[html]view plain copy
1.# vi /lib/systemd/system/keepalived.service
内容如下
[html]view plain copy
1.[Unit]
2.Description=LVS and VRRP High Availability Monitor
3.After=syslog.target network-online.target
4.
5.[Service]
6.Type=forking
7.PIDFile=/usr/local/program/keepalived/var/run/keepalived.pid ##发
现这个目录不存在,无法写入keepalived.pid
8.KillMode=process
9.EnvironmentFile=-/usr/local/program/keepalived/etc/sysconfig/keepalive
d
10.ExecStart=/usr/local/program/keepalived/sbin/keepalived $KEEPALIVED_OP
TIONS
11.ExecReload=/bin/kill -HUP $MAINPID
12.
13.[Install]
14.WantedBy=multi-user.target
问题见
[html]view plain copy
1.PIDFile=/usr/local/program/keepalived/var/run/keepalived.pid ##发
现这个目录不存在,无法写入keepalived.pid
修改成
[html]view plain copy
1.PIDFile=/var/run/keepalived.pid
运行命令
[html]view plain copy
1.# systemctl daemon-reload #重新载入 systemd,扫描新的或有变动的单元
在运行就Ok了
[html]view plain copy
1.service keepalived start
2.Starting keepalived (via systemctl): [ OK ]。