关闭

浅谈nginx反向代理集群服务部署原理

标签: ngnix反向代理服务集群集群服务部署
2312人阅读 评论(0) 收藏 举报
分类:

浅谈nginx的集群服务部署原理

          技术博文请参考:1、 http://blog.csdn.net/u013144287/article/details/78551398         nginx实现反向代理及负载均衡

                                          2、http://blog.csdn.net/u013144287/article/details/78553496    nginx+keepalived实现主备服务器可高用

         “需要的是思想,不是形式。”作为在公司听到的最朴实而又最直击内心的文字,这句话已经存在我的个性签名好几个月了。每当对话框弹出的时候,就像是对我的一个提醒,不是找不到更文艺更有冲击力的文字,而是觉得短短这十个字才是最符合我当下的状态,一名初入行的软件工程师。

         编程就像是建筑师搭建房子,你精心设计的每一个功能并非会在映入眼帘的第一刻就能体验到,而是用户在日积月累的使用过程中,逐渐被你宏观整体的思维布局,贴心周到并且充满设计感的小细节包围,进而才能体会到其中的精妙所在。以我所在的部门为例,所在项目部署服务中最怕的就是服务器异常,而通过nginx服务集群则可以让我们非常放心的开展工作。

   现在由我为大家简单的介绍一下什么是nginxnginx是一种代理服务器,客户端请求数据要先经过nginx,然后由nginx去服务器上去取数据,取到数据之后先返回到nginx,再由nginx再返回我们客户端。我相信有很多人都有过去翻墙到国外网站的经历,譬如程序员最爱stack over flow亦或是最大的视频网站You Tube等等。那么nginx的工作原理其实和翻墙原理差不多,作为一个传输中介起到中间枢纽作用,然后你通过中间枢纽获取你所需要的东西。

   其次,我们为什么要nginx集群,集群的意义何在呢?由于我进到的是规模比较大型项目,我就我们项目的实际情况与大家共同分享。由于总线服务、webservice服务、网元操作服务处理着大批量的请求,这些服务十分的重要,如果服务器出现异常或是机器出现宕机,那么对客户造成的影响将是巨大的,尤其是对客户的内心的体验感的影响将是无法抹去的。所以我们要尽量避免类似情况的发生,要保证服务具有可适应性、高拓展性和可维护性。给客户塑造一个至善至美的好印象。

   然后我们来看一下nginx集群服务的总体架构,在说到总体架构之前我们再来了解一下nginx服务集群的总体架构中的一种高性能可以自动检测服务器状态的Keepalived ,Keepalived 可以用来防止单点故障(单点故障是指一旦某一点出现故障就会导致整个系统架构的不可用)的发生。除此之外,还有nginx服务器、其他服务器、防火墙和用户。其集群的总体架构图如下图所示:

   

1  nginx集群服务部署架构图

从上图我们可以清楚的看到nginx服务器共有2台,一台作为主服务器,一台作为备服务器,webservice服务器2台,总线服务器2台,网元操作服务器5台。假设用户首先发布网元操作服务请求,此时12上的nginx代理服务器收到请求,而nginx是以多进程的方式来工作的,启动的时候会有一个master进程和多个worker进程,每个worker进程之间是平等的,master进程用来管理worker进程。Master进程运行之后,便会随机地抽取一个worker进程进行任务分配,而12nginx与网元操作服务器16-20访问通过http请求来进行访问的,16-20网元服务器端口号设置是一样的,根据端口就可以随机地选取一个网元操作服务器进行访问进而返回数据到用户手中。但是此时如果当用户在访问12nginx代理服务器的时候,服务器出现异常了或是宕机了怎么办?这时nginx的集群作用就体现出来了,12nginx13nginx分别部署上Keepalived 服务,此时12上检测器Keepalived 就开始检测服务器的状态了,发现报了异常或者是宕机,则自动剔除12服务器,13nginx上Keepalived 自动接管,启用13nginx代理服务器代替12nginx服务器的工作。让我们的服务又恢复了正常,避免不必要的损失。当12nginx服务器维护正常后,Keepalived又会自动停掉13nginx的服务而又把12nginx的服务加入。整过过程不需要人工干涉,需要人工做的就是修复故障机器。还有就是我们需要在12nginx和13nginx服务器上设置一个优先级,让Keepalived具有选择性。我们若有需要,可以再利用Keepalived + nginx以此类推再往上层搭建服务,比如说在12nginx与13nginx上再搭建一台14nginx作为主服务器,再搭建一台15nginx作为备服务器,再分别部署上Keepalived。从而更加保障了我们整个服务的可适应性、高拓展性和可维护性。

         nginx的集群服务部署原理分享到这里基本就算是结束了。马克思说“哲学家的任务不是认识世界,而是改变世界。”作为从事软件编程行业的我来说同样是适用的,知其然还要明白其所以然。nginx作为我在公司所在部门的阶段学习成果之一,最大的欣慰莫过于从知晓到渐渐熟悉,最后到侃侃而谈自己的感受,一点一滴都见证了我们团队的努力。见微知著,以用户体验为上,感谢给予我指点的各位前辈,跟随项目组和公司的脚步且行且追寻,我知道路漫漫其修远兮,而你们会是我最鼎力的伙伴!让我们一起乘风破浪,向着诗和远方

 

1
0
查看评论

keepalived + nginx 实现高可用集群方案

keepalived + nginx 实现高可用集群方案一.使用场景介绍: nginx做负载均衡,来达到分发请求的目的,但是不能很好的避免单点故障,加入nginx服务器挂点了,那么所有的服务也会跟着瘫痪,这样何来的高可用架构?,更别谈什么高扩展。keepalived+nginx,就能很好的...
  • lijian12388806
  • lijian12388806
  • 2016-07-11 17:04
  • 8685

Nginx+Tomcat搭建高性能负载均衡集群

在Nginx反向代理转发tomcat这篇文章中,对nginx进行了简单的介绍,实现了nginx代理转发的功能,以及静态、动态资源分离的实现。本篇文章接着这篇文章继续写下去的,如果有不明白的地方,可以进入Nginx反向代理转发tomcat 开始阅读。 nginx+tomcat 部署实现负载均...
  • mlc1218559742
  • mlc1218559742
  • 2016-11-11 14:21
  • 3301

Nginx+Tomcat搭建高性能负载均衡集群

一、       工具   nginx-1.8.0   apache-tomcat-6.0.33 二、    目标   实现高性能负载均衡的Tomcat集群:      三、...
  • wang379275614
  • wang379275614
  • 2015-08-19 11:45
  • 86570

Nginx+tomcat集群环境搭建

实验环境:windows xp sp3   Nginx版本:1.5.12; 下载地址:http://nginx.org/en/download.html   Tomcat版本:6.0.39 下载地址:http://tomcat.apache.org/download-60.cgi...
  • clj198606061111
  • clj198606061111
  • 2014-03-30 23:44
  • 5501

Nginx 实战(一) 集群环境搭建

Nginx是什么? Nginx ("engine x") 是一个高性能的 HTTP 和 反向代理 服务器,也是一个 IMAP/POP3/SMTP 代理服务器。一直纳闷这个X是怎么来的在网上查了查原来X代表很牛逼的样子,Nginx就是代表一个非常牛逼的引擎服务器系统,在很多年以前记...
  • lilongsheng1125
  • lilongsheng1125
  • 2015-05-10 21:32
  • 1435

nginx实现集群服务器的负载均衡

使用nginx完成集群部署
  • xurk0922
  • xurk0922
  • 2017-05-07 23:04
  • 1525

Tomcat+Nginx集群与负载均衡

今天就和大家一起来实现Tomcat和nginx的集群与负载均衡 一、Tomcat 集群配置端口规划 注:该端口是在同一台机器上启动2个tomcat,需要修改一下端口不重复,如果一台机器只部署1个tomcat其端口可以一样。 序号 SHUTDOWN AJP http 集群R...
  • l1028386804
  • l1028386804
  • 2015-09-07 21:07
  • 6749

Nginx详解-服务器集群

Nginx是什么 代理服务器:一般是指局域网内部的机器通过代理服务器发送请求到互联网上的服务器,代理服务器一般作用在客户端。应用比如:GoAgent,翻墙神器.   一个完整的代理请求过程为:客户端首先与代理服务器创建连接,接着根据代理服务器所使用的代理协议,请求对目标服务器创建连接、或者...
  • zouyujie1127
  • zouyujie1127
  • 2014-11-29 23:09
  • 34556

nginx-nginx集群配置详解

tomcat项目下配置nginx集群步骤详解: 1.复制nginx-1.6.0文件夹到指定目录,例D:\nginx\nginx-1.6.0。 2.修改E:\apache-tomcat-6.0.36\conf\server.xml,在源注释的标签下,增加标签,修改标签address属性值为本机ip,其...
  • qq_31204765
  • qq_31204765
  • 2016-04-05 15:02
  • 2787

nginx集群

今天看到"基于apache的tomcat负载均衡和集群配置 "这篇文章成为javaEye热点。 略看了一下,感觉太复杂,要配置的东西太多,因此在这里写出一种更简洁的方法。   要集群tomcat主要是解决SESSION共享的问题,因此我利用memcache...
  • hanghangaidoudou
  • hanghangaidoudou
  • 2012-12-21 23:45
  • 3312
    个人资料
    • 访问:54175次
    • 积分:1198
    • 等级:
    • 排名:千里之外
    • 原创:65篇
    • 转载:0篇
    • 译文:0篇
    • 评论:11条
    贵州中测信息技术有限公司
    友情链接
    最新评论