Windows XP Windows 7 Windows 2003 Windows Vista Windows 綜合教學 Linux 系統教學
Windows 10 Windows 8 Windows 2008 Windows NT Windows Server 電腦軟體教學
您现在的位置: Windows教程網 >> Windows教程 >  >> 電腦軟體教學 >> 伺服器技術 >> 伺服器綜合

Nginx + PHP 高效能 Web 伺服器架設完整指南

編輯:伺服器綜合

Nginx(發音為 "engine x")是一款高效能的 HTTP 與反向代理伺服器,同時也支援 IMAP/POP3/SMTP 郵件代理功能。由 Igor Sysoev 為俄羅斯第二大門戶網站 Rambler.ru 開發,並以類 BSD 授權條款釋出原始碼。儘管早期屬於測試版本,Nginx 憑藉其穩定性、豐富功能、範例配置檔案及極低系統資源消耗,迅速在業界建立聲譽。

本文架構概述

本文記錄 W3CGROUP 成功部署 Nginx + PHP Web 伺服器的完整流程,涵蓋多域名多站點配置,並有效避免 502 Bad Gateway 錯誤。測試環境基於 CentOS 4.7(Linux 2.6.9),軟體版本包含 Nginx 0.6.35、PHP 5.2.9(含 FPM 补丁)、MySQL 5.1.34 及相關依賴庫。

軟體準備與下載

安裝步驟詳解

一、編譯安裝 PHP 所需支援庫

依序安裝 libiconv、libmcrypt、mhash、mcrypt,並建立必要的符號連結至 /usr/lib,確保 PHP 編譯時能正確找到庫檔案。

二、編譯安裝 MySQL 5.1.34

建立 mysql 用戶與群組,採用 --prefix=/usr/local/webserver/mysql 等參數編譯安裝,啟用 InnoDB、SSL、大表支援等企業級特性。安裝完成後調整目錄權限。

三、編譯安裝 PHP(FastCGI 模式)

套用 FPM 补丁後,使用豐富的 ./configure 參數編譯,啟用 FastCGI、FPM、多字節字串、GD 圖形庫、OpenSSL、mcrypt、mhash、LDAP、Sockets 等模組。編譯時加入 ZEND_EXTRA_LIBS='-liconv' 解決圖示庫連結問題。

四、配置 php-fpm.conf

採用 XML 格式配置檔,設定全域選項(PID 檔案、錯誤日誌、日誌等級、緊急重啟閾值等)與工作池參數(監聽 127.0.0.1:9000、靜態進程管理、最大子進程 128、請求終止超時、慢日誌、資源限制、允許客戶端 IP 等)。

五、建立 www 用戶與群組

groupadd www、useradd -g www www,供 Nginx 與 PHP-FPM 以低權限運行。

六、編譯安裝 Nginx

預設安裝至 /usr/local/nginx,或指定 --prefix=/usr/local/webserver/nginx --user=www --group=www --with-http_stub_status_module --with-http_ssl_module 等參數編譯安裝。

七、建立 fcgi.conf

定義 FastCGI 參數對應(SCRIPT_FILENAME、REQUEST_URI、SERVER_NAME 等),並設定 REDIRECT_STATUS 200 以相容 PHP 的 --enable-force-cgi-redirect 編譯選項。

八、編輯 nginx.conf 核心配置

  • 主配置:worker_processes 8、epoll 事件模型、worker_connections 51200、開啟 sendfile、tcp_nopush、gzip 壓縮(支援 text/plain、application/x-javascript、text/css、application/xml)
  • FastCGI 參數:連線/傳送/讀取超時 300 秒、緩衝區大小 64k/128k
  • 多站點配置範例:兩個 server 區塊分別對應 www.v-ec.com 與 www.w3cgroup.com,根目錄置於 Nginx html 目錄下,PHP 請求轉發至 127.0.0.1:9000,靜態資源設定快取策略(圖片 30 天、JS/CSS 6 小時),並啟用自訂 access_log 格式

九、設定開機自動啟動

編輯 /etc/rc.local,加入 ulimit -SHn 51200、啟動 php-fpm 與 nginx。

十、優化 Linux 核心參數

修改 /etc/sysctl.conf,調整 TCP 連線回收、重用、SYN Cookie 等參數,執行 /sbin/sysctl -p 立即生效。

服務管理與平滑重啟

  • Nginx 平滑重啟:ps aux | grep nginx 找到 master PID,執行 kill -HUP <PID>
  • PHP-FPM 管理:/usr/local/webserver/php/sbin/php-fpm restart,支援 start/stop/quit/reload/logrotate 等指令

完成上述步驟並重啟系統後,即可擁有一套高效能、多站點支援的 Nginx + PHP Web 伺服器環境。本文為實測總結,歡迎轉載註明出處。

Copyright © Windows教程網 All Rights Reserved