标签:etc apache hup 失败 更改 51cto amp 测试 status
参考:http://litaotao.blog.51cto.com/6224470/1302100
https://www.cnblogs.com/youzhibing/p/7327342.html
192.168.127.129 (master nginx+keepalived)
192.168.127.130 (backup nginx+keepalived )
192.168.127.134 (web)
192.168.127.138 (web)
vip 192.168.127.100 (实际环境中这个ip需要是个公网地址供客户端访问)
1)、Master服务器没挂,则Master占有vip且nginx运行在Master上
2)、Master服务器挂了,则backup抢占vip且在backup上运行nginx服务
3)、如果master服务器上的nginx服务挂了,则vip资源转移到backup服务器上
4)、检测后端服务器的健康状态
说明:
Master和Backup两边都开启nginx服务,无论Master还是Backup,当其中的一个keepalived服务停止后,vip都会漂移到keepalived服务还在的节点上,
如果要想使nginx服务挂了,vip也漂移到另一个节点,则必须用脚本或者在配置文件里面用shell命令来控制。
yum -y install keepalived
[root@jie1 ~]#tar xf nginx-1.4.2.tar.gz
[root@jie1 ~]#yum -y groupinstall "Development tools" "Server Platform Development"
[root@jie1 ~]#yum -y install pcre-devel
[root@jie1 ~]# cd nginx-1.4.2
[root@jie1 nginx-1.4.2]# groupadd nginx
[root@jie1 nginx-1.4.2]# useradd -r -g nginx nginx
[root@jie1 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
make && make install
vi /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
}
global_defs {
notification_email {
root@localhost
}
notification_email_from admin@localhost
smtp_server 127.0.0.1
smtp_connect_timeout 30
router_id LTT
}
vrrp_script chk_nginx { #检测nginx服务是否在运行有很多方式,比如进程,用脚本检测等等
script "killall -0 nginx" #用shell命令检查nginx服务是否存在
interval 1 #时间间隔为1秒检测一次
weight -2 #当nginx的服务不存在了,就把当前的权重-2
fall 2 #测试失败的次数
rise 1 #测试成功的次数
}
vrrp_instance IN_1 {
state MASTER
interface eth0
virtual_router_id 22
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass aaaa
}
virtual_ipaddress {
192.168.127.100 #虚拟ip
}
track_script {
chk_nginx #引用上面的vrrp_script定义的脚本名称
}
}
/etc/init.d/nginx start
/etc/init.d/keepalived start
同master一样(第一步和第二步)
先从master上面拷贝这个配置文件然后更改
vim keepalived.conf #此配置文件是从Master服务器上copy过来,只需小小改动
state BACKUP #把这里原先的MASTER改成BACKUP
priority 99 #把这里原先的100改成99
/etc/init.d/nginx start
/etc/init.d/keepalived start
##############################################################################################################
134 :
yum install httpd -y
然后进入到/var/www/html/里面建立一个测试页
vi index.html
134
最后启动服务 /etc/init.d/httpd start
138:
yum install httpd -y
然后进入到/var/www/html/里面建立一个测试页
vi index.html
138
最后启动服务 /etc/init.d/httpd start
注意:两个测试页不同有助于我们分辨是否成功,当然实际环境中都是一样的
master:
worker_processes 1;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
upstream apacheweb { #定义负载均衡的模块
server 192.168.127.134:80 max_fails=3 fail_timeout=2s;
server 192.168.127.138:80 max_fails=3 fail_timeout=2s;
}
server {
listen 80;
server_name localhost;
location / {
root html;
index index.html index.htm;
proxy_pass http://apacheweb;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
}
backup:
worker_processes 1;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
upstream apacheweb { #定义负载均衡的模块
server 192.168.127.134:80 max_fails=3 fail_timeout=2s;
server 192.168.127.138:80 max_fails=3 fail_timeout=2s;
}
server {
listen 80;
server_name localhost;
location / {
root html;
index index.html index.htm;
proxy_pass http://apacheweb;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
}
然后两边分别重启nginx服务
1 把master上面的nginx服务停掉,看客户端能否正常访问网站并且查看vip是否会移动到backup上面
2 把master 上面的keepalived 服务停掉 看客户端能否正常访问网站并且查看vip是否会移动到backup上面
3 把其中一个web服务停掉,看是否还能正常访问web
4测试的时候发现每刷新一次页面就切换一次,lvs不是切换页面
标签:etc apache hup 失败 更改 51cto amp 测试 status
原文地址:https://www.cnblogs.com/huningfei/p/12743621.html