在github/gitee上面有很多别人写好的开源框架,选择适合的可以很大的减少开发人员的工作,我的网站用的是gitee上面的明星项目mogu博客,这里是项目地址:https://gitee.com/moxi159753/mogu_blog_v2.git
大家可以自己拉下来,按照教程部署。

这篇博客主要记录我的部署过程

首先把项目拉到本地

使用maven安装好所有的依赖,这里细节就不再赘述。

本项目使用的技术栈:
后端技术
技术 说明 官网
SpringBoot MVC框架 https://spring.io/projects/spring-boot
SpringCloud 微服务框架 https://spring.io/projects/spring-cloud/
SpringSecurity 认证和授权框架 https://spring.io/projects/spring-security
MyBatis-Plus ORM框架 https://mp.baomidou.com/
Swagger-UI 文档生产工具 https://github.com/swagger-api/swagger-ui
Kibana 分析和可视化平台 https://www.elastic.co/cn/kibana
Elasticsearch 搜索引擎 https://github.com/elastic/elasticsearch
Beats 轻量型数据采集器 https://www.elastic.co/cn/beats/
Logstash 用于接收Beats的数据并处理 https://www.elastic.co/cn/logstash
Solr 搜索引擎 http://lucene.apache.org/solr/
RabbitMQ 消息队列 https://www.rabbitmq.com/
Redis 分布式缓存 https://redis.io/
Docker 容器化部署 https://www.docker.com
Druid 数据库连接池 https://github.com/alibaba/druid
七牛云 七牛云 - 对象储存 https://developer.qiniu.com/sdk#official-sdk
JWT JWT登录支持 https://github.com/jwtk/jjwt
SLF4J 日志框架 http://www.slf4j.org/
Lombok 简化对象封装工具 https://github.com/rzwitserloot/lombok
Nginx HTTP和反向代理web服务器 http://nginx.org/
JustAuth 第三方登录的工具 https://github.com/justauth/JustAuth
Hutool Java工具包类库 https://hutool.cn/docs/#/
阿里大于 短信发送平台 https://doc.alidayu.com/doc2/index.htm
Github Actions 自动化部署 https://help.github.com/en/actions
Zipkin 链路追踪 https://github.com/openzipkin/zipkin
Flexmark-java Markdown转换Html https://github.com/vsch/flexmark-java
Ip2region 离线IP地址定位库 https://github.com/lionsoul2014/ip2region
Minio 本地对象存储服务 https://min.io/
Docker Compose Docker容器编排 https://docs.docker.com/compose/
Portainer Docker可视化管理 https://github.com/portainer/portainer

可以从项目里看到项目的配置文件都不在本地,项目使用的是Nacos管理项目的配置文件和实现项目服务的注册与发现

接下来在window部署框架的环境,包括redis缓存数据库,rabbtmq消息队列,slor搜索服务,mysql数据库连接,zipkin链路追踪,nacos配置文件,Sentinel流量控制

配置JDK

配置Maven

maven安装成功后,记得添加阿里源,不然有些东西下载会非常慢的

配置nginx

nginx的下载直接到nginx官网下载即可

下载完成后,我们需要修改nginx.conf配置文件,加入下面的内容

#蘑菇博客图片资源
server {listen       8600;server_name  localhost;add_header Access-Control-Allow-Origin *;add_header Access-Control-Allow-Methods *;add_header Access-Control-Allow-Headers *;if ($request_method = 'OPTIONS') {return 204;} location / {root   D:\mogu_blog\data;index  index.html index.htm;}
}

就是将8600端口的请求映射到 D:\mogu_blog\data的目录下,如果没有这个目录的,可以提前创建好,当然不一定在D盘,可以在任意位置,其它位置修改成对应的即可。

不过如果需要修改的话,需要到mogu_picture项目的yml文件里也一起修改对应的配置文件,如下图的 file.upload.path 修改成自定义的即可 【如果是nacos分支,需要在nacos中进行修改】

#Data image url
file:upload:path: D:/mogu_blog/data

配置redis

去redis官网,进行下载:https://redis.io/

然后双击启动即可

注意,如果使用docker的方法安装的蘑菇博客镜像,里面设置了默认的密码mogu2018,如果直接复制的本地配置,还需要修改一下默认密码

配置RabbitMq

RabbitMQ是一款比较优秀的消息中间件,在这里主要用于同步solr索引,redis缓存更新,以及邮件和验证码发送等功能。

关于配置,参考这篇博客:蘑菇博客配置RabbitMQ

配置搜索模块【非必须】

目前蘑菇博客支持三种搜索模式的配置,分别是Solr、ElasticSearch和SQL,小伙伴可以按照自己的服务器配置进行相应的部署

参考:蘑菇博客切换搜索模式 ,进行三种模式的切换(三种方式选择一种,默认是SQL搜索,可以配置ElasticSearch或者Solr作为全文检索 )

配置Solr【非必须】

关于window下配置蘑菇博客的solr,其实和我之前写的一篇博客大同小异,在这里我就不多叙述了,详情参考:CentOS下Solr的安装和部署

注意:需要修改schema.xml文件

最近很多小伙伴说solr不好配置,所以我特意把solr的上传到蓝奏云和百度云了,小伙伴只需要下载后,放到tomcat的webapps目录下,然后修改一下solrhome的配置即可

蓝奏云:

https://wws.lanzous.com/i3drtj8l8ja
百度云:

链接:https://pan.baidu.com/s/1gpKs7oixT8RBn8zuDSiEGQ
提取码:ditj
下载完成后,解压

然后找到 web.xml文件

修改里面的地址,把路径改成你的目录即可

    <env-entry><env-entry-name>solr/home</env-entry-name><env-entry-value>E:\Software\xampp\tomcat\webapps\solr\solr_home</env-entry-value><env-entry-type>java.lang.String</env-entry-type></env-entry>

然后查看solr admin页面:http://localhost:8080/solr/#/

如果能正常显示,说明已经安装成功

配置ElasticSearch【非必须】

关于ElasticSearch的配置和相关介绍,可以参考这篇博客:Elasticsearch介绍和安装

window也可自行百度进行安装,或者直接下载我上传的压缩包

百度网盘:

链接:https://pan.baidu.com/s/1X1z47Osm_MBjwSBckhUmTQ
提取码:pnfp
备用地址:

http://picture.moguit.cn/blog/resource/java/ElasticSearch.zip
下载完后,解压能看到这个目录

我们首先进入elasticsearch下的config目录,修改elasticsearch.yml文件,把下面两个路径,改成你对应的目录即可

然后启动ElasticSearch:

启动Kibana:

启动完成后:我们输入网址

http://localhost:5601/

如果能出现下面的页面,说明已经成功安装了 ElasticSearch 和 Kibana,在这里kibana只是作为ElasticSearch的图形化显示工具,相当于原来的SolrAdmin页面一样,在生产环境中,可以不部署也行

配置Mysql

使用命令把项目clone下来

git clone https://gitee.com/moxi159753/mogu_blog_v2.git
然后找到目录下的doc文件夹,里面有个数据库脚本,打开后,我们能够看到下面的文件

mogu_blog.sql:代表mogu_blog数据库的文件

mogu_blog_update.sql:代表mogu_blog在后续开发时候更新的字段(首次无需导入)

mogu_picture.sql:代表mogu_picture数据库文件

mogu_picture_update.sql:代表mogu_picture在后续开发时候更新的字段(首次不需要导入)

nacos_config.sql:代表nacos的配置信息,用来存放每个模块的配置信息【nacos分支需要导入】

我们需要提前创建好 mogu_blog 、mogu_picture 、nacos_config 这三个数据库,然后把备份脚本导入即可。

注意:首次导入的时候,我们只需要执行mogu_blog.sql 、 mogu_picture.sql、nacos_config文件即可,如果你在之前已经部署了本项目,那么你需要在对应的update.sql文件中,打开后,从中找到没有的字段,复制上执行即可
里面每个字段的添加,都会有对应的日期提示,如果有些字段是你clone项目后添加的,那么你就需要执行它们一遍即可

同时设置数据库访问账户和密码为: root root

当然不设置也没关系,就是后面修改yml文件里面的配置即可【Nacos分支,配置文件存储在Nacos中】

配置zipkin链路追踪【非必须】

Zipkin是一个开源的分布式的链路追踪系统,每个微服务都会向zipkin报告计时数据,聚合各业务系统调用延迟数据,达到链路调用监控跟踪。

参考博客:使用Zipkin搭建蘑菇博客链路追踪

链路追踪服务可以选择安装,不过如果没有安装的话,在启动的时候会出现这样一个错误,不过该错误不会影响正常使用,可以忽略

I/O error on POSt request for “http://localhost:9411/api/v2/span” :connect timeout

配置Nacos

Nacos服务注册和配置中心,如果使用的使用的是Eureka作为服务注册中心,那么直接跳过Nacos和Sentinel的安装过程。

参考 【SpringCloud】使用Nacos实现服务注册发现和配置中心等功能,了解Nacos的使用

参考 蘑菇博客Nacos部署指南,完成蘑菇博客中Nacos的安装和配置

配置Sentinel流量控制【非必须】

Sentinel存在于Nacos分支下,如果你的注册中心是Eureka,那么不需要配置

随着微服务的流行,服务和服务之间的稳定性变得越来越重要。Sentinel 以流量为切入点,从流量控制、熔断降级、系统负载保护等多个维度保护服务的稳定性。

参考【SpringCloud】使用Sentinel实现熔断和限流 ,了解Sentinel以及使用

参考 蘑菇博客Sentinel安装指南,完成蘑菇博客中Sentinel的配置

启动后端项目

首先进入项目根目录文件夹,执行下面命令

#下载依赖
mvn clean install

如果下面都是success,那就说明依赖下载成功了

下面就把项目导入到IDEA中

关于项目的介绍

MoguBlog 是一款基于最新技术开发的多人在线、简洁的博客系统。
mogu_admin: 提供admin端API接口服务;
mogu_web:提供web端API接口服务;
mogu_eureka: 服务发现和注册
mogu_picture: 图片服务,用于图片上传和下载;
mogu_sms:消息服务,用于更新ElasticSearch、Solr索引、邮件和短信发送
mogu_monitor:监控服务,集成SpringBootAdmin用于管理和监控SpringBoot应用程序
mogu_spider:爬虫服务(目前还未完善)
mogu_spider:网关服务(目前还未完善)
mogu_zipkin:链路追踪服务,目前使用java -jar的方式启动
mogu_search:搜索服务,ElasticSearch和Solr作为全文检索工具,支持可插拔配置,默认使用SQL搜索
mogu_commons:公共模块,主要用于存放Entity实体类、Feign远程调用接口、以及公共config配置
mogu_utils: 是常用工具类;
mogu_xo: 是存放 VO、Service,Dao层的
mogu_base: 是一些Base基类
doc: 是蘑菇博客的一些文档和数据库文件
vue_mogu_admin:VUE的后台管理页面
vue_mogu_web:VUE的门户网站
uniapp_mogu_web:基于uniapp 和 colorUi 的蘑菇博客移动端门户页面(Nacos分支)
nuxt_mogu_web:Nuxt的门户网站,主要用于支持SEO搜索引擎优化(目前还未完善)

下面进行项目启动

Eureka版本: 需要启动 mogu_eureka -> mogu_picture -> mogu_sms -> mogu_admin -> mogu_web

如果是Nacos版本:需要启动 :mogu_gateway -> mogu_picture -> mogu_sms -> mogu_admin -> mogu_web 【新加入了网关】

其它一些模块可以根据自己配置进行启动:如 mogu_monitor、mogu_search、Zipkin等 【下图是Eureka版本】

启动成功后,我们应该能够查看到对应的Swagger接口文档

tip:需要注意,swagger-ui在nacos版本和eureka版本使用的不一致
eureka版本:swagger-ui使用的是2.X,访问的页面是 http://localhost:8601/swagger-ui.html
nacos版本:swagger-ui使用的是3.X,访问的页面是 http://localhost:8601/swagger-ui/index.html

############ admin端swagger ##################
# Eureka分支
http://localhost:8601/swagger-ui.html
# Nacos分支
http://localhost:8601/swagger-ui/index.html############ picture端swagger ##################
# Eureka分支
http://localhost:8602/swagger-ui.html
# Nacos分支
http://localhost:8602/swagger-ui/index.html############ web端swagger ##################
# Eureka分支
http://localhost:8603/swagger-ui.html
# Nacos分支
http://localhost:8603/swagger-ui/index.html

Admin端接口文档:

Picture端接口文档

web端接口文档

因为Nacos分支引入了 mogu_gateway作为 微服务的网关入口,以后部署项目后,很多内部的服务端口可能就不会暴露出来了,因此以后测试,就需要我们通过 mogu_gateway提供的Knife4j 接口聚合

http://localhost:8607/doc.html

我们可以通过左上角的下拉框选择我们的微服务接口,使用方法和swagger一致

启动前端项目

前端项目使用的是Vue编写的,所以在这之前,需要下载好nodejs,因为nodejs里的npm模块是用于管理vue项目中的依赖,就类似于maven一样

node官网:https://nodejs.org/en/

在安装的时候,记得选择好加入到环境变量中,这样我们就能在任何使用了。

查看是否安装成功: npm -v

  1. 安装 vue_mogu_admin 项目的依赖

进入vue_mogu_admin 文件夹内,使用下面命令进行安装

# 使用淘宝镜像源进行依赖安装,解决国内下载缓慢的问题(出现警告可以忽略)
npm install --registry=https://registry.npm.taobao.org# 启动项目
npm run dev#打包项目(在部署的时候才需要使用)
npm run build

强烈建议不要用直接使用 cnpm 安装,会有各种诡异的 bug,可以通过重新指定 registry 来解决 npm 安装速度慢的问题。若还是不行,可使用 yarn 替代 npm。

Windows 用户若安装不成功,很大概率是node-sass安装失败,解决方案。
这里可以看我的前一篇博客基于蘑菇博客建设个人SNS网站(一),有详细的部署过程

# 指定node-sass的国内镜像源
npm i node-sass --sass_binary_site=https://npm.taobao.org/mirrors/node-sass# 重新安装
npm install --registry=https://registry.npm.taobao.org

2) 安装 vue_mogu_web 项目的依赖,

这个步骤其实和admin端的安装时一致的,这里就不做过多的叙述

# 使用淘宝镜像源进行依赖安装,解决国内下载缓慢的问题(出现警告可以忽略)
npm install --registry=https://registry.npm.taobao.org# 启动项目
npm run dev#打包项目(在部署的时候才需要使用)
npm run build

tip:特别注意!!!!!如果图片无法显示,那是因为本地没有对应的图片,需要做的事是查看nginx是否启动,然后就是在后台添加图片进行上传

然后进行图片上传

上传完毕后,再到博客管理页面,修改博客标题图,然后保存即可

基于蘑菇博客建设个人SNS网站(二)--后台框架搭建相关推荐

  1. 80客团队博客建设的思路

    我认为在团队前期,是要把重心放在团队建设上,这个重心我想直到团队发展成一定的规模都是不能改变的,团队的发展绝对不能依托于某个项目或者某个投 资人,不能把提高与成败完全建立在外部上,而是应该以加强团队建 ...

  2. 蘑菇博客( MoguBlog )//..

    蘑菇博客( MoguBlog ),一个基于微服务架构的前后端分离博客系统. 开源地址:https://gitee.com/moxi159753/mogu_blog_v2 官网:http://mogui ...

  3. [技术博客]使用CDN加快网站访问速度

    [技术博客]使用CDN加快网站访问速度 2s : most users are willing to wait 10s : the limit for keeping the user's atten ...

  4. Oracle Golden Gate体系架构详解(原创) - CzmMiao的博客生活 - ITeye技术网站

    Oracle Golden Gate体系架构详解(原创) - CzmMiao的博客生活 - ITeye技术网站

  5. Django 3.2.5博客开发教程:实现网站首页

    实现首页模板前,我们先把共公的页面模板base.html调用好.首先我们先看导航部分,除开首页和关于博主之外,其它的其实是我们的文章分类名.如图: 我们只需要在首页视图函数里,查询出所有的文章分类名称 ...

  6. 基于 abp vNext 和 .NET Core 开发博客项目 - 博客接口实战篇(二)

    基于 abp vNext 和 .NET Core 开发博客项目 - 博客接口实战篇(二) 转载于:https://github.com/Meowv/Blog 上篇文章完成了两个接口:文章列表页.文章详 ...

  7. Asp.net MVC 仿照博客园的简单网站首页 列表设计

    本来我打算采用ajax提交请求,异步的请求获取数据,但是我发现如果这样的话就会拖慢开发的进度,拖长时间.所以在这篇博客中仿照首页的列表设计其实和左侧列表网站分类采用了同样的方式,通过局部视图的方式呈现 ...

  8. 如何用php制作博客网页,博客网页制作的网站

    博客网页制作的网站 1.制作一个自己的印章. 2.EOOOL是QQ头像.MSN头像.论坛头像.论坛签名.博客广告.通讯工具(邮件. MSN.QQ.书签)等的标签快速生成工具,一个方便.实用的图片制作网 ...

  9. 开源项目-蘑菇博客搭建

    文章目录 蘑菇博客 Centos7安装 准备工作 那就开始吧 centos镜像安装 centos启动 虚拟机连接外网 Centos环境配置 1.yum仓库配置 2.创建新用户boothost 2.安装 ...

最新文章

  1. Python小知识点(3)--装饰器
  2. -webkit-font-smoothing
  3. cannot reshape array of size 5011 into shape (2)
  4. oracle 前导列_通过 PL/SQL Developer (Oracle)-数据库(26)
  5. hyperopt中文文档:Recipes
  6. 一文整理四六级考前必背知识点【精简版】
  7. COM_TEXT_GET_SWITCH
  8. idea 不打开文件提示错误_IDEA无法正常启动(打不开报错)
  9. 全民直播,半年“用云量”暴涨五倍
  10. git 创建webpack项目_使用webpack手动创建一个完整项目的全过程
  11. 如何将一棵树转换成二叉树
  12. bzoj5406: Gift
  13. [蓝桥杯]试题 基础练习 Sine之舞
  14. Java基础:BufferedWriter和PushbackReader
  15. 创建一个简单tcp服务器需要的流程
  16. php+ctypt+api,RSA-OAEP SHA-512 Encrypt / Decrypt from Javascriptwebcrypt api to PHP openssl?
  17. emc测试e3软件系数导入,EMC测试标准
  18. XX数据中心技术方案
  19. CS5211:DP/eDP to 2Port LVDS
  20. 计算机,软件工程类毕业论文选题要求

热门文章

  1. 物联网与射频识别技术,课程实验(一)
  2. 反激式开关电源-手机充电器5V/1A
  3. 2021年三季度中国服装家纺行业A股上市企业营收排行榜:海澜之家业绩突出,再度蝉联榜单TOP1(附热榜TOP61详单)
  4. 阿里云视频直播 web前端[移动端] Aliplayer的简单案例
  5. Launcher功能入口
  6. 【pytest】使用 mark 标记及运行测试用例,注册、管理 mark 标记
  7. 用VMware Converter实现Esxi5.0到Esxi6.0主机上的虚拟机迁移(V2V)
  8. 执行 npm install -g grunt-cli 安装grunt发生错误问题
  9. JavaWeb|浅谈Cookie
  10. 物联网省/国赛AIOT智能家居全流程演示