使用1Panel+Halo搭建个人站点

这篇文章记录的是旧网站搭建的过程,在更换了新的框架之后,还是选择将其保留了下来。

准备工作

  • 服务器(这里使用阿里云,操作系统为 Alibaba Cloud Linux 3)

  • 域名(可选,需配置好域名解析)

  • SSL证书(免费的就可以,搭配域名使用)

远程连接进入云服务器

  • 利用阿里云控制台自带的远程链接。

  • 使用远程工具。

安装Docker

  1. 安装相关依赖。

     sudo yum install -y yum-utils device-mapper-persistent-data lvm2
    
  2. 添加阿里的镜像源。

     sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
    
  3. 更新缓存。

     sudo yum makecache
    
  4. 安装 Docker。

     sudo yum install -y docker-ce
    

    如果冲突则使用(出现提示:尝试在命令行中添加 ‘--allowerasing’ 来替换冲突的软件包 或 ‘--skip-broken’ 来跳过无法安装的软件包 或 ‘--nobest’ 来不只使用软件包的最佳候选)

     sudo yum install -y docker-ce --allowerasing
    
  5. 启动 Docker 服务。

     sudo systemctl start docker
    
  6. 设置开启自动启动 Docker 服务。

     sudo systemctl enable docker
    
  7. 测试是否安装成功,如果安装成功则会显示版本信息。

     docker -v
    

安装1Panel面板

  1. 运行以下命令。

     curl -sSL https://resource.fit2cloud.com/1panel/package/quick_start.sh-o quick_start.sh && sh quick_start.sh
    
  2. 设置安装位置。

    设置1Panel面板安装位置

  3. 设置端口、用户名、密码。

    设置1Panel面板端口、用户名、密码

  4. 安装成功后,控制台会打印面板访问信息,通过浏览器输入地址访问 1Panel。

    1Panel面板访问信息

    如果第一步先安装1Panel面板,则有可能会提示 “ERROR: Unsupported distribution 'xxx'"。

    这是由于 Docker 的在线安装脚本不支持该操作系统导致的,目前最好的解决方案就是先手动在服务器上安装并启动 Docker,然后再安装 1Panel。

    安装1Panel面板过程中可能出现的错误提示

  5. 在云服务器工作台的安全组设置开放1Panel的活动端口。

    云服务器工作台切换至安全组→点击操作标签下的管理规则→点击手动添加→输入1Panel的端口号后点击保存。

搭建Halo博客系统

配置镜像加速

  1. 设置好安全组规则后,打开浏览器输入外网地址访问1Panel面板。

    访问1Panel面板

  2. 进入容器配置选项卡,点击镜像加速右侧的设置,配置下面的镜像加速链接。

     https://hub-mirror.c.163.com
     https://docker.m.daocloud.io
     https://ghcr.io
     https://mirror.baidubce.com
     https://docker.nju.edu.cn
    

    配置镜像加速链接

    点击确认后,会提示自动重启。

安装OpenResty

进入应用商店安装OpenResty,按默认的设置安装即可。

安装OpenResty

OpenResty安装设置

安装PostgreSQL数据库

进入应用商店安装PostgreSQL,设置用户名和密码或者保持默认设置,如果仅作为Halo使用的话,端口外部访问保持关闭即可。

安装PostgreSQL

PostgreSQL安装设置

安装Halo

  1. 进入应用商店安装Halo。

    设置数据库名、用户和用户密码或者保持默认设置;

    外部访问地址设置为Halo的最终访问地址,如果有为 Halo 规划域名,需要配置为域名格式,例如 http://test.example.com。否则配置为 http://服务器IP:端口号,例如 http://192.168.15.137:1234

    端口:Halo 应用的服务端口,用默认的8080端口即可,此处我改为1234;

    端口外部访问:勾选。

    安装Halo

    Halo安装设置

  2. 在云服务器工作台的安全组设置开放Halo活动端口。

    云服务器工作台切换至安全组→点击操作标签下的管理规则→点击手动添加→输入Halo的端口号后点击保存。

  3. 在浏览器输入IP地址:端口号(如192.168.15.137:1234),在首次访问网站的时候会自动跳转到初始化页面。初始化完成之后,将会跳转到登录页面,输入刚才设置的用户名和密码即可进入后台。以后在浏览器地址后面加上 /console(如192.168.15.137:1234/console)即可进入 Halo 管理端。

    Halo登录页面

    Halo 后台页面

配置域名访问

  1. 回到1Panel面板设置,进入网站,点击创建网站

    创建网站

  2. 选择反向代理,然后输入主域名和代理地址,代理地址为127.0.0.1:端口号,若在安装Halo时没有修改端口号,则使用默认地址127.0.0.1:8080

    配置反向代理

配置HTTPS

  1. 进入证书,点击上传证书,粘贴密钥和证书。

    上传证书

  2. 回到网站,点击操作标签下的配置进入网站设置,打开启用HTTPS,可设置为HTTP自动跳转HTTPS,HTTP直接访问或者禁止HTTP;SSL选项则选择已有证书。

    启用HTTPS

更改SSH端口

  1. 回到1Panel面板设置,进入SSH管理,点击端口右侧的设置,修改为其它的端口。

    更改SSH端口

  2. 在云服务器工作台的安全组设置开放修改后的SSH端口。

    云服务器工作台切换至安全组→点击操作标签下的管理规则→点击手动添加→输入修改后的SSH端口后点击保存。

  3. 在云服务器工作台的安全组设置关闭默认的22端口

    第2步结束后,找到默认的22端口设置,点击修改,将授权策略改为阻止,然后点击保存。

结语

经过上面的一系列设置,个人博客站点就搭建完成了。

这里再做几点说明:

  1. Alibaba Cloud Linux 3是基于Anolis OS的商业版,与CentOS软件生态兼容,其它Linux发行版的安装可参考官方文档。

    1Panel官网:https://1panel.cn/

    1Panel官方文档:https://1panel.cn/docs/

    Halo官网:https://www.halo.run/

    Halo官方文档:https://docs.halo.run/

  2. 更改SSH默认的端口可以降低服务器被暴力破解的概率。