設定 Apache Web 伺服器
ServBay 讓您可以方便地管理和設定內建的 Apache Web 伺服器套件。利用 ServBay 的圖形使用者介面,您可以輕鬆調整 Apache 的核心設定,以配合不同開發專案的需求。
存取 Apache 設定
- 開啟 ServBay 應用程式。
- 在左側導覽列中,點選
Web 伺服器
。 - 選取
Apache
分頁。
您將會看到 Apache 的設定介面,如下圖所示:
主要設定項目說明
以下是 Apache 設定介面中各項參數的詳細說明:
基本設定
- HTTP 埠號 (HTTP Port): Apache 監聽 HTTP 協定的埠號,預設為
80
。 - HTTPS 埠號 (HTTPS Port): Apache 監聽 HTTPS 協定的埠號,預設為
443
。 - 伺服器名稱 (Server Name): 伺服器用來識別自身的名稱及埠號。預設的
127.0.0.1
通常用於本機存取。 - 伺服器根目錄 (Server Root): Apache 套件的安裝根目錄。注意: 這並非您網站檔案的存放路徑(網站根目錄在建立網站時另外設定),而是 Apache 程式檔案所在的目錄。預設通常為
/Applications/ServBay/package/apache/current
。
效能調校 (Performance Tuning)
- Timeout: 伺服器在放棄 I/O 操作前所等待的最長秒數。預設為
300
秒。 - Max KeepAlive Requests: 在一個長連線上允許的最大請求數。
1000
代表允許較多請求重複使用同一連線,0
則表示無限制。 - KeepAlive Timeout: 伺服器在關閉一個長連線前,等待下一個請求的最長秒數。預設為
60
秒。 - Keep Alive: 是否啟用 HTTP 長連線 (KeepAlive)。建議設定為
On
以提升效能。 - MPM StartServers: 伺服器啟動時創建的子服務程序數量。
- MPM MaxSpareThreads: 最大預備閒置執行緒數。用以因應突發的大量請求。
- MPM MaxConnectionsPerChild(前稱 MaxRequestsPerChild): 每個子服務程序在其生命週期內可處理的最大連線數。
0
表示無限制,此設定有助於預防記憶體洩漏長期堆積。 - MPM MaxRequestWorkers(前稱 MaxClients): 允許同時處理的最大並發請求(所有子進程合計)。此為 Apache 效能調校的關鍵選項。
- MPM ThreadsPerChild: 每個子服務程序建立的固定執行緒數(適用於
worker
或event
MPM)。
功能與特性 (Features & Characteristics)
- 配置檔檔名 (Access File Name): 用於指定分散式設定檔名稱的指令,通常為
.htaccess
。可以設定是否允許使用.htaccess
檔案覆寫主設定。 - Use Canonical Name: 控制 Apache 建立自我參照 URL 的方式。
Off
通常較有彈性。 - Server Signature: 在伺服器產生的頁面(例如錯誤頁)底部加上一行包含伺服器版本和虛擬主機名稱的資訊。為安全起見,正式環境建議關閉 (
Off
)。 - Hostname Lookups: 是否對用戶端的 IP 位址執行 DNS 反查以取得主機名稱。
Off
可提高效能,因查詢 DNS 會拖慢速度。 - Server Tokens: 控制伺服器回應標頭 (
Server:
) 顯示的資訊多寡。Minor
(如 Apache/2.4)較Full
(如 Apache/2.4.58 (Unix) PHP/8.3.1)安全;Prod
則僅顯示Apache
。
管理與日誌 (Admin & Logging)
- Server Admin: 伺服器回傳給用戶端錯誤訊息時會顯示的管理員電子郵件地址。
- Log Level: 控制記錄到錯誤日誌 (
error_log
) 的詳盡程度。預設級別為warn
,會記錄警告及以上嚴重程度的錯誤。其他級別還包括debug
、info
、notice
、error
、crit
、alert
、emerg
。
模組 (Modules)
此區塊列出了所有可用的 Apache 模組。您可以勾選來啟用所需模組,取消勾選則停用。常見模組包含:
mod_rewrite
:用於 URL 重寫。mod_ssl
:提供 SSL/TLS(HTTPS)支援。mod_deflate
:內容壓縮傳輸。mod_expires
:控制快取標頭。mod_proxy
及相關模組:提供反向代理功能。mod_auth_basic
、mod_auth_digest
:分別提供基本或摘要式驗證。
啟用或停用模組後,需儲存設定且通常須重新啟動 Apache 服務,設定才會生效。
目錄索引 (Directory Index)
- 目錄索引 (Directory Index): 當請求的 URL 指向資料夾時,Apache 會依序在該資料夾尋找設定的檔案。如果存在第一個符合的檔案就回傳其內容。預設通常為
index.html index.htm index.php
。
SSL/TLS 設定
這些設定用於配置 Apache 的 HTTPS 功能。
- SSLCipherSuite / TLSCipherSuite: 定義伺服器允許使用的加密套件。選擇強大且現代化的加密套件對安全性非常重要。ServBay 已提供建議的預設值。
- SSLProxyCipherSuite: 當 Apache 擔任反向代理時,設定其 SSL 連線用的加密套件。
- SSLHonorCipherOrder: 設為
On
可強制伺服器優先使用自身偏好的加密套件,而非用戶端偏好。建議設定為On
。 - SSLStrictSNIVHostCheck: 設為
On
時,若用戶端經由 SNI (Server Name Indication) 請求的主機名稱與設定不同,將拒絕連線,提高安全性。 - ProtocolHonorOrder: 與
SSLHonorCipherOrder
類似,但用於協議版本談判。 - SSLProtocol: 定義可使用的 SSL/TLS 協定版本。例如
all -SSLv2 -SSLv3
代表允許所有現代協定,但禁用已知不安全的 SSLv2 及 SSLv3。 - SSLProxyProtocol: 當 Apache 做為反向代理時,設定其 SSL 連線可接受的協定版本。
- Protocols: 設定支援的協議協商順序,例如啟用 HTTP/2。
h2 h2c http/1.1
代表優先採用加密的 HTTP/2 (h2
) 或明文 HTTP/2 (h2c
),再退回 HTTP/1.1。
儲存與重設
- 重設 (Reset): 按下此按鈕即可將全部 Apache 設定還原為 ServBay 的預設值。
- 儲存 (Save): 按下此按鈕會儲存您對 Apache 設定的所有變更。儲存後,ServBay 通常會自動套用配置。如 Apache 服務已在執行,可能會自動重啟使所有變更生效。
重要提示
- 此處調整的是 Apache 的全局設定。針對特定網站(虛擬主機)的設定(如
DocumentRoot
、個別RewriteRule
等)通常於新增/編輯「網站」時進行設定。 - 若於設定介面頂部看到「Service Apache is not enabled」提示,表示 Apache 服務目前尚未啟動。您依然可以修改並儲存設定,但這些變更僅於下次啟動 Apache 服務時才會生效。您可從 ServBay 主面板或「軟體套件 (Packages)」選單啟動 Apache。
總結
ServBay 提供了一個直覺易用的介面來管理 Apache Web 伺服器的核心設定。透過了解這些選項,您可根據開發需求調節 Apache 的行為、效能及安全性,進一步善用 ServBay 做為您的本機開發環境。