一、实现高可用
1.server4主机配置nginx
[root@server1 ~]# scp -r /usr/local/nginx/ server4:/usr/local
[root@server4 ~]# ln -s /usr/local/nginx/sbin//nginx /sbin/
[root@server4 ~]# useradd nginx
[root@server4 ~]# nginx -t
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
2.server1和server4配置pacemaker
注意:
nginx关闭,采用服务管理
配置高可用yum源
server1和server4主机配置要一致
[root@server1 ~]# yum install corosync pacemaker -y
[root@server1 ~]# cd /etc/corosync/
[root@server1 ~]# cp corosync.conf.example corosync.conf
[root@server1 ~]# vim corosync.conf
bindnetaddr: 172.25.8.0
mcastaddr: 226.94.1.8
mcastport: 5405
service {
name:pacemaker
ver:0
}
[root@server1 corosync]# scp corosync.conf server4:/etc/corosync/
root@server4's password:
corosync.conf 100% 479 0.5KB/s 00:00
[root@server1 corosync]# /etc/init.d/corosync start
Starting Corosync Cluster Engine (corosync): [ OK ]
[root@server1 corosync]# cd
[root@server1 ~]# ls
crmsh-1.2.6-0.rc2.2.1.x86_64.rpm nginx-1.14.0.tar.gz
nginx-1.10.1 nginx-sticky-module-ng
nginx-1.10.1.tar.gz nginx-sticky-module-ng.tar.gz
nginx-1.14.0 pssh-2.3.1-2.1.x86_64.rpm
[root@server1 ~]# yum install crmsh-1.2.6-0.rc2.2.1.x86_64.rpm pssh-2.3.1-2.1.x86_64.rpm -y
server4 做同样的步骤
3.配置crm
[root@server1 corosync]# crm_verify -LV #如果报错就按以下方式执行:进入crm,关闭fence检查即可
error: unpack_resources: Resource start-up disabled since no STONITH resources have been defined
error: unpack_resources: Either configure some or disable STONITH with the stonith-enabled option
error: unpack_resources: NOTE: Clusters with shared data need STONITH to ensure data integrity
Errors found during check: config not valid
[root@server1 corosync]# crm
crm(live)# configure
crm(live)configure# property stonith-enabled=false
crm(live)configure# commit
crm(live)configure# Ctrl-C, leaving
[root@server1 corosync]# crm_verify -LV
4.实现高可用
[root@server1 ~]# crm
crm(live)# configure
crm(live)configure# primitive vip ocf:heartbeat:IPaddr2 params ip=172.25.8.100 cidr_netmask=24 op monitor interval=1min
crm(live)configure# commit
crm(live)configure# property no-quorum-policy=ignore
crm(live)configure# commit
lsb:nginx 需要在 /etc/init.d/ 存入nginx脚本
再开一个终端二:
编写Nginx启动脚本,并加入系统服务
[root@server1 ~]# vim /etc/init.d/nginx
#!/bin/bash
# chkconfig: - 30 21
# description: http service.
# Source Function Library
. /etc/init.d/functions
# Nginx Settings
NGINX_SBIN="/usr/local/nginx/sbin/nginx"
NGINX_CONF="/usr/local/nginx/conf/nginx.conf"
NGINX_PID="/usr/local/nginx/logs/nginx.pid"
RETVAL=0
prog="Nginx"
start() {
echo -n $"Starting $prog: "
mkdir -p /dev/shm/nginx_temp
daemon $NGINX_SBIN -c $NGINX_CONF
RETVAL=$?
echo
return $RETVAL
}
stop() {
echo -n $"Stopping $prog: "
killproc -p $NGINX_PID $NGINX_SBIN -TERM
rm -rf /dev/shm/nginx_temp
RETVAL=$?
echo
return $RETVAL
}
reload(){
echo -n $"Reloading $prog: "
killproc -p $NGINX_PID $NGINX_SBIN -HUP
RETVAL=$?
echo
return $RETVAL
}
restart(){
stop
start
}
configtest(){
$NGINX_SBIN -c $NGINX_CONF -t
return 0
}
case "$1" in
start)
start
;;
stop)
stop
;;
reload)
reload
;;
restart)
restart
;;
configtest)
configtest
;;
*)
echo $"Usage: $0 {start|stop|reload|
restart|configtest}"
RETVAL=1
esac
exit $RETVAL
[root@server1 ~]# chmod 755 /etc/init.d/nginx #更改文件的执行权限
[root@server1 ~]# chkconfig --add nginx #加入系统服务启动列表
[root@server1 ~]# chkconfig nginx on #开机启动
[root@server1 ~]# /etc/init.d/httpd stop #nginx的端口为80,在开启nginx服务前一定要确保httpd服务是关的
Stopping httpd: [ OK ]
[root@server1 ~]# service nginx start #开启服务
Starting Nginx: [ OK ]
终端一:
crm(live)configure# primitive nginx lsb:nginx op monitor interval=30s
crm(live)configure# commit
crm(live)configure# group nginxgroup vip nginx
crm(live)configure# commit
#添加fence时,没有fence_xvm
crm(live)configure# property stonith-enabled=true
crm(live)configure# primitive vmfence stonith:fence_
fence_legacy fence_pcmk fence_virtd