幫助開發者更加高效的工作,提供圍繞開發者全生命週期的工具與資源
本文所用環境:阿里雲ECS伺服器,全新安裝CentOS 8.4。 本文前置內容:購買雲伺服器,購買域名並備案,雲服務控制檯安全組/防火牆中放行80,8090,443
埠(若有安裝寶塔皮膚等也需要在皮膚中放行) 本文將介紹通過Docker部署Halo部落格並通過certbot自動申請證照並安裝實現https訪問。
安裝Docker
本文使用全新安裝的系統,因此並沒有安裝Docker,已安裝Docker則可跳過這一步。登入終端輸入以下內容並按回車等待即可完成Docker安裝,該命令同樣適用於Ubuntu。
curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
建立Halo部落格的工作目錄
本文將Halo部落格工作目錄置於home目錄下,並命名為
.halo
。該目錄將用來存放部落格所有配置、文章、主題等資料,若有備份或遷移需要則可以直接複製該目錄。建立目錄並前往該目錄
mkdir ~/.halo && cd ~/.halo
下載預設配置檔案到工作目錄
wget https://dl.halo.run/config/application-template.yaml -O ./application.yaml
該配置檔案包含了埠,資料庫,快取,後臺根路徑等配置,一般下載後不用更改,若需要更改使用的資料庫等需求可參考官方文件。
拉取Halo映象
docker pull halohub/halo:latest
建立容器
docker run -it -d --name halo -p 8090:8090 -v ~/.halo:/root/.halo --restart=unless-stopped halohub/halo:1.4.11
8090:8090
第一個8090為宿主機埠,第二個8090為容器埠,含義為將宿主機的8090埠對映到容器的8090埠。~/.halo:/root/.halo
含義為將宿主機的~/.halo
目錄對映到容器的/root/.halo
目錄,注意後者不可更改。其他引數具體含義請參考官方文件。
此時即可使用
http://ip:埠號
訪問安裝引導介面。但比較推薦完成下列反向代理以及SSL證照配置後再進行部落格的初始化。
注意下文內容基於使用8090宿主機埠,如有更改請注意在配置檔案中將8090改為自行修改的埠
安裝Nginx
# 下列程式碼適用於CentOS # 新增 Nginx 源 sudo rpm -Uvh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm # 安裝 Nginx sudo yum install -y nginx # 啟動 Nginx sudo systemctl start nginx.service # 設定開機自啟 Nginx sudo systemctl enable nginx.service
# 下列程式碼適用於Ubuntu sudo update sudo apt install nginx
配置Nginx
# 下載 Halo 官方的 Nginx 配置模板 curl -o /etc/nginx/conf.d/halo.conf --create-dirs https://dl.halo.run/config/nginx.conf
下載之後需要對其進行修改。以上方法安裝的Nginx預設路徑為
/etc/nginx
# 適用 vim 編輯 halo.conf vim /etc/nginx/conf.d/halo.conf
開啟之後的內容應該類似
server { listen 80; server_name example.com www.example.com; # 將 example.com www.example.com 修改為自己的域名 location / { 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; proxy_pass http://127.0.0.1:8090/; # 如有更改預設的宿主機8090埠,請修改此處為執行選擇的埠 } }
修改完成之後
# 檢查配置是否有誤 sudo nginx -t # 過載 Nginx 配置 sudo nginx -s reload
阿里雲/騰訊雲等雲服務商也可以申請免費的SSL證照並下載,這類證照請查閱相關教程,本文僅介紹通過certbot申請證照並自動安裝。
安裝 certbot 和 certbot nginx 外掛:
# 根據自己的系統選擇相應命令 # CentOS 安裝 certbot 以及 certbot nginx 外掛 sudo yum install certbot -y sudo yum install python3-certbot-nginx -y # Ubuntu 安裝 certbot 以及 certbot nginx 外掛 sudo apt install certbot sudo apt install python3-certbot-nginx
申請並自動配置證照:
sudo certbot --nginx
需要輸入郵箱並按
y
或a
同意相關協議,具體請參考輸入命令後的輸出自動續約
這裡申請的免費證照可以免費續期,理論上可以一直免費使用,這裡提供了自動執行續期的命令
sudo certbot renew --dry-run
到這裡,即完成了所有的步驟,可以直接通過域名進行Halo部落格的訪問。注意,國內服務商註冊的域名大多需要備案,否則無法使用,具體請參考雲服務商的文件。
在設定完反向代理後,必須在部落格的後臺管理介面設定正確的部落格地址,否則可能導致CSS載入不成功、樣式混亂等錯誤。
本文轉自:developer.aliyun.com/article/78979...
本作品採用《CC 協議》,轉載必須註明作者和本文連結