您的位置:首页 > 运维架构 > Tomcat

Nginx+Tomcat实现动静分离

2019-05-13 00:11 246 查看

前言

1. 什么是网站动静分离架构模式?
  • 网站中的动静分离其实就是将动态资源和静态资源分离处理。
  • 传统网站架构模式:jsp、html、img、css、js全部存放在一个服务器上,把静态资源和动态资源共同放到一台服务器上。
  • 大型互联网公司中前端与后端开发是分离,静态资源和动态资源不会部署到同一台服务器上,静态资源部署在一个服务器上(html、css、img、js …),动态资源部署在一个服务器上(后端代码)
2. 动态资源和静态资源的区别?
  • 静态资源:用户多次访问后,html源代码不会发生改变,例如html、jpg 、css、js 等不需要后台处理的资源。
  • 动态资源:用户多次访问后,html源代码可能会发生改变,例如我们访问的JSP页面 (本质是一个Servlet)或*.do请求等。
  • 区别:判断标准是,刷新多次,html源代码是否发生改变
  • 误区:并不是页面是动态的,就一定是动态页面,一般动态页面为了提高被搜索引擎搜到的机率,会使用伪静态;也就是说使用动态页面静态化技术将页面静态化,静态化技术有Freemarker、Beetl、Velociity、Thymeleaf 等。
3. 为什么要使用动静分离?
  • 其实就是减轻服务器的压力、提高服务器的响应速度和效率、保证高并发。就像数据库的读写分离一样,也是保证高并发。
  • 静态服务器我们同时也可以使用CDN做内容分发,访问不同的资源转发到不同的服务器。
  • 静态服务器我们一般使用Nginx,Nginx实现静态服务器要比Tomcat 快得多。
4. 动静分离与前后端分离的区别?
  • 动静分离:指的是动态资源和静态资源分离,分别部署在不同的服务器上。
  • 前后端分离:网站架构模式中,微服务开发基于SOA面向服务开发,后台和前端都采用调用接口方式。
5. 图示


图片来源:蚂蚁课堂


搭建动静分离(Nginx+Tomcat实现)

Nginx的nginx.conf文件配置中配置如下:
由于不是详细教学篇,不熟悉nginx的想要详细了解每个配置的意义会花些时间,这里只是做个记录供自己以后查看。

#静态资源服务配置(一定要配置在动态资源之前,因为动态资源location采用/匹配的,否则请求就被统一当做动态资源处理)
server {
listen       80;   # 表示当前的代理服务器监听的端口,默认的是监听80端口。注意,如果我们配置了多个server,这个listen要配置不一样,不然就不能确定转到哪里去了。
server_name  wangxu;

#静态资源
location .*\.(js|css|ico|png|jpg|eot|svg|ttf|woff) {
root html;
index index.html index.htm;
}

}

#配置上游服务器 集群,默认轮询机制
upstream backServer{
server 127.0.0.1:81;
server 127.0.0.1:82;
}
#动态资源服务配置
server {
listen       80;   # 表示当前的代理服务器监听的端口,默认的是监听80端口。注意,如果我们配置了多个server,这个listen要配置不一样,不然就不能确定转到哪里去了。
server_name  localhost;   # 表示监听到之后需要转到哪里去,这时我们直接转到本地,这时是直接到nginx文件夹内。

#charset koi8-r;

#access_log  logs/host.access.log  main;

location / {    # 表示匹配的路径,这时配置了/表示所有请求都被匹配到这里
#root   html;   # 里面配置了root这时表示当匹配这个请求的路径时,将会在这个文件夹内寻找相应的文件,这里对我们之后的静态文件伺服很有用。
#指定上游负载均衡服务器
proxy_pass http://backServer/;
#index  index.html index.htm;   # 当没有指定主页时,默认会选择这个指定的文件,它可以有多个,并按顺序来加载,如果第一个不存在,则找第二个,依此类推。
}
error_page   500 502 503 504  /50x.html;
location = /50x.html {
root   html;
}
}

浏览器访问wangxu时会访问Nginx本地html文件夹内的index.html页面

浏览器访问localhost/api-member时会转发到上游网关服务,由网关转发到对应的服务;


------------------------------------- 学习不易,需要坚持----------------------------------------

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: