设为首页 收藏本站
查看: 1249|回复: 0

[经验分享] Nginx、Haproxy、LVS负载均衡从原理到部署(一)

[复制链接]

尚未签到

发表于 2018-11-15 08:13:22 | 显示全部楼层 |阅读模式
  先说些题外话,我记得51博客的号早就注册了,之前只是不间断上来看看别人写的技术文章涨涨见识,自己后面开始接触到运维这块,就想到把平时学的一些相关技术记录到博客上来,只是方便自己可以随时上网回顾,由于多种因素影响(0。0其实主要是太懒),就没事付出行懂,只是做放在了本地没有写成博客。现在受到一些新的事情影响(反正就是写博客有好处),就决定付诸行动虽然感觉写出来很厉害的东西,但是主要还是为了自己以后能够随时查看回顾,也算是技术路上的脚印记录把!最近在学习高可用、负载均衡这一块,所以将就就从这一块开始写!
  这一块我会分成几个小块博文来写,争取把我第一篇写的更加详细,把我自己对学过集群负载均衡、高可用以及架构理解写清楚,如果有理解有偏差的地方希望各位博友能够提出,我会及时更正。这一篇先来讲我主要学习的几个负载均衡的软件,分别是:Nginx丶Haproxy、LVS,首先写Nginx大佬。
  
  一、NGINX反向代理原理
  首先讲的Nginx这款在国内比较火的开源软件,主要因为Nginx不仅可以反向代理来实现负载均衡,而且还可以在本地服务器做高速缓存,这个可是LVS和Haproxy不能实现的,后面我们再做详细的比较。我觉得不管学什么技术,原理这块是核心部分也是比较花时间的,运维也是如此。
  所以我先来讲述原理这块,用Nginx反向代理功能来实现负载均衡,也就是把部客户端的请求,让Nginx暂时代理接收,接着通过某种算法从多台内容服务器中选出一台,然后再把请求转发给算法选出来的内容服务器,然后被选出内容服务器接收到请求,返回应答还是经过Nginx然后在转发给客户端,最后来自于Client请求被多台内容服务器一起消化掉,大概的过程看下图。
DSC0000.png

  
  二、虚拟机环境搭建举例
  1、搭建环境使用的软件、系统、准备的软件包丶IP
  软件:VMworkstation搭建虚拟机

  linux系统:CentOS Linux>  软件包: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.com
  

  
        location / {
  
            root   html;
  
            index  index.html index.htm;
  
        }
  
  三、测试验证
  配置完成后用真机游览器进行访问,记得在本地本机配置HOSTS文件,用来本地域名解析。
  真机的请求被server1、server2均衡的分配了,这个这个调度是用的默认轮循算法。
  测试结果如图
DSC0001.png

  在内容服务器上查看访问access.log日志,访问IP是真机的IP,而不是代理服务器的IP
DSC0002.png

  四、总结
  这篇主要就是写Nginx反向代理实现负载均衡过程原理,Nginx需要启用那个模块。NGINX常用模块、调度算法等等..配置会在后面专门写一篇。



运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-635182-1-1.html 上篇帖子: nginx初级安装配置 下篇帖子: Nginx中CI的重写配置
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表