HTTP 協定基礎#
WWW 基於 HTTP(超文本傳輸協定)運作,採用伺服器/用戶端架構。伺服器提供 HTML 網頁與多媒體檔案,用戶端的瀏覽器負責解析與呈現。
URL 的構成#
協定://主機位址[:埠口]/資源路徑- HTTP 預設 port 80,HTTPS 預設 port 443
- 未指定檔案時自動載入首頁(如
index.html)
HTTP 方法#
- GET:在 URL 中指定資源(最常用)
- POST:透過請求體傳送表單資料
- HEAD、OPTIONS、DELETE 等用於特定用途
HTTP 是明碼傳輸,資料在網路上未加密。任何涉及敏感資訊(帳號、密碼、信用卡)的傳輸都必須使用 HTTPS。
LAMP 平台架構#
LAMP 是 Linux Web 開發的經典組合:
- Linux — 作業系統
- Apache — 網頁伺服器
- MySQL — 資料庫
- PHP — 伺服器端程式語言
靜態 vs. 動態網站#
- 靜態網站:伺服器單向提供預先製作的 HTML 檔案
- 動態網站:透過 PHP 等語言即時處理請求、查詢資料庫、產生客製化內容
Apache 伺服器核心概念#
多程序架構#
- prefork:獨立程序,記憶體耗用多但穩定
- worker:執行緒設計,記憶體效率高
MaxClients 參數決定同時允許的最大連線數,設定過高會耗盡記憶體,過低則限制服務能力。
設定檔結構#
- 主設定檔
httpd.conf可透過Include引入額外設定 - DocumentRoot:指定網頁根目錄
- Directory 區塊:針對特定目錄設定權限與功能
權限與安全管理#
Options 參數#
| 選項 | 功能 | 建議 |
|---|---|---|
| Indexes | 列出目錄內容 | 應關閉,避免暴露檔案結構 |
| FollowSymLinks | 允許符號連結 | 謹慎使用 |
| ExecCGI | 執行 CGI 腳本 | 按需開啟 |
存取控制#
透過 Order、Allow、Deny 機制控制 IP 層級的存取。.htaccess 檔案可在特定目錄內覆寫主設定,無需重啟 Apache 即時生效。
虛擬主機(Virtual Host)#
讓一部實體伺服器對應多個網站。透過 NameVirtualHost 搭配個別的 ServerName 和 DocumentRoot,在單一 IP 上提供多個獨立網站。
應用場景:
- 主機代管:一部伺服器為多個客戶提供網站
- 服務分離:將不同功能的網站分開管理
- 備援容錯:搭配 DNS 實現自動切換
SSL/TLS 與 HTTPS#
加密原理#
SSL 透過非對稱金鑰系統加密傳輸。伺服器持有私鑰,用戶端用公鑰加密,確保資料在網路上的安全。
憑證與 CA#
- 自簽憑證:免費但瀏覽器會警告
- CA 簽發憑證:具公信力,瀏覽器預設信任
現代 Web 服務基本上都應該使用 HTTPS。Let’s Encrypt 提供免費的自動化憑證,已無理由不加密。
日誌與效能#
登錄檔#
- access_log:記錄所有正常請求,供流量分析
- error_log:記錄錯誤資訊,是除錯的首要查看對象
大規模網站的日誌檔每週可達 GB 級,需搭配 logrotate 自動歸檔壓縮。
效能優化#
- PHP 加速器可預先編譯 PHP 為二進位形式
ab工具可模擬並行連線測試伺服器承載能力- 效能優化應基於實際需求與監控數據,而非盲目調參
/var分割區建議預留充足空間(10GB 以上),因為登錄檔、快取與上傳檔案都會存放在此。空間不足會導致服務異常。