摘要:负载均衡负载均衡也是的一个高频使用场景,对于下游存在的多个相同服务,可以将请求采用某种策略随机轮询权重发到相应的服务处理。
HAProxy是一个使用C语言编写的自由及开放源代码软件,其提供高可用性、负载均衡,以及基于TCP和HTTP的应用程序代理。
HAProxy实现了一种事件驱动, 单一进程模型,此模型支持非常大的并发连接数。多进程或多线程模型受内存限制 、系统调度器限制以及无处不在的锁限制,很少能处理数千并发连接。
HAProxy特别适用于那些负载特大的web站点,这些站点通常又需要会话保持或七层处理。HAProxy运行在当前的硬件上,完全可以支持数以万计的并发连接。并且它的运行模式使得它可以很简单安全的整合进您当前的架构中, 同时可以保护你的web服务器不被暴露到网络上。
Nginx 的使用场景如下:
HTTP 服务器
Nginx 作为 Web 服务器能独立提供 Http 服务。另外,我们常常通过 Nginx 作为静态资源服务器来访问服务器上的静态资源,比如对于最新热门的前后端分离架构,前端打好包后直接放到某个地址,在 Nginx 配置后可以通过 Nginx 来访问主机上的前端页面。
反向代理
反向代理(Reverse Proxy)方式是指以代理服务器来接受 Internet 上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给 Internet 上请求连接的客户端,此时代理服务器对外就表现为一个反向代理服务器。这样的好处是,将不暴露内部的服务地址,只统一使用一个公共出口,通过 URI 匹配转发到不同的内部服务处理请求。
负载均衡
负载均衡也是 Nginx 的一个高频使用场景,对于下游存在的多个相同服务,可以将请求采用某种策略(随机、轮询、权重)发到相应的服务处理。这样由于多个相同服务的存在,可以实现高可用功能,在一个服务不可用时,Nginx 会自动发现并将其剔出服务集群,将请求转发给正常的服务进行处理。
网络文件系统(NFS)是文件系统之上的一个网络抽象,来允许远程客户端以与本地文件系统类似的方式,来通过网络进行访问。虽然 NFS 不是第一个此类系统,但是它已经发展并演变成 UNIX系统中最强大最广泛使用的网络文件系统。NFS 允许在多个用户之间共享公共文件系统,并提供数据集中的优势,来最小化所需的存储空间。
本实验使用4台服务器,一台服务器安装Haproxy实现调度,另外两台服务器搭建nginx提供web服务,最后一台服务器部署nfs共享存储。
主机 | 系统 | IP地址 | 功能 |
Haproxy | centos7 | 192.168.160.201 | 调度 |
nginx | centos7 | 192.168.160.202 | 提供web服务 |
nginx | centos7 | 192.168.160.203 | 提供web服务 |
nfs(共享存储) | centos7 | 192.168.160.204 | 共享存储 |
1.两台nginx节点安装并启动。
2.yum安装所需库文件,新建管理nginx用户
1.yum -y install pcre-devel zlib-devel gcc gcc-c++ make
2.useradd -M -s /sbin/nologin nginx
3.解压文件并进行基本配置
1. cd /opt
2. tar zxvf nginx-1.8.1.tar.gz
3. cd nginx-1.8.1
4. ./configure /
--prefix=/usr/local/nginx / --user=nginx / --group=nginx
4.编译安装
1.make && make install
5.创建测试主页,创建软件接进行使用。
1.cd /usr/local/nginx/html/
2. echo "this is xf web" > test.html
3.ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin
6.启动nginx,使用netstat -antp | grep 80查看是否开启
7.第二台nginx节点是一样的配置,自行配置安装。
使用浏览器访问nginx是否开启成功。
1.下载包
这里提供所需安装包链接,找到自己需要的安装包,我这里使用的是haproxy-1.7.8.tar.gz
Index of /repo/pkgs/haproxy (fedoraproject.org)
2.将haproxy-1.7.8.tar.gz拷贝到/opt目录下,并解压缩:
1.yum -y install pcre-devel bzip2-devel gcc gcc-c++ make
2. tar zxvf haproxy-1.7.8.tar.gz
3.进入目录 ,编译成可执行文件。
将源代码解压之后,需要运行make来将HAProxy编译成为可执行文件。如果是在Linux2.6系统上面进行编译的话,需要设置TARGET=linux26以开启epoll支持,这也是为什么网上许多博客里面都是这么写的。对于其他的UNIX系统来说,直接采用TARGET=generic方式,本文进行安装的系统为CentOS7 ,内核3.10版本。
1. cd haproxy-1.7.8
2. make TARGET=linux26
3. make install
4.创建配置文件目录,修改配置文件。
1.mkdir /etc/haproxy2.vim /etc/haproxy/haproxy.cfgglobal log 127.0.0.1 local0 #日志 maxconn 1000 # 最大连接数 daemon defaults log global # 采用全局定义的日志 mode http # 默认的模式mode { tcp|http|health },tcp是4层,http是7层,health只会返回OK option httplog # 日志类型为http日志 option dontlognull # 不记录健康检查的日志信息 retries 3 # 3次连接失败就认为服务不可用,也可以在下面设置 timeout connect 5000 # 连接超时时间 timeout client 50000 # 客户端连接超时时间 timeout server 50000 # 服务器连接超时时间 listen admin_stats bind 0.0.0.0:1080 # 监听端口 mode http option httplog maxconn 10 stats refresh 30s # 统计页面刷新时间 stats uri /stats # 统计页面url stats realm XingCloud/ Haproxy # 统计页面密码框的提示文本 stats auth admin:admin # 统计页面的验证信息 stats auth Frank:Frank stats hide-version stats admin if TRUElisten webcluster bind 0.0.0.0:80 option httpchk GET /index.html balance roundrobin # 负载均衡模式轮询 server inst1 192.168.160.202:80 check inter 2000 fall 3 server inst2 192.168.160.203:80 check inter 2000 fall 3
5.创建haproxy自启动脚本,添加到service管理,开启自启
1. cp /opt/haproxy-1.7.8/examples/haproxy.init /etc/init.d/haproxy
2. chmod +x /etc/init.d/haproxy
3. chkconfig --add /etc/init.d/haproxy
4. ln -s /usr/local/sbin/haproxy /usr/sbin
6.启动haproxy,使用80端口进行监听。
1. service haproxy start
2.netstat -anpt | grep haproxy #查看端口是否打开
7.使用浏览器访问haproxy查看是否轮询成功,刷新页面显示轮询成功。
关闭防火墙:systemctl stop firewalld.servive
关闭selinux: setenforce 0
1.服务器安装NFS软件
1.yum -y install nfs-utils
2.编辑文件参数
1. vi /etc/exports
/backup 192.168.160.202(rw,sync,no_root_squash)/backup 192.168.160.203(rw,sync,no_root_squash)
3.新建共享目录并修改权限
1.mkdir /backip
2.chmod -R 777 /backup/
4.启动服务
1. systemctl status rpcbind.service
2.systemctl status nfs.service.service
5.加载配置文件 exportfs -r 查看 exportfs -v
6.在nginx服务器上装nfs
1. yum -y install nfs-utils2.mkdir /nfs3.cd /nfs4.showmount -e 192.168.160.2065.mount -t nfs 192.168.160.206:/backup /nfs6.df -h
挂载成功
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/124461.html
摘要:打开配置文件将设为关闭防火墙。通过查询,结合配置模板引擎,保持本地配置最新,同时具备定期探测机制,配置变更自动。打开文件在末尾添加一行其中为存储机,为监听的端口。二在存储机中安装安装设置开机启动。 第一部分 测试环境一、 简要信息操作系统: 版本 CentOS 7.2.1511 内核 3.10.0-327.36.2.el7.x86_64角色 IP ...
摘要:在默认情况下,会将其请求的后端服务器的插入中,以保证会话的持久性。 照片参考:https://blog.csdn.net/weixin_... Haproxy配置 永久修改名字:便于区分虚拟机!Haproxy:hostnamectl set-hostname haproxyWeb1: hostnamectl set-hostname WEB1Web2:hostnamectl set-h...
摘要:在默认情况下,会将其请求的后端服务器的插入中,以保证会话的持久性。照片参考:https://blog.csdn.net/weixin_... Haproxy配置 永久修改名字:便于区分虚拟机!Haproxy:hostnamectl set-hostname haproxyWeb1: hostnamectl set-hostname WEB1Web2:hostnamectl set-hostn...
摘要:在默认情况下,会将其请求的后端服务器的插入中,以保证会话的持久性。 照片参考:https://blog.csdn.net/weixin_... Haproxy配置 永久修改名字:便于区分虚拟机!Haproxy:hostnamectl set-hostname haproxyWeb1: hostnamectl set-hostname WEB1Web2:hostnamectl set-h...
摘要:所以,选择把运行直接运行在宿主机中,使用容器部署其他组件。独立部署方式所需机器资源多按照集群的奇数原则,这种拓扑的集群关控制平面最少就要台宿主机了。 在上篇文章minikube部署中,有提到Minikube部署Kubernetes的核心就是Kubeadm,这篇文章来详细说明下Kubeadm原理及部署步骤。写这篇文章的时候,Kubernetes1.14刚刚发布,所以部署步骤以1.14版为...
阅读 1646·2023-04-25 14:28
阅读 2281·2021-11-23 09:51
阅读 1684·2021-11-19 09:40
阅读 2598·2021-11-17 09:33
阅读 1233·2021-11-02 14:48
阅读 1520·2019-08-29 16:36
阅读 3164·2019-08-29 16:09
阅读 2818·2019-08-29 14:17