码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2019-12-01 18:59:40      阅读:117      评论:0      收藏:0      [点我收藏+]

标签:oca   过滤器   ati   更新   功能   静态   容器   版本号   性能   

一、动静分离

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

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

标签:oca   过滤器   ati   更新   功能   静态   容器   版本号   性能   

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!