Nginx、Haproxy、LVS负载均衡从原理到部署(一)
先说些题外话,我记得51博客的号早就注册了,之前只是不间断上来看看别人写的技术文章涨涨见识,自己后面开始接触到运维这块,就想到把平时学的一些相关技术记录到博客上来,只是方便自己可以随时上网回顾,由于多种因素影响(0。0其实主要是太懒),就没事付出行懂,只是做放在了本地没有写成博客。现在受到一些新的事情影响(反正就是写博客有好处),就决定付诸行动虽然感觉写出来很厉害的东西,但是主要还是为了自己以后能够随时查看回顾,也算是技术路上的脚印记录把!最近在学习高可用、负载均衡这一块,所以将就就从这一块开始写!
这一块我会分成几个小块博文来写,争取把我第一篇写的更加详细,把我自己对学过集群负载均衡、高可用以及架构理解写清楚,如果有理解有偏差的地方希望各位博友能够提出,我会及时更正。这一篇先来讲我主要学习的几个负载均衡的软件,分别是:Nginx丶Haproxy、LVS,首先写Nginx大佬。
一、NGINX反向代理原理
首先讲的Nginx这款在国内比较火的开源软件,主要因为Nginx不仅可以反向代理来实现负载均衡,而且还可以在本地服务器做高速缓存,这个可是LVS和Haproxy不能实现的,后面我们再做详细的比较。我觉得不管学什么技术,原理这块是核心部分也是比较花时间的,运维也是如此。
所以我先来讲述原理这块,用Nginx反向代理功能来实现负载均衡,也就是把部客户端的请求,让Nginx暂时代理接收,接着通过某种算法从多台内容服务器中选出一台,然后再把请求转发给算法选出来的内容服务器,然后被选出内容服务器接收到请求,返回应答还是经过Nginx然后在转发给客户端,最后来自于Client请求被多台内容服务器一起消化掉,大概的过程看下图。
二、虚拟机环境搭建举例
1、搭建环境使用的软件、系统、准备的软件包丶IP
软件:VMworkstation搭建虚拟机
linux系统:CentOS Linux release 7.3
软件包:nginx-1.13.6.tar.gz
IP:一台反向代理服务器ip:10.0.0.32,两台内容服务器ip:10.0.0.5、10.0.0.6
2、YUM安装依赖包、编译安装软件包
yum install gcc make libssl-dev zlib zlib-devel openssl openssl-devel prce prce-deve [root@localhost src]#useradd nginx -s /sbin/nologin -M [root@localhost src]#tar zxvf nginx-1.13.6.tar.gz ... [root@localhost src]cd nginx-1.13.6 [root@localhost nginx-1.13.6]#./configure --user=nginx --group=nginx --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module --with-pcre [root@localhost nginx-1.13.6]#make && make install
3、配置nginx.conf
#在代理服务器:10.0.0.32 [root@direct1]#vim /usr/local/nginx/conf/nginx.conf #在http{}中加入upstream反向代理模块,在location段加入proxy_pass 让访问重定向到backend中 #注意upstream模块位置应该放在http模块里面 但必须是在server模块的外面 upstream backend {server 10.0.0.5 max_fails=3 fail_timeout=10s ;server 10.0.0.6 max_fails=3 fail_timeout=10s ;}server {listen 80;server_name www.zhengsida1.com;location / {proxy_pass http://backend;proxy_set_header Host $host;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;#上三行设置是让内容服务器日志显示访问IP为客户端IP,而不是反向代理服务器IP}
#server1:10.0.0.5,server2:10.0.0.6 nginx安装不再演示,只需在server2开启index.html访问用来测试 #两台内容服务器index.html中放入不同内容用来验证 [root@server1]#vim /usr/local/nginx/conf/nginx.conf server {listen 80;server_name img.zsd.comlocation / {root html;index index.html index.htm;}
三、测试验证
配置完成后用真机游览器进行访问,记得在本地本机配置HOSTS文件,用来本地域名解析。
真机的请求被server1、server2均衡的分配了,这个这个调度是用的默认轮循算法。
测试结果如图
在内容服务器上查看访问access.log日志,访问IP是真机的IP,而不是代理服务器的IP
四、总结
这篇主要就是写Nginx反向代理实现负载均衡过程原理,Nginx需要启用那个模块。NGINX常用模块、调度算法等等..配置会在后面专门写一篇。
转载于:https://blog.51cto.com/bluesrer/1974966
Nginx、Haproxy、LVS负载均衡从原理到部署(一)相关推荐
- LVS负载均衡调度原理及配置方法
Ref 参考写在前面,基本都是把需要的重点用自己的话摘抄下来方便自己以后看懂,原文写的更好. https://www.kancloud.cn/noahs/linux/1540462 http://ww ...
- LVS负载均衡群集与LVS-NAT部署
LVS负载均衡,LVS-NAT部署 一.LVS群集应用 1. 群集含义 2.群集的分类 3. 负载均衡结构 4. 群集的负载均衡技术的三种工作模式 1.NAT地址转换 2.TUN模式 IP隧道 3. ...
- LVS负载均衡!LVS-NAT模式部署!
lvs负载均衡 一.企业集群概述 1.集群的含义(cluster) 2.存在的问题 3.问题解决的方法 二.企业集群分类 1.负载均衡群集(Load Balance Cluster) 2.高可用集群 ...
- Docker三剑客之Docker compose多容器管理(nginx+haproxy实现负载均衡)
1.前言 Docker Compose 将所管理的容器分为三层,工程(project),服务(service)以及容器(contaienr) Docker Compose 运行的目录下的所有文件(do ...
- Lvs负载均衡 ——NET模式群集部署
一,集群介绍 集群通信的最大特点是话音通信采用PTT(Push To Talk),以一按即通的方式接续,被叫无需摘机即可接听,且接续速度较快,并能支持群组呼叫等功能,它的运作方式以单工.半双工为主,主 ...
- Nginx反向代理负载均衡的容器化部署
首先,在home目录创建microservices目录,开启第一篇章. cd ~ && mkdir microservices && cd microservices ...
- LVS负载均衡群集(NAT模式)
目录 群集 群集的含义 为什么会有群集 群集的分类 负载均衡群集 高可用群集 高性能群集 负载均衡群集架构和工作模式 负载均衡的结构 负载均衡群集工作模式分析 LVS虚拟服务器 Linux Virtu ...
- LVS负载均衡群集概念
LVS负载均衡群集概念 一.群集的含义 1.1 群集的产生 1.2 群集构成方案 二.群集可分为三种 三.负载均衡群集架构 四.负载均衡群集工作模式分析 五.三种负载调度工作模式 5.1 NAT模式 ...
- 高效多用的群集之LVS负载均衡群集(NAT模式)
目录 一.群集 1.群集的含义 2.为什么会有群集 二.群集的分类 1.负载均衡群集 2.高可用群集 3.高性能群集 三.负载均衡群集架构和工作模式 1.负载均衡的结构 第一层,负载调度器(Load ...
最新文章
- 重读Youtube深度学习推荐系统论文,字字珠玑,惊为神文
- php7 mysql 卡顿_不要在PHP7中踩这些坑
- linux 修改mysql密码
- Storyboard初体验
- 异步fifo_跨时钟域同步(异步FIFO)
- OpenLayer学习之矢量地图
- 再读王永庆卖米的故事
- 面试官系统精讲Java源码及大厂真题 - 40 打动面试官:线程池流程编排中的运用实战
- 10 python 扩展
- 邮件服务器IMail教程(2)
- php怎么输出指定数据类型,PHP变量的输出和数据类型
- Android 签名
- codeblock的下载
- python转bat_bat 转换为python
- hive3.1.2 分布式安装 (基于hadoo3.1.3+spark)
- Python图片文字识别转换程序
- Azure Kinect微软摄像头Unity开发小结
- Google Chrome谷歌浏览器去掉右上角更新提示图标
- vijos 1641 Vs Snowy
- js 解二元一次方程组(消元法)
热门文章
- vue地址栏输入路由跳转到首页_Vue路由跳转到新页面时 默认在页面最底部 而不是最顶部 的解决...
- linux的vim怎么配置文件路径,Linux_Linux系统配置VI或VIM的技巧,1、VI或VIM的配置文件的路径 - phpStudy...
- python读取excel日期和时间数据_python 在excel文件中写入date日期数据,以及读取excel日期数据,如何在python中正确显示date日期。...
- php表单实现分页,**PHP分步表单提交思路(分页表单提交)
- 游戏服务器高性能负载均衡,游戏服务器高可用负载均衡
- 文件服务器数据备份方案,BACKUPPC服务器数据备份方案.pdf
- python分析pcap文件_利用Python库Scapy解析pcap文件的方法
- 华中科技大学计算机系统结构,华中科技大学计算机系统结构考研
- 搜索日志文件的linux,linux日志查找
- 小学计算机课的评语,小学信息技术评课稿