码云上最近有些小伙伴们问到了蘑菇博客的详细配置信息,突然想想之前本来打算写来着,但是因为各种各样的问题搁置了,现在就在win10环境下对博客的配置进行详细的说明了。
Tip: 如遇到启动失败的,请先maven clean install 后再尝试启动
IDE得装lombok插件:IDEA中引入Lombok
参考:蘑菇博客如何部署到阿里云服务器 ,在你修改蘑菇博客源码后,将项目打包部署到云服务器
参考:蘑菇博客切换搜索模式,完成蘑菇博客的搜索引擎切换,目前支持Solr、ElasticSearch、mysql的方式,一般因为服务器配置文件,选择一种搜索方式即可
参考:蘑菇博客切换七牛云存储,配置文件的七牛云对象存储,及本地文件存储
注意!在Windows进行项目启动时,有很多组件可以根据自己的系统配置进行启动,在标题上标注【非必须】的字样,说明该模块可以根据自身配置进行安装。
同时在下载源码后,需要区分当前属于Eureka分支还是Nacos分支,不同的分支安装过程有所差异,在下文均会标记出来~
特别感谢 俺是程序狮 在B站上给蘑菇博客录制的视频教程,里面介绍了windows环境下配置蘑菇博客,如果参考文档遇到了问题的话,可以参考视频进行部署(ps:视频教程基于Eureka版)
略
maven安装成功后,记得添加阿里源,不然有些东西下载会非常慢的
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官网,进行下载:https://redis.io/
然后双击启动即可
注意,如果使用docker的方法安装的蘑菇博客镜像,里面设置了默认的密码mogu2018,如果直接复制的本地配置,还需要修改一下默认密码
RabbitMQ是一款比较优秀的消息中间件,在这里主要用于同步solr索引和ElasticSearch索引,redis缓存更新,以及邮件和验证码发送等功能。
关于配置,参考这篇博客:蘑菇博客配置RabbitMQ
目前蘑菇博客支持三种搜索模式的配置,分别是Solr、ElasticSearch和SQL,小伙伴可以按照自己的服务器配置进行相应的部署。
参考:蘑菇博客切换搜索模式 ,进行三种模式的切换(三种方式选择一种,默认是SQL搜索,可以配置ElasticSearch或者Solr作为全文检索)
关于window下配置蘑菇博客的solr,其实和我之前写的一篇博客大同小异,在这里我就不多叙述了,详情参考:CentOS下Solr的安装和部署
注意:需要修改schema.xml文件
最近很多小伙伴说solr不好配置,所以我特意把solr的上传到百度云和七牛云了,小伙伴只需要下载后,放到tomcat的webapps目录下,然后修改一下solrhome的配置,即可完成Solr的部署
蓝奏云:
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介绍和安装
Window也可自行百度进行安装,或者直接下载我上传的压缩包完成快速搭建
链接:https://pan.baidu.com/s/1X1z47Osm_MBjwSBckhUmTQ
提取码:pnfp
下载完后,解压能看到这个目录
我们首先进入elasticsearch下的config目录,修改elasticsearch.yml文件,把下面两个路径,改成你对应的目录即可
然后启动ElasticSearch:
启动Kibana:
启动完成后:我们输入网址
http://localhost:5601/
如果能出现下面的页面,说明已经成功安装了 ElasticSearch 和 Kibana,在这里kibana只是作为ElasticSearch的图形化显示工具,相当于原来的SolrAdmin页面一样,在生产环境中,可以不部署也行
# 使用命令把项目clone下来
git clone https://gitee.com/moxi159753/mogu_blog_v2.git
然后找到目录下的doc文件夹,里面有个数据库脚本,里面有两个数据库,我们需要提前创建好 mogu_blog 、mogu_picture 、nacos_config这里三个数据库,然后把备份脚本导入即可。
- 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.sql 、 mogu_picture.sql、nacos_config即可!!
如果你在之前已经部署了本项目,那么你需要在对应的update.sql文件中,打开后,从中找到没有的字段,复制上执行即可,里面每个字段的添加,都会有对应的日期提示,如果有些字段是你clone项目后添加的,那么你就需要执行它们一遍即可
同时设置数据库访问账户和密码为: admin admin
当然不设置也没关系,就是后面修改yml文件里面的配置即可
Zipkin是一个开源的分布式的链路追踪系统,每个微服务都会向zipkin报告计时数据,聚合各业务系统调用延迟数据,达到链路调用监控跟踪。
参考博客:使用Zipkin搭建蘑菇博客链路追踪
链路追踪服务可以选择安装,不过如果没有安装的话,在启动的时候会出现这样一个错误,不过该错误不会影响正常使用,可以忽略
I/O error on POSt request for "http://localhost:9411/api/v2/span" :connect timeout
Nacos是服务注册和配置中心,如果使用的使用的是Eureka作为服务注册中心,那么直接跳过Nacos和Sentinel的安装过程。
参考 【SpringCloud】使用Nacos实现服务注册发现和配置中心等功能,了解Nacos的使用
参考 蘑菇博客Nacos部署指南,完成蘑菇博客中Nacos的安装和配置
Sentinel存在于Nacos分支下,如果你的注册中心是Eureka,那么不需要配置
随着微服务的流行,服务和服务之间的稳定性变得越来越重要。Sentinel 以流量为切入点,从流量控制、熔断降级、系统负载保护等多个维度保护服务的稳定性。
参考【SpringCloud】使用Sentinel实现熔断和限流 ,了解Sentinel以及使用
参考 蘑菇博客Sentinel安装指南,完成蘑菇博客中Sentinel的配置
Zipkin是一个开源的分布式的链路追踪系统,每个微服务都会向zipkin报告计时数据,聚合各业务系统调用延迟数据,达到链路调用监控跟踪。
链路追踪服务可以选择安装,不过如果没有安装的话,在启动的时候会出现这样一个错误,不过该错误不会影响正常使用,可以忽略。
参考博客:使用Zipkin搭建蘑菇博客链路追踪
在全部配置完成后,就可以开始启动项目了,这里我用的编辑器是sts。目前有热心的码云朋友说IDEA不能正常启动项目,后面我经过排查,确实是存在这个文件,最近正在研究是哪块出错导致的。目前蘑菇博客的开发已经迁移到 IDEA中了,感谢Jetbrains全家桶对开源的支持~。
首先进入项目根目录文件夹,执行下面命令
# 下载依赖
mvn clean install
如果下面都是success,那就说明依赖下载成功了
下面就把项目导入到sts中
关于项目的介绍
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搜索引擎优化(目前还未完善)
下面进行项目启动
mogu_eureka -> mogu_picture -> mogu_sms -> mogu_admin -> mogu_web(上述模块是必须启动的)
如果是Nacos版本:需要启动 mogu_gateway -> mogu_picture -> mogu_sms -> mogu_admin -> mogu_web
其它一些模块可以根据自己配置进行启动:如 mogu_monitor、SearchApplication、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
- 安装 vue_mogu_admin 项目的依赖
进入vue_mogu_admin 文件夹内,使用下面命令进行安装
# 指定node-sass的国内镜像源
npm i node-sass --sass_binary_site=https://npm.taobao.org/mirrors/node-sass
# 使用淘宝镜像源进行依赖安装,解决国内下载缓慢的问题(出现警告可以忽略)
npm install --registry=https://registry.npm.taobao.org
# 启动项目
npm run dev
#打包项目(在部署的时候才需要使用)
npm run build
强烈建议不要用直接使用 cnpm 安装,会有各种诡异的 bug,可以通过重新指定 registry 来解决 npm 安装速度慢的问题。若还是不行,可使用 yarn 替代 npm
。
Windows 用户若安装不成功,很大概率是node-sass
安装失败,解决方案。
另外因为 node-sass
是依赖 python
环境的,如果你之前没有安装和配置过的话,需要自行查看一下相关安装教程。
在启动项目成功后,会跳转到:localhost:9528 ,我们输入账号密码: admin, mogu2018 访问即可
- 安装 vue_mogu_web 项目的依赖,
这个步骤其实和admin端的安装时一致的,这里就不做过多的叙述
# 指定node-sass的国内镜像源
npm i node-sass --sass_binary_site=https://npm.taobao.org/mirrors/node-sass
# 使用淘宝镜像源进行依赖安装,解决国内下载缓慢的问题(出现警告可以忽略)
npm install --registry=https://registry.npm.taobao.org
# 启动项目
npm run dev
#打包项目(在部署的时候才需要使用)
npm run build
下面是启动成功的界面,跳转到: localhost:9527
tip:特别注意!!!!!首次部署完成,如果图片无法显示,那是因为本地没有对应的图片,需要做的事是查看nginx是否启动,然后就是在后台添加图片进行上传
然后进行图片上传
上传完毕后,再到博客管理页面,修改博客标题图,然后保存即可
关于我本机的配置,是使用的8G内存,项目所需的全部软件开启后,占用率大概到达了95%,所以微服务还是挺吃内存的。
关于服务器的配置,使用的是1核2G的学生价格服务器,目前来说,在增加虚拟内存后,能够正常的运行项目,内存不够的小伙伴,可以参考这篇博客。CentOS如何增加虚拟内存?
好了,关于博客的配置就到这里了,如果有问题的话,欢迎提出~