linux 动静分离
动静分离介绍
动静分离是指,静态页面与动态页面解耦分离,用不同系统承载对应流量的架构设计方法。

动静分离原理
动静分离可通过location对请求url进行匹配,将网站静态资源(HTML,JavaScript,CSS,img等文件)与后台应用分开部署,提高用户访问静态代码的速度,降低对后台应用访问。通常将静态资源放到nginx中,动态资源转发到tomcat服务器中。
动态页面,有与之匹配的技术架构,例如:
分层架构
服务化架构
数据库,缓存架构
动态页面,有与之匹配的技术架构,例如:
分层架构
服务化架构
数据库,缓存架构
静态页面访问路径短,访问速度快,几毫秒
动态页面访问路径长,访问速度相对较慢(数据库的访问,网络传输,业务逻辑计算),几十毫秒甚至几百毫秒,对架构扩展性的要求更高
静态页面与动态页面以不同域名区分
实现动静分离
准备工作:
准备三台服务端 : web01 web02 web03
准备一台代理服务器 :lb01
准备资源共享服务端 :nfs
具体步骤:
1、创建nfs挂载点(nfs)
[root@nfs ~]
[root@nfs ~]
/static 172.16.1.0/20(rw,sync,all_squash,anonuid=666,anongid=666)
[root@nfs ~]
[root@nfs ~]
2、将静态资源放置于挂载点内(web01)
[root@web01 ~]
[root@web01 ~]
[root@web01 ~]
3、挂载到nfs实现共享(lb01)
[root@lb01 ~]
[root@lb01 ~]
(这里取消web01的挂载也可以 因为nfs已经有了静态文件,只需要将lb01代理服务端挂载即可。)
[root@lb01 ~]
upstream bbs {
server 172.16.1.7:80 max_fails=3 fail_timeout=3s;
server 172.16.1.8:80 max_fails=3 fail_timeout=3s;
server 172.16.1.9:80 max_fails=3 fail_timeout=3s;
}
server {
listen 80;
server_name py.test.com;
location / {
proxy_pass http://bbs;
proxy_next_upstream error timeout invalid_header http_500 http_502 http_503 http_404;
include /etc/nginx/proxy_params;
}
location ~ \.(jpg|png|css|gif|js|json|woff|woff2)$ {
root /opt/static;
}
}
4、测试:这样就直接访问代理服务端lb01 静态文件就会直接在代理服务端找反馈给用户。动态文件再去后端服务器 web01 web02 web03 找。


【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· winform 绘制太阳,地球,月球 运作规律
· 上周热点回顾(3.3-3.9)