利用nginx自带的反向代理以及轮询功能实现应用的负载均衡
针对中间件部署的应用(war包),可使用nginx自带的反向代理以及轮询功能,实现应用的负载均衡。
一、架构图

二、环境准备
准备2套环境,如19.1.0.18:7001,19.1.0.16:7001;环境使用相同的应用包、中间件以及配置文件(如数据库连接、redis),目的是可单独使用任意一套环境。
三、配置
在服务器对应目录下,修改nginx配置文件nginx.conf,具体配置如下:

1、在server节点的同级目录下新增upstream,后加服务名,如例子中的baseserver;服务名可自定义,该服务名会在后续的反向代理中用到;里面的server为中间件节点对应的ip+端口;
2、添加反向代理,在原有server下或新建一个server,添加相关代码;

upstream baseserver{
#ip_hash;
server 19.1.0.18:7001;
server 19.1.0.16:7001;
}
server {
listen 88;
server_name localhost 19.1.0.18;
client_max_body_size 300M;
location / { #“/”表示在本server下,没有匹配上其他location的请求全部转入这里
proxy_pass http://baseserver; #baseserver为upstream定义的服务名
add_header backendIP $upstream_addr; #作用是在每个请求的请求头中显示本次请求是轮询的哪个服务器
add_header backendCode $upstream_status; #作用是在每个请求的请求头中显示本次请求的状态
proxy_set_header Host $http_host; #作用是添加请求头参数
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
四、验证是否成功
访问使用nginx的ip和端口访问系统,如http://19.1.0.18:88/ApprTest/login.do,通过刷新页面的方式查看请求头返回的服务器是否变化。

刷新页面再次查看

每次请求的服务器不一样,说明配置成功。
利用nginx自带的反向代理以及轮询功能实现应用的负载均衡的更多相关文章
- Nginx反向代理+DNS轮询+IIS7.5 千万PV 百万IP 双线 网站架构案例
原文地址:http://www.jb51.net/article/31844.htm Nginx ("engine x") 是一个高性能的 HTTP 和反向代理服务器,也是一个 ...
- Apache的代理服务器的配置 (正向代理 ,反向代理,轮询调度)
一. 代理服务器的了解1.代理服务器 代理服务器英文全称是Proxy Server,其功能就是代理网络用户去取得网络信息. Squid是一个缓存Internet 数据的软件,其接收用户的下载申请,并自 ...
- Nginx的继续深入(日志轮询切割,重写,负载均衡等)
Nginx的访问日志轮询切割 通常什么情况Nginx会把所有的访问日志生成到一个制定的访问日志文件access.log里面,但时间一长,日志个头很大不利于日志的分析和处理. 有必要对Nginx日志进行 ...
- 基于nginx + lua实现的反向代理动态更新
大家都知道,nginx是当前应用非常广泛的web服务器,热度因为他的高并发高性能高可靠性,且轻量级!牛逼的不行,不多说这些. 今天要介绍的是,如何基于nginx和lua脚本,也就是在openresty ...
- Nginx应用-Location路由反向代理及重写策略 请求转发-URL匹配规则 NGINX Reverse Proxy
NGINX Docs | NGINX Reverse Proxy https://docs.nginx.com/nginx/admin-guide/web-server/reverse-proxy/ ...
- nginx基于TCP的反向代理
一.4层的负载均衡 Nginx Plus的商业授权版开始具有TCP负载均衡的功能.从Nginx 1.7.7版本开始加入的,现在变成了一个商业收费版本,想要试用,需要在官网申请.也就是说,Nginx除了 ...
- 通过Nginx+tomcat+redis实现反向代理 、负载均衡及session同步
一直对于负载均衡比较陌生,今天尝试着去了解了一下,并做了一个小的实验,对于这个概念有一些认识,在此做一个简单的总结 什么是负载均衡 负载均衡,英文 名称为Load Balance,指由多台服务器以对称 ...
- nginx和tomcat实现反向代理、负载均衡和session共享
这类的文章很多,nginx和tomcat实现反向代理.负载均衡实现很容易,可以参照http://blog.csdn.net/liuzhigang1237/article/details/8880752 ...
- centos nginx和tomcat 通过反向代理生成想要的nexus网址
研究背景: 最近一直在研究maven nexus 私服,所以想在自己带老笔记本上搭建一个私服,看到网上很多私服都有自己带域名,所以想在搭建过程中通过修改host 生成想要带域名 成功截图: 操作步骤: ...
随机推荐
- 【MySQL】从入门到精通5-一对多-外键
上期:[MySQL]从入门到掌握4-主键与Unique 第一章:创建角色表 啥是一对多啊? 一个账号可以有多个角色,但是一个角色只能属于一个账号. 举个例子,我们之前创建的是玩家的账号数据库. 但是一 ...
- 【java】学习路线2-构造、Scanner包导入、字符串操作、数组、引用类型
请先查看前置知识: [JAVA]基础1-字符串.堆.栈.静态与引用类型 https://www.cnblogs.com/remyuu/p/15990274.html import java.util. ...
- openstack中Keystone组件简解
一.Keystone服务概述 在Openstack框架中,keystone(Openstack Identity Service)的功能是负责验证身份.校验服务规则和发布服务令牌的,它实现了Opens ...
- Taurus.MVC-Java 版本打包上传到Maven中央仓库(详细过程):1、JIRA账号注册
文章目录: Taurus.MVC-Java 版本打包上传到Maven中央仓库(详细过程):1.JIRA账号注册 Taurus.MVC-Java 版本打包上传到Maven中央仓库(详细过程):2.PGP ...
- Linux命令之find、grep、echo、tar、whoami、uname
1. whoami--查看当前登录的用户名 book@100ask:~/linux$ whoami book 2. echo--打印命令,配合'>'或者'>>'使用 echo 打印信 ...
- kratos v2版本命令行工具使用
使用 下载 go install github.com/go-kratos/kratos/cmd/kratos/v2@latest 查看是否安装成功 kratos -v kratos version ...
- MySQL 中 datetime 和 timestamp 的区别与选择
MySQL 中常用的两种时间储存类型分别是datetime和 timestamp.如何在它们之间选择是建表时必要的考虑.下面就谈谈他们的区别和怎么选择. 1 区别 1.1 占用空间 类型 占据字节 表 ...
- 最佳实践:4个黄金指标和USE方法
Prometheus鼓励用户监控所有的东西,首先是及时发现问题其次是要能够快速对问题进行定位. 4个黄金指标 4个黄金指标可以在服务级别帮助衡量终端用户体验.服务中断.业务影响等层面的问题. 主要关注 ...
- 7_Log
一. 引言 1.1 日志介绍 用于记录系统中发生的各种事件. 记录的位置常见的有: 控制台, 磁盘文件等 1.2 日志级别 日志级别由低到高 TRACE, DEBUG, INFO, WARN, ERR ...
- SQL Server如何精准匹配字符中的字符,绝对匹配。
举例: 我现在是需要查询这字段里包含1的数据 我如果直接charindex,那么11,12也会被包含. 解决(1): SELECT * FROM ( SELECT '1,2,12,111' AS st ...