先说些题外话,我记得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负载均衡从原理到部署(一)相关推荐

  1. LVS负载均衡调度原理及配置方法

    Ref 参考写在前面,基本都是把需要的重点用自己的话摘抄下来方便自己以后看懂,原文写的更好. https://www.kancloud.cn/noahs/linux/1540462 http://ww ...

  2. LVS负载均衡群集与LVS-NAT部署

    LVS负载均衡,LVS-NAT部署 一.LVS群集应用 1. 群集含义 2.群集的分类 3. 负载均衡结构 4. 群集的负载均衡技术的三种工作模式 1.NAT地址转换 2.TUN模式 IP隧道 3. ...

  3. LVS负载均衡!LVS-NAT模式部署!

    lvs负载均衡 一.企业集群概述 1.集群的含义(cluster) 2.存在的问题 3.问题解决的方法 二.企业集群分类 1.负载均衡群集(Load Balance Cluster) 2.高可用集群 ...

  4. Docker三剑客之Docker compose多容器管理(nginx+haproxy实现负载均衡)

    1.前言 Docker Compose 将所管理的容器分为三层,工程(project),服务(service)以及容器(contaienr) Docker Compose 运行的目录下的所有文件(do ...

  5. Lvs负载均衡 ——NET模式群集部署

    一,集群介绍 集群通信的最大特点是话音通信采用PTT(Push To Talk),以一按即通的方式接续,被叫无需摘机即可接听,且接续速度较快,并能支持群组呼叫等功能,它的运作方式以单工.半双工为主,主 ...

  6. Nginx反向代理负载均衡的容器化部署

    首先,在home目录创建microservices目录,开启第一篇章. cd ~ && mkdir microservices && cd microservices ...

  7. LVS负载均衡群集(NAT模式)

    目录 群集 群集的含义 为什么会有群集 群集的分类 负载均衡群集 高可用群集 高性能群集 负载均衡群集架构和工作模式 负载均衡的结构 负载均衡群集工作模式分析 LVS虚拟服务器 Linux Virtu ...

  8. LVS负载均衡群集概念

    LVS负载均衡群集概念 一.群集的含义 1.1 群集的产生 1.2 群集构成方案 二.群集可分为三种 三.负载均衡群集架构 四.负载均衡群集工作模式分析 五.三种负载调度工作模式 5.1 NAT模式 ...

  9. 高效多用的群集之LVS负载均衡群集(NAT模式)

    目录 一.群集 1.群集的含义 2.为什么会有群集 二.群集的分类 1.负载均衡群集 2.高可用群集 3.高性能群集 三.负载均衡群集架构和工作模式 1.负载均衡的结构 第一层,负载调度器(Load ...

最新文章

  1. 重读Youtube深度学习推荐系统论文,字字珠玑,惊为神文
  2. php7 mysql 卡顿_不要在PHP7中踩这些坑
  3. linux 修改mysql密码
  4. Storyboard初体验
  5. 异步fifo_跨时钟域同步(异步FIFO)
  6. OpenLayer学习之矢量地图
  7. 再读王永庆卖米的故事
  8. 面试官系统精讲Java源码及大厂真题 - 40 打动面试官:线程池流程编排中的运用实战
  9. 10 python 扩展
  10. 邮件服务器IMail教程(2)
  11. php怎么输出指定数据类型,PHP变量的输出和数据类型
  12. Android 签名
  13. codeblock的下载
  14. python转bat_bat 转换为python
  15. hive3.1.2 分布式安装 (基于hadoo3.1.3+spark)
  16. Python图片文字识别转换程序
  17. Azure Kinect微软摄像头Unity开发小结
  18. Google Chrome谷歌浏览器去掉右上角更新提示图标
  19. vijos 1641 Vs Snowy
  20. js 解二元一次方程组(消元法)

热门文章

  1. vue地址栏输入路由跳转到首页_Vue路由跳转到新页面时 默认在页面最底部 而不是最顶部 的解决...
  2. linux的vim怎么配置文件路径,Linux_Linux系统配置VI或VIM的技巧,1、VI或VIM的配置文件的路径 - phpStudy...
  3. python读取excel日期和时间数据_python 在excel文件中写入date日期数据,以及读取excel日期数据,如何在python中正确显示date日期。...
  4. php表单实现分页,**PHP分步表单提交思路(分页表单提交)
  5. 游戏服务器高性能负载均衡,游戏服务器高可用负载均衡
  6. 文件服务器数据备份方案,BACKUPPC服务器数据备份方案.pdf
  7. python分析pcap文件_利用Python库Scapy解析pcap文件的方法
  8. 华中科技大学计算机系统结构,华中科技大学计算机系统结构考研
  9. 搜索日志文件的linux,linux日志查找
  10. 小学计算机课的评语,小学信息技术评课稿