從零線上部署halo博客(包含halo博客設置域名訪問)

原文地址:https://www.wjcms.net/archives/%E4%BB%8E%E9%9B%B6%E7%BA%BF%E4%B8%8A%E9%83%A8%E7%BD%B2halo%E5%8D%9A%E5%AE%A2%E5%8C%85%E5%90%ABhalo%E5%8D%9A%E5%AE%A2%E8%AE%BE%E7%BD%AE%E5%9F%9F%E5%90%8D%E8%AE%BF%E9%97%AE

寫在前邊的話

最近小編的博客忽然出了問題,崩潰了,而後從新裝了。由於對於新手來講,裏邊確實有一些地方很差處理的地方,因此,這裏發佈一下安裝的步驟,供你們參考。nginx

安裝寶塔面板

這裏參考文章:https://www.wjcms.net/archives/centos%E5%AE%9D%E5%A1%94%E9%9D%A2%E6%9D%BF%E5%AE%89%E8%A3%85%E5%8F%8A%E5%B8%B8%E8%A7%81%E9%94%99%E8%AF%AF%E5%A4%84%E7%90%86%E8%B6%85%E7%BA%A7%E8%AF%A6%E7%BB%86web

安裝Docker管理器

登陸寶塔面板,點擊左側軟件商店。 而後在搜索框中輸入docker,搜索到的結果,而後點擊安裝。 docker

而後點擊肯定。 而後查看隊列就能看到安裝狀態,等待安裝完畢便可。 數據庫

安裝 Halo

下載配置文件到 ~/.halo 目錄

進入ssh終端,運行命令下載配置文件vim

curl -o ~/.halo/application.yaml --create-dirs https://dl.halo.run/config/application-template.yaml

使用 Vim 工具修改配置文件

vim ~/.halo/application.yaml

編輯完退出。 centos

詳細參數說明以下:緩存

  1. 若是須要自定義端口,修改 server 節點下的 port 便可。
  2. 默認使用的是 H2 Database 數據庫,這是一種嵌入式的數據庫,使用起來很是方便。須要注意的是,默認的用戶名和密碼爲 admin 和 123456,這個是自定義的,最好將其修改,並妥善保存。
  3. 若是須要使用 MySQL 數據庫,須要將 H2 Database 的全部相關配置都註釋掉,並取消 MySQL 的相關配置。另外,MySQL 的默認數據庫名爲 halodb,請自行配置 MySQL 並建立數據庫,以及修改配置文件中的用戶名和密碼。
  4. h2 節點爲 H2 Database 的控制檯配置,默認是關閉的,如需使用請將 h2.console.settings.web-allow-others 和 h2.console.enabled 設置爲 true。控制檯地址即爲 域名/h2-console。注意:非緊急狀況,不建議開啓該配置。
  5. server.compression.enabled 爲 Gzip 功能配置,若有須要請設置爲 true,須要注意的是,若是你使用 Nginx 或者 Caddy 進行反向代理的話,默認是有開啓 Gzip 的,因此這裏能夠保持默認。
  6. halo.admin-path 爲後臺管理的根路徑,默認爲 admin,若是你懼怕別人猜出來默認的 admin(就算猜出來,對方什麼都作不了),請自行設置。僅支持一級,且先後不帶 /。
  7. halo.cache 爲系統緩存形式的配置,可選 memory 和 level,默認爲 memory,將數據緩存到內存,使用該方式的話,重啓應用會致使緩存清空。若是選擇 level,則會將數據緩存到磁盤,重啓不會清空緩存。如不知道如何選擇,建議默認。

拉取halo鏡像

使用命令安全

sudo docker pull ruibaby/halo

建立容器並運行

docker run --rm -it -d --name halo -p 8090:8090  -v ~/.halo:/root/.halo ruibaby/halo

--rm:中止以後自動刪除容器。 --name:容器名。 -p:佔用端口,前者爲宿主機端口,後者爲 Halo 的運行端口,可在 application.yaml 配置。 -v:目錄映射,通常不要修改。 完成以上操做便可經過 ip:端口 訪問了。服務器

其餘重要命令

# 中止容器
sudo docker stop halo

# 拉取最新的 Halo 鏡像
sudo docker pull ruibaby/halo

# 建立容器
docker run --rm -it -d --name halo -p 8090:8090  -v ~/.halo:/root/.halo ruibaby/halo

配置域名訪問(重要)

這裏我按照官方的方法設置,沒法成功,這裏是本身的方法。session

開放端口

這裏必定要注意:放行端口80 8090 443

兩個地方都要開放端口,一個是雲服務器安全組配置,另一個是寶塔面板安全配置放行端口。我在這裏吃了虧,本覺得雲服務器開放就好了,沒想到訪問不了,最後在寶塔面板設置開放就行了。

域名解析和ssl證書申請

這裏官方的使用不了,建議使用阿里雲的免費證書便可,能夠自行去申請,這裏不作介紹。

配置Nginx

在寶塔面板安裝Nginx,方法同上安裝docker,再也不贅述。

配置,設置ssl

把申請的證書上傳到雲服務器。 官方是直接下載配置模版而後進行配置,這裏咱們直接使用全局。

直接運行命令

vim /www/server/nginx/conf/nginx.conf

進行編輯

加入具體以下代碼:

server {
    listen 80;
    server_name wjcms.net www.wjcms.net;#這裏是域名
    rewrite ^(.*)$ https://$host$1 permanent;

    client_max_body_size 1024m;
}
server {
    listen 443 ssl;

    server_name wjcms.net www.wjcms.net;#這裏是域名

    ssl_certificate /usr/local/xxxxxx.pem;#這裏是證書地址
    ssl_certificate_key /usr/local/xxxxxxx.key; #這裏是證書地址
    ssl_session_timeout 5m;
    ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
    ssl_prefer_server_ciphers on;

    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/;#這裏注意端口
    }
}

這樣訪問域名就能看到博客了。

附上個人地址:https://www.wjcms.net/

關注我更多精彩

相關文章
相關標籤/搜索