设为首页 收藏本站
查看: 1047|回复: 0

[经验分享] Nginx+Keepalived实现负载均衡高可用

[复制链接]

尚未签到

发表于 2018-12-31 07:01:54 | 显示全部楼层 |阅读模式
  Nginx+Keepalived实现负载均衡高可用
  

  

  一、环境
  5台虚拟机,分别是:
  1台测试机(192.168.2.83);
  2台nginx/keepalived(192.168.2.235/192.168.2.236);
  2台Web Servers(192.168.2.237/192.168.2.238);
  注:VIP设置为 192.168.2.229;
  

  二、安装配置Web Server
  由于Web Server的安装与配置非常简单,根据自己喜好,安装一个即可;比如:apache、nginx、tomcat等等。在此就不再详述;
  

  三、安装配置Nginx
  yum -y install gcc vim lrzsz pcre-devel kernel-devel openssl-devel wget
  wget http://nginx.org/download/nginx-1.9.0.tar.gz
  tar xzvf nginx-1.9.0.tar.gz
  cd nginx-1.9.0
  ./configure --prefix=/usr/local/nginx --with-debug --with-http_stub_status_module --with-stream --with-http_ssl_module
  make;make install
  ln -s /usr/local/nginx/sbin/nginx  /sbin/
  cd /usr/local/nginx/conf
  cp nginx.conf nginx.conf.bak
  编辑nginx主配置文件nginx.conf,内容大致如下:
  worker_processes  10;
events {
    worker_connections  1024;
}
http {
    include       mime.types;
    default_type  application/octet-stream;
    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';
    sendfile        on;
    keepalive_timeout  65;
    upstream html_pool {
  ip_hash;
  server 192.168.2.237:80;
        server 192.168.2.238:80;
  #server 192.168.2.239:80 backup;
  #server 192.168.2.240:80 down;

  }
    server {
        listen       80;
        server_name  localhost;
        location / {
         proxy_pass     http://html_pool;
         proxy_set_header   Host             $host;
         proxy_set_header   X-Real-IP        $remote_addr;
         proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for;
        }
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }
}
  

  注:以上的操作,两台都需要操作;到此,我们的Nginx就安装及配置好了。
  

  四、安装配置Keepalived
  wget  http://www.keepalived.org/software/keepalived-1.2.15.tar.gz
tar xzvf keepalived-1.2.15.tar.gz
cd keepalived-1.2.15
./configure --sysconf=/etc/ --with-kernel-dir=/usr/src/kernels/2.6.32-504.23.4.el6.x86_64/
  #内核参数,根据不同的操作系统,会不一样,注意更改为您服务器上的内核路径即可;
  make
make install
ln -s /usr/local/sbin/keepalived /sbin/
cd /etc/keepalived/
cp keepalived.conf keepalived.conf.bak
  编辑keepalive.conf主配置文件,内容大致如下:
  ! Configuration File for keepalived
  global_defs {
   router_id LVS_DEVEL
}
  vrrp_script chk_nginx {
        script "/etc/keepalived/check_nginx.sh"
        interval 2
        weight 2
        }
  vrrp_instance VI_1 {
    state MASTER/BACKUP        #前主后备
    interface eth0
    virtual_router_id 60
    priority 100/80        #前主后备
    advert_int 3
    authentication {
        auth_type PASS
        auth_pass 33333
    }
    virtual_ipaddress {
        192.168.2.229
    }
        track_script {
                chk_nginx
        }
}

  

  因为主配置文件里有用到一个检测nginx状态的脚本,所以另外需要创建脚本,内容如下:
  # cat check_ngix.sh
  #!/bin/bash
nginx_start=`ps -C nginx --no-header |wc -l`
if [ $nginx_start = 0 ]; then
#/etc/init.d/nginx start
/usr/local/nginx/sbin/nginx
sleep 3
nginx_status=`ps -C nginx --no-header |wc -l`
if [ $nginx_status = 0 ]; then
/etc/init.d/keepalived stop
fi
fi
  
chmod +x /etc/keepalived/check_nginx.sh
  注:同样,以上的所有操作,需要两台服务器上一样操作,注意更改主备及优先级即可;到此,keepalive的相关安装与配置即OK了;
  

  五、校验及测试

  •   启动keepalived(两台):/etc/init.d/keepalived start

  •   在主服务器上随意把nginx或者keepalived服务关闭,观察服务的可用性;
  •   如果飘到备服务器上了,同样,在备服务器上随意把nginx或者keepalived服务关闭,再观察;
  •   最后需要注意的是,如果服务器上有启用安全软件,比如ipatalbes,一定要让服务器间相互访问,不仅仅是ping通;如:iptables -I INPUT -s 192.168.2.0/24 -j ACCEPT
  

  





运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-657749-1-1.html 上篇帖子: Lvs+Keepalived高可用负载均衡配置 下篇帖子: nginx keepalived 搭建负载均衡
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表