如何搭建一個網站

在最近的網站製作過程中,筆者對各種流程有了進一步的認識,現在希望藉着這個機會記錄下自己的經驗並與大家分享,下面介紹的內容雖然有一定的順序,但並非唯一的方法,每個人的習慣可能不同,因此希望這篇文章可以作為一個參考。

目錄

購買域名

搭建網站的第一步通常是購買域名。雖然有些網站(例如 GitHub)提供免費的二級域名(如 username.github.io),但如果你想要一個更加彰顯自己風格的名片,還是推薦購買自有的頂級域名(如 example.com)。

簡單介紹一下域名的管理機構。互聯網的域名系統由 ICANN - Internet Corporation for Assigned Names and Numbers 負責管理,具體的域名註冊則由域名註冊商(Domain Name Registrar)來操作。不同註冊商的定價策略不同有時也會有優惠活動,因此購買時可以貨比三家,綜合考量註冊商的聲譽、服務和出售價格等,再決定從哪裏購買。另外,域名通常可以自由切換到其他註冊商託管(不過可能會產生額外費用),日後遇到不合心意的註冊商也可以及時更換。如果各位看官對域名的具體運作方式感興趣,可以查閱相關文獻。

使用 GitHub Pages 進行託管

GitHub Pages 目前是一個託管靜態網站的理想選擇,無論是免費的服務還是網站的名氣都讓人有一種安全感,適合長久穩定的使用。另外,GitHub Pages 的使用也非常簡單,詳細介紹可以到官網查看,筆者在這裏簡單介紹一下~

首先,我們需要一個 GitHub 賬號。每個 GitHub 賬號可以創建一個和其賬號用戶名字相同的站點(格式為 username.github.io)。下面我們來創建一個新的 repo,例如:username.github.io

接下來,在終端輸入:

$ git clone https://github.com/username/username.github.io

如果有需要配置 git 諮詢的朋友可以進行以下設置:

$ git config user.name "username"
$ git config user.email "example@example.com"

這樣設置後,該路徑下的 git 設置信息將與全局設置區分開來,可以通過以下命令查看配置:

$ git config --list

設置好的信息之後會在 git log 中出現。這裏是給不瞭解 git 的人一點小小的背景知識,之後也會代入一些,不過最好還是找來 git 的資料系統性的學習一下。

現在我們言歸正傳,接下來進入克隆下來的目錄中,並將製作好的靜態網頁文件複製到裏面:

$ cd username.github.io

然後 push 本地的文件:

$ git add --all
$ git commit -m "Initial commit"
$ git push -u origin master

現在在瀏覽器中輸入網址 username.github.io,網站應該已經上線了。

修改網站內容

以後每次修改內容後,只需要執行以下命令進行更新:

$ git add -A
$ git commit -m "commit message"
$ git push

添加 CNAME

成功通過 username.github.io 瀏覽網站後,我們便可以着手配置自定義域名了。為了使用自定義域名訪問網站,需要在 repo 中添加一個 CNAME 文件,並在文件中輸入你的域名(如 example.com):

$ echo "example.com" > CNAME

添加 404 頁面

自定義 404 頁面也很簡單,創建一個名為 404.html 的文件就可以了。

使用 Cloudflare 保護網站

為了增強網站的安全性和性能,筆者選擇了鼎鼎大名的 Cloudflare。它提供多種網絡安全和性能優化服務,包括 DDoS 保護、HTTPS 支持、DNS 管理等。

使用 Cloudflare 的 DNS

首先需要在 Cloudflare 註冊一個賬號。接下來按照提示添加自己的域名,過程非常簡單,基本上一直點繼續就可以了。添加後,需要將域名註冊商的 DNS 設置更改為 Cloudflare 提供的 Nameservers 用來激活其服務。這一步需要在你的域名註冊商的管理後台進行,修改後可能需要等待一段時間(通常在 24 小時內生效)。

完成設置後,可以在 Cloudflare 後台中點擊 "Recheck Nameservers" 來確認配置成功。

Cloudflare 接管成功後我們還需要在 DNS 設置中,將根域名的 A 記錄指向 GitHub 提供的 IP 地址。這些 IP 地址可以從 GitHub 官方文檔 中查找,以確保使用最新的 IP。以下是筆者寫本文時 GitHub 提供的 IP:

192.30.252.153
192.30.252.154

此外,我們還可以修改配置次級域名(subdomain)的 CNAME 記錄,具體配置步驟請參考 GitHub 的說明

HTTPS 設置

為了更安全的網絡環境,我們要將網站變成強制 HTTPS。可以進入 Cloudflare 的 "Crypto" 頁面,開啟 HSTS 設置。建議配置如下:

Status: On
Max-Age: 1 month
Include subdomains: Off
Preload: On
No-sniff: On

同時,可以啟用「Automatic HTTPS Rewrites」選項,這樣可以自動將 HTTP 請求重寫為 HTTPS。

總結

如今,運營個人網站的風氣已經漸漸式微,取而代之的是各種社交媒體。筆者最初是挺惋惜的,不過漸漸覺得這其實也不一定是一件壞事,因為小眾也有小衆的美。個人網站依然會一直留存下來,作爲一個個人與世界交流的窗口,一個純淨的抒發自由言論的地方。我們或許無法改變趨勢,但卻可以和更多人分享這份毫無雜念的美好。希望諸位能夠從筆者的文章中得到啟發,也歡迎指出文中的錯誤。如果有朋友通過本文成功搭建了站點,請隨時與我分享你的經驗。願友人安康!