华为云:

  2台云主机做负载均衡调度

    》》申请一个虚拟浮动ip,并绑定一个弹性公网ip

    》》将两台云主机绑定到虚拟浮动ip上

  3台web服务器

  1台云服务器做jumpserver(跳板机,用于批量管理)

  

  #购买增强型负载均衡器(配置监听器、后端服务器组)

跳板机

  下载nginx源码包并打包成rpm,更新自建yum仓库

    > 安装rpm-build

[root@jumpserver ~]# yum -y install rpm-build

    > 生成rpmbuild目录结构

[root@jumpserver ~]# rpmbuild -ba nginx.spec

    > 下载源码到rpmbuild目录下的SOURCES子目录下

[root@jumpserver ~]# wget http://nginx.org/download/nginx-1.12.2.tar.gz
[root@jumpserver ~]# mv /root/nginx-1.12..tar.gz /root/rpmbuild/SOURCES/

    > 创建并修改SPEC配置文件

name: nginx
Version: 1.12.
Release:
Summary: Nginx is a web server software. #Group:
License: GRL
URL: www.cloud.com
Source0: nginx-1.12..tar.gz #BuildRequires:
#Requires: %description
this is a nginx... %post
useradd nginx %prep
%setup -q %build
./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_ssl_module
make %{?_smp_mflags} %install
make install DESTDIR=%{buildroot} %files
%doc
/usr/local/nginx/* %changelog

    >  使用配置文件创建RPM包

 [root@jumpserver ~]# yum -y install gcc pcre-devel openssl-devel            # 安装依赖

[root@jumpserver ~]#  rpmbuild -ba /root/rpmbuild/SPECS/nginx.spec

 [root@jumpserver ~]# rpm -qpi /root/rpmbuild/RPMS/x86_64/nginx-1.12.2-10.x86_64.rpm         # 测试

    > 将rpm包拷贝到自建的yum 仓库下并更新yum源

[root@jumpserver ~]# cp /root/rpmbuild/RPMS/x86_64/nginx-1.12.-.x86_64.rpm /var/ftp/local_repo/
[root@jumpserver local_repo]# createrepo --update .

    > 批量安装nginx

[root@jumpserver ~]# ansible web -m yum -a 'name=nginx'

    > 配置/etc/systemd/system/nginx.service,使nginx支持systemctl控制,并批量下发到所有主机

[Unit]
Description=nginx
Documentation=http://nginx.org/en/docs/
After=network.target remote-fs.target nss-lookup.target [Service]
Type=forking
PIDFile=/usr/local/nginx/logs/nginx.pid
ExecStartPre=-/usr/local/nginx/sbin/nginx -t -c /usr/local/nginx/conf/nginx.conf
ExecStart=/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
ExecReload=/usr/local/nginx/sbin/nginx -s reload
ExecStio=/usr/local/nginx/sbin/nginx -s quit
PrivateTmp=true [Install]
WantedBy=multi-user.target
[root@jumpserver ~]# ansible web -m copy -a 'src=/root/nginx.service dest=/etc/systemd/system/nginx.service'

    > 批量启动nginx服务

[root@jumpserver ~]#  ansible web -m service  -a 'name=nginx state=started enabled=yes'
[root@jumpserver ~]# ansible web -m shell -a 'ss -ltnup | grep *:80'

调度器(2台)

  >  安装 keepalived

yum -y install keepalived

  > 修改配置文件 vim /etc/keepalived/keepalived.conf

! Configuration File for keepalived

global_defs {
notification_email {
root@localhost
}
notification_email_from root@localhost
smtp_server 127.0.0.1
smtp_connect_timeout
router_id web-
} vrrp_instance VI_1 {
state BACKUP # 另外一台配置为MASTER
interface eth0
virtual_router_id # 两台调度器的值相同
priority # 优先级,设置不同值
advert_int
authentication {
auth_type PASS
auth_pass # 密码 必须相同
}
virtual_ipaddress {
192.168.1.100 # vip
}
}

  > 重启服务

systemctl restart keepalived

  > 配置nginx调度  vim /usr/local/nginx/conf/nginx.conf

http {
...
# web集群
upstream webserver {
server 192.168.1.13:;
server 192.168.1.14:;
server 192.168.1.15:;
} server {
listen ;
server_name localhost;
location / {
proxy_pass http://webserver;
} ...
}

web集群

  > 配置 vim /usr/local/nginx/conf/nginx.conf     #  ansible  批量部署 nginx配置文件,方便排错

    server {
listen 80;
    server_name localhost;
  add_header 'Cluster- id ' {{ansible_hostname}}';
    location / 
      {
        proxy_pass http://webserver;
      }
  }

华为云:实现高可用的负载均衡web集群的更多相关文章

  1. LVS + Keepalived 实现高可用、负载均衡 Web 集群

    简介: LVS 是 Linux Virtual Server 的简写,Linux 虚拟服务器的意思,是一个虚拟的服务器集群系统,此项目由章文嵩博士于 1998 年 5 月成立,是中国最早出现的自由软件 ...

  2. Keepalived+LVS 实现高负载均衡Web集群

    一.原理及简介: 1.1 Keepalived简介      Keepalived是Linux下一个轻量级别的高可用解决方案.Keepalived起初是为LVS设计的,专门用来监控集群系统中各个服务节 ...

  3. Mycat - 高可用与负载均衡实现,满满的干货!

    前言 开心一刻 和朋友去吃小龙虾,隔壁桌一个小女孩问妈妈:"妈妈,小龙虾回不了家,它妈妈会不会着急?" 她妈妈愣住了,我扒虾的手停下了,这么善良的问题,怎么下得了口.这是老板急忙过 ...

  4. 高可用与负载均衡(7)之聊聊Lvs-DR+Keepalived的解决方案

    今天直接开门见山了,直接说配置吧.首先介绍下我这的环境 如有问题,请联系我18500777133@sina.cn IP 安装软件 192.168.1.7 lvs1+keepalived master角 ...

  5. 浅谈web应用的负载均衡、集群、高可用(HA)解决方案(转)

    1.熟悉几个组件 1.1.apache     —— 它是Apache软件基金会的一个开放源代码的跨平台的网页服务器,属于老牌的web服务器了,支持基于Ip或者域名的虚拟主机,支持代理服务器,支持安 ...

  6. Keepalived+HAProxy实现RabbtiMQ高可用的负载均衡

    HAProxy提供高可用性.负载均衡以及基于TCP和HTTP应用的代理,支持虚拟主机,它是免费.快速并且可靠的一种解决方案,包括Twitter,Reddit,StackOverflow,GitHub在 ...

  7. 浅谈web应用的负载均衡、集群、高可用(HA)解决方案

    http://aokunsang.iteye.com/blog/2053719   声明:以下仅为个人的一些总结和随写,如有不对之处,还请看到的网友指出,以免误导. (详细的配置方案请google,这 ...

  8. JMS之——ActiveMQ 高可用与负载均衡集群安装、配置(ZooKeeper + LevelDB + Static discovery)

    一.说明 从 ActiveMQ 5.9 开始, ActiveMQ 的集群实现方式取消了传统的 Master-Slave 方式,增加了基于ZooKeeper + LevelDB 的 Master-Sla ...

  9. PostgreSQL 9.5 高可用、负载均衡和复制

    高可用.负载均衡和复制 1. 不同方案的比较 共享磁盘故障转移 共享磁盘故障转移避免了只使用一份数据库拷贝带来的同步开销. 它使用一个由多个服务器共享的单一磁盘阵列.文件系统(块设备)复制 DRBD是 ...

随机推荐

  1. Linux下的静态库与动态库的生成与调用

    静态库与动态库 静态函数库 这类库的名字一般是libxxx.a,xxx为库的名字.利用静态函数库编译成的文件比较大,因为整个函数库的所有数据都会被整合进目标代码中,他的优点就显而易见了,即编译后的执行 ...

  2. 笔记-9:使用random库生成随机数

    random:主要目的是生成随机数 函数 说明 seed(a=None) 初始化随机数,默认值为当前系统时间 random() 生成一个[0.0,1.0)之间的随机数小数 randint(a,b) 生 ...

  3. I2C的协议层和物理层

    I2C 协议简介 I2C 通讯协议(Inter-Integrated Circuit)是由 Phiilps 公司开发的,由于它引脚少,硬件实现简单,可扩展性强,不需要 USART.CAN 等通讯协议的 ...

  4. py kafka

    # https://github.com/confluentinc/confluent-kafka-python/blob/master/examples/consumer.py #生产者 impor ...

  5. node 标准输入流和输出流

    使用node 在 CMD 控制台获取输入的指令: 方式一: process.stdin.resume(); process.stdin.setEncoding('utf-8'); process.st ...

  6. 判断pdf文件是否正常可用

    之前在下载港交所的文件的时候会碰到有些文件异常的情况,文件下载下来,但是不能打开.查到其他的方法不是判断错误就是很麻烦.   整理出一个非常简单的方法,将文件以二进制方式打开,然后判断文件的开头是否符 ...

  7. hdu 4504 dp问题 转化能力不够 对状态的转移也是不够

    威威猫系列故事——篮球梦 Time Limit: 300/100 MS (Java/Others)    Memory Limit: 65535/32768 K (Java/Others)Total ...

  8. linux安装tmux分屏插件

    linuxtmux分屏 一.安装tmux 二.基本使用 三.鼠标操作 一.安装tmux yum install -y tmux TMUX2版本以下 二.基本使用 使用tmux一般使用命令和快捷键来操作 ...

  9. springboot启动流程(十)springboot自动配置机制

    所有文章 https://www.cnblogs.com/lay2017/p/11478237.html 正文 在第七篇文章中我们了解到,refresh过程将会调用ConfigurationClass ...

  10. 基于【 centos7】二 || 系统时间与网络时间同步

    # date // 查看系统时间 #hwclock // 查看硬件时间 # yum -y install ntp ntpdate 安装ntpdate工具 # ntpdate cn.pool.ntp.o ...