Nginx和Keepalived 主备

1. 机器
主机 CentOS 6.4  192.168.1.138
备机 CentOS 6.4  192.168.1.139

2. NGINX安装
sudo apt-get update
sudo apt-get install libpcre3 libpcre3-dev
可能还需要安装
sudo apt-get install openssl libssl-dev

tar zxvf xxx
./configure –prefix=/usr/local/nginx
make
sudo make install


nginx.conf

user www www;
worker_processes 8;
error_log /usr/nginx/logs/nginx_error.log error;
pid       /usr/nginx/nginx.pid;
worker_rlimit_nofile 65535;
events {
	use epoll;
	worker_connections 65535;
}

http {
	include mime.types;
	default_type application/octet-stream;
	#设置请求缓冲
	
	#gzip压缩
	
	#禁止通过IP访问站点
	server {
		server_name_;
		return 404;
	}
	
	server {
		listen 80;
		server_name www.1paituan.com;
		index index.html index.htm index.jsp index.do;
		root /data/htdocs/www/shop;
		
		#所以jsp页面请求交由tomcat处理
		location ~ \.(jsp|jspx|do)?$ {
			proxy_set_header Host $host;
			proxy_set_header X-Real-IP $remote_addr;
			proxy_pass http://127.0.0.1:8080;
		}
		
		location ~ .*\.(htm|html|gif|jpg|jpeg|png|bmp|swf|ioc|rar|zip|txt|flv|mid|doc|ppt|pdf|xls|mp3|wma)$ {
			expires 1d;
		}
		
		location ~ .*\.(js|css)?$ {
			expires 1h;
		}
		
		#定义访问日志的格式
		log_format
		access_log /usr/nginx/logs/nginx_access.log access;	
	}
}

 

启动: cd   /usr/local/nginx
./nginx

3. 安装Keepalived
yum install Keepalived


keepalived.conf-mastre

 

vrrp_script chk_http_port {
	script "/opt/nginx_pid.sh"  ###监控脚本
	interval 2                  ###监控时间
	weight 2                    ###目前搞不清楚
}
vrrp_instance VI_1 {
	state MASTER                ### 设置为 主
	interface eth0              ### 监控网卡    
	virtual_router_id 51        ### 这个两台服务器必须一样
	priority 101                ### 权重值 MASTRE 一定要高于 BAUCKUP
	authentication {
		 auth_type PASS         ### 加密
		 auth_pass eric         ### 加密的密码,两台服务器一定要一样,不然会出错
	}
	track_script {
		chk_http_port           ### 执行监控的服务
	}
	virtual_ipaddress {
		 192.168.219.100        ###    VIP 地址
	}
} 

 
keepalived.conf-backup

 

 

vrrp_script chk_http_port {
	script "/opt/nginx_pid.sh"
	interval 2
	weight 2
}
vrrp_instance VI_1 {
	state BACKUP             ### 设置为 辅机
	interface eth0
	virtual_router_id 51     ### 与 MASTRE 设置 值一样
	priority 100             ### 比 MASTRE权重值 低
	authentication {
		auth_type PASS
		auth_pass eric       ### 密码 与 MASTRE 一样
	}
	track_script {
		chk_http_port
	}
	virtual_ipaddress {
		192.168.219.100
	}
}

 

4. Shell脚本
nginx_pid.sh

#nohup /bin/bash /opt/nginx_pid.sh &
nginxpid='ps -C nginx --no-header |wc -l'
if [ $nginxpid -eq 0 ];then
   /usr/nginx/sbin/nginx
   sleep 3
   if [ 'ps -C nginx --no-header |wc -l' -eq 0 ];then
       killall keepalived
   fi
fi

 
5. 启动顺序
先启动Nginx        /usr/nginx/sbin/nginx
然后nginx_pid      nohup /bin/bash /opt/nginx_pid.sh
后启动Keepalived   /etc/keepalived/keepalived.conf
or  service keepalived start

都可以用 ps -ef|grep nginx查询运行情况
测试  killall  nginx

 

你可能感兴趣的:(nginx,keepalived)