# yr_blog_cloud **Repository Path**: langzh/yr_blog_cloud ## Basic Information - **Project Name**: yr_blog_cloud - **Description**: 南风怡人v3.0 --基于springcloud微服务架构的前后端分离博客系统 - **Primary Language**: Java - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 9 - **Forks**: 0 - **Created**: 2021-04-04 - **Last Updated**: 2025-01-01 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ## 南风怡人 ### 介绍 这是一个基于springcloud微服务架构的前后端分离博客系统。 ### 目录结构 ``` yr ├── yr-app # 博客移动端 由uniapp编写 可以打包到多端 ├── yr-cloud # 博客的微服务后端 SpringCloudAlibaba ├── yr-web-manage # 博客后台的前端页面 vue+elementui └── yr-web # 博客前台的前端页面 vue+iview ``` 服务端说明 ``` yr-cloud ├── yr-cloud-common #通用模块 | ├── yr-cloud-common-core #核心依赖 | ├── yr-cloud-common-exception #全局异常处理 | └── yr-cloud-common-security #服务鉴权 ├── yr-cloud-gateway #网关 ├── yr-cloud-modules #服务 | ├── yr-cloud-blog #博客服务 | | ├── yr-cloud-blog-api | | └── yr-cloud-blog-server | ├── yr-cloud-file #文件服务 | | ├── yr-cloud-file-api | | └── yr-cloud-file-server | ├── yr-cloud-generator #代码生成 | ├── yr-cloud-im #即时通讯服务 | | ├── yr-cloud-im-api | | └── yr-cloud-im-server | ├── yr-cloud-search #搜索服务 | | ├── yr-cloud-search-api | | └── yr-cloud-search-server | ├── yr-cloud-system #系统服务 | | ├── yr-cloud-system-api | | └── yr-cloud-system-server ├── yr-cloud-modules-test #测试 └── yr-cloud-starters # 自定义springboot starters ├── yr-oauth2-spring-boot-starter #第三方授权 └── yr-oss-spring-boot-starter #oss文件上传 ``` ### 功能模块 1. **博客内容** 2. **评论模块** 3. **标签** 4. **版本记录** 5. **鉴权模块** 6. **第三方授权登录**:集成 JustAuthPlus(JAP) 实现第三方授权登录 7. **多种文件存储**:集成七牛云、又拍云 8. **实时通讯**:netty实现聊天室。 ### 技术栈 #### 后端 - SpringCloud 2020.0.2(快速构建分布式系统中的一些常见模式) - SpringCloud Alibaba 2020.0.RC1(分布式应用程序开发提供了一站式解决方案) - SpringBoot 2.4.4 (简化Spring应用的初始搭建以及开发过程) - Netty (一个广泛使用的 Java 网络编程框架) - Knife4j (api文档) - Mybaits (一款优秀的持久层框架) - Mybatis-Plus (一个 Mybatis 的增强工具) - jwt (Json web token) - JustAuth (一个第三方授权登录的工具类库) - Hutool (工具类包) #### 前端 ##### 1.微信小程序 - vue (构建用户界面的渐进式框架) - uni-app (使用 Vue.js 开发所有前端应用的框架,一套代码,多端发布) - uview (uni-app生态最优秀的UI框架,全面的组件和便捷的工具) - quill(富文本编辑器) - highlight.js (代码高亮) ##### 2.前台 yr-web - vue (构建用户界面的渐进式框架) - iview (vue一套高质量的UI组件库) - axios (基于 promise 的 HTTP 库) - moment (日期操作工具) - vue-aplayer (vue音乐播放组件) ##### 3.后台 yr-web-mannage - vue (构建用户界面的渐进式框架) - element-ui (一套为开发者、设计师和产品经理准备的基于 Vue 2.0 的桌面端组件库) ### 站点演示 【前台】[https://jy520.fun](https://jy520.fun) 【后台】[https://manage.jy520.fun](https://manage.jy520.fun) 【小程序】![](https://cdn.jy520.fun/superbed/2021/05/24/60ab7cdfce272128a6a989d2.jpg) ![](https://pic.imgdb.cn/item/60ab7e2dce272128a6b0d881.png) ![](https://pic.imgdb.cn/item/60ab7e88ce272128a6b2cfa4.png) ![](https://pic.imgdb.cn/item/60ab7e75ce272128a6b2625b.png) ![](https://pic.imgdb.cn/item/60ab7e3ece272128a6b13a97.png) ![](https://pic.imgdb.cn/item/60ab7eb5ce272128a6b3cca3.png) ![](https://pic.imgdb.cn/item/60ab7ed4ce272128a6b48004.png) ![](https://pic.imgdb.cn/item/60b247cb08f74bc159fd5179.png) ![](https://pic.imgdb.cn/item/60b247e208f74bc159fea8fb.png) ### 启动与部署 #### 服务端启动 一:启动第三方组件:①[启动nacos服务](https://nacos.io/zh-cn/docs/quick-start.html),②启动redis服务,③启动mysql。 二:环境配置:必需:nacos,redis,mysql. 选填:日志的邮件配置,如果不配置需在logback-spring.xml删除相关配置。oss配置,不启动yr-cloud-file可不配置。 三:启动模块: 1. yr-cloud-gateway[必须运行] 2. yr-cloud-modules-app[测试移动端时运行] 3. yr-cloud-modules-file[测试文件上传时运行] 4. yr-cloud-modules-im[测试移动端时运行] 5. yr-cloud-modules-management[测试后台时运行] 6. yr-cloud-modules-system[测试后台时运行] 7. yr-cloud-modules-web[测试前台时运行] 四:部署 1. 打包mvn package 2. 解压yr-cloud-modules-*-assembly.tar.gz 3. 进入bin目录执行脚本start.bat或者start.sh #### 前端 yr-web ``` // 1.安装依赖 npm i // 2.启动 npm run dev // 3.打包部署 npm run build // 4.nginx配置参考 server { listen 80; listen 443 ssl http2; ssl_certificate "/opt/app/all_config/cert/fullchain.crt"; ssl_certificate_key "/opt/app/all_config/cert/private.pem"; ssl_protocols TLSv1.1 TLSv1.2; ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE; ssl_prefer_server_ciphers on; ssl_session_cache shared:SSL:10m; ssl_session_timeout 10m; server_name jy520.fun; location / { try_files $uri $uri/ /index.html; root /opt/app/yr-web/dist; index index.html index.htm; } location ^~/api/ { add_header 'Access-Control-Allow-Origin' '*'; proxy_pass http://121.199.166.207:5001/yr-cloud-service-web/; } } ``` yr-web-manage ``` // 1.安装依赖 npm i // 2.启动 npm run dev // 3.打包部署 npm run build:prod // 4.nginx配置参考 server { listen 80; listen 443 ssl http2; ssl_certificate "/opt/app/all_config/cert/fullchain.crt"; ssl_certificate_key "/opt/app/all_config/cert/private.pem"; ssl_protocols TLSv1.1 TLSv1.2; ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE; ssl_prefer_server_ciphers on; ssl_session_cache shared:SSL:10m; ssl_session_timeout 10m; server_name manage.jy520.fun; location / { try_files $uri $uri/ /index.html; root /opt/app/yr-web-manage/dist; index index.html index.htm; } location ^~/prod-api/ { add_header 'Access-Control-Allow-Origin' '*'; proxy_pass http://121.199.166.207:5001/; } } ```