Nginx+tomcat组合实现高并发场景的动静分离和负载均衡方案
简介
Java服务大多是跑在tomcat里,但是众所周知tomcat的并发性能没有优势(tomcat8及以上的版本可能有所改善),所以为了更好的适应高并发的应用场景,我们可以使用tomcat+nginx实现动静分离,在处理静态请求的时候,就直接给Nginx处理,动态请求就转给tomcat处理。
简单一句话就是,nginx负责静态请求,以及高并发下的负载均衡调度动态请求给tomcat处理。
Nginx配置普通tomcat跳转

通过proxy_pass配置请求转发地址。即当访问localhost的8010端口时,请求会跳转至localhost的8080端口处。

动静分离配置
上面我们直接试了一个小例子,让nginx进行转发,即所谓的反向代理。但实际上我们的需求不会是这样的,我们需要分文件类型来进行过滤,比如jsp直接给tomcat处理,因为nginx并不是servlet容器,没办法处理JSP,而html,js,css这些不需要处理的,直接给nginx进行缓存。
这时最主要用的还是location这个元素,并且涉及到一部分正则,但不难,具体配置如下:

此时再直接输入localhost:8010,则会报404错误了。但是输入localhost:8010/index.jsp,则一样可以跳转至tomcat首页中。

负载均衡配置
当一台服务器出现故障后,我们需要将请求自动转向另一台服务器,此种需求该如何配置呢?利用Nginx也是比较方便能够实现,具体配置如下:

注意,上面还加上了一个weight属性,此属性表示各服务器被访问到的权重,weight越高访问到的几率越高。
其他配置

Nginx+tomcat组合实现高并发场景的动静分离和负载均衡方案的更多相关文章
- Nginx 动静分离与负载均衡的实现
一.前提 企业中,随着用户的增长,数据量也几乎成几何增长,数据越来越大,随之也就出现了各种应用的瓶颈问题. 问题出现了,我们就得想办法解决,一般网站环境,均会使用LAMP或者LNMP,而我们对于网站环 ...
- 使用nginx实现动静分离的负载均衡集群
一.概述: LB负载均衡集群分两类: LVS (四层)和 nginx或haproxy (七层) 客户端通过访问分发器的VIP来访问网站 |现在应用更复杂,比如现在网站页面有: .php .html . ...
- Nginx+Tomcat实现动静分离和负载均衡
一.什么是动静分离? Nginx动静分离简单来说就是把动态和静态请求分开,不能理解成只是单纯的把动态页面和静态页面物理分离.严格意义上说应该是将动态请求和静态请求分开,可以理解成使用Nginx处理静态 ...
- nginx 动静分离 以及 负载均衡配置
测试环境 系统版本:win7 Nginx版本:nginx-1.8.1 Tomcat版本:tomcat-6.0.14 1动静分离配置 Nginx.conf 中 server中 server { list ...
- Nginx + Tomcat 动静分离实现负载均衡(转)
0.前期准备 使用Debian环境.安装Nginx(默认安装),一个web项目,安装tomcat(默认安装)等. 1.一份Nginx.conf配置文件 # 定义Nginx运行的用户 和 用户组 如果对 ...
- Nginx + Tomcat 动静分离实现负载均衡
0.前期准备 使用Debian环境.安装Nginx(默认安装),一个web项目,安装tomcat(默认安装)等. 1.一份Nginx.conf配置文件 # 定义Nginx运行的用户 和 用户组 如果对 ...
- 【转载】Nginx+Tomcat 动静分离实现负载均衡
0.前期准备 使用Debian环境.安装Nginx(默认安装),一个web项目,安装tomcat(默认安装)等. 1.一份Nginx.conf配置文件 1 # 定义Nginx运行的用户 和 用户组 如 ...
- 【nginx+tomcat集群】Nginx1.12.2+Tomcat7集群+负载均衡+Session共享
今天想着将项目优化一下,就想的实现集群分布,在本机测试:利用nginx+tomcat实现 通过上一篇博客(http://www.cnblogs.com/qlqwjy/p/8535235.html),N ...
- 负载均衡 | Nginx+Tomcat 动静分离实现负载均衡
0.前期准备 使用Debian环境.安装Nginx(默认安装),一个web项目,安装tomcat(默认安装)等. 1.一份Nginx.conf配置文件 基本配置这个文件,就可以实现负载了.但是里面的各 ...
随机推荐
- 最好使的歌词编辑工具--Beslyric
https://www.cnblogs.com/BensonLaur/p/6262565.html 感谢开发这么好的工具! 下载地址:http://beslyric.320.io/BesBlog/ ...
- github使用入门
连接地址 github使用入门 连接地址: https://zhuanlan.zhihu.com/p/21193604?refer=passer
- vue 模板如何解析
1.模板 一个最简答的模板: <div id="app"> {{ message }} </div> v-for模板: <ul id="ex ...
- Ulua_toLua_基本案例(二)_ScriptsFromFile
在Untiy中用Lua.必需要LuaInterface. LuaInterface的介绍请看:点击打开链接 能够先光写Lua,生成.lua的纯文件. 再Unity中通过,luaState.DoFile ...
- 〖Linux〗多个JDK版本之间快速切换
由于工作的需要,经常要切换JDK版本比如我HOME目录下有三个JDK版本: ~/apt/jdk1..0_34 # JDK6 ~/apt/jdk1..0_67 # JDK7 ~/apt/jdk1..0_ ...
- jqPlot图表插件学习之ajax-json数据加载
一.准备工作 首先我们需要到官网下载所需的文件: 官网下载(笔者选择的是jquery.jqplot.1.0.8r1250.zip这个版本) 然后读者需要根据自己的情况新建一个项目并且按照如下的方式加载 ...
- Hibernate第一次学习总结
Hibernate概述 是一款方便应用操作数据库的中间件,使应用直接通过操作Java对象来操作数据库. 实现了ORM模型,包括:数据库表与JAVA对象的映射,表关联与Java对象关系的映射. 实现了O ...
- HP ALM lis
<?xml version="1.0" encoding="UTF-8"?><license version="1.0"& ...
- weblogic静默安装指导
Linux图形化很少,再生产上.静默安装基本上是家常便饭... 心得: Oracle的官方文档很全,值得后续学习指导文件 weblogic10.3.6官方文档 https://docs.oracle. ...
- android事务队列处理的实现
代码地址如下:http://www.demodashi.com/demo/14748.html 前言 在android开发中,我们经常会遇到一种情况,随时接收并处理服务端发过来的消息,当服务端发过来的 ...