去年7月,一想到我有备用服务器放在那里就是一种浪费,而我恰好有域名备案,所以我考虑在公共网络上部署一个博客系统。 于是我去了github,找到了一个看起来比较好的开源博客项目,这个项目的技术栈和现在主流的互联网应用架构是一样的,比如用SpringCloud微服务、中间件、ES等。
但是部署起来非常困难,这个项目大约有5个微服务,更不用说ES这样的中间件了,在我自己的服务器(1核2G)的配置下,这显然是不可行的。
因此,我决定编写自己的轻量级博客系统,该系统可以用最少的资源进行部署,而不会丢失功能。
tip
以下是我用 SpringBoot+Vue 搭建的轻量级博客源码,有兴趣可以自己获取。
// git**。
本博客项目在功能上分为后台管理端和前端用户端,管理端主要负责维护博文、查看用户范围行为等,用户端主要用于展示博文并提供用户交互功能(点赞、评论等)。预览地址:单页博客。
博客主页
博客详细信息
点赞评论
管理员输入账号密码后,即可进入管理页面
在博客管理菜单下,有文章、主题、标题和类别管理
在文章管理下,我们首先创建文章并设置标题和类别等基本信息
然后,在列表页,双击标题进入文章详情编辑页面,对文章进行编辑预览
还有一个专门的菜单,用于博客的用户行为日志
博客的技术架构采用前后端分离,前端页面基于 Vue+element-ui 组件库进行开发、编译和打包,服务端使用 Springboot 框架进行自动化配置,按需引入入门组件,实现业务功能逻辑开发。
前后端独立,相互依存,降低开发部署影响风险,提高开发效率。
前端页面独立使用 vue+element-ui
后端采用m**en+springboot,按照功能模块进行分层设计,虽然目前打包为单体项目,但方便在需要时独立部署
博客详细信息内容编辑使用开源且功能强大的富文本编辑器 wangeditor(5.)。1.23)Wangeditor5 是一款基于 j**ascript 开发的 Web 富文本编辑器,多达 20 个常用功能,简单易用,易于维护,提供扩展插件、上传服务等相关资源,让我们在开发过程中可以更好的使用。
博客管理端的资源权限认证框架使用SpringSecurity+OAuth2+JWT框架。 SpringSecurity 是 Spring 框架的安全框架,用于提供身份认证和授权功能,使用 OAuth2 实现认证服务器统一发放认证令牌,主要用于单点登录(SSO),生成令牌的数据格式使用 JWT,具有可靠性和自验证性。
tip
我已经封装了SpringSecurity + OAuth2 + JWT作为入门,我只需要介绍一下对应的服务器CION就可以使用了,有兴趣可以自己获取。
// git**。
该项目的业务比较简单,主要是查询,比如查询详情页、列表页,显然系统的主要性能瓶颈是数据库QPS,所以我决定使用二级缓存(Redis+本地缓存),市面上已经有比较流行的框架JetCache了。Jetcache是阿里巴巴集团基于Spring和Redis的开源分布式缓存框架,其主要特点包括:基于注解、多级缓存、高性能、易用性。
直接在所需方法上添加缓存的注释@cached
要运行项目,我们需要提前安装 jdk (1.)8)、mysql(>=5.7) Redis、nginx(静态资源**)第二种是将编译好的静态资源和功能服务jar文件打包到服务器。
这里用的是docker安装,具体安装过程在本文中不再赘述
对管理 UI 的更改。 env.production 文件,然后运行 npm 命令将其打包
用户 UI 更改。 env.production 文件,然后运行 npm 命令将其打包
将编译打包好的静态文件上传到服务器首页对应目录下,配置nginxconf**
server
客户端 UI。
location ^~/webui
在本地执行MVN Clean Install命令,将JAR文件编译打包并上传到服务器
nginx.配置conf接口,执行j**a -jar命令启动j**a程序
server
客户端接口。
location ^~/api
j**a -jar -xms300m -xmx300m yeee-app-bootstrap-1.0.0-snapshot.jar >./startup-blog.log&
至此,我已经通过功能介绍、技术架构和部署流程,完全介绍了我的开源轻量级博客系统,如果有任何问题可以在评论区交流,也可以去 github 提交 PR 或者问我问题,谢谢大家的支持。
tip
以下是我用 SpringBoot+Vue 搭建的轻量级博客源码,有兴趣可以自己获取。
// git**。