华为云:实现高可用的负载均衡web集群
华为云:
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集群的更多相关文章
- LVS + Keepalived 实现高可用、负载均衡 Web 集群
简介: LVS 是 Linux Virtual Server 的简写,Linux 虚拟服务器的意思,是一个虚拟的服务器集群系统,此项目由章文嵩博士于 1998 年 5 月成立,是中国最早出现的自由软件 ...
- Keepalived+LVS 实现高负载均衡Web集群
一.原理及简介: 1.1 Keepalived简介 Keepalived是Linux下一个轻量级别的高可用解决方案.Keepalived起初是为LVS设计的,专门用来监控集群系统中各个服务节 ...
- Mycat - 高可用与负载均衡实现,满满的干货!
前言 开心一刻 和朋友去吃小龙虾,隔壁桌一个小女孩问妈妈:"妈妈,小龙虾回不了家,它妈妈会不会着急?" 她妈妈愣住了,我扒虾的手停下了,这么善良的问题,怎么下得了口.这是老板急忙过 ...
- 高可用与负载均衡(7)之聊聊Lvs-DR+Keepalived的解决方案
今天直接开门见山了,直接说配置吧.首先介绍下我这的环境 如有问题,请联系我18500777133@sina.cn IP 安装软件 192.168.1.7 lvs1+keepalived master角 ...
- 浅谈web应用的负载均衡、集群、高可用(HA)解决方案(转)
1.熟悉几个组件 1.1.apache —— 它是Apache软件基金会的一个开放源代码的跨平台的网页服务器,属于老牌的web服务器了,支持基于Ip或者域名的虚拟主机,支持代理服务器,支持安 ...
- Keepalived+HAProxy实现RabbtiMQ高可用的负载均衡
HAProxy提供高可用性.负载均衡以及基于TCP和HTTP应用的代理,支持虚拟主机,它是免费.快速并且可靠的一种解决方案,包括Twitter,Reddit,StackOverflow,GitHub在 ...
- 浅谈web应用的负载均衡、集群、高可用(HA)解决方案
http://aokunsang.iteye.com/blog/2053719 声明:以下仅为个人的一些总结和随写,如有不对之处,还请看到的网友指出,以免误导. (详细的配置方案请google,这 ...
- JMS之——ActiveMQ 高可用与负载均衡集群安装、配置(ZooKeeper + LevelDB + Static discovery)
一.说明 从 ActiveMQ 5.9 开始, ActiveMQ 的集群实现方式取消了传统的 Master-Slave 方式,增加了基于ZooKeeper + LevelDB 的 Master-Sla ...
- PostgreSQL 9.5 高可用、负载均衡和复制
高可用.负载均衡和复制 1. 不同方案的比较 共享磁盘故障转移 共享磁盘故障转移避免了只使用一份数据库拷贝带来的同步开销. 它使用一个由多个服务器共享的单一磁盘阵列.文件系统(块设备)复制 DRBD是 ...
随机推荐
- Word、Excel、PPT 2016、2013、2010、2007 没有保存或断电导致文件丢失怎么恢复?
1. 前言 没有保存文档还能恢复吗?死机.断电.蓝屏导致来不及保存文档,还能恢复吗?答案当然是可以的!Office中本身就有恢复文档的功能,可以帮助我们最大化的挽回损失. Office2013与Off ...
- C++Primer 5th Chap3 Strings,Vectors, and Arrays
使用名字空间成员的简单方法: using namespace ::name;例如:using std::cin; 头文件不应包含using声明 标准库类型string:(需要带有头文件#include ...
- 使用不同代理IP刷票的脚本---requests
投票功能限制刷票是通过限制单个IP的投票次数实现的,所以写了个脚本用于测试此功能. #-*- coding=utf-8 -*- ''' 功能:此脚本用于用不同的IP刷票 作者:Elle 最后修改日期: ...
- 怎样获取当前对象的原型对象prototype
1. 使用 Object.getPrototypeOf(); function Person(name){ this.name = name; } var lilei = new Person(&qu ...
- 怎样理解this
JavaScript里的this, Python里的self, 其实都是一个东西, 它的存在跟构造函数 / 类这种是分不开的, 当然, 也可以在其他场合下使用, 他的意义很多, 但最共通的一个特点是: ...
- 嗯 第二道线段树题目 对左右节点和下标有了更深的理解 hdu1556
Color the ball Time Limit: 9000/3000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)To ...
- Java内存模型(JMM)
JVM与线程(线程在JVM中) 1.JVM什么时候启动? 类被调用时启动,此时会启动JVM线程然后再是其他的线程(main) 2.JVM内存区域 除了程序计数器(PC)之外都有可能发生 ...
- vue-cli3 使用雪碧图
//vue.config.js const path = require("path"); const SpritesmithPlugin = require("webp ...
- leetcode-101. 判断对称树 · Tree + 递归
题面 判断给定二叉树是否对称. Note : empty tree is valid. 算法 1. 根节点判空,若空,则返回true;(空树对称) 2. 根节点不空,递归判断左右子树.如果左右孩子都空 ...
- macro 标签,和静态文件,以及templates
1 模板 -Templates 1 什么是模板 模板,在Flask中就是允许响应给用户看的网页在模板中,允许包含“占位变量”来表示动态的内容 模板最终也会被解析成字符串再响应给客户端,这一过程通常称为 ...