『亚马逊云科技产品测评』活动征文|基于亚马逊EC2云服务器安装Bolo开源博客

授权声明:本篇文章授权活动官方亚马逊云科技文章转发、改写权,包括不限于在 Developer Centre, 知乎,自媒体平台,第三方开发者媒体等亚马逊云科技官方渠道

亚马逊EC2云服务器(Elastic Compute Cloud)是亚马逊AWS(Amazon Web Services)提供的一种云计算服务。EC2代表弹性计算云,它允许用户租用虚拟计算资源,包括CPU、内存、存储和网络带宽,以满足计算需求。

由于亚马逊云科技服务种类较多,且计费详细,很多用户有些看不懂,所以对使用亚马逊云科技云服务器望而却步。其实亚马逊云科技很多服务都有免费套餐,以让用户体验,这些服务的免费套餐,搭建一个web服务绰绰有余。

Bolo博客是一个基于Java的开源博客平台。它使用Apache Tomcat9服务器和Mysql数据库。该平台是完全免费的,前后台设计简洁,没有其他复杂功能的干扰。如果部署服务器的电脑能联网,作为个人博客使用非常合适。

1. 亚马逊EC2云服务器和bolo博客介绍

亚马逊EC2云服务器的主要特点和优势包括:

  1. 灵活性:用户可以根据需要随时启动、停止、调整和删除EC2实例,以便满足不断变化的计算需求。
  2. 可靠性:亚马逊EC2服务器提供高可用性和容错性,确保用户的应用程序能始终保持运行状态。此外,亚马逊EC2的服务等级协议承诺为每个EC2地区提供99.99%的可用性。
  3. 安全性:亚马逊EC2服务器提供了多层安全措施,包括网络隔离、数据加密和身份验证,以保护用户的数据和应用程序免受攻击。
  4. 成本效益:亚马逊EC2服务器采用按需计费模式,用户只需支付实际使用的计算资源费用,无需预先投资硬件或承担维护和管理物理服务器的费用。
  5. 可扩展性和功能性:亚马逊EC2提供了根据需要扩大或缩小规模的设施,能轻松处理各种动态场景。它还为用户提供了一个真正的虚拟计算平台,可以在其中执行各种操作,甚至可以从这个虚拟环境中启动另一个亚马逊EC2实例。

关于如何购买亚马逊云服务器,我这里不再重复赘述,详细可以查看这篇文章:https://blog.csdn.net/qq_43475285/article/details/134256935

Bolo博客是一个基于Java的开源博客引擎,以简洁、易用和高效为特点。其优点包括:

  1. 简洁易用:Bolo博客的前后台设计都非常简洁,没有其他复杂功能的干扰,用户可以更加专注于写作和分享内容。同时,它的操作也非常简单,即使是没有技术背景的用户也能够轻松上手。
  2. 跨平台性:由于Bolo博客是基于Java的开源平台,因此具有很好的跨平台性,可以在各种操作系统上运行,这使得用户可以更加灵活地选择自己的服务器和操作系统。
  3. 可扩展性:Bolo博客支持通过添加插件来扩展功能,这使得用户可以根据自己的需求来定制自己的博客网站,增加所需的功能和特性。
  4. 安全性:Bolo博客具有较高的安全性,采用了多项安全措施来保护用户的数据和隐私,使得用户可以更加放心地使用和分享自己的内容。
  5. 自定义性:Bolo博客支持自定义模板和主题,用户可以根据自己的喜好和需求来定制自己的博客外观和风格,这使得每个用户的博客都具有独特的个性和风格。

2. 登录云服务器

2.1 EC2云服务器准备

在购买好云服务器后,进入控制台https://us-east-1.console.aws.amazon.com/console

tips: 在右上角区域选择,要和购买服务器时所选区域一致,否则无法找到已经购买的EC2服务器资源

image-20231203111316702

进入EC2控制台,可以看到正在运行的实例信息

image-20231203112306177

关于登录到云服务实例终端,有很多种方法,最方便的是在实例详细信息右上角点击连接

image-20231203112422392

可以选择使用Instance Connect 进行连接或者Instance Connect 端点进行连接,可以直接在web端进行终端控制

image-20231203112558792

但是为了方便后续的开发部署,并不是很推荐这种方式

image-20231203125432089

可以在本地安装一个shell登录软件。

2.2 EC2云服务器远程访问

常见的终端shell访问软件有Finalshell,putty,xshell等等。我这里使用的是finalshell

输入基本信息后,进行访问

tips:这里需要注意的是,初次访问现需要登录ec-user,才能继续访问root用户

image-20231203132322657

登录成功后再ec-user账号下使用sudo权限设置密码

登录成功后设置root密码

sudo passwd root

image-20231203132603212

3. 应用部署

3.1 Docker安装

安装必要软件包

sudo yum install -y yum-utils device-mapper-persistent-data lvm2

image-20231203230009832

  • 添加Docker的yum仓库

需要添加docker的官方yum仓库,这样你才能下载并安装docker。可以使用下面的命令添加仓库:

sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

image-20231203230100212

  • 安装docker-ce
sudo yum install -y docker-ce docker-ce-cli containerd

image-20231203230139796

  • 启动docker并设置开机自动启动
 systemctl start docker
systemctl enable docker --now

3.2部署Mysql数据库

  • 在docker hub拉取Mysql镜像,容器镜像为mysql:5.7。
[root@ip-172-31-30-217 ~]# docker pull mysql:5.7
  • 创建挂载目录
mkdir -p /data/bolo/mysql
  • 创建Mysql容器
[root@ip-172-31-30-217 ~]# docker run -d --name bolo-mysql --restart always -e MYSQL_ROOT_PASSWORD=bolo -e MYSQL_DATABASE=solo -e MYSQL_USER=bolo -e MYSQL_PASSWORD=bolo -p 3306:3306  -v /data/bolo/mysql:/var/lib/mysql  mysql:5.7
  • 检查Mysql容器状态
[root@ip-172-31-30-217 ~]# docker ps
CONTAINER ID   IMAGE       COMMAND                  CREATED              STATUS              PORTS                                                  NAMES
25eeda1c8f4f   mysql:5.7   "docker-entrypoint.s…"   About a minute ago   Up About a minute   0.0.0.0:3306->3306/tcp, :::3306->3306/tcp, 33060/tcp   bolo-mysql
  • 设置Mysql用户权限
[root@ip-172-31-30-217 ~]# docker exec -it bolo-mysql /bin/bash
bash-4.2# mysql -uroot -p 
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 3
Server version: 5.7.44 MySQL Community Server (GPL)Copyright (c) 2000, 2023, Oracle and/or its affiliates.Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.mysql> 
  • 给bolo用户进行授权
mysql> GRANT ALL PRIVILEGES ON solo.* TO 'bolo'@'%' IDENTIFIED BY 'bolo';
Query OK, 0 rows affected, 1 warning (0.00 sec)mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.01 sec)mysql> 

3.3 构建Bolo容器镜像

  • 下载Bolo源码
[root@ip-172-31-30-217 ~]# git clone  https://github.com/adlered/bolo-solo
Cloning into 'bolo-solo'...
remote: Enumerating objects: 17180, done.
remote: Counting objects: 100% (2805/2805), done.
remote: Compressing objects: 100% (1114/1114), done.
remote: Total 17180 (delta 1464), reused 2684 (delta 1415), pack-reused 14375
Receiving objects: 100% (17180/17180), 119.59 MiB | 20.96 MiB/s, done.
Resolving deltas: 100% (10125/10125), done.
  • 构建镜像
# 进入Bolo项目的根目录,查看目录内容。
[root@ip-172-31-30-217 ~]# cd bolo-solo/
[root@ip-172-31-30-217 bolo-solo]# ls
bolo-solo.iml  Dockerfile  git  gulpfile.js  LICENSE  manifest.json  package.json  package-lock.json  pic  pom.xml  preview  README.md  src  ssh  yarn.lock
#再进入到Bolo项目的根目录,构建Docker镜像,需要耐心等待构建完成。
[root@ip-172-31-30-217 bolo-solo]# docker build -t "bolo" .
[+] Building 52.0s (14/14) FINISHED                                                                                                              docker:default=> [internal] load build definition from Dockerfile                                                                                                       0.0s=> => transferring dockerfile: 642B                                                                                                                       0.0s=> [internal] load .dockerignore                                                                                                                          0.0s=> => transferring context: 2B                                                                                                                            0.0s=> [internal] load metadata for docker.io/library/openjdk:8-alpine                                                                                        0.2s=> [internal] load metadata for docker.io/library/maven:3.8.5-openjdk-8-slim                                                                              0.2s=> [mvn_build 1/4] FROM docker.io/library/maven:3.8.5-openjdk-8-slim@sha256:43315490e027cee720ff726fc7aaad09f9f2fe3a2923b3ba876c7ce83848627b              0.0s=> [internal] load build context                                                                                                                          0.2s=> => transferring context: 143.57kB                                                                                                                      0.2s=> [stage-1 1/4] FROM docker.io/library/openjdk:8-alpine@sha256:94792824df2df33402f201713f932b58cb9de94a0cd524164a0f2283343547b3                          0.0s=> CACHED [stage-1 2/4] WORKDIR /opt/bolo/                                                                                                                0.0s=> CACHED [mvn_build 2/4] WORKDIR /opt/bolo/                                                                                                              0.0s=> CACHED [mvn_build 3/4] ADD . /tmp                                                                                                                      0.0s=> [mvn_build 4/4] RUN cd /tmp && mvn package -DskipTests -Pci && mv target/bolo/* /opt/bolo/     && cp -f /tmp/src/main/resources/docker/* /opt/bolo/W  47.0s=> [stage-1 3/4] COPY --from=MVN_BUILD /opt/bolo/ /opt/bolo/                                                                                              0.6s => [stage-1 4/4] RUN apk add --no-cache ca-certificates tzdata                                                                                            1.0s => exporting to image                                                                                                                                     1.7s => => exporting layers                                                                                                                                    1.7s => => writing image sha256:30e620718a1a73348c17bf55a639a237c18d27eb4fcdbad6cd40692c403322d6                                                               0.0s => => naming to docker.io/library/bolo 
  • 查看Bolo镜像
[root@ip-172-31-30-217 bolo-solo]# docker images                                                                                                                
REPOSITORY   TAG       IMAGE ID       CREATED          SIZE
bolo         latest    30e620718a1a   50 seconds ago   153MB
mysql        5.7       bdba757bc933   5 weeks ago      501MB

部署Bolo开源个人博客

  • 创建Bolo容器
[root@ip-172-31-30-217 bolo-solo]# docker run   -d -p 8280:8080 --env RUNTIME_DB="MYSQL" \
> --name bolo  \
> --restart always  \
> --env JDBC_USERNAME="bolo" \
> --env JDBC_PASSWORD="bolo" \
> --env JDBC_DRIVER="com.mysql.cj.jdbc.Driver" \
> --env JDBC_URL="jdbc:mysql://172.31.30.217:3306/solo?useUnicode=yes&characterEncoding=UTF-8&useSSL=false&serverTimezone=UTC" \
> bolo --listen_port=8080 \
> --server_scheme=http --server_host=3.94.103.16
34dbb03c30f7e0238ccf4a6dbf45b31592535dcb1a3c089fb8a9b122971c0d95
  • 查看容器状态
CONTAINER ID   IMAGE       COMMAND                  CREATED          STATUS          PORTS                                                  NAMES
34dbb03c30f7   bolo        "java -cp WEB-INF/li…"   36 seconds ago   Up 35 seconds   0.0.0.0:8280->8080/tcp, :::8280->8080/tcp              bolo
25eeda1c8f4f   mysql:5.7   "docker-entrypoint.s…"   49 minutes ago   Up 49 minutes   0.0.0.0:3306->3306/tcp, :::3306->3306/tcp, 33060/tcp   bolo-mysql
[root@ip-172-31-30-217 bolo-solo]# 
[root@ip-172-31-30-217 bolo-solo]# docker logs bolo
[INFO 12-05 23:09:38 ari.HikariDataSource 110] HikariPool-1 - Starting...
[INFO 12-05 23:09:39 ari.HikariDataSource 123] HikariPool-1 - Start completed.
[INFO 12-05 23:09:39 .service.InitService 196] It's your first time setup Bolo, initialize tables in database [MYSQL]
[WARN 12-05 23:09:40 .service.InitService 166] Bolo has not been initialized, please open your browser to init Bolo████████████████████████████████████████████████████████████████████████
█                                      █                               █
█  ██████╗  ██████╗ ██╗      ██████╗   █                               █
█  ██╔══██╗██╔═══██╗██║     ██╔═══██╗  █  Welcome to Bolo :)           █
█  ██████╔╝██║   ██║██║     ██║   ██║  █                               █
█  ██╔══██╗██║   ██║██║     ██║   ██║  █  github.com/adlered/bolo-solo █
█  ██████╔╝╚██████╔╝███████╗╚██████╔╝  █  Current Version: v2.6 Stable █
█  ╚═════╝  ╚═════╝ ╚══════╝ ╚═════╝   █                               █
█                                      █                               █
████✩✩✩✩✩✩✩✩✩✩✩✩✩✩✩✩✩✩✩✩✩✩✩✩✩✩✩✩✩✩✩✩✩✩✩✩✩✩✩✩✩✩✩✩✩✩✩✩✩✩✩✩✩✩✩✩✩✩✩✩✩✩✩✩████
█               THANK YOU FOR YOUR CONTRIBUTION TO BOLO !              █
████✩✩✩✩✩✩✩✩✩✩✩✩✩✩✩✩✩✩✩✩✩✩✩✩✩✩✩✩✩✩✩✩✩✩✩✩✩✩✩✩✩✩✩✩✩✩✩✩✩✩✩✩✩✩✩✩✩✩✩✩✩✩✩✩████
█     adlered    (Author)         █    https://github.com/adlered      █
█     expoli     (Contributor)    █    https://github.com/expoli       █
█     zeekling   (Contributor)    █    https://github.com/zeekling     █
█     csfwff     (Contributor)    █    https://github.com/csfwff       █
█     teahouse   (Contributor)    █    https://github.com/teahouse15   █
█     Gakkiyomi  (Contributor)    █    https://github.com/gakkiyomi    █
████████████████████████████████████████████████████████████████████████┌
├  HTTP Server Running On: http://3.94.103.16
├  JVM Memory: 178MB / 183MB
└[WARN 12-05 23:09:42 olo.prop.MailService 201] Cannot load Mailbox Settings, please check.
[INFO 12-05 23:09:42 KanBanNiangProcessor  89] KanBanNiang downloading ...
[INFO 12-05 23:09:43 3log.solo.util.Solos 192] Welfare Lute Service has disabled.
KanBanNiang resource total size: 9.0 MB 
00MB 01MB 02MB 03MB 04MB 05MB 06MB 07MB 08MB 09MB 
▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉ OK
[INFO 12-05 23:09:53 KanBanNiangProcessor 124] Unpacking KanBanNiang ...
[INFO 12-05 23:09:53 KanBanNiangProcessor 129] KanBanNiang is ready.

4. 访问Bolo博客

4.1 关闭防火墙

systemctl stop firewalld

4.2 Bolo的初始化设置

访问地址:http://公网IP地址:8280/,如果无法访问,查看ufw防火墙是否关闭。

image-20231205231542438

设置管理员账号和密码,点击“开始初始化”。

初始化完毕后,自动跳转到Bolo首页。

image-20231205231607523

至此,基于亚马逊EC2云服务器安装Bolo开源博客配置完成

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/201293.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

shell脚本实战之mysql-物理备份实现周内备份策略

一.shell脚本要求 # 数据库备份脚本方式: 物理备份# 工具:xtrabackup过程# 需求1:不允许有任何的安在脚本中,# 需求2:在脚本中,不允许有任何的交互式代码容,使用日志记录# 需求3:在脚本中,不允许有任何输出# 需求4:每周为一个循环…

TA-Lib学习研究笔记(九)——Pattern Recognition (6)

TA-Lib学习研究笔记(九)——Pattern Recognition (6) 最全面的形态识别的函数的应用,通过使用A股实际的数据,验证形态识别函数,用K线显示出现标志的形态走势,由于入口参数基本上是o…

百度/抖音/小红书/微信搜索品牌形象优化怎么做?

搜索口碑是网络营销不可或缺的一部分,企业如何做好品牌搜索口碑优化呢?小马识途营销顾问建议从以下几方面入手。 1. 通过关键字优化提高自身知名度 通过对竞争对手和目标客户的关键字进行分析,企业可以确定哪些关键字可以提高自身品牌知名度。…

IDEA Maven 配置国内源

基本步骤 分别设置下图的两个,一个是对当前项目的设置,一个是对以后创建的项目设置,这样以后就不用重新配置了。 将下面的两个勾选上 注意,两个地方,Settings 和 Settings for New Projects 的勾都要勾上。 前往 User…

PHP短信接口防刷防轰炸多重解决方案三(可正式使用)

短信接口盗刷轰炸:指的是黑客利用非法手段获取短信接口的访问权限,然后使用该接口发送大量垃圾短信给目标用户 短信验证码轰炸解决方案一(验证码类解决)-CSDN博客 短信验证码轰炸解决方案二(防止海外ip、限制ip、限制手机号次数解决)-CSDN博客 PHP短信…

SQL Sever 基础知识 - 数据筛选(1)

SQL Sever 基础知识 - 四、数据筛选 四、筛选数据第1节 DISTINCT - 去除重复值1.1 SELECT DISTINCT 子句简介1.2 SELECT DISTINCT 示例1.2.1 DISTINCT 一列示例1.2.2 DISTINCT 多列示例 1.2.3 DISTINCT 具有 null 值示例1.2.4 DISTINCT 与 GROUP BY 对比 第2节 WHERE - 过滤查询…

8_企业架构缓存中间件分布式memcached

企业架构缓存中间件分布式memcached 学习目标和内容 1、能够理解描述网站业务访问流程 2、能够理解网站业务的优化方向 3、能够描述内存缓存软件Memcached的作用 4、能够通过命令行操作Memcached 5、能够操作安装php的memcached扩展 extension 6、能够实现session存储到memcach…

mysql数据库(表)误删恢复

mysql数据库(表)误删恢复 1. 检查mysql服务是否开启binlog # 查看是否开启binlog日志 show variables like %log_bin%;看下图结果.如果这里是OFF那就不用看下去了.本文帮助不了 2.开启binlog日志(已开启略过) 1、编辑打开mysql配置文件 ***/my.cnf在 [mysqld]区块添加 l…

第五届CECC中国计算机教育大会召开,文心大模型助力跨学科创新融合

随着科技的飞速发展,大模型已经成为教育、科研等领域的热点话题。12月2日至3日,以“新时代 新计算 新理念”为主题的第五届中国计算机教育大会(CECC)在厦门召开,百度飞桨和文心大模型承办的“大模型技术创新与教育实践…

婴儿专用洗衣机有必要吗?宝宝洗衣机洗衣服

相信各位宝爸宝妈都有同样的苦恼,那就是宝宝的衣服该怎么来洗宝宝每天都有一大堆衣物和各种巾要洗,如果单纯用手洗,真的是一个很大的工程,将宝宝的衣服丢进去家庭用的洗衣机,宝宝稚嫩的皮肤又怕会被细jun感染到&#x…

智能优化算法应用:基于梯度算法无线传感器网络(WSN)覆盖优化 - 附代码

智能优化算法应用:基于梯度算法无线传感器网络(WSN)覆盖优化 - 附代码 文章目录 智能优化算法应用:基于梯度算法无线传感器网络(WSN)覆盖优化 - 附代码1.无线传感网络节点模型2.覆盖数学模型及分析3.梯度算法4.实验参数设定5.算法结果6.参考文献7.MATLAB…

Qt/C++视频监控拉流显示/各种rtsp/rtmp/http视频流/摄像头采集/视频监控回放/录像存储

一、前言 本视频播放组件陆陆续续写了6年多,一直在持续更新迭代,视频监控行业客户端软件开发首要需求就是拉流显示,比如给定一个rtsp视频流地址,你需要在软件上显示实时画面,其次就是录像保存,再次就是一些…

金山终端安全系统V9.0 update_software_info_v2.php处SQL注入漏洞复现 [附POC]

文章目录 金山终端安全系统V9.0 update_software_info_v2.php处SQL注入漏洞复现 [附POC]0x01 前言0x02 漏洞描述0x03 影响版本0x04 漏洞环境0x05 漏洞复现1.访问漏洞环境2.构造POC3.复现 0x06 修复建议参考链接: 金山终端安全系统V9.0 update_software_info_v2.php处…

Nacos服务分级存储模型

一、Nacos服务分级存储模型 (1)模型介绍 (2)服务跨集群调用问题 服务调用尽可能选择本地集群的服务,跨集群调用延迟较高 本地集群不可访问时,再去访问其它集群 二、如何设置实例的集群属性 (1&…

2023.2版idea安装教程,现在jdk8已经过去式了,不同idea支持的jdk不同。升级jdk后idea也要随之升级

下载idea2023.2版本,下载之前需要删除之前的版本,一定要删除干净,删除程序要勾选那两个delete 下载路径:其他版本 - IntelliJ IDEA (jetbrains.com.cn) 选择2023.2版本 下载后进入安装程序,选择安装目录,然…

java实验:数据库应用(idea+mysql+php)设计用户注册和登录

设计用户注册和登录界面,实现用户注册和登录操作。 设计用户注册/登录界面;使用工具在MySQL中创建user表,包括学号、姓名、密码、专业、班级;实现注册操作:在user表中插入一条新纪录,但学号不能重复;实现登…

uniapp使用vue-i18n国际化多国语言

前言:uniapp是自带有i18n这个插件的,如果没有npm安装即可 此插件需要自己去给每一个需要国际化的字符去手动配置key,所以如果是已经完成的项目可能工作量就稍微有点大了 第一步: 语言命名是有规范的不能乱取名,具体可…

电容电感特性的理解

04730电子技术基础 语雀 在前面,我们提到过电容元件具有隔直通交,通高阻低的特性,电感元件具有隔交通直,通低阻高的特性。那么如何理解这两句话呢?下面我们一一剖析 电容元件的隔直通交,通高阻低的特性 …

【C】递归函数

一、什么是递归 递归其实是⼀种解决问题的⽅法,在C语⾔中,递归就是函数⾃⼰调⽤⾃⼰。 我们先了解一个知识: 每一次函数调用,都会向内存栈区上申请一块空间。 这块空间主要用来存放函数中的局部变量,和函数调用过程中…

点滴生活记录1

2023/10/10 今天骑小电驴上班,带着小鸭子一起。路上的时候,我给小鸭子说,你要帮我看着点路,有危险的时候提醒我,也就刚说完没几分钟,一个没注意,直接撞到一个拦路铁墩子上,车子连人歪…