Nginx+Tomcat实现动静分离和负载均衡

一、动静分离

Nginx动静分离简单来说就是把动态和静态请求分开,不能理解成只是单纯的把动态页面和静态页面物理分离。严格意义上说应该是将动态请求和静态请求分开,可以理解成使用Nginx处理静态页面,Tomcat处理动态页面。动静分离从目前实现角度来讲大致分为两种,一种是纯粹的把静态文件放在独立的服务器上,独立出来用域名访问,也是目前主流推崇的方案;另外一种方法就是动态跟静态文件混合在一起部署,通过Nginx来分开。

为什么要动静分离?

Tomcat是一个比较全面的web容器,对静态网页的处理,应该是比较费资源的,特别是每次都要从磁盘读取静态页面,然后返回。这中间会消耗Tomcat的资源,可能会使那些动态页面解析性能受到影响。将静态资源和动态资源隔离开、能够有效的减轻Tomcat服务器的压力,提高网站整体性能。

查看系统、Nginx、Tomcat的版本号

cat /etc/redhat-release

rpm -qa |grep nginx

/usr/local/tomcat8-1/bin/version.sh

动静分离的实现

开始配置Nginx,Nginx我是用yum安装,安装可以见另一篇博客https://www.cnblogs.com/opsprobe/p/10773582.html

通过在server段代码配置不同的location实现动静分离

vim /etc/nginx/conf.d/default.conf

    location ~.*\.(html|htm|gif|jpg|jpeg|bmp|png|ico|txt|js|css)$ {
        root   /usr/local/tomcat8-1/webapps/;
        expires 30d;
    }

    location ~.*$ {
        proxy_pass http://tomcat.com;
    }

以截图中的行数做说明:

第8行,匹配项目中用到的所有静态文件后缀,这些静态文件Nginx直接处理,波浪线~表示匹配。

第9行,静态文件直接从本地磁盘拿。

第10行,expires定义用户浏览器缓存时间30天,静态页面不经常更新的话可以节省带宽缓解服务器压力,第一次访问下载新文件状态为200,以后直接访问本地缓存状态为304,直到受访问文件发生变化或者时间到期。

vim /etc/nginx/nginx.conf

负载均衡功能往往在接收到某个请求后分配到后端的多台服务器上,那我们就需要upstream{}块来配合使用

upstream xxx{};upstream模块是命名一个后端服务器组,组名必须为后端服务器站点域名,内部可以写多台服务器ip和port,还可以设置跳转规则及权重等等

ip_hash;代表使用ip地址方式分配跳转后端服务器,同一ip请求每次都会访问同一台后端服务器

server;代表后端服务器地址

server{};server模块依然是接收外部请求的部分

server_name;代表外网访问域名

location / {};同样代表过滤器,用于制定不同请求的不同操作

proxy_pass;代表后端服务器组名,此组名必须为后端服务器站点域名

server_name和upstream{}的组名可以不一致,server_name是外网访问接收请求的域名,upstream{}的组名是跳转后端服务器时站点访问的域名

复制Tomcat

原文地址:https://www.cnblogs.com/opsprobe/p/11966919.html

时间: 2024-10-17 17:23:15

Nginx+Tomcat实现动静分离和负载均衡的相关文章

Nginx+Tomcat 实现动态分离,负载均衡

什么是动静分离 为了提高网站的响应速度,减轻程序服务器(Tomcat,Jboss等)的负载,对于静态资源比如图片,js,css等文件,我们可以在反向代理服务器中进行缓存,这样浏览器在请求一个静态资源时,代理服务器就可以直接处理,而不用将请求转发给后端服务器.用户请求的动态文件比如servlet,jsp则转发给Tomcat,Jboss服务器处理,这就是动静分离.这也是反向代理服务器的一个重要的作用. 本文的动静分离主要是通过nginx+tomcat来实现,其中nginx处理图片.html.JS.C

Ngigx+Tomcat配置动静分离,负载均衡

由于公司使用过Ngnix,对于刚接触Nginx来说,感觉有些好奇,于是研究了下. 本人在windows下使用的版本是nginx-1.8.1: 1. 启动Ngnix 双击nginx-1.8.1文件夹中nginx.exe,当任务管理器中存在两个nginx进程时,则说明启动成功! 2. Ngnix常用命令 nginx -s stop 强制关闭      nginx -s quit 安全关闭      nginx -s reload 改变配置文件的时候,重启nginx工作进程,来时配置文件生效     

Nginx(七层)动静分离的负载均衡群集

环境:(全部为公网IP,可以直接和客户端通信) 分发器:192.168.200.101 静态文件服务器:192.168.200.102 192.168.200.103 动态文件服务器:192.168.200.104 192.168.200.105 图片服务器:       192.168.200.106 192.168.200.107 nginx常用的三种模式: 轮询   默认模式,后端服务器挂了自动踢出 weight   指定权重 ip_hash   每个请求按访问IP的hash结果分配,每个

实践出真知——一文教你搭建Nginx+Tomcat集群,实现负载均衡及动静分离

实践出真知--一文教你搭建Nginx+Tomcat集群,实现负载均衡及动静分离 前言 ? 想必大家对于Nginx和Tomcat都非常熟悉了,Nginx的应用非常广泛,不仅是对web静态资源非常友好,而且也是非常实用的反向代理和负载均衡软件.结合后端Tomcat的服务,从而搭建Nginx+Tomcat集群. ? 对于直接想要实践的朋友而言可以获取本文的链接中的软件包后直接看第三备份的内容. 一.集群搭建结构及拓扑 1.1集群架构图示 Nginx+Tomcat集群的结构示意图如下: 1.2系统环境与

Nginx反向代理、动静分离、负载均衡及rewrite隐藏路径详解(Nginx Apache MySQL Redis)–第三部分

Nginx反向代理.动静分离.负载均衡及rewrite隐藏路径详解 (Nginx Apache MySQL Redis) 楓城浪子原创,转载请标明出处! 更多技术博文请见个人博客:https://fengchenglangzi.000webhostapp.com 微信bh19890922 QQ445718526.490425557 三.Nginx动静分离及负载均衡 3.1 Nginx安装 请参考:https://fengchenglangzi.000webhostapp.com/?p=511 亦

nginx反向代理tomacat+keepalived实现动静分离、负载均衡、高可用

本文的动静分离主要是通过nginx+tomcat来实现,其中nginx处理图片.html.JS.CSS等静态文件,tomcat处理jsp.servlet等动态请求 服务器名称                                 系统版本                           预装软件                     IP地址 Nginx服务器                             CentOS 7 最小安装              Nginx

LNMT/LAMT实现动静分离、负载均衡和会话保持

1.本次试验主要是通过nginx代理到tomcat处理动态响应: 2.通过httpd代理到tomcat做动态请求的处理: 3.通过httpd和tomcat实现session会话的绑定: 4.通过httpd和tomcat实现session会话的保持: 5.通过httpd实现tomcat负载均衡效果: 一.LNMT的试验配置 LNMT: 主机 IP haproxy 192.168.0.111    node1.soul.com varnish 192.168.0.112    node2.soul.

varnish的缓存加速,以及动静分离,负载均衡

一个简单的拓扑如上,varnish1 上还同时开了nginx,用来做静态的http,app1和app2 是nginx+fastcgi,这个拓扑主要做的是Discuz!论坛的动静分离,以及app的负载均衡,varnish起到个反向代理和缓存加速的功能. varnish1:192.168.1.151,172.16.0.51 app1:172.16.0.52 app3:172.16.0.54 varnish 简介 varnish的缓存方式: 1.malloc,通过malloc获取内存,简单,速度. 2

nginx+tomcat实现动静分离

一.构建java语言环境Jdk用于设置java程序运行环境,当需要运行java语言时,则必须先设置jdk环境.1. 获取二进制文件.# sh jdk-6u32-linux-x64.bin# mv jdk1.6.0_32/ /usr/local/jdk2.给jdk1.6.0_32/做软链接,方便jdk更新# ln -s /usr/local/jdk/ java3.设置java命令运行环境,并使其生效.# vim /etc/profileexport JAVA_HOME=/usr/local/jdk