广告卫生间翻新不用愁,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_佟老板,一个让你沉溺于网络学习世界的好伙伴。