一、環境準備與依賴安裝
1.1 系統要求
- 操作系統:支持主流 Linux 發行版(Ubuntu 20.04+/CentOS 7+/Debian 10+)
- 硬件配置:內存 ≥512MB,磁盤 ≥10GB 可用空間(建議使用 SSD)
- 網絡要求:開放 80/443 端口(可通過
firewall-cmd --list-ports
驗證)
1.2 安裝基礎依賴
# Ubuntu/Debian
sudo apt update && sudo apt install -y build-essential libpcre3 libpcre3-dev zlib1g-dev libssl-dev# CentOS/RHEL
sudo yum groupinstall "Development Tools" -y
sudo yum install -y pcre-devel zlib-devel openssl-devel
說明:
build-essential
包含 GCC 編譯工具鏈pcre
支持正則表達式重寫規則zlib
提供 HTTP 壓縮功能openssl
啟用 HTTPS 支持
二、三種主流安裝方式
2.1 包管理器安裝(推薦新手)
# Ubuntu/Debian
sudo apt install nginx -y
sudo systemctl enable --now nginx# CentOS/RHEL
sudo yum install epel-release -y
sudo yum install nginx -y
sudo systemctl start nginx
優勢:
- 自動處理依賴關系
- 默認集成 systemd 服務管理
- 配置文件路徑標準化(
/etc/nginx/nginx.conf
)
2.2 源碼編譯安裝(定制化推薦)
# 下載最新穩定版(以 1.25.3 為例)
wget https://nginx.org/download/nginx-1.25.3.tar.gz
tar zxvf nginx-1.25.3.tar.gz
cd nginx-1.25.3# 配置編譯參數
./configure \--prefix=/usr/local/nginx \--with-http_ssl_module \--with-http_v2_module \--with-threads \--with-stream# 編譯安裝
make -j $(nproc) && sudo make install# 創建系統服務
sudo nano /etc/systemd/system/nginx.service
服務文件內容:
[Unit]
Description=The NGINX HTTP server
After=network.target[Service]
Type=forking
ExecStart=/usr/local/nginx/sbin/nginx
ExecReload=/usr/local/nginx/sbin/nginx -s reload
PIDFile=/usr/local/nginx/logs/nginx.pid[Install]
WantedBy=multi-user.target
關鍵參數說明:
--with-threads
啟用線程池提升并發性能--with-stream
支持 TCP/UDP 代理
2.3 Docker 容器化部署
# 拉取官方鏡像
docker pull nginx:1.25-alpine# 啟動容器(映射配置與靜態資源)
docker run -d \--name nginx \-p 80:80 \-p 443:443 \-v /path/to/conf:/etc/nginx/conf.d \-v /path/to/html:/usr/share/nginx/html \nginx:1.25-alpine
優勢:
- 快速部署與版本切換
- 配置與數據持久化存儲
- 支持 Kubernetes 集群化擴展
三、核心配置優化
3.1 安全加固
# /etc/nginx/nginx.conf
server_tokens off; # 隱藏版本信息
client_max_body_size 10m; # 限制上傳文件大小
limit_conn_zone $binary_remote_addr zone=addr:10m; # 防止 DDoS 攻擊
add_header X-Content-Type-Options "nosniff"; # MIME 類型安全
3.2 性能優化
events {worker_connections 10240;multi_accept on;use epoll; # Linux 高效事件模型
}http {gzip on;gzip_types text/plain text/css application/json application/javascript;open_file_cache max=10000 inactive=30s; # 文件緩存優化
}
調優效果:
- 靜態文件吞吐量提升 3-5 倍
- 內存占用降低 20%
四、驗證與測試
4.1 基礎驗證
# 檢查版本與模塊
nginx -V# 查看服務狀態
systemctl status nginx# 測試默認頁面
curl -I 127.0.0.1
預期輸出:
HTTP/1.1 200 OK
Server: nginx
Date: Wed, 24 Apr 2025 08:00:00 GMT
Content-Type: text/html
4.2 壓力測試
# 使用 wrk 進行基準測試
wrk -t12 -c400 -d30s http://localhost
典型結果:
Requests/sec: 35678.25
Transfer/sec: 4.21GB
五、常見問題排查
5.1 端口沖突
# 檢查 80/443 端口占用
sudo lsof -i :80# 修改監聽端口
sed -i 's/listen 80;/listen 8080;/g' /etc/nginx/conf.d/default.conf
5.2 權限問題
# 修復 SELinux 限制
sudo chcon -Rt httpd_sys_content_t /var/www/html/# 調整文件權限
sudo chown -R nginx:nginx /var/log/nginx
六、進階學習路徑
-
反向代理配置:
location / {proxy_pass http://backend;proxy_set_header Host $host;proxy_set_header X-Real-IP $remote_addr; }
-
SSL 證書部署:
# 使用 Certbot 自動化配置 sudo certbot --nginx -d example.com
-
負載均衡策略:
upstream backend {least_conn;server 192.168.1.101:8080 weight=3;server 192.168.1.102:8080; }
參考資料:
- Windows 基礎安裝流程
- CentOS 編譯安裝實踐
- Linux 環境優化方案
- 反向代理配置案例
- 多安裝方式對比
- 源碼編譯詳解
- 生產環境最佳實踐
通過本指南,您已掌握從基礎安裝到生產級部署的全套技能。建議結合具體業務場景選擇安裝方式,并持續關注 Nginx 社區的動態更新。