網站建置紀錄

我的網站從 2017 年六月第一次上 GitHub Page,到現在 www.wancat.cc ,也已經半年了,寫下這篇文章紀錄一下架站的方法。

Hexo

我的部落格是用 Hexo 將 Markdown 轉成一個靜態網站的,所以可以部屬到 GitHub Page 或是任何伺服器,我自己現在還留著 https://wancatserver.github.io 避免哪天伺服器發生不測……。那 Hexo 可以多重部屬,我的設定檔大概長這樣。

# _config.yml
deploy:
- type: git
  repo: [email protected]:WANcatServer/WANcatServer.github.io.git
- type: rsync
  host: 我的伺服器 ip
  user: lancat
  root: /volume2/WANcatServer/www

那我的佈景是使用 Archer,非常好看的一個佈景,那我有做一些小調整:把簡體中文換成繁體,然後將授權地方放上 CC 授權。

cd path/to/blog
vim /theme/archer/layout/post.ejs

即可修改模板內容,EJS 也是我之前用過的模板引擎,所以挺快就弄好了。

創用 CC 官網 上找你要的授權,就可以複製 HTML 嵌入到網站裡了。可以直接加在 Archer 裡面的 _config.yml

# theme/archer/_config.yml
# 將 license 改成以下
license: <a rel="license" href="http://creativecommons.org/licenses/by-sa/4.0/"><img alt="創用 CC 授權條款" style="border-width:0" src="https://i.creativecommons.org/l/by-sa/4.0/88x31.png" /></a><br />本著作係採用<a rel="license" href="http://creativecommons.org/licenses/by-sa/4.0/">創用 CC 姓名標示-相同方式分享 4.0 國際 授權條款</a>授權.

RSS feed 須安裝 hexo-generator-feed 包,然後在 Archer 裡配置

# theme/archer/_config.yml
rss: /atom.xml

Disqus 也很簡單,只要將 Disqus ID 丟到網站的 _config (不是佈景的)裡就好

# _config.yml
disqus_shortname: //你的 ID

可以裝 Google Analytics 看流量,設定 Archer _config:

# theme/archer/_config.yml
google_analytics: //你的 ID

一開始流量不會進去的那麼快,我是隔天才看到流量進去的,所以不用緊張(也可能是我當初時間沒設到當天)。

版本控制

用 Hexo 的好處就是可以版控,所有文章都是好讀的 Markdown,我有做 Git 版控並同步到我自己架的 Gitea 上(沒有公開)。比較麻煩的是佈景,佈景裝的時候是用 git clone 下來,所以在 Git 裡頭就會變成 子模組 Submodules ,那因為佈景基本上不用更新,而且我不太會用子模組,所以不如整個一起做版控(會把自己微調的內容紀錄進去),所以就把 Archer 底下的 .git 刪掉,整個 add 進去就好。Archer 的更新比較麻煩些,要自己把有更動過的檔案抓出來,然後下載新版本再移進去,所以我只更新過一次。

接下來有空也有打算自己寫一個佈景,不過現在我的前端很廢,慢慢來。

硬體

由於現在幫山林復育協會管理主機,所以我有一台 Synology DS918+ 可以用。這台主機有還夠用的硬體,主打軟體,不過是面向非技術使用者,有自己的軟體商店,但內容有點缺乏,而且不能使用 apt(雖然它是 debian 系的),ssh 不能用公鑰登入(我有去設定過了!),shell 超難打,網頁界面很卡又容易跑掉,如果你有技術背景,不是特別在乎它附的軟體,還是自己裝 Ubuntu Server 輕鬆些。

但它的檔案系統的確蠻方便的,也有出手機應用程式,所以可以像 Google Drive 一樣從手機讀檔案,Web 管理界面也是讓我不需要一個一個查指令,有著還算清楚的說明。只不過用到現在還是比較喜歡自己裝 Ubuntu。


在 DS918+ 上架網站基本上就跟一般主機一樣,它的網頁伺服器是 Nginx,剛好也是我習慣的。

我的 Nginx 設定檔長這樣:

server {
    listen 80;
    server_name www.wancat.cc;
    root /volume2/WANcatServer/www;
    index index.html;
    access_log /var/log/nginx/access_log combined;
}

不要笑

上面做一個重新導向到 www.@,那由於 DS918+ 設定 HTTPS 實在很複雜,我就把這偉大的任務交給 CloudFlare 了。

域名與 DNS

域名目前是在 Porkbun 上註冊 wancat.cc。本來想買 wan.cat (真的有),但是 .cat 實在太貴,打算用 .cc 。 .tw 域名在台灣基本上都是 800 TWD / year ,除了第一年特價外,實在有點貴,所以不考慮。.cc 每年大約 10 鎂,還算便宜,而且也挺好看的。

註冊完後 DNS 用 CloudFlare 代管,雖然 DS918+ 可以裝 DNS Server,但我懶的用,CloudFlare 免費方案就很夠用了。

CloudFlare 我設定了 @, www 兩個 DNS,www CNAME 到 @,都有開雲朵(會經過 CloudFlare),所以可以隱藏真實 IP。我用 Page Rules 做轉址,設定舊網域以及 wancat.cc 會轉址到 www.wancat.cc,用 www 的理由是為了避免 Cookie 在不同 subdomain 被重用。詳細理由參考:bjornjohansen.no

本來我是自己用 Nginx 轉址,但速度有點慢,今天改用 CloudFlare 就幾乎是瞬間完成了,我現在對它依賴度越來越高了。

如果要讓 ssh 連,可以直接連 ip 或是開一個 ssh.@,然後雲朵不要開(不會經過 CloudFlare,直接回應 IP),就可以連了。好像有更安全的作法,但我也懶的用了(茶)

筆記

自己架網站也半年了,從痞客邦到 Medium 到 Hexo,不過弄了這麼多還是不會寫網頁。買了五年的網域,希望自己的網站可以再撐五年(茶)。