【平台中间件】Nginx安装配置,实现版本更新不影响服务访问
为什么要做负载均衡?
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

现在我们增加一个 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安装配置,实现版本更新不影响服务访问的更多相关文章
- Nginx安装配置(转)
Nginx 安装配置 Nginx("engine x")是一款是由俄罗斯的程序设计师Igor Sysoev所开发高性能的 Web和 反向代理 服务器,也是一个 IMAP/POP3/ ...
- nginx安装配置_runoob_阅读笔记_20190917
Nginx 安装配置_runoob菜鸟教程 Nginx 安装配置 Nginx("engine x")是一款是由俄罗斯的程序设计师Igor Sysoev所开发高性能的 Web和 反向 ...
- Nginx安装配置PHP(FastCGI)环境的教程
这篇是Nginx安装配置PHP(FastCGI)环境的教程.Nginx不支持对外部程序的直接调用或者解析,所有的外部程序(包括PHP)必须通过FastCGI接口来调用. 一.什么是 FastCGI F ...
- Nginx安装配置与HelloWorld
<深入理解Nginx>阅读与实践(一):Nginx安装配置与HelloWorld 最近在读陶辉的<深入理解Nginx:模块开发与架构解析>,一是想跟着大牛练练阅读和编写开源代码 ...
- Nginx 安装 配置 使用
Nginx 安装 配置 使用 基本的HTTP服务器特性 处理静态文件,索引文件以及自动索引:打开文件描述符缓存(缓存元数据和文件描述符,下一次可以直接从内存找到数据或者文件的位置): 使用缓存加速反向 ...
- VMware Linux 下 Nginx 安装配置 - nginx.conf 配置 [负载两个 Tomcat] (三)
首先启动Nginx 1. 相关浏览 两个 Tomcat 配置: VMware Linux 下 Nginx 安装配置 - Tomcat 配置 (二) Nginx 安装配置启动: VMware Linu ...
- VMware Linux 下 Nginx 安装配置 - Tomcat 配置 (二)
准备工作 相关浏览: VMware Linux 下 Nginx 安装配置 (一) 1. 选在 /usr/local/ 下创建 softs 文件夹,通过 ftp 命令 把 apache-tomcat-7 ...
- Hearbeat + Nginx 安装配置
Hearbeat + Nginx 安装配置 实验环境 两台主机:Linux Centos 6.5 32位 主 服务端:Hearbeat + Nginx eth0:192.168.1.160(公网) e ...
- Nginx安装配置|Nginx反向代理|Nginx支持HTTPS|Nginx重定向
Nginx安装配置 可以直接看到最下面的HTTPS. Nginx安装 我的系统如下: No LSB modules are available. Distributor ID: Ubuntu Desc ...
随机推荐
- python操作socket
Python 提供了两个基本的 socket 模块. 第一个是 Socket,它提供了标准的 BSD Sockets API. 第二个是 SocketServer, 它提供了服务器中心类,可以简化网络 ...
- visual studio NuGet
http://www.cnblogs.com/dudu/archive/2011/07/15/nuget.html 首先打开程序包管理器控制台:工具→Nuget程序包管理器→程序包管理器控制台 Ins ...
- python字符串搜索
python字符串字串查找 find和index方法 更多0 python 字符串 python 字符串查找有4个方法,1 find,2 index方法,3 rfind方法,4 rindex方法. 1 ...
- GIL用C语言解决
执行一个单线程死循环程序,单核cpu占用直接100% while True: pass 执行一个双线程的死循环程序,cpu同样占用100% import threading #子线程死循环 def t ...
- Thread was being aborted.
异常:Thread was being aborted.(正在终止线程) 网上很多人说Response.redirect或Response.write()放在了try catch块中引起 百度一下就可 ...
- [Windows Powershell]-学习笔记(2)
数学运算 我们可以把powershell当成一个计算器.如键入命令行那样输入数学表达式,回车,powershell会自动计算并把结果输出.常用的加减乘除模(+,-,*,/,%)运算和小括号表达式都支持 ...
- 简单介绍--TOSCA自动化测试工具
1.工具源自 TOSCA由公司Tricentis研发.这是一家来自奥地利的软件初创企业,专门帮助企业开发团队进行自动化软件测试.(百科) TOSCA的思想是,不用会编程的测试人员可以直接上手自动化. ...
- JS正则表达式从入门到入土(7)—— 分组
分组 在使用正则的时候,有时候会想要匹配一串字符串连续出现多次的情况,比如:我想匹配字符串Byron连续出现3次的情况. 有些人会直接写: Byron{3} 但是,这种情况仅仅会匹配Byro加上三个n ...
- git命令学习汇总
GIT 版本控制常用命令汇总 git version 查看当前git版本信息 git help 获取全部命令帮助信息 git help <command> 获取指定命令帮助信息 git c ...
- vscode调试pomelo和pomelo使用vscode调试
使用vscode 通过端口remote attach进行调试 pomelo. 0. 网上好多调试pomelo的都是webstorm.或者vscode调试node的教程.但没找到vscode调试pome ...