|
|
51CTO旗下网站
|
|
移动端

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

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

作者:程序员Share来源:今日头条|2019-10-31 15:41

 简介

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

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

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实现高并发场景的动静分离和负载均衡,程序员收藏了

【编辑推荐】

  1. 开发掌握Nginx之一:反向代理、动静分离、负载均衡
  2. 「微服务架构」基于Nginx的三种微服务参考架构
  3. 深入浅出Nginx实践:如何借助Nginx搭建反向代理服务器?
  4. Java应用服务器对比 Tomcat、Jetty、 GlassFish、WildFly
  5. 大公司程序员带你死磕Tomcat—Tomcat如何做到一键式启停
【责任编辑:武晓燕 TEL:(010)68476606】


点赞 0
分享:
大家都在看
猜你喜欢
24H热文
一周话题
本月获赞

订阅专栏+更多

骨干网与数据中心建设案例

骨干网与数据中心建设案例

高级网工必会
共20章 | 捷哥CCIE

235人订阅学习

中间件安全防护攻略

中间件安全防护攻略

4类安全防护
共4章 | hack_man

126人订阅学习

CentOS 8 全新学习术

CentOS 8 全新学习术

CentOS 8 正式发布
共16章 | UbuntuServer

277人订阅学习

读 书 +更多

Windows Forms 编程实战

本书由浅入深地介绍Windows Forms编程的技巧和各种实用方法。本书先详细介绍了菜单、状态条、可复用类库、文件对话框、文本框、按钮、列表...

订阅51CTO邮刊

点击这里查看样刊

订阅51CTO邮刊

51CTO服务号

51CTO官微