Nginxkeepalivedheartbeat双机热备份配置手册_第1页
Nginxkeepalivedheartbeat双机热备份配置手册_第2页
Nginxkeepalivedheartbeat双机热备份配置手册_第3页
Nginxkeepalivedheartbeat双机热备份配置手册_第4页
Nginxkeepalivedheartbeat双机热备份配置手册_第5页
已阅读5页,还剩26页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、文档可自由编辑打印Nginx+keepalived+heartbeatNginx+keepalived+heartbeat 双机热备份配置手双机热备份配置手册册文档可自由编辑打印正文目录正文目录1 双机热备简介.42 双机热备安装与配置.52.1 安装环境和软件版本说明.52.2 系统安装.52.3 JDK 环境安装配置.52.4 MYSQL 安装配置.72.4.1 基本安装配置.72.4.2 数据库双机互备.72.5 反向代理服务器 NGINX 的安装配置.92.6 KEEPALIVED 安装配置.132.7 HEARTBEAT 的安装配置.152.8 APACHE-TOMCAT 安装配置.

2、173 CENTOS 下安装配置的改动 .193.1 NGINX.193.2 KEEPALIVED.213.3 HEARTBEAT.243.4 添加 SHELL 脚本 .26文档可自由编辑打印1 双机热备简介双机热备及负载均衡配置图如下所示主服务器真实IP:7Keepalived绑定虚拟IP:1(权值较高)nginxApache-tomcatHeartbeat绑定虚拟IP:5Mysql(Master/Slave)从服务器真实IP:8Keepalived绑定虚拟IP:1(权值较低)ngi

3、nxApache-tomcatheartbeat绑定虚拟IP:5(同时只有1个)Mysql(Slave/Master)两数据库相互备份外部访问端口:1:8888文档可自由编辑打印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:

4、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.

5、0_31 的目录。2 、配置环境变量:编辑/etc/profile 文件: vi /etc/profile按 I 键进入编辑状态在适当位置配置以下内容:文档可自由编辑打印export JAVA_HOME=/usr/java/jdk1.6.0_31export JRE_HOME=$JAVA_HOME/jreexport CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib/rt.jarexport PATH=$PATH:$JAVA_HOME/bin完成配置后,按 ESC 键,然后输入:wq 保存并退出(:

6、q! 退出不保存)3 、使配置文件生效:source /etc/profile运行 java -version,会有下面的提示:程序“java”已包含在下列软件包中:* gcj-4.4-jre-headless* gcj-4.5-jre-headless* openjdk-6-jre-headless请尝试:sudo apt-get install 执行下面两个命令,安装 java 到系统中sudo update-alternatives -install /usr/bin/java java /usr/java/jdk1.6.0_31/bin/java 300sudo update-alte

7、rnatives -install /usr/bin/javac javac /usr/java/jdk1.6.0_31/bin/javac 300设置默认的 JDKsudo update-alternatives -config java4 、再查看 java 版本:java version ,显示版本信息则表示安装正确如下图:5 、注意事项:文档可自由编辑打印如果安装完之后,jdk 版本不是当前所安装的,则需先卸载之前 linux 自带的版本。2.4 MySQL 安装配置先按照 2.7 前几步配置 hostname 和 hosts 文件。2.4.1 基本安装配置1、启用自动安装 mysql

8、:apt-get install mysql-server2、设置 root 密码,如 12343、进入 mysql u root p4、建立数据库 pmdb:CREATE DATABASE pmdb;5、将之前导出的 pmdb 数据文件导入:mysqlpmdb.sql;6、退出 mysql,修改配置文件/etc/mysql/f 在 mysqld 字段中加入下面内容:7、注意!(MYSQL 不区分表名大小写)lower_case_table_names=1default-character-set=utf8 (数据库缺省以 utf8 存储) init_connect=SET NAMES utf

9、8 (设定连接 mysql 数据库时使用 utf8 编码,以让 mysql 数据库为 utf8 运行)2.4.2 数据库双机互备1、设置主服务器 A。配置 my.conf 文件,在 mysqld 中加入如下内容:#master#server-id=1log-bin=mysql-binbinlog-do-db=pmdb文档可自由编辑打印将 bind-address 所在行注释掉(访问 IP 限定,默认是均可以访问)然后重启 mysql 服务。2、将主数据库新建一个外部访问用户并赋予权限GRANT REPLICATION SLAVE ON *.* TO backup% IDENTIFIED BY

10、1234;赋予 root(或其他用户)远程登录的权限(用于 tomcat 访问)GRANT ALL ON *.* to backup% IDENTIFIED BY 1234;3、锁定数据库;FLUSH TABLES WITH READ LOCK;4、导出数据库数据;3、查看主数据库状态记录 File 和 Position 项目的值,以后要用的。4、设置从服务器 B#slave#master-host=8 #主数据库 IP(另一台机器的实际 IP)master-port=3306master-user=backupmaster-password=1234master-con

11、nect-retry=20report-host=7replicate-do-db=pmdbreplicate-rewrite-db=pmdb-pmdb #主数据库名-从数据库名文档可自由编辑打印5、把从主数据库服务器备份出来的数据库导入到从服务器中6、设置从服务器参数mysql CHANGE MASTER TO- MASTER_HOST=master_host_name, /主服务器的 IP 地址- MASTER_USER=replication_user_name, /同步数据库的用户- MASTER_PASSWORD=replication_password, /同

12、步数据库的密码- MASTER_LOG_FILE=recorded_log_, /主服务器二进制日志的文件名(前面要求记住的参数)- MASTER_LOG_POS=recorded_log_position; /日志文件的开始位置(前面要求记住的参数)e.启动同步数据库的线程mysql slave start;查看数据库的同步情况吧。如果能够成功同步那就恭喜了!查看主从服务器的状态mysql SHOW PROCESSLISTG /可以查看 mysql 的进程看看是否有监听的进程。如 mysql2 上查看到监听 的的进程。7、将 B 设为主服务器,A 为从服务器,按上面步骤重新设置。8、测试改变

13、 A 服务器中数据库 pmdb 中数据,查看 B 中的变化;再修改 B,查看 A 中数据的变化。2.5 反向代理服务器 nginx 的安装配置两台主机均安装以下步骤配置文档可自由编辑打印1、安装 Nginx 所需 pcre 库(注意:安装前需要已安装 gcc-c+包)wget tar -zxvf pcre-8.10.tar.gzcd pcre-8.10./configuremakemake install2、安装 Nginx自动安装:sudo apt-get install nginx启动服务,在浏览器中输入 ,若显示 Nginx 欢迎界面,则安装成功安装完后直接访问可能会提示 403(Ubu

14、ntu 系统会提示) ,这时修改 /etc/nginx/sites-enabled/default,将location / root /var/www;index index.html index.htm;改为location / root /var/;index index.html index.htm; 即可。3、配置编辑配置文件 /etc/nginx/nginx.conf user ;文档可自由编辑打印worker_processes 2;error_log /var/log/nginx/error.log;pid /var/run/nginx.pid;worker_rlimit_no;

15、events use epoll; worker_connections 2048; # multi_accept on;http include /etc/nginx/mime.types; default_type application/octet-stream; access_log /var/log/nginx/access.log; sendfile on; #tcp_nopush on; #keepalive_timeout 0; keepalive_timeout 65; tcp_nodelay on; #gzip on; gzip_disable MSIE 1-6.(?!.*

16、SV1);文档可自由编辑打印 include /etc/nginx/conf.d/*.conf; include /etc/nginx/sites-enabled/*; upstream localhost server 0:8080 weight=1; server 9:8080 weight=1; ip_hash; #在没有做共享 session 的情况下 ip_hash 可以解决 session问题 server listen 8888; server_name localhost; location / root html/solr; pro

17、xy_pass ; include proxy.conf; error_page 500 502 503 504 /50 x.html; location = /50 x.html root html; 其中 proxy.conf 文件为:proxy_redirect off;proxy_set_header Host $http_host;文档可自由编辑打印proxy_set_header X-Real-IP $remote_addr;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;client_max_body_siz

18、e 10m;client_body_buffer_size 128k;proxy_connect_timeout 300;proxy_send_timeout 300;proxy_read_timeout 300;proxy_buffer_size 4k;proxy_buffers 4 32k;proxy_busy_buffers_size 64k;proxy_temp_ 64k;4、重启 nginx: service nginx restart2.6 Keepalived 安装配置1、自动安装:sudo apt-get install keepalived2、按照如下内容编辑配置文件:/et

19、c/keepalived/keepalived.confvrrp_script chk_nginx script sh /root/scripts/monitor_nginx.sh #监控和启动 nginx 进程脚本interval 2 #检查间隔weight 2vrrp_instance VI_1 state MASTER#从是 BACKUPinterface eth0virtual_router_id 51文档可自由编辑打印mcast_src_ip 7priority 105 #主比从数值大advert_int 3#smtp_alertauthentication a

20、uth_type PASSauth_pass 1234track_script chk_nginxvirtual_ipaddress 13、添加启动和判断 nginx 正常工作的脚本。在新建文件/root/scripts/monitor_nginx.sh ,内容如下#!/bin/bashB=ps -ef | grep nginx: master process| grep -v grepecho $Bif -z $B then /etc/init.d/nginx start sleep 5文档可自由编辑打印 B=ps -ef | grep nginx: master pr

21、ocess| grep -v grep if -z $B then killall keepalived fifi4、重启 keepalived: service keepalived restart2.7 Heartbeat 的安装配置主从机器安装步骤相同。1、让内核支持 IPVS首先,我们必须让 和 两台服务器的内核支持 IPVS(IP Virtual Server)。通过 IPVS,我们可以在 Linux 内核级别上实现传输层的负载均衡。执行下面的命令:2、然后,我们还需要修改/etc/modules,添加这些模块,以便系统在重新启动时能够自动加载它们。执行下面的命令:sudo nano

22、 /etc/modules在文件末尾,添加下列内容:文档可自由编辑打印3、此外,我们还需要启用内核的包转发功能,执行下面的命令:sudo nano /etc/sysctl.conf将 net.ipv4.ip_forward 所在行的注释去掉。文件保存后,运行命令使之立即生效:sudo sysctl p4、安装 heartbeat 前,我们要先调节负载均衡节点上的/etc/hosts 文件sudo nano /etc/hosts localhost7 mysql-lb1 #mysql-lb1 为主机名称,在/etc/hostname 中配置192.168.

23、2.51 mysql-lb25、启动自动安装:apt-get install heartbeat6、在/etc/heartbeat/目录下新建文件 ha.cf,并编辑:loglogfacility local0#keepalive 2deadtime 5#warntime 10#initdead 10#udpport 694bcast eth0文档可自由编辑打印auto_failback offnode mysql-lb1node mysql-lb2respawn hacluster /usr/lib/heartbeat/ipfailapiauth ipfail gid=haclient ui

24、d=hacluster7、在/etc/heartbeat/目录下新建文件 haresources,并编辑:mysql-lb1 5/24/eth08、在/etc/heartbeat/目录下新建文件 haresources,并编辑:auth 3#1 crc#2 sha1 HI!3 md5 Hello!9、重启 heartbeat,service heartbeat restart10、输入 ip a ,查看绑定的虚拟 IP 是否绑定,如下图(5)2.8 Apache-tomcat 安装配置两台机器配置基本相同1、下载软件压缩包:apache-tomcat

25、-6.0.35.tar.gz2、在/usr/目录下新建文件夹 tomcat/,并进入此文件夹3、将压缩包解压:tar zxvf apache-tomcat-6.0.35.tar.gz 4、将 mysql 驱动文件 mysql-connector-java-5.1.13-bin.jar 放入 lib/文件夹下5、修改配置文件内容:压缩文件夹中/conf/content.xml文档可自由编辑打印在标签中添加如下内容: 6、将 web 服务导出文件 pmweb.war 放入 webapps/文件夹下7、启动服务器 sh bin/start.sh文档可自由编辑打印3 CentOS 下安装配置的改动Ce

26、ntOS 下使用的是手动安装软件,遇到较多问题。3.1 Nginx1、首先安装 Nginx 所需 pcre 库安装前确认已安装 c 和 c+编译工具(如 gcc、gcc-c+)wget tar -zxvf pcre-8.10.tar.gzcd pcre-8.10./configuremakemake install2、安装 openssl-develYum install openssl-devel3、安装 nginxgroupadd wwwuseradd -g tar zxvf nginx-0.8.52.tar.gzcd nginx-0.8.52/./configure -user= -pr

27、efix=/usr/local/nginx -with-http_stub_status_module -with-http_ssl_modulemakemake install4、配置修改配置文件/usr/local/nginx/conf/nginx.conf,添加下面内容到 http 中:upstream tomcats 文档可自由编辑打印 server 0:8080 weight=1; #tomcat 服务器 server 9:8080 weight=1; ip_hash; #在没有做共享 session 的情况下 ip_hash 可以解决 s

28、ession问题 server listen 8888; server_name tomcats; location / root html/solr; proxy_pass http:/ tomcats; include proxy.conf; error_page 500 502 503 504 /50 x.html; location = /50 x.html root html; 5、配置文件目录下添加 proxy.conf 文件,内容如下:proxy_redirect off;proxy_set_header Host $http_host;proxy_set_header X-Re

29、al-IP $remote_addr;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;client_max_body_size 10m;client_body_buffer_size 128k;proxy_connect_timeout 300;文档可自由编辑打印proxy_send_timeout 300;proxy_read_timeout 300;proxy_buffer_size 4k;proxy_buffers 4 32k;proxy_busy_buffers_size 64k;proxy_temp_ 64k;6

30、、测试配置文件/usr/local/nginx/sbin/nginx t如果出现以下情况/usr/local/nginx/sbin/nginx: error while loading shared libraries: libpcre.so.1: cannot open shared object file: No such directory解决办法:sudo ln -s /usr/local/lib/libpcre.so.1 /usr/lib/libpcre.so.1如下图表示配置文件没有错误7、启动 nginx/usr/local/nginx/sbin/nginx8、注意防火墙可以导致

31、无法访问3.2 Keepalived1、首先下载所需要的软件wget wget 2.安装 popt文档可自由编辑打印安装前确认已安装 gcc编译 keepalived 时需要 popt,否则会报以下错误:configure: error: Popt libraries is requiredtar -zxvf popt-1.16.tar.gzcd popt-1.16./configuremakemake install3、安装 openssl 等 keepalived 依赖软件yum install ipvsadmyum install kernel kernel-develyum insta

32、ll openssl-devel4.安装 keepalivedtar -zxvf keepalived-1.1.19.tar.gzcd keepalived-1.1.19./configure -prefix=/usr/local/keepalived -mandir=/usr/local/share/man/ -with-kernel-dir=/usr/src/kernels/2.6.32-220.7.1.el6.i686/makemake install5.配置! Configuration keepalivedglobal_defs notification_email 文档可自由编辑打

33、印 notification_email_from smtp_server smtp_connect_timeout 30 router_id pmsbackupstatic_ipaddress /24 brd + dev eth0 scope globalvrrp_instance VI_1 state MASTER interface eth0 dont_track_primary virtual_router_id 51 priority 100 advert_int 1 authentication auth_type PASS auth_pa

34、ss 1111 virtual_ipaddress 44/24 dev eth0 文档可自由编辑打印3.3 Heartbeat1、安装 cluster glue安装 heartbeat 之前需要安装 glue。yum install autoconf automake libtool glib2-devel libxml2-devel bzip2-devel e2fsprogs-devel libxslt-devel libtool-ltdl-devel make wget(红色标记处也需要安装)groupadd haclientuseradd -g haclient h

35、aclustercd /tmpwget tar xjf glue-1.0.9.tar.bz2cd Reusable-Cluster-Components-glue-glue-1.0.9./autogen.sh./configure -prefix=/usr/local/heartbeat LIBS=/lib/libuuid.so.1(64 位系统上是LIBS=/lib64/libuuid.so.1)make & make install安装过程中会在 INTERNET 中校验一些 xml 文件,会耗费大量时间,要耐心等待。如果报错可能是网络引起,多试几次就行(yum install d

36、ocbook-dtds docbook-style-xsl 安装这两个包之后解决 )。2、安装 Resource Agentscd /tmpwget -no-check-certificate tar xzf v3.9.2cd ClusterLabs-resource-agents-b735277/./autogen.sh文档可自由编辑打印./configure -prefix=/usr/local/heartbeat CFLAGS=-I/usr/local/heartbeat/include LDFLAGS=-L/usr/local/heartbeat/lib LIBS=/lib/libuu

37、id.so.1(64 位系统上是 LIBS=/lib64/libuuid.so.1)ln -s /usr/local/heartbeat/lib/* /lib/ (64 位系统是 ln -s /usr/local/heartbeat/lib/* /lib64/ 解决 libplumb.so.2 等包找不到的问题,./configure 的时候会产生一些需要的包)make & make install3、安装 Heartbeatcd /tmpwget tar xjf 7e3a82377fa8.tar.bz2cd Heartbeat-3-0-7e3a82377fa8/./bootstrap

38、./configure -prefix=/usr/local/heartbeat CFLAGS=-I/usr/local/heartbeat/include LDFLAGS=-L/usr/local/heartbeat/lib LIBS=/lib64/libuuid.so.1vim /usr/local/heartbeat/include/heartbeat/glue_config.h删除最后一行:#define HA_HBCONF_DIR “/usr/local/heartbeat/etc/ha.d/” (解决glue_config.h:99:1: error: HA_HBCONF_DIR

39、redefined 错误)make & make installcp doc/ha.cf /usr/local/heartbeat/etc/ha.d/cp doc/haresources /usr/local/heartbeat/etc/ha.d/cp doc/authkeys /usr/local/heartbeat/etc/ha.d/cp heartbeat/init.d/heartbeat /etc/rc.d/init.d/chkconfig -add heartbeatchkconfig heartbeat onchmod 600 /usr/local/heartbeat/et

40、c/ha.d/authkeys文档可自由编辑打印sed -i s#/usr/lib/ocf#/usr/local/heartbeat/usr/lib/ocf#g /usr/local/heartbeat/etc/ha.d/shellfuncssed -i s#/usr/lib/ocf#/usr/local/heartbeat/usr/lib/ocf#g /usr/local/heartbeat/usr/lib/ocf/lib/heartbeat/ocf-shellfuncssed -i s#/usr/lib/ocf#/usr/local/heartbeat/usr/lib/ocf#g /usr

41、/local/heartbeat/etc/ha.d/resource.d/hto-mapfuncs(上面三条是用新的路径替换默认路径,将/usr/lib/ocf 替换为/usr/local/heartbeat/usr/lib/ocf)4、配置同 2.73.4 添加 shell 脚本1、新建文件/usr/local/heartbeat/myslq_monitor.sh2、添加如下内容:#!/bin/shcat /var/log/mysql_ha.log elseecho $TIMESTAMP$DB1IP nginx is running,but ha is down,start ha now /

42、var/log/mysql_ha.log/etc/rc.d/init.d/heartbeat start if $HAPORT = 694 ;thenecho $TIMESTAMP$DB1IP ha start successful,nginx and ha all running. /var/log/mysql_ha.logelseecho $TIMESTAMP$DB1IP ha is down,let (DB2IP) to take over nginx,please start ha now! /var/log/mysql_ha.log文档可自由编辑打印#mail -s mysql an

43、d ha warning!server: $DB1IP ha is down /var/log/mysql_ha.log#mail -s mysql and ha warning!server: $DB1IP mysql is down /var/log/mysql_ha.log fielseecho $TIMESTAMP$DB1IP nginx and ha all down,first restart nginx,when nginx is run,restart ha /var/log/mysql_ha.log /usr/local/nginx/sbin/nginx#/etc/rc.d/

44、init.d/mysqld startif $NGPORT = 8888 ;then/etc/rc.d/init.d/heartbeat startif $HAPORT = 694 ;then文档可自由编辑打印echo $TIMESTAMP$DB1IP nginx and ha all running. /var/log/mysql_ha.log elseecho $TIMESTAMP$DB1IP nginx is running,ha is down,please restart ha /var/log/mysql_ha.log#mail -s mysql and ha warning!server: $DB1IP ha is down /var/log/mysql_ha.log#mail -s mysql and ha warning!server: $DB1IP mysql and ha all down /var/log/mysql_ha.log elseecho $TIMESTAMP$

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论