1.购买云服务器
学生党或者囊中羞涩的话比较推荐腾讯云的轻量应用服务器,比较便宜,有活动优惠
有钱的话可以考虑买云服务器,虽然比较贵,但是使用体验更好
我阿里云(试用)和腾讯云的轻量应用服务器都用过,最终部署在腾讯云2核4G6M轻量应用服务器上
2.连接服务器
购买完服务器后,重置实例密码,查看公网ip
使用cmd或者ssh客户端连接服务器
可以通过一下ssh命令:
ssh 用户名@公网ip #用户名阿里云是root,腾讯云是ubuntu
然后输入刚才设置的密码连接
或者直接在ssh客户端创建新连接
3.下载docker
依次执行以下命令
sudo apt-get update
sudo apt-get -y install apt-transport-https ca-certificates curl software-properties-common
curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add -
sudo add-apt-repository "deb [arch=amd64] https://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable"
sudo apt-get -y update
sudo apt-get -y install docker-ce
腾讯云轻量应用服务器会比较慢,可通过不断ctrl+c和sudo apt-get -y install docker-ce加速(我自己是这么做的doge)
镜像加速
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://wh5nhpj4.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
4.使用 Docker 镜像部署Halo
可参考Halo官方文档
1.创建目录
mkdir ~/.halo && cd ~/.halo
2.下载示例配置文件到 工作目录
wget https://dl.halo.run/config/application-template.yaml -O ./application.yaml
3.编辑配置文件,配置数据库或者端口(可跳过)
vim application.yaml
4.拉取最新的 Halo 镜像
1.5.4为版本号
docker pull halohub/halo:1.5.4
也可以以下命令拉取
docker pull halohub/halo:latest
腾讯云轻量应用服务器这一步会比较慢
5.创建容器
可修改端口,这里为8090端口
docker run -it -d --name halo -p 8090:8090 -v ~/.halo:/root/.halo --restart=unless-stopped halohub/halo:1.5.4
完成这一步就可以通过http://ip:端口号
访问安装页面
记得提前在服务器中打开对应的端口 腾讯云在防火墙,阿里云在安全组中打开
5.配置nginx
如果希望通过自己的域名访问博客,可以通过配置nginx实现
域名最好在同一家云服务提供商购买
服务器需要是包年包月的,按量收费的无法通过ICP备案
安装
sudo apt-get install nginx
配置
根据官方文档配置,将以下代码修改后放到/etc/nginx/nginx.conf的中的http块下面
upstream halo {
server 127.0.0.1:8090; #修改为自己的ip和端口号
}
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;
}
}
将/etc/nginx/nginx.conf中的这两行代码注销,否则会使用默认配置
# include /etc/nginx/conf.d/*.conf;
# include /etc/nginx/sites-enabled/*;
腾讯云用户需要将第一行改成root用户,否则会报错
user root;
可以通过ssh或者sftp修改文件,或者可以下载到本地修改,然后通过github下载到服务器对应位置
重载配置
nginx -t
nginx -s reload
重启nginx
systemctl restart nginx
6.配置云DNS解析
在云服务器网站配置云DNS解析
7.ICP备案和公安备案
在云服务器网站和全国公安机关互联网站安全管理服务平台完成ICP备案和公安备案
备案完成后在网站底部添加备案号
备案完成后就可以通过自己的域名访问网站了(ICP备案完成前会被云服务器提供商屏蔽,只可通过ip访问)