nginx第四讲.动静分离

广告卫生间翻新不用愁,2020年房屋改造装修报价送给你!×

许多小伙伴都知道,大型互联网架构中都采用动静分离的方式,之所以广泛被使用,是因为tomcat本身处理静态请求的效率不高,还会带来更大的资源开销。

一、什么是动静分离

Nginx的动静分离,原理是将动态请求和静态请求分开,不能单纯的理解成只把动态页面和静态页面物理分离。严格意义上,可以理解成使用nginx处理静态页面,tomcat或PHP处理动态页面。

广告58㎡小户型旧房改造装修,装完都不敢想像!×

图1

动静分离从目的实现的角度,大致分为两类:

1.纯粹把静态文件独立成单独的域名,放在独立的服务器上,这种是目前主流推崇的方案之一;

2.将动态资源和静态资源混合在一起发布,通过nginx调度。

二、通过nginx实现动静分离

1.配置文件参数

通过nginx配置文件中,location参数设置,指定不同的uri实现不同的转发请求。

通过nginx配置文件中,expires参数设置,修改浏览器对于静态资源的缓存时间,从而减少客户端与服务器的请求和交互流量。

Expires参数定义:给一个资源设定过期时间,客户端无需前往服务器验证,通过浏览器自身确认是否过期即可,因此不会产生额外的流量。此方法非常适合不经常变动的资源。例如下述案例中设置1d,表示3天之内重复访问此url时,客户端发送请求对比静态文件的更新时间是否变化,未变化则不会重新抓取文件,返回状态码304;如果有修改,则直接从服务器重新下载,返回状态码200。

2.实验准备工作

(1)静态资源准备

在linux服务器中,准备测试所需静态资源,将静态资源放在nginx目录下。

进入192.168.116.12这台linux服务器,安装nginx服务。首先安装nginx所需依赖包,通过yum安装的方式:

之后将nginx包解压,进入解压后的文件夹,并安装:

安装完成后,在nginx目录,创建静态资源路径,mkdir static。

广告简直不敢相信!精装房二次装修后可以这么好看!×

图2

将静态资源的图片,放到static文件夹中:

广告university of tokyo / 东京大学×

图3

编辑nginx配置文件,匹配静态资源。

vi /usr/local/nginx/conf/nginx.conf,在默认server中添加如下location,用以匹配静态资源。

listen 80; //nginx对外服务端口

server_namelocalhost;//对外服务ip,即本服务器

location ~ .*\.(gpg|png|css|jpg) {//匹配的静态资源

root /usr/local/nginx/static;//静态资源所在路径

广告旧房改造 风格效果图×

图4

启动nginx服务,打开:8080验证:

广告土巴兔-装修_2022旧房翻新装修价格大全 [官网]×

图5

(2)动态资源准备

在192.168.116.13服务器上,安装tomcat服务,安装方法见《第二讲》。进入主页所在目录,编辑index.jsp文件:

广告房屋改造维修,上58同城,24小时上门×

图6

删除原有文件内容,添加生成随机数的代码如下:

out.println("<h1>随机数:</h1>");

打开:8080验证效果,可以发现随机数每次访问的变化:

广告尿酸高的元凶找到了,不是少碰啤酒海鲜,而是它!很多人不知道×

图7

3.配置nginx动静分离

(1)测试方法

访问nginx代理服务器不同url:

和时,代理到不同的后端服务器。

(2)修改配置文件

进入nginx配置文件目录/usr/local/nginx/conf,编辑nginx.conf配置文件:

增加后端服务器,upstream模块:

#增加upstream模块

修改server中的配置,匹配jpg、png、css等文件,分发到静态资源服务器;匹配到jsp页面时,分发到tomcat服务器,处理动态资源:

#修改默认server的中配置

#匹配到或者*.png或者*.css时,交由静态资源服务器处理

#匹配到时,交由后台tomcat处理动态资源

(3)重启nginx服务

图8

(4)测试结果:

访问,出现静态资源服务器的图片:

广告男博士穿越成昏君,上朝第一件事就是按着历史名单点名,杀奸臣!×

图9

访问,出现动态随机数页面:

广告女领导扶着墙一瘸一瘸走出,叹道:“这重点培养,真的承受不起”×

图10

大功告成!

如果觉得不错,有所帮助的话,请记得点赞,转发!!!

我是CCIE_佟老板,一个让你沉溺于网络学习世界的好伙伴。