为什么要做负载均衡?

当你网站是一个企业站、个人博客的时候,或者访问量比较小的时候,一台服务器完全应付的了,那就完全没必要做负载均衡。但是,如果你的网站是平台级别,用户达到十万百万级别了,一台服务器明显撑不住了,那就要考虑多台服务器,这个时候每个服务器分配多少用户,负载均衡是最好的解决方式。举个大的不是很恰当的栗子:天猫。
 
对于互联网服务,负载平衡器通常是一个软体程序,这个程序侦听一个外部端口,互联网用户可以通过这个端口来访问服务,而作为负载平衡器的软体会将用户的请求转发给后台内网服务器,内网服务器将请求的响应返回给负载平衡器,负载平衡器再将响应发送到用 户,这样就向互联网用户隐藏了内网结构,阻止了用户直接访问后台(内网)服务器,使得服务器更加安全,可以阻止对核心网络栈和运行在其它端口服务的攻击。
当所有后台服务器出现故障时,有些负载平衡器会提供一些特殊的功能来处理这种情况。例如转发请求到一个备用的负载平衡器、显示一条关于服务中断的消息等。负载平衡器使得IT团队可以显著提高容错能力。它可以自动提供大量的容量以处理任何应用程序流量的增 加或减少。(摘自维基百科)

Nginx安装

获取安装包

使用如下的命令可以在nginx官网获取安装包,博主获取的是nginx-1.11.5这个版本

wget http://nginx.org/download/nginx-1.11.5.tar.gz

解压安装包

tar -zxvf nginx-1.11.5.tar.gz

切换到 nginx-1.11.5 目录

执行 nginx下的configure进行配置

./configure

解决 checking for C compiler ... not found 错误

./configure: error: C compiler cc is not found

原因定位:没有安装gcc

解决方法:使用root用户 执行 yum install gcc

gcc安装成功界面

再次执行 ./configure

解决the HTTP rewrite module requires the PCRE library. 错误

./configure: error: the HTTP rewrite module requires the PCRE library.

原因: 缺少pcre包

解决方法:yum -y install pcre-devel 进行安装

安装后再次执行./configure

解决:./configure: error: the HTTP cache module requires md5 functions from OpenSSL library错误

原因:需要进行md5加密操作的没有找到md5模块

解决方法:yum -y install openssl openssl-devel   安装openssl加密模块

再次执行./configure,终于成功了

然后再执行 make &&make install,执行过程没有报错,终于安装成功了

启动

nginx的启动目录在 /usr/local/nginx/sbin 下

直接进入该安装目录下,输入命令 ./nginx -t 即可启动

执行 ./nginx -s reload 可以进行重启操作

配置负债均衡

修改监听端口

nginx的配置在/usr/local/nginx 目录下的conf中

vi /usr/local/nginx/conf/nginx.conf

配置负债均衡

添加如下两部分:

upstream mysite{
server 10.1.2.**:8085 weight=1;
server 10.1.2.**:8080 weight=2;
}
server { listen 8090; server_name localhost;
#charset koi8-r;
#access_log logs/host.access.log main;
location / { root html; index index.html index.htm;
proxy_pass http://mysite;
}

其中 server 10.1.2.**:8085 10.1.2.**:8080 为在本地配置的两个tomcat服务器监听的IP和端口

weight 为配置的权重,可以让用户的访问,按照 1:2 的比例进行分配,实现 不同服务器分配不同的数量的用户

验证访问nginx

访问 nginx所在及其监听的端口,比如: 10.1.2.**:8090,点击刷新,就可以看到 轮询访问了 10.1.2.**:8085 10.1.2.**:8080两个静态页面,而且页面按照我们前面配置分配的权重比例呈现,

即返回一次8085的信息之后会返回两次8080的信息。

具体页面信息如下:

其实 Nginx 是支持你去更新其中一个服务器的时候,把请求都转发到另一台服务器的,它监测到这个服务器挂掉了就不会进行请求分发。但是Nginx 的upstream配置中有种更好的方式,就是配置备份服务器 -- backup。

配置backup

backup: marks the server as a backup server. It will be passed requests when the primary servers are unavailable.(标记为备用服务器。当主服务器不可用以后,请求会被传给这些服务器。)
 
其官网( http://nginx.org/en/docs/http/ngx_http_upstream_module.html)的配置示例如下:

现在我们增加一个 Tomcat服务器3,然后做如下的配置:

说明:

  • 192.168.198.128:8080服务器下面会称为服务器1,每五次请求会到这里一次;
  • 192.168.198.128:8090服务器下面会称为服务器2,每五次请求会到这里四次;
  • 192.168.198.128:8091服务器下面会称为服务器3,即备份服务器。

服务器1、服务器2和服务器3都正常启动,我们刷新页面,请求会按照权重规则请求服务器1和服务器2,并不会请求服务器3(备份服务器)。

接下来我们把服务器1停掉,服务器2和服务器3都正常启动,我刷新页面,这个时候所有请求都到了服务器2,也并不会请求服务器3(备份服务器)。

然后我们把 服务器1、服务器2都停掉,服务器3正常启动,刷新页面,所有请求都转发到了服务器3(备份服务器),看图片:

最后,我们次依次启动 服务器1和服务器2,所有请求都又按照权重规则分配了。 在你所有正常服务器都挂掉时,系统依然高可用,这就是备份服务器的用处 !

可以实际应用于上线验证,我们在上线之前可以先在备份服务器做好验证之后在无缝切换服务器,在不影响线上原服务的情况完成代码的更新。

【平台中间件】Nginx安装配置,实现版本更新不影响服务访问的更多相关文章

  1. Nginx安装配置(转)

    Nginx 安装配置 Nginx("engine x")是一款是由俄罗斯的程序设计师Igor Sysoev所开发高性能的 Web和 反向代理 服务器,也是一个 IMAP/POP3/ ...

  2. nginx安装配置_runoob_阅读笔记_20190917

    Nginx 安装配置_runoob菜鸟教程 Nginx 安装配置 Nginx("engine x")是一款是由俄罗斯的程序设计师Igor Sysoev所开发高性能的 Web和 反向 ...

  3. Nginx安装配置PHP(FastCGI)环境的教程

    这篇是Nginx安装配置PHP(FastCGI)环境的教程.Nginx不支持对外部程序的直接调用或者解析,所有的外部程序(包括PHP)必须通过FastCGI接口来调用. 一.什么是 FastCGI F ...

  4. Nginx安装配置与HelloWorld

    <深入理解Nginx>阅读与实践(一):Nginx安装配置与HelloWorld 最近在读陶辉的<深入理解Nginx:模块开发与架构解析>,一是想跟着大牛练练阅读和编写开源代码 ...

  5. Nginx 安装 配置 使用

    Nginx 安装 配置 使用 基本的HTTP服务器特性 处理静态文件,索引文件以及自动索引:打开文件描述符缓存(缓存元数据和文件描述符,下一次可以直接从内存找到数据或者文件的位置): 使用缓存加速反向 ...

  6. VMware Linux 下 Nginx 安装配置 - nginx.conf 配置 [负载两个 Tomcat] (三)

    首先启动Nginx 1. 相关浏览 两个 Tomcat 配置:  VMware Linux 下 Nginx 安装配置 - Tomcat 配置 (二) Nginx 安装配置启动: VMware Linu ...

  7. VMware Linux 下 Nginx 安装配置 - Tomcat 配置 (二)

    准备工作 相关浏览: VMware Linux 下 Nginx 安装配置 (一) 1. 选在 /usr/local/ 下创建 softs 文件夹,通过 ftp 命令 把 apache-tomcat-7 ...

  8. Hearbeat + Nginx 安装配置

    Hearbeat + Nginx 安装配置 实验环境 两台主机:Linux Centos 6.5 32位 主 服务端:Hearbeat + Nginx eth0:192.168.1.160(公网) e ...

  9. Nginx安装配置|Nginx反向代理|Nginx支持HTTPS|Nginx重定向

    Nginx安装配置 可以直接看到最下面的HTTPS. Nginx安装 我的系统如下: No LSB modules are available. Distributor ID: Ubuntu Desc ...

随机推荐

  1. shiro的/favicon.ico问题

    登录成功之后跳转/favicon.ico问题. 1.spring-shrio.xml里面配置加上 /favicon.ico = anon 2.web.xml中配置中加上: <mime-mappi ...

  2. HDU3074: Multiply game(线段树单点更新,区间查询)

    题目: 传送门 题解:线段树模板题目. 对递归的题目始终理解不好,我的痛啊,在水的题目都要写很长时间. #include <iostream> #include <string.h& ...

  3. Drools 规则引擎环境搭建

    一.关于 drools 规则引擎 前面写过一篇 Drools 规则引擎相关的文章,这篇文章主要记录一下规则引擎的环境搭建和简单示例.不熟悉 drools 的朋友可以看看这篇文章: 自己写个 Drool ...

  4. codeforces 70 D. Professor's task 动态凸包

    地址:http://codeforces.com/problemset/problem/70/D 题目: D. Professor's task time limit per test 1 secon ...

  5. 论文笔记:dropout

    Improving neural networks by preventing co-adaptation of feature detectors arXiv preprint arXiv: 120 ...

  6. C++之操作Excel(抄录https://www.cnblogs.com/For-her/p/3499782.html)

    MFC操作Excel 下面的操作基于Excel2003 一.初始化操作 1.导入类库 点击查看->建立类向导-> Add Class...\From a type Library...-& ...

  7. 【c++ primer, 5e】函数匹配

    练习 6.49 候选函数:与所调用的函数的名字相同的函数的集合. 可行函数:给候选函数加上参数数量.参数类型的约束所得到的函数的集合. 6.50 a 3.4可行,二义匹配 b 2.4可行,2是最佳匹配 ...

  8. CSS 分组和嵌套选择器

    CSS 分组和嵌套选择器 一.分组选择器 在样式表中有很多具有相同样式的元素. h1 { color:green; } h2 { color:green; } p { color:green; } 为 ...

  9. 优雅的处理你的Java异常

    本文介绍 本文仅按照业务系统开发角度描述异常的一些处理看法.不涉及java的异常基础知识,可以自行查阅 <Java核心技术 卷I> 和 <java编程思想> 可以得到更多的基础 ...

  10. RocEDU.阅读.写作《苏菲的世界》书摘

    我们在成长的过程当中,似乎失去了对这世界的好奇心.也正因此,我们丧失了某种极为重要的能力(这也是一种哲学家们想要使人们恢复的能力).因为,在我们内心的某处,有某个声音告诉我们:生命是一种很庞大的.神秘 ...