前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Nginx系列教程(四)| 一文带你读懂Nginx的动静分离

Nginx系列教程(四)| 一文带你读懂Nginx的动静分离

作者头像
杰哥的IT之旅
发布2020-06-18 10:47:54
7570
发布2020-06-18 10:47:54
举报
文章被收录于专栏:GitHub专栏GitHub专栏GitHub专栏

一、Nginx 动静分离

Nginx 动静分离,简单来说,就是把动态静态请求分开,这里所说的不是将动态页面静态页面物理分离,可以理解为:Nginx处理静态页面,Tomcat处理动态页面。

二、静态页面

静态页面:是一个页面对应一个内容,也就是一对一的关系,在互联网架构中,页面几乎为不变的或者是页面发生变化频率较低的。比如:html 页面,js/css 样式文件等;

与其匹配的技术架构来加速。比如:SquidNginx、CDN,而静态页面最大的优点速度快、跨平台、跨服务器。

无论如何访问都只是让服务器传数据给请求端,并不做脚本计算及读取后台数据库,提高访问速度及降低了部分安全隐患。

采用静态页面的方法:可将数据库及后台系统与前台进行划分,两者间没有绝对的联系,从而提高站点安全。

静态页面的特点

  • 每个网页都有一个固定的 URL,且网页URL.htm.html.shtml等常见形式为后缀,而不含有 ?
  • 网页内容发布到网站服务器上,无论是否有用户访问,每个静态网页的内容都将保存在网站服务器上,也就是说,保存在服务器上的文件,每个网页都是一个独立的文件;
  • 内容相对稳定,容易被搜索引擎所检索;
  • 没数据库的支持,网站制作和维护方面工作量大,当网站信息量很大时,完全依靠静态网页制作方式较困难;
  • 交互性较差,功能方面有较大的限制;
  • 运行数据快;
三、动态页面

动态页面:是一对多访问,通过一个页面可以根据若干参数返回其不同的数据,在互联网架构中,不同的用户访问不同的动态场景页面请求,都可能是不一样的页面。比如:淘宝京东商品列表页面、百度搜索引擎结果页面等;

动态页面,与其之匹配的技术架构,比如:分层架构服务化架构数据库缓存架构

动态页面的特点

  • 以数据库技术为基础,可大大降低网站维护的工作量;
  • 采用动态网页技术的网站可以实现更多的功能;
  • 不是独立存在于服务器上的网页文件,只有当用户请求时服务器才返回一个完整的网页;
  • 在进行搜索引擎推广时需做一定的技术处理才能够适应搜索引擎的要求;
四、动静分离

动静分离是指:静态页面动态页面分开不同系统访问的架构设计方法。

静态页面:访问路径短,速度快,几毫秒;

动态页面:访问路径长,速度慢,几十毫秒甚至几百毫秒,架构扩展性要求高;

静态页面与动态页面以不同域名进行区分;

五、动静分离实操案例

1、Nginx服务器环境下,准备静态资源,用于访问,在根目录下创建data目录,并在该目录里面创建两个文件夹imagewww,在image文件夹里上传一张本地图片,www文件夹里创建一个html文件。

# cd /data/
# ll
总用量 8
drwxr-xr-x. 2 root root 4096 3月  29 19:14 image
drwxr-xr-x. 2 root root 4096 3月  29 19:13 www

# cd image/
# ls
游戏.jpg

# cd ../www/
# ls
20200331.html
# cat 20200331.html 
<h1>This is a static page!</h1>

2、 修改nginx.conf配置文件

添加监听端口、访问名字、重点添加location

# vim /usr/local/nginx/conf/nginx.conf
 39     server {
 40         listen       80;
 41         server_name  192.168.1.10;
 42 
 43         #charset koi8-r;
 44 
 45         #access_log  logs/host.access.log  main;
 46 
 47         location /www/ {
 48         #    proxy_pass http://myserver;
 49             root   /data/;
 50             index  index.html index.htm;
 51         }
 52         location /image/ {
 53             root /data/;
 54             autoindex  on;
 55         }

3、 重启Nginx服务

# ./nginx -s stop
# ./nginx

4、 验证效果

在客户端浏览器中输入:http://192.168.1.10/image/http://192.168.1.10/www/20200331.html分别进行测试动静分离是否成功,删除后端tomcat服务器上的某个静态文件,查看是否能访问,如果可以访问说明静态资源Nginx直接返回了,无须在通过后端Tomcat服务器;

总结

通过本篇文章我们介绍了什么是 Nginx 动静分离什么是静态页面和动态页面以及它们各自的特点动静分离的架构设计图动静分离实操案例等;

总体上来说,动静分离是将原本需要动态生成的站点通过以静态站点的优化技术,如实际情况中,数据量不大时,可生成静态页面数据不多的业务,适合于页面静态化优化。

这篇文章总体结构不长,但希望大家逻辑要清晰,彼此间都有所收获。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-04-01,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 杰哥的IT之旅 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 二、静态页面
  • 三、动态页面
  • 四、动静分离
  • 五、动静分离实操案例
  • 总结
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档