1. 시스템 환경 및 소프트웨어 버전
centos 6.6 x64
keepalived-1.2.18.tar.gz
nginx-1.6.2.tar.gz
마스터 서버: 192.168.38.64
슬레이브 서버: 192.168. 38.66
vip:192.168.38.100
2.nginx 설치(마스터-슬레이브 설치는 동일)
1. 종속 환경 설치
코드는 다음과 같습니다.
yum install gcc gcc- c++ make automake autoconf libtool pcre pcre-devel zlib zlib-developenssl openssl-devel
2.opt 디렉터리에 nginx를 업로드하세요
3. 압축을 풀고 설치하세요
# tar -zxvf nginx-1.6.2.tar.gz # cd nginx-1.6.2 # ./configure --prefix=/opt/nginx (prefix=/opt/nginx 这个指定的是 nginx目录) # make && make install
4. index.html
# vi / opt/nginx/conf/nginx.conf
vi /opt/nginx/html/index.html
5.nginx 시작 및 일반 명령
구성 테스트: /opt/nginx/sbin /nginx -t 구성이 정상임을 나타내는 다음 인터페이스가 나타납니다
시작: /opt/nginx/sbin/nginx
다시 시작: /opt/nginx/sbin/nginx -s reload
Stop: /opt/nginx/ sbin/nginx -s stop
6. nginx를 부팅하고 시작하세요
vi /etc/rc.local
Join: /opt/nginx/sbin/nginx
7. 방화벽 개방 포트 수정
vi / etc/sysconfig/iptables
추가: -a input -p tcp -m state --state new -m tcp --dport 8888 -j accept
방화벽 다시 시작: service iptables restart
8. 질문
nginx
vi /etc/ld.so.conf
추가: /opt/nginx/lib/
9 .nginx 로드 밸런싱
nginx 로드 밸런싱은 주로 업스트림 모듈에 의해 완료됩니다
nginx 구성 파일을 수정하세요
vi /data/nginx/conf/nginx.conf
다음 내용을 추가하세요: (web_pools의 이름은 변수)
upstream web_pools { server 10.0.6.108:7080weight=1; server 10.0.0.85:8980weight=1; }
서버 노드 아래에 위치 노드를 추가합니다. Proxy_pass 구성은 http:// + 업스트림 이름입니다. 결과는 다음과 같습니다.
여기서 가중치는 가중치이고 백업은 백업 서버입니다. 백업 서버는 다른 서버가 다운된 경우에만 시작됩니다.
3. Keepalived 설치1. opt 디렉터리에 keepalived를 업로드하세요.
2.
tar -zxvf keepalived-1.2.18.tar.gz cd keepalived-1.2.18 ./configure --prefix=/opt/keepalived make && make install
3. 부팅 시 keepalived 서비스를 시작하도록 설정하세요.
cp /opt/keepalived/etc/rc.d/init.d/keepalived /etc/init.d/ cp /opt/keepalived/etc/sysconfig/keepalived /etc/sysconfig/ ln -s /opt/sbin/keepalived /usr/sbin/ ln -s /opt/keepalived/sbin/keepalived /sbin/
keepalived 구성 파일 수정
vi /etc/keepalived/keepalived.conf
chkconfig keepalived on
vi /etc/keepalived/nginx_check.sh
내용은 다음과 같습니다.
! configuration file for keepalived (!、#都是注释) global_defs { #全局配置 notification_email { acassen@firewall.loc failover@firewall.loc sysadmin@firewall.loc } notification_email_from alexandre.cassen@firewall.loc smtp_server 192.168.200.1 smtp_connect_timeout 30 router_id lvs_01 #这个配置要唯一 } vrrp_script chk_nginx { script "/etc/keepalived/nginx_check.sh" ## 检测 nginx 状态的脚本路径 interval 2 ## 检测时间间隔 weight -20 ## 如果条件成立,权重-20 } vrrp_instance vi_1 { #实例 vi_1 名字可以随意 但是不建议修改 state master # 主服务器master 从服务器 backup interface em1 # em1 网卡 virtual_router_id 51 #virtual_router_id 主备要一致 priority 100 # 优先级 数字越大 优先级越高 priority 的值 主服务器要大于 从服务器 advert_int 1 #设定master与backup负载均衡器之间同步检查的时间间隔,单位是秒 authentication { # 主从通信 验证类型及密码 auth_type pass #设置vrrp验证类型,主要有pass和ah两种 auth_pass 1111 #设置vrrp验证密码,在同一个vrrp_instance下,master与backup必须使用相同的密码才能正常通信 } ## 将 track_script 块加入 instance 配置块 track_script { chk_nginx ## 执行 nginx 监控的服务 } virtual_ipaddress { 192.168.38.100/24 #vrrp ha 虚拟地址 如果有多个vip,继续换行填写 } }
저장 후 스크립트에 실행 권한을 부여합니다:
7. 참고: keepalived 마스터-슬레이브 구성 파일이 다릅니다chmod +x/etc/keepalived/nginx_check.sh
a.router_id가 일치하지 않습니다
b.state 메인 서버가 마스터이고, 슬레이브 서버는 백업
c.priority 마스터 서버는 슬레이브 서버보다 큽니다
8.keepalived 명령
시작: servicekeepalived start
중지: servicekeepalived stop
다시 시작: servicekeepalived restart
9에 유의하세요. 문제
a.vip가 성공적으로 바인딩되지 않았습니다
해결 방법: ip addr 로컬 보기 해당 IP가 있는 네트워크 카드 이름을 확인한 다음 구성 파일을 수정하세요
vi /etc/keepalived/keepalived.conf 저장 후 servicekeepalived 재시작은 keepalived 서비스를 다시 시작할 수 있습니다10. 테스트
마스터-슬레이브 nginx 및 keepalived 서비스를 시작하세요
마스터 및 슬레이브 서버 각각: ip add | grep 192.168.38.100
볼 수 있습니다. on 192.168.38.64
마스터 서버를 종료하는 동안 Keepalived는 Server마스터 서버에서 다시 Keepalived를 시작하면 마스터 서버에는 결과가 있지만 슬레이브 서버에는 결과가 없습니다.当杀死 nginx后,keepalived则会自动启动 nginx服务
11. keepalived脑裂 (ip add | grep 192.168.38.100 在主从都有结果)
解决方案:防火墙问题
iptables-iinput4-pvrrp-jaccept service iptables save service iptables restart
위 내용은 nginx+keepalived 고가용성 마스터-슬레이브 구성 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!