Loading
0

从0到1,Java Web网站架构搭建的技术演进

技术小学生微信公众号
腾讯云服务器大促销。
华为服务器

注:工作也有几多年了,无论是身边遇到的还是耳间听闻的,多多少少也积攒了自己的一些经验和思考,当然,我并没有接触太多高大上的分布式架构实践,所以总结的经验相对比较零碎,欢迎大家随时补充。

俗话说得好,冰冻三尺非一日之寒,滴水穿石非一日之功,罗马也不是一天就建成的,对于开发人员来说,一个好的架构并不是一蹴而就的。

初始搭建

最开始,就是各种框架一搭,然后扔到 Tomcat 容器中跑,这时候我们的文件、数据库、应用都在一个服务器上。

服务分离

随着系统的上线,用户量也会逐步上升,很快一台服务器已经满足不了系统的负载,这时我们就要在服务器还没有超载时,提前做好准备。

由于我们是单体架构,优化架构在短时间内是不现实的,增加机器是一个不错的选择。这时,我们可能要把应用和数据库服务单独部署,如果有条件也可以把文件服务器单独部署。

反向代理

为了提升服务处理能力,我们在 Tomcat 容器前加一个代理服务器,一般使用 Nginx,当然你如果更熟悉 Apache 也未尝不可。

用户的请求发送给反向代理,然后反向代理把请求转发到后端的服务器。

从严格意义上说,Nginx 是属于 Web 服务器,一般处理静态 HTML、CSS、JS 请求;而 Tomcat 属于 Web 容器,专门处理 JSP 请求,当然 Tomcat 也是支持 Html 的,只是效果没 Nginx 好而已。

反向代理的优势,如下所示:

  • 隐藏真实后端服务。

  • 负载均衡集群。

  • 高可用集群。

  • 缓存静态内容实现动静分离。

  • 安全限流。

  • 静态文件压缩。

  • 解决多个服务跨域问题。

  • 合并静态请求(HTTP/2. 0 后已经被弱化)。

  • 防火墙。

  • SSL 以及 http2。

动静分离

基于以上 Nginx 反向代理,我们还可以实现动静分离,静态请求如 HTML、CSS、JS 等请求交给 Nginx 处理,动态请求分发给后端 Tomcat 处理。

Nginx 升级到 1.9.5+ 可以开启 HTTP/2.0 时代,加速网站访问。当然,如果公司不差钱,CDN 也是一个不错的选择。

技术小学生微信公众号
华为服务器
腾讯云服务器大促销。

声明:站长码字很辛苦啊,转载时请保留本声明及附带文章链接:https://blog.tag.gg/showinfo-36-17975-0.html
亲爱的:若该文章解决了您的问题,可否收藏+评论+分享呢?
上一篇:算法是如何决定内容的?
下一篇:一篇学会cPanel面板教程 - cPanel建站及常见功能