记录下在腾讯云服务器上部署 Halo 的完整操作记录,有些操作比较简略,可以直接参考官方文档。
1.安装 docker
sudo apt install docker.io
更新当前用户到 docker 用户组
sudo gpasswd -a $USER docker
newgrp docker
2.配置工作目录及文件
主要按照 Halo 文档操作
vim application.yaml
主要修改 h2 的密码,后台 admin 路径
3.下载 halo 镜像
docker pull halohub/halo:1.5.3
4.安装 nginx 配置反向代理
这里是自己安装 nginx 服务器,也可以通过 docker 安装。
sudo apt install nginx
默认的配置文件路径为 /etc/nginx/nginx.conf,查看配置文件,发现里面并无实际的配置,而是 include了/etc/nginx/conf.d/.conf以及 /etc/nginx/sites-enabled/ 两个目录下的配置文件。
不在 /etc/nginx/sites-available 修改 default 升级会被覆盖
举例创建 yxyinfo 复制 halo 的配置
sudo ln -s /etc/nginx/sites-available/yxyinfo /etc/nginx/sites-enabled/yxyinfo
删除默认配置
sudo rm /etc/nginx/sites-enabled/default
配置文件
upstream halo {
server 127.0.0.1:8090;
}
server {
listen 80;
listen [::]:80;
server_name www.yxyinfo.cn;
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
sudo nginx
sudo nginx -t
sudo nginx -s reload
5.docker启动 Halo
启动 Halo 映射到端口 8090
docker run -it -d --name halo -p 8090:8090 -v ~/.halo:/root/.halo --restart=unless-stopped halohub/halo:1.5.3
可以修改 ~/.halo 为具体的配置文件目录
6.添加域名解析
在服务器的控制台配置域名解析到服务器的 IP 地址。这里可以直接访问 IP:8090 端口(注意服务器是否开放),查看网页。域名解析成功后,可以直接把IP换成域名。
7.开启 HTTPS
下载并上传 SSL 证书
nginx 配置修改,之前例子是映射到 8090 端口。这里统一将 80 端口转到 443 端口,走 HTTPS。
upstream halo {
server 127.0.0.1:8090;
}
server {
listen 443 ssl;
server_name www.yxyinfo.cn;
ssl_certificate /home/ubuntu/ck/yxyinfo.cn_bundle.crt;
ssl_certificate_key /home/ubuntu/证书私钥;
ssl_session_timeout 5m;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_prefer_server_ciphers on;
client_max_body_size 10m;
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;
}
server {
listen 80;
server_name yxyinfo.cn;
return 301 https://$server_name$request_uri;
}
好了,基本配置完成,可以访问域名看看。