最近几天一直在研究怎么样才能够快速搭建蘑菇博客项目,对了,我的服务器是阿里云购买的云服务器ECS,配置是 1核2G ,学生优惠价,100多一年。。。 嗯,这应该是搭建蘑菇博客的最低配置了,内存少于2G的话,可能会启动不起来,本来2G也是不够用的,我是把所有的微服务和solr都放到一个tomcat中,才勉强跑起来的。 目前为了更加方便大家的部署,我已经修改成jar包的方式进行部署启动了,tomcat仅用于作为solr启动的web容器。
如果你的服务器内存也是2G的话,请务必先配置一下交换内存:CentOS如何增加虚拟内存
如果你也拥有对应的域名并且备案了的话,可以给蘑菇博客配置域名的方式访问:蘑菇博客配置域名解析
如果你的服务器带宽只有1M,可以使用免费的百度云加速,加快页面渲染速度:如何使用百度云加速提升网站访问速度
tip:特别注意,因为镜像中的代码可能不是最新版本,因此推荐在按照本篇博客,安装好docker环境后,需要在参考 蘑菇博客部署阿里云(Nacos版) 这篇博客,重新将前后端代码都重新部署一遍,同时也记得把doc中的三个SQL文件也重新导入,确保服务器为最新代码
如果你之前安装好了蘑菇博客的docker环境,修改的博客的源码,想要重新发布到自己服务器上:蘑菇博客如何部署到阿里云服务器(Nacos版)
如果想使用Docker Compose 一键完成蘑菇博客的部署:参考 DockerCompose一键部署蘑菇博客(Nacos版)
因为配置那些环境比较麻烦,(主要包括Nginx,Solr,Redis,Tomcat,Mysql,RabbitMQ)当然如果小伙伴喜欢自己配置的话,也可以不使用我搭建好的镜像,可以参考下面几篇博客哦,希望你也能够配置成功的~!(想直接通过Docker部署的,可以忽略下面几步..)
3、CentOS下Solr的安装和部署(可选)
6、CentOS下ElasticSearch的安装和部署(可选)
7、Elasticsearch介绍和安装(可选)
8、CentOS下安装Nacos(Nacos分支需要)
9、CentOS下安装Sentinel(Nacos分支需要)
好了。下面我介绍的是用Docker快速搭建蘑菇博客。话不多说,下面我就直接进入正题。
首先大家先去DockerHub注册账号,用于拉取Docker镜像和存储镜像
注意:注册DockerHub的目的,是为了能够方便以后大家把自己的镜像上传上去,如果DockerHub无法访问,或者不想上传镜像的话,可以忽略这一步,同时在3步 也忽略 docker login,直接进行Docker pull 拉取我的镜像即可
DockerHub官网:点我传送
关于更多docker命令和介绍,可以看这篇博客:Docker常用命令
注册成功后,进入我们的CentOS系统中(如果是Ubuntu的话,可能安装docker的方式不同,请自行百度安装)
下面介绍的是使用yum方式安装docker
cat >>/etc/yum.repos.d/docker.repo<<EOF
[docker-ce-edge]
name=Docker CE Edge - \$basearch
baseurl=https://mirrors.aliyun.com/docker-ce/linux/centos/7/\$basearch/edge
enabled=1
gpgcheck=1
gpgkey=https://mirrors.aliyun.com/docker-ce/linux/centos/gpg
EOF
# yum安装
yum -y install docker-ce
#查看docker版本
docker --version
# 设置开机自启
systemctl enable docker
# 启动docker
systemctl start docker
启动完成后,因为需要到Dockerhub拉取镜像,而DockerHub部署在国外,大家还可以配置一下阿里的Docker国内源,这样可以达到加速的效果~
使用Docker login命令登录,需要输入刚刚注册的账号和密码(ps:如果不想发布镜像到dockerhub,可以忽略)
# 登录dockerhub
docker login
Nacos版本使用下面命令:
docker pull moxi/mogu_blog_nacos
因为镜像有点大,所以拉取的话,可能会有点慢,所以耐下等待下
如果拉取失败,或者出现超时的情况、或者拉取过慢,可以尝试使用下面的方法: CentOS7中Docker拉取镜像失败的解决方法
如果还是拉取速度很慢的话,推荐在早上的时候拉取镜像,因为DockerHub是国外的网站,早上的时候,他们美国这边都已经到了晚间了,基本不占用太多带宽,拉取速度会更快一些~
拉取成功后,使用命令查看已经拉取的镜像
docker images
好了,能看到刚刚拉取的镜像,大概有3.97G,因为这里面包含了项目完整的运行环境。
Nacos版本使用下面的命令:
docker run --privileged -d -it -h mogu_blog_2 --name mogu_blog_2 -v /etc/localtime:/etc/localtime:ro -p 11122:22 -p 15672:15672 -p 8600:8600 -p 9527:9527 -p 9528:9528 -p 6379:6379 -p 3306:3306 -p 80:80 -p 8080:8080 -p 8601:8601 -p 8602:8602 -p 8603:8603 -p 8604:8604 -p 8605:8605 -p 8606:8606 -p 8607:8607 -p 5601:5601 -p 9411:9411 -p 465:465 -p 8848:8848 -p 8070:8070 moxi/mogu_blog_nacos /usr/sbin/init
使用下面的命令,就能够制作成一个docker容器了,他会将上面写的一些端口号都映射到宿主机中,所以宿主机那些端口号不能别占用了哦。
当然同时,宿主机的那些端口号也必须开放,如果是使用阿里云的小伙伴,必须在 阿里云的官网,配置相应的安全组,不然外面是没办法访问的。
关于安全组的配置,在云服务器ECS的管理页面
在点击配置规则
然后点击右上角按钮,把需要用到的端口号都导入进去
安装下面的规则,把每一个添加进去即可, 需要添加的端口号有:
蘑菇Docker内部容器SSH连接:11122
RabbitMQ消息队列:15672
Zipkin链路追踪: 9411
发Email端口:465
图片资源:8600
前端Web页面:9527
后端Admin页面:9528
Redis:6379
Mysql:3306
Tomcat(里面部署的solr):8080
HTTP端口:80
Kibana端口:5601
mogu_admin端口:8601
mogu_picture端口:8602
mogu_web端口:8603
mogu_sms端口:8604
mogu_search端口:8605
mogu_monitor端口:8606
mogu_gateway端口:8607
nacos端口: 8848
sentinel端口: 8070
好了,回到刚刚的内容,我们在执行第六步的时候,已经制作好了容器了,使用下面的命令,查看容器状态
# 查看容器状态
docker ps -a
输入用户名: root
输入密码:mogu2018
成功进入系统,下面我们就需要把对应的服务都开启
注意:该密码是docker镜像的初始密码,如果需要更改的话,可以使用下列命令更改密码
passwd
# 进入nginx的安装目录下
cd /soft/nginx/sbin/
# 启动nginx
./nginx
好吧,启动报错
看问题需要创建一个目录,那么就开始创建吧
mkdir -p /var/run/nginx
再次使用启动命令,启动成功
我们在使用命令 ,查看已经启动的端口号
netstat -tunlp
我们已经看到了,现在已经开机自启了 RabbitMQ的 5672 15672 , mysql的 3306, 其他的一些就是项目的端口,现在我们还需要启动 redis的 6379 和 tomcat的 8080
注意:如果我们查看端口号没有RabbitMQ,我们需要手动启动对应的服务
新开一个xshell连接,启动rabbitmq:
# 后台启动RabbitMQ
rabbitmq-server -detached
# 进入redis的安装目录
cd /soft/redis/bin/
# 后台启动redis
./redis-server redis.conf
# 查看启动端口号
netstat -tunlp
我们看到redis已经正常启动了
如果没有安装Solr的话,参考 CentOS下Solr的安装和部署
如果想开启其它全文检索方式【ElasticSearch】:参考 蘑菇博客切换搜索模式
tip:如果配置了Solr作为全文检索,那么需要启动Solr,否则可以忽略这一步(默认使用的是SQL搜索)
# 进入tomcat目录
cd /soft/tomcat/bin
# 启动
./startup.sh
# 查看启动信息
tail -f ../logs/catalina.out
Nacos是由SpringCloudAlibaba开发的服务注册和配置中心,关于更多的操作可以查看这两篇博客
下面我们只需要进入Nacos的目录下,然后启动即可
# 进入nacos目录
cd /soft/nacos/bin
# 启动Nacos
./startup.sh -m standalone
启动后,会有如下提示
我们可以通过查看日志进行判断nacos是否启动成功
如果没有报错信息,说明Nacos已经启动成功了,下面我们可以进入到Nacos的图形化管理页面
http://your_ip:8848/nacos
打开后,输入默认账号密码:nacos nacos,即可进入系统,查看到项目的配置
如果需要更改配置,以后到这里完成就可以了,修改配置后,重启服务即可生效
Sentinel是用来做服务的熔断、雪崩、限流,相当于原来的Hystrix,但是提供了更加强大的功能,如果想要了解Sentinel的更多操作,可以参考这两篇博客
首先进入到Sentinel的启动目录下进行启动
# 进入到sentinel目录
cd /soft/sentinel
# 启动Sentinel
./startup.sh
# 查看日志
然后进入到Sentinel的图形化界面
http://your_ip:8070
输入默认账号密码:sentinel sentinel,进入到管理界面,更多关于Sentinel的操作,可以查看这篇博客
启动 mogu_picture & mogu_sms & mogu_admin & mogu_web
#进入到项目目录
cd /home/mogu_blog
我们查看项目结构,有以下几个文件夹
下面说明每个文件夹的作用
mogu_admin:admin端API接口服务
mogu_data:存在蘑菇博客的图片资源
mogu_monitor:服务监控
mogu_picture: 图片服务器,用于图片上传和下载
mogu_sms: 消息发送服务器,用于邮件和短信发送
mogu_web:web端API接口服务
mogu_zipkin:链路追踪模块
vue_mogu_admin:VUE的后台管理页面
vue_mogu_web:VUE的门户网站
首先进入mogu_admin目录下
我们查看一下目录结构
./startup.sh #启动脚本
./shutdown.sh #关闭脚本
mogu_admin***.jar #springboot打包的可执行jar包
/config #外部配置文件
catalina.out #启动脚本后,生成的日志文件
然后我们使用下面的命令进行启动
# 进入mogu_admin目录
cd mogu_admin
# 启动项目
./startup.sh
tip:因为镜像中的代码可能不是最新版本,因此推荐在按照本篇博客,安装好docker环境后,需要在参考下面蘑菇博客部署阿里云这篇博客,重新将前后端代码都重新部署一遍,同时也记得把doc中的三个SQL文件也重新导入,确保服务器为最新代码~
我们进入到nacos配置文件管理界面,找到的 mogu_web_prod.yaml文件
我们需要将下面的域名,改成自己的
data:
# 门户页面
webSite:
url: http://101.132.122.175/:9527/#/
# 有域名可以改成如下
# url: http://www.moguit.cn/#/
# mogu_web网址,用于第三方登录回调
web:
url: http://101.132.122.175/:8603
同时在配置文件的最下面,还需要修改第三方注册需要的 clientId 和 ClientSecret:如果不清楚如何获取的小伙伴,可以查看我的这篇博客,在后面部分对ID的获取有相关介绍:SpringBoot+Vue如何集成第三方登录JustAuth
# 第三方登录
justAuth:
clientId:
gitee: XXXXXXXXXXXXXXXXXXXXXX
github: XXXXXXXXXXXXXXXXXXXXXX
clientSecret:
gitee: XXXXXXXXXXXXXXXXXXXXXX
github: XXXXXXXXXXXXXXXXXXXXXX
修改完成后,启动项目
# 进入mogu_web目录
cd mogu_web
# 启动项目
./startup.sh
我们进入到nacos配置文件管理界面,找到的 mogu_sms_prod.yaml文件
在mogu_sms中,主要修改的就是邮箱的配置,我们将发送邮件的信息改成自己的
#mail
mail:
username: XXXXXXX@163.com
password: XXXXXXX #授权码开启SMTP服务里设置
注意,上面的password是授权码,授权码不是密码,以163邮箱为例,我们需要开启SMTP服务,然后设置授权码
修改完成后,我们启动对应的项目即可,最终我们需要启动的项目有: mogu_picture, mogu_sms, mogu_admin, mogu_web、mogu_gateway
tip:(用于以后使用图形化客户端进行连接)
mysql的账号和密码是 root mogu2018
redis的密码是 mogu2018
等服务器都启动完成后,下面我们验证一下后台是否正常启动,回到我们的Nacos管理界面
http://your_ip:8848/nacos
如果我们看到下面五个服务都注册到Nacos中,那说明启动成功
- mogu_picture
- mogu_sms
- mogu_admin
- mogu_web
- mogu_gateway
如下图所示
我们在通过访问下列swagger接口,测试接口是否正常
http://your_ip:8601/swagger-ui/index.html
http://your_ip:8603/swagger-ui/index.html
如果能够进入下面页面的话,说明后台是没有问题的了,下面我们可以验证一下接口
验证登录
然后执行完成后,复制到token
然后在swagger页面的右上角,有一个authorize的按钮,点击后,将token粘贴进去,即可操作全部接口进行测试了~
下面我们需要修改前端地址,如果不修改的话,默认是请求的是蘑菇演示环境的后台接口【!!所以这里切记】
我们现在需要修改两个地方的配置,分别是:vue_mogu_admin 和 vue_mogu_web 目录下
# 进入dist目录
cd vue_mogu_admin/dist
# 找到index.html【为了方便,可以复制到windows下面修改】
vim index.html
然后把里面的ip地址,改成自己的 ip 即可
文件是被压缩的,可以使用在线格式化工具:html在线格式化,优化后在进行编辑
注意,上面 BLOG_WEB_URL
地址的修改的时候,如果你拥有域名的话,就不要使用IP了
// 有域名
"BLOG_WEB_URL":"http://demoweb.moguit.cn"
// 没有域名
"BLOG_WEB_URL":"http://120.78.126.96:9527"
修改完成后,在把修改后的文件,替换服务器上的 index.html 即可
修改 vue_mogu_web的过程和上面一致
# 进入dist目录
cd vue_mogu_web/dist
# 找到index.html【为了方便,可以复制到windows下面修改】
vim index.html
然后把里面的ip地址,改成自己的 ip 即可
注意,上面 VUE_MOGU_WEB
地址的修改的时候,如果你拥有域名的话,就不要使用IP了
// 有域名
"BLOG_WEB_URL":"http://demoweb.moguit.cn"
// 没有域名
"BLOG_WEB_URL":"http://120.78.126.96:9527"
修改完成后,在把修改后的文件,替换服务器上的 index.html 即可
tip:需要注意的是,如果图片无法正常显示,请先登录后台管理页面,然后修改对应的域名
关于具体的配置,参考这篇博客:蘑菇博客配置七牛云存储
120.78.126.96:9528 用户名和密码是: admin mogu2018 【如果登录不进去,请F12检查,请求的IP地址是否是自己的服务器,如果不是,那么参考前面修改前端项目配置,改成自己的服务器IP】
好了,到目前为止,蘑菇博客已经搭建完成。当然小伙伴并不是拉取来就能直接用的, 如果ip地址不一样的话,是不能直接使用的,后面的话,需要拉取源码后,修改对应的配置信息后,然后在打包部署,才能够使用的。