「架設網站伺服器」這個搜尋詞,通常代表你已經跳過了「要不要自己弄」的猶豫,手上可能已經有一台雲端虛擬主機或實體伺服器,現在要面對的是實際動手,把它從一台空機器,變成一台真正能跑網站的伺服器。這篇文章不談該選哪一種主機方案,而是假設你已經有了一台可以透過遠端連線進去的乾淨機器,從這裡開始,把接下來實際要走過的技術步驟依序整理一遍。
動手前:確認你手上的是什麼
在開始之前,先確認幾件事:你有沒有能夠遠端連進這台機器的權限、有沒有足夠的管理權限可以安裝軟體與調整設定、知不知道這台機器對外的位址。這篇文章從這裡開始往下走,不會再回頭討論該選哪一種主機類型,因為那是另一個階段該先做的決定,這裡假設那個決定已經完成,機器已經在你手上。
接下來要走過的步驟大致依照這個順序:先把系統跟連線的安全性顧好,再安裝真正用來跑網站的伺服器軟體,然後讓網域指向這台機器,最後裝上憑證讓網站能以加密連線的方式被存取。這個順序不是隨意排的,如果顛倒過來,中途很容易卡關,例如還沒顧好連線安全就急著裝軟體,或是網域都還沒指過來就急著弄憑證。
作業系統的選擇邏輯
自行管理的網站伺服器,絕大多數會選擇在某一種Linux發行版上運作。在挑選版本時,比較穩妥的做法是選擇有長期支援的版本,因為這類版本的套件更新週期較長、社群累積的文件與討論也比較齊全,遇到問題時比較容易找到參考資料,不需要頻繁面對版本汰換帶來的相容性問題。
選定作業系統之後,後續安裝軟體的方式,都會跟著這套系統本身內建的套件管理工具走。先把這一步確定下來,後面每一個安裝動作的操作邏輯才會保持一致,不會因為中途混用不同系統的做法而出現莫名其妙的錯誤。
第一件事:換掉密碼登入,改用金鑰
拿到一台乾淨的伺服器後,第一件該做的事,不是急著裝軟體,而是先把連線登入的方式,從單純的密碼,換成一組金鑰配對。做法是先在自己的電腦上產生一組公鑰與私鑰,把公鑰放到伺服器上授權登入的清單裡,測試確認能用金鑰順利登入之後,再把原本以密碼登入的方式關閉。
這麼做的原因很直接:只靠密碼登入,理論上任何人只要不斷嘗試各種密碼組合,就有機會闖入;改用金鑰登入之後,沒有對應的私鑰,光靠猜測幾乎不可能成功連線,安全性明顯提高。私鑰本身要妥善保管在自己的裝置上,不要外流。
- 先在自己的電腦上產生一組公鑰與私鑰
- 把公鑰放到伺服器上,加進允許登入的清單
- 測試用金鑰登入成功之後,再關閉密碼登入的選項
防火牆規則:只留下真的需要的門
一台剛拿到手的伺服器,預設狀態下理論上可能對外開放不少連線通道,這些平常用不到卻沒有關閉的通道,等於是不必要的風險。接下來要做的,是設定防火牆規則,只留下真正會用到的幾個通道,例如遠端連線用的通道、還有之後要提供網頁瀏覽用的通道,其餘一律關閉。
設定防火牆時要特別小心操作順序,尤其不要在測試新規則的過程中,不小心把自己正在使用的遠端連線通道也一併關掉,導致連不進去自己的伺服器。比較保險的做法,是先確認新規則已經正確允許目前使用的連線方式,再逐步收緊其他不需要的部分。
安裝網頁伺服器軟體:Apache與Nginx怎麼選
前面的安全設定完成之後,接下來才是真正讓這台機器能夠對外提供網頁內容的關鍵一步:安裝網頁伺服器軟體。目前最常見的兩個選擇是Apache與Nginx,兩者概念上有些差異:Apache傳統上採用每個連線各自獨立處理的架構,設定上的彈性較高、累積的資源與文件也相當豐富;Nginx則偏向事件驅動的架構,在同時面對大量連線時,往往傾向使用較少的資源。
實際安裝的過程,會透過作業系統本身的套件管理工具進行,安裝完成之後,通常還需要啟動這個服務,並設定成開機時自動啟動,避免每次重新開機都要手動處理。完成之後,可以先直接透過瀏覽器輸入伺服器的位址,確認能看到預設的歡迎畫面,藉此確認軟體本身已經安裝並正常運作。
讓網域真正指向這台伺服器
伺服器軟體安裝好之後,下一步是讓你的網域名稱,真正指向這台機器對外的位址,這個動作通常是在網域的網域名稱系統設定裡,把相對應的紀錄,指向這台伺服器的位址完成的。要注意的是,這個設定生效並不是瞬間完成,通常需要一段時間讓變更逐漸傳播開來。
在網域設定還沒完全生效之前,其實可以先直接用伺服器本身的位址,測試前面幾個步驟是否都運作正常,不需要一定要等到網域完全指向這台機器,才開始進行後續的設定與確認工作。
安裝SSL憑證,讓網站真正變成https
網域確認能指向這台伺服器之後,接下來要做的是為這個網域安裝加密憑證,讓訪客連上網站時,使用的是加密過的連線方式。這個步驟通常需要等網域設定已經生效、能正確解析到這台伺服器之後才能進行,過程大致是向憑證提供服務申請一張對應這個網域的憑證,再把它設定進前面裝好的網頁伺服器軟體裡。
另外要留意的是,這類憑證通常有使用期限,需要定期更新,比較理想的做法是一開始就設定好自動更新的機制,而不是等到憑證快要到期時,才臨時想起要手動處理,否則一旦忘記更新,訪客連上網站時就可能會看到安全性警告。
常見問題
完全沒有Linux基礎,可以自己走完這些步驟嗎?
會需要花一些時間熟悉基本的操作方式,尤其是遠端連線與指令操作的邏輯,如果完全沒有相關經驗,建議先從簡單的測試環境開始練習,或是尋求有經驗的人協助,避免在正式環境上邊學邊試而出狀況。
Apache跟Nginx一定要二選一嗎,可以同時安裝嗎?
技術上兩者可以並存,但通常需要額外的規劃來分配哪個服務負責處理哪些請求,對剛開始接觸的人來說,先專注熟悉其中一種、確認運作穩定之後再考慮是否需要並用,會是比較穩妥的做法。
金鑰登入真的比密碼登入安全很多嗎?
是的,密碼容易被大量嘗試破解,而金鑰登入需要對應的私鑰檔案才能成功,沒有那個檔案幾乎無法單靠猜測連線成功,是目前公認明顯更安全的做法。
把這些步驟都做完,網站就會自動上線了嗎?
做完這些步驟,代表伺服器本身已經準備好可以運作,但還需要把網站實際的內容部署上去,伺服器完成設定,只是讓網站能夠運作的基礎工程完工,不等於網站內容本身已經上架。
如果這一連串技術步驟做起來有點吃力,或是不確定哪個環節設定得對不對,創昇SEO提供免費網站健診,可以協助檢查目前的設定狀況;也有全台免費到府諮詢服務,方便當面討論技術端遇到的實際問題。
