Nginx+Tomcat实现高并发场景的动静分离和负载均衡

服务器
Java服务大多是跑在tomcat里,但是众所周知tomcat的并发性能没有优势(tomcat8及以上的版本可能有所改善),所以为了更好的适应高并发的应用场景,我们可以使用tomcat+nginx实现动静分离,在处理静态请求的时候,就直接给Nginx处理,动态请求就转给tomcat处理。

 简介

Java服务大多是跑在tomcat里,但是众所周知tomcat的并发性能没有优势(tomcat8及以上的版本可能有所改善),所以为了更好的适应高并发的应用场景,我们可以使用tomcat+nginx实现动静分离,在处理静态请求的时候,就直接给Nginx处理,动态请求就转给tomcat处理。

简单一句话就是,nginx负责静态请求,以及高并发下的负载均衡调度动态请求给tomcat处理。

[[280932]]

Nginx配置普通tomcat跳转

 

Nginx+tomcat实现高并发场景的动静分离和负载均衡,程序员收藏了

 

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

 

Nginx+tomcat实现高并发场景的动静分离和负载均衡,程序员收藏了

 

动静分离配置

上面我们直接试了一个小例子,让nginx进行转发,即所谓的反向代理。但实际上我们的需求不会是这样的,我们需要分文件类型来进行过滤,比如jsp直接给tomcat处理,因为nginx并不是servlet容器,没办法处理JSP,而html,js,css这些不需要处理的,直接给nginx进行缓存。

这时最主要用的还是location这个元素,并且涉及到一部分正则,但不难,具体配置如下:

 

Nginx+tomcat实现高并发场景的动静分离和负载均衡,程序员收藏了

 

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

 

Nginx+tomcat实现高并发场景的动静分离和负载均衡,程序员收藏了

 

负载均衡配置

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

 

Nginx+tomcat实现高并发场景的动静分离和负载均衡,程序员收藏了

 

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

其他配置

 

Nginx+tomcat实现高并发场景的动静分离和负载均衡,程序员收藏了

 

 

责任编辑:武晓燕 来源: 今日头条
相关推荐

2019-11-12 13:56:15

NginxTomcat负载均衡

2020-04-20 20:27:59

Nginx动静分离负载均衡

2014-07-28 11:37:49

NginxTomcat

2019-03-13 12:04:41

Nginx负载均衡动静分离

2012-04-02 15:43:45

nginxtomcat

2019-06-20 14:52:46

Nginx+Tomca负载均衡

2019-10-10 15:59:14

Nginx反向代理负载均衡

2019-06-11 09:20:43

Nginx负载均衡算法

2018-10-26 10:28:28

Nginx负载均衡HTTP服务器

2019-12-24 14:28:00

KeepalivedNginxTomcat

2011-11-28 22:18:53

Nginxtomcat集群

2017-12-13 15:33:02

LinuxNginxTomcat

2018-10-14 08:39:52

NginxTomcat服务器

2010-05-06 15:24:35

Tomcat负载均衡

2010-05-06 15:04:51

Tomcat负载均衡

2019-03-25 09:49:27

Nginx负载均衡高可用性

2020-04-28 22:12:30

Nginx正向代理反向代理

2011-12-02 22:51:46

Nginx负载均衡

2020-03-30 08:00:38

Nginx彻底搞懂

2010-04-23 10:03:42

tomcat负载均衡技术
点赞
收藏

51CTO技术栈公众号