热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

载均衡集群之Nginx

nsitionalENhttp:www.w3.orgTRxhtml1DTDxhtml1-transitional.dtd

前言:

Nginx自身并没有对后端服务器做健康监测的功能,此功能模块是第三方提供的.哪怕是我们编译安装添加此模块也无法支持,我们必须对Nginx打补丁,然后它才能够支持此功能.尽管Nginx能够对后端web服务器做健康监测了,但是却不能实现高可用,没办法实现HA,HA有一个特点就是后端的每一个节点都能够监测对方服务器的健康状态.节点之间是能够知道彼此的工作状态的

1、Nginx反向代理原理;Nginx在做反向代理的时候,当用户的请求被Nginx服务器接收到,nginx将用户的请求保存至内存当中,然后以自己的身份,向后端的web Server 发送请求,当后端的web Server回应请求之后.nginx查看内存中的用户请求列表,然后依次回应给用户.其实种工作模型类似于LVS-NET模型,由于Nginx本身是基于worker的工作模型,并且它在多道IO模型中是一个进程处理多个用户请求的,避免上下文切换,从而也实现了更多用户资源共享的机制,所以Nginx对内存的使用率非常之小,并且Nginx能够将它从后端web服务器请求的结果缓存在本地,以便日后再收到同样的请求信息时,它会将本地缓存里的内容直接发送给用户,以减少后端web服务器的压力,提高响应速度.

#载均衡集群之Nginx

2、Nginx 如何对后端服务器做健康监测的,以及Nginx在做反向代理时对后端web服务器的健康状态监测:由于Nginx在做web的反向代理的时候是基于轮询的方式对后端web Server请求的,并且不能对后端web Server 做健康监测,如果刚好请求到挂掉的那台Web Server 你懂得;Nginx服务器健康状态监测:如果后端服务器挂掉了的话,Nginx会在自己的服务器列表中将其删除;

如果后端服务器能够正常工作了,Nginx会在自己的服务列表中添加此web服务器;此功能就是服务器的健康状态监测

#载均衡集群之Nginx

在此架构中,无法做到HA,并且相邻阶段之间的web服务器无法支持会话同步.session 同步 不知真正意义上的集群,只是负载均衡集群 并非高可用......

什么是服务器session同步:如果session不同步的时候:想象一个场景,你访问淘宝网购物的时候,将许多商品加入到购物车,一刷新,如果不支持session同步的话,购物车中的商品全就没啦!因为用户刷新,会再次发送请求,给Nginx反向代理服务器,由于Nginx是基于轮询的方式代理用户请求后端的web Server,所以有可能第二次请求无法发送到同一台web Server.才会导致:如果web不支持session同步的话,购物车中的商品全就没啦!

能够支持sessiont同步的服务器,会在自己的内存当中为用户的session创建一个缓冲区,里边专门存储用户的认证信息的.

客户端的session跟浏览器紧紧相关 COOKIE 你懂得..

#载均衡集群之Nginx

编译安装Nginx,前面提到过如果想要Nginx能够支持对后端WebSerber做服务器健康监测的功能,必须给Nginx打补丁... 参考网站: http://wiki.nginx.org/HttpHealthcheckModule 下载网站: https://github.com/yaoweibin/nginx_upstream_check_module/releases

# nginx_upstream_check_module-0.1.9.zip

# unzipnginx_upstream_check_module-0.1.9.zip

给Nginx打补丁,并且编译安装Nginx

# patch -p1 <../nginx_upstream_check_module-0.1.9/check_1.2.6+.patch

./configure \

  --prefix=/usr/local/nginx \

  --sbin-path=/usr/local/nginx/sbin/nginx \

  --conf-path=/etc/nginx/nginx.conf \

  --error-log-path=/var/log/nginx/error.log \

  --http-log-path=/var/log/nginx/access.log \

  --pid-path=/var/run/nginx/nginx.pid  \

  --lock-path=/var/lock/nginx.lock \

  --user=nginx \

  --group=nginx \

  --with-http_ssl_module \

  --with-http_flv_module \

  --with-http_stub_status_module \

  --with-http_gzip_static_module \

  --http-client-body-temp-path=/var/tmp/nginx/client/ \

  --http-proxy-temp-path=/var/tmp/nginx/proxy/ \

  --http-fastcgi-temp-path=/var/tmp/nginx/fcgi/ \

  --http-uwsgi-temp-path=/var/tmp/nginx/uwsgi \

  --http-scgi-temp-path=/var/tmp/nginx/scgi \

  --with-pcre \

  --add-module=/root/nginx_upstream_check_module-0.1.9

# adding module in /root/nginx_upstream_check_module-0.1.9

# checking for ngx_http_upstream_check_module ... found

# + ngx_http_upstream_check_module was configured

# 出现如上信息就说明成功了

make && makeinstall

拓扑图:

#

Nginx 的详细介绍:请点这里
Nginx 的下载地址:请点这里

使用Nginx搭建WEB服务器 2013-09/89768.htm

搭建基于Linux6.3+Nginx1.2+PHP5+MySQL5.5的Web服务器全过程 2013-09/89692.htm

CentOS 6.3下Nginx性能调优 2013-09/89656.htm

CentOS 6.3下配置Nginx加载ngx_pagespeed模块 2013-09/89657.htm

CentOS 6.4安装配置Nginx+Pcre+php-fpm 2013-08/88984.htm

Nginx搭建视频点播服务器(仿真专业流媒体软件) 2012-08/69151.htm


推荐阅读
  • 基于PgpoolII的PostgreSQL集群安装与配置教程
    本文介绍了基于PgpoolII的PostgreSQL集群的安装与配置教程。Pgpool-II是一个位于PostgreSQL服务器和PostgreSQL数据库客户端之间的中间件,提供了连接池、复制、负载均衡、缓存、看门狗、限制链接等功能,可以用于搭建高可用的PostgreSQL集群。文章详细介绍了通过yum安装Pgpool-II的步骤,并提供了相关的官方参考地址。 ... [详细]
  • t-io 2.0.0发布-法网天眼第一版的回顾和更新说明
    本文回顾了t-io 1.x版本的工程结构和性能数据,并介绍了t-io在码云上的成绩和用户反馈。同时,还提到了@openSeLi同学发布的t-io 30W长连接并发压力测试报告。最后,详细介绍了t-io 2.0.0版本的更新内容,包括更简洁的使用方式和内置的httpsession功能。 ... [详细]
  • LVS-DR直接路由实现负载均衡示例
    nsitionalENhttp:www.w3.orgTRxhtml1DTDxhtml1-transitional.dtd ... [详细]
  • 本文介绍了Web学习历程记录中关于Tomcat的基本概念和配置。首先解释了Web静态Web资源和动态Web资源的概念,以及C/S架构和B/S架构的区别。然后介绍了常见的Web服务器,包括Weblogic、WebSphere和Tomcat。接着详细讲解了Tomcat的虚拟主机、web应用和虚拟路径映射的概念和配置过程。最后简要介绍了http协议的作用。本文内容详实,适合初学者了解Tomcat的基础知识。 ... [详细]
  • Webmin远程命令执行漏洞复现及防护方法
    本文介绍了Webmin远程命令执行漏洞CVE-2019-15107的漏洞详情和复现方法,同时提供了防护方法。漏洞存在于Webmin的找回密码页面中,攻击者无需权限即可注入命令并执行任意系统命令。文章还提供了相关参考链接和搭建靶场的步骤。此外,还指出了参考链接中的数据包不准确的问题,并解释了漏洞触发的条件。最后,给出了防护方法以避免受到该漏洞的攻击。 ... [详细]
  • Vagrant虚拟化工具的安装和使用教程
    本文介绍了Vagrant虚拟化工具的安装和使用教程。首先介绍了安装virtualBox和Vagrant的步骤。然后详细说明了Vagrant的安装和使用方法,包括如何检查安装是否成功。最后介绍了下载虚拟机镜像的步骤,以及Vagrant镜像网站的相关信息。 ... [详细]
  • 单页面应用 VS 多页面应用的区别和适用场景
    本文主要介绍了单页面应用(SPA)和多页面应用(MPA)的区别和适用场景。单页面应用只有一个主页面,所有内容都包含在主页面中,页面切换快但需要做相关的调优;多页面应用有多个独立的页面,每个页面都要加载相关资源,页面切换慢但适用于对SEO要求较高的应用。文章还提到了两者在资源加载、过渡动画、路由模式和数据传递方面的差异。 ... [详细]
  • Apache Shiro 身份验证绕过漏洞 (CVE202011989) 详细解析及防范措施
    本文详细解析了Apache Shiro 身份验证绕过漏洞 (CVE202011989) 的原理和影响,并提供了相应的防范措施。Apache Shiro 是一个强大且易用的Java安全框架,常用于执行身份验证、授权、密码和会话管理。在Apache Shiro 1.5.3之前的版本中,与Spring控制器一起使用时,存在特制请求可能导致身份验证绕过的漏洞。本文还介绍了该漏洞的具体细节,并给出了防范该漏洞的建议措施。 ... [详细]
  • Nginx Buffer 机制引发的下载故障
    Nginx ... [详细]
  • [翻译]微服务设计模式5. 服务发现服务端服务发现
    服务之间需要互相调用,在单体架构中,服务之间的互相调用直接通过编程语言层面的方法调用就搞定了。在传统的分布式应用的部署中,服务地 ... [详细]
  • 服务网关与流量网关
    一、为什么需要服务网关1、什么是服务网关传统的单体架构中只需要开放一个服务给客户端调用,但是微服务架构中是将一个系统拆分成多个微服务,如果没有网关& ... [详细]
  • 14亿人的大项目,腾讯云数据库拿下!
    全国人 ... [详细]
  • 在单位的一台4cpu的服务器上部署了esxserver,挂载了6个虚拟机,目前运行正常。在安装部署过程中,得到了cnvz.net论坛精华区 ... [详细]
  • adfs是什么_培训与开发的概念
    adfs是什么_培训与开发的概念(如您转载本文,必须标明本文作者及出处。如有任何疑问请与我联系me@nap7.com)ADFS相关开发技术的中文资料相对匮乏,之前在弄这个东西的时候 ... [详细]
  • Nginxgaodaima.comnginx属于七层架构,支持的是http协议,本身对tcp协议没有支持。所以不能代理mysql等实现负载均衡。但是lvs这个东西不熟悉,主要是公司 ... [详细]
author-avatar
浪漫族屋nr
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有