从零开始在云服务器上搭建个人博客

写在前面

搭建个人博客不仅可以将学过的知识融会贯通更好的理解,还可以将自己的经验或者是踩过的坑传授给后来者,帮助他们更好的学习!Halo是在Github上开源的Java博客系统,我将用它从零开始在阿里云服务器上搭建个人博客。点击查看官方文档

前期准备

1.云服务器
我使用的是阿里云服务器,也可以使用其他云服务器,例如腾讯云等等。
2.域名
可以在万网查询并注册自己的域名。注:如果不想注册域名也可以使用IP进行访问。
3.系统环境
⑴. CentOS 服务器
⑵. JRE 运行环境
⑶. Nginx Http服务器
⑷. putty SSH连接软件

配置云服务器

创建一个实例,并安装CentOS 7.4 64位 操作系统,复制公网IP。
在这里插入图片描述

连接服务器

输入IP和服务器后点击open。
在这里插入图片描述

输入账号root和密码,注:密码是不显示的,请不要惊慌,输入后回车即可
在这里插入图片描述

在Linux环境部署

1.依赖检查
目前运行 Halo 的最低依赖要求为 JRE 11,请务必确保在进行下面操作之前已经正确安装了 JRE。

sudo yum install java-11-openjdk -y

检查版本

java -version

如果输出以下类似内容即代表成功

openjdk version "11.0.10" 2021-01-19 LTS
OpenJDK Runtime Environment 18.9 (build 11.0.10+9-LTS)
OpenJDK 64-Bit Server VM 18.9 (build 11.0.10+9-LTS, mixed mode, sharing)

2.安装
创建一个名为 halo 的用户(名字可以随意)

useradd -m halo

给予 sudo 权限

usermod -aG wheel halo

为 halo 用户创建密码

passwd halo

登录到 halo 账户

su - halo

创建存放 运行包 的目录

mkdir ~/app && cd ~/app

下载运行包

wget https://dl.halo.run/release/halo-1.4.12.jar -O halo.jar

创建 工作目录

mkdir ~/.halo && cd ~/.halo

下载示例配置文件到 工作目录

wget https://dl.halo.run/config/application-template.yaml -O ./application.yaml

编辑配置文件,配置数据库或者端口等,注:如不需要可不进行配置,默认端口为8090

vim application.yaml

测试运行 Halo

cd ~/app && java -jar halo.jar

如看到类似以下日志输出,则代表启动成功。

run.halo.app.listener.StartedListener    : Halo started at         http://127.0.0.1:8090
run.halo.app.listener.StartedListener    : Halo admin started at   http://127.0.0.1:8090/admin
run.halo.app.listener.StartedListener    : Halo has started successfully!

在浏览器打开 http://ip: 端口号 即可看到安装引导界面。
如测试启动正常,请继续看作为服务运行部分,第 8 步仅仅作为测试。当你关闭 ssh 连接之后,服务会停止。你可使用 CTRL+C 停止运行测试进程。

如果需要配置域名访问,建议先配置好反向代理以及域名解析再进行初始化。如果通过 http://ip: 端口号 的形式无法访问,请到服务器厂商后台将运行的端口号添加到安全组,如果服务器使用了 Linux 面板,请检查此 Linux 面板是否有还有安全组配置,需要同样将端口号添加到安全组。

配置安全组

云服务器控制台点击实例名称。
在这里插入图片描述

点击配置规则。
在这里插入图片描述

点击手动添加,按照图示添加一条配置,开放8090端口。

作为服务运行

退出 halo 账户,登录到 root 账户

exit

下载 Halo 官方的 halo.service 模板

wget https://dl.halo.run/config/halo.service -O /etc/systemd/system/halo.service

修改 halo.service

vim /etc/systemd/system/halo.service

修改配置

YOUR_JAR_PATH:Halo 运行包的绝对路径,例如 /home/halo/app/halo.jar,注意:此路径不支持 ~ 符号。

USER:运行 Halo 的系统用户,如果有按照上方教程创建新的用户来运行 Halo,修改为你创建的用户名称即可。反之请删除 User=USER。

[Unit]
Description=Halo Service
Documentation=https://halo.run
After=network-online.target
Wants=network-online.target

[Service]
Type=simple
User=USER
ExecStart=/usr/bin/java -server -Xms256m -Xmx256m -jar YOUR_JAR_PATH
ExecStop=/bin/kill -s QUIT $MAINPID
Restart=always
StandOutput=syslog

StandError=inherit

[Install]
WantedBy=multi-user.target

请确保 /usr/bin/java 是正确无误的。建议将 ExecStart 中的命令复制出来运行一下,保证命令有效。

重新加载 systemd

systemctl daemon-reload

运行服务

systemctl start halo

在系统启动时启动服务

systemctl enable halo

您可以查看服务日志检查启动状态

journalctl -n 20 -u halo

初始化

进行到这一步就可以通过IP访问服务器并对Halo进行初始化设置。
这是我的博客IPhttp://8.130.25.248:8090
注:http://8.130.25.248:8090/admin 这是博客后台地址,要账号密码才能进后台哦ヾ(•ω•`)o

安装并测试Nginx

安装依赖包

//一键安装上面四个依赖
yum -y install gcc zlib zlib-devel pcre-devel openssl openssl-devel

下载并解压安装包

//创建一个文件夹
cd /usr/local
mkdir nginx
cd nginx
//下载tar包
wget http://nginx.org/download/nginx-1.13.7.tar.gz
tar -xvf nginx-1.13.7.tar.gz

安装nginx

//进入nginx目录
cd /usr/local/nginx
//进入目录
cd nginx-1.13.7
//执行命令
./configure
//执行make命令
make
//执行make install命令
make install

配置nginx.conf

# 打开配置文件
vi /usr/local/nginx/conf/nginx.conf

在这里插入图片描述

启动nginx

/usr/local/nginx/sbin/nginx -s reload

如果出现报错:nginx: [error] open() "/usr/local/nginx/logs/nginx.pid" failed
则运行: /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
再次启动即可!

查看nginx进程是否启动

ps -ef | grep nginx

在这里插入图片描述

若想使用外部主机连接上虚拟机访问端口192.168.131.2,需要关闭虚拟机的防火墙
centOS6及以前版本使用命令

systemctl stop iptables.service

centOS7关闭防火墙命令

 systemctl stop firewalld.service

访问服务器ip查看,备注:由于我监听的仍是80端口,所以ip后面的端口号被省略
在这里插入图片描述

反向代理

修改配置文件

vi /usr/local/nginx/conf/nginx.conf

修改后

upstream halo {
  server 127.0.0.1:8090;
}
server {
  listen 80;
  listen [::]:80;
  server_name www.yourdomain.com;
  client_max_body_size 1024m;
  location / {
    proxy_pass http://halo;
    proxy_set_header HOST $host;
    proxy_set_header X-Forwarded-Proto $scheme;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  }
}

Nginx 默认的 client_max_body_size 配置大小为 1m,可能会导致你在 Halo 后台上传文件被 Nginx 限制,所以此示例配置文件加上了 client_max_body_size 1024m; 这行配置。当然,1024m 可根据你的需要自行修改。

域名解析

以上工作完成后,最后进行域名的解析,将域名指向IP,就可以通过域名访问IP了。在云解析DNS中点击域名。
在这里插入图片描述

再点击添加记录,按照图示填写即可。也可点击新手指导按照指导进行。
完成后需要进行实名认证,和ICP备案
注:不进行备案,国内的Http服务器将无法使用,实名认证2~3天后,数据同步后才可以进行备案。

完结撒花✿✿ヽ(°▽°)ノ✿

以上工作全部完成后,就可以通过域名访问我们的博客了。在Halo中我们还可以通过设置主题打造自己的个性博客。
在这里插入图片描述

当然,如果有能力还可以自己编写主题(づ ̄ 3 ̄)づ
到这里就完结撒花啦✿✿ヽ(°▽°)ノ✿
欢迎参观我的博客www.huanghaohao.top

  • 8
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值