跳至主要內容
問題與解答
Nginx 與 Apache 差在哪?怎麼選

Nginx 與 Apache 差在哪?怎麼選

問:
Nginx 和 Apache 要選哪一個? .htaccess 是什麼?Nginx 沒有嗎? 可以用 Nginx 反向代理 Apache 嗎? 改了設定要怎麼套用?
答:

兩者的架構差異

NginxApache
連線處理事件驅動、非同步以行程或執行緒處理(依 MPM)
高並發表現記憶體用量穩定視 MPM 設定而定
靜態檔案效率高正常
目錄層級設定不支援支援 .htaccess
模組載入多需編譯時決定可動態載入
設定語法簡潔、階層式指令式、較冗長

最實際的差別是 .htaccess。 Apache 允許在各目錄放置設定檔,不需重載服務即可生效;Nginx 沒有這個機制,所有設定都要寫在主設定中並重載。

.htaccess 的取捨

優點

  • 不需要主機管理權限就能調整轉址與存取控制
  • 共享主機環境下,使用者可自行設定
  • 許多開源套件預設附帶 .htaccess

缺點

  • 每次請求都要逐層讀取目錄中的 .htaccess,有效能成本
  • 設定分散,不易追蹤
  • 寫錯可能造成整站 500 錯誤

如果有主機的完整控制權,Apache 也建議把規則寫進 vhost 設定並關閉 AllowOverride,可減少檔案系統的查找。

常見的三種部署方式

一、純 Nginx + PHP-FPM

目前常見的組合。Nginx 處理連線與靜態檔案,PHP 交給 FPM 處理。

  • 優點——資源效率好、設定集中
  • 注意——原本依賴 .htaccess 的套件需改寫規則

二、純 Apache + mod_php 或 PHP-FPM

相容性最好,套件的預設設定通常可直接使用。

  • 建議搭配 event MPM 與 PHP-FPM,而非傳統的 prefork + mod_php

三、Nginx 反向代理 Apache

Nginx 在前端處理連線與靜態檔案,動態請求轉給後端的 Apache。

  • 優點——保留 .htaccess 相容性,同時取得前端的連線處理效率
  • 注意——需正確傳遞真實來源位址,否則後端記錄到的都是代理的位址

反向代理時的來源位址

# Nginx 端
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header Host $host;

後端 Apache 需啟用 mod_remoteip 並設定信任的代理來源,否則存取紀錄與應用程式取得的來源位址會全部是代理伺服器。

怎麼選

  • 新建、且有完整控制權——Nginx + PHP-FPM
  • 既有系統依賴 .htaccess,且不想改寫——Apache,或 Nginx 反代 Apache
  • 共享主機——通常沒得選,依主機商提供的環境
  • 需要動態載入特定模組——Apache 較有彈性

就一般企業網站的流量規模而言,兩者的效能差異通常不是瓶頸——真正的瓶頸多半在應用層與資料庫。效能問題的排查順序見網站慢的常見原因

設定檔的位置與結構

Nginx

/etc/nginx/nginx.conf          # 主設定
/etc/nginx/conf.d/*.conf       # 常見的分割位置
/etc/nginx/sites-available/    # Debian 系
/etc/nginx/sites-enabled/      # 以符號連結啟用

Apache

/etc/apache2/apache2.conf      # Debian 系主設定
/etc/httpd/conf/httpd.conf     # RHEL 系主設定
/etc/apache2/sites-available/  # 站台設定
/etc/apache2/mods-available/   # 模組設定

路徑因發行版而異,可用 nginx -tapachectl -S 確認實際載入的設定檔。

修改設定的標準流程

  1. 備份原設定檔
  2. 修改
  3. 測試語法——Nginx 用 nginx -t,Apache 用 apachectl configtest
  4. 重載而非重啟——systemctl reload nginxapachectl graceful,可避免中斷既有連線
  5. 驗證實際效果

第三步不要省略。 語法錯誤時直接重啟會導致服務無法啟動,網站整個下線。

本文的設定範例以常見的環境為例,實際的路徑、模組名稱與指令可能因作業系統、版本與安裝方式而異。套用前請先在測試環境驗證,並確實備份原設定檔。

發表於2026-08-05   更新於2026-08-20
免費諮詢 · 1 個工作天內回覆

準備好讓網站 開始幫你帶生意了嗎?

不論是要做新網站、救舊網站,還是只想先聊聊方向——先諮詢,不用先付錢,我們照實給你建議。

1 個工作天回覆免費諮詢與報價費用白紙黑字26 年找得到人
免費諮詢
免費諮詢 LINE諮詢 03-4020420 臉書傳訊
免費諮詢 LINE諮詢 03-4020420 臉書傳訊
免費諮詢
免費諮詢 LINE諮詢 03-4020420 臉書傳訊
免費諮詢 LINE諮詢 03-4020420 臉書傳訊