CentOS 下 Nginx 核心文件、目錄與命令詳解
Nginx 是一款高性能的 Web 服務器和反向代理工具,廣泛應用于生產環境。本文將以 CentOS 7/8 為例,詳細介紹 Nginx 的關鍵文件、目錄結構及常用命令,幫助用戶快速掌握其配置與管理。
目錄結構
在這里插入圖片描述
1. 安裝目錄與配置文件
安裝路徑
Nginx 默認通過 yum
安裝到以下路徑:
/usr/sbin/nginx # Nginx 可執行文件
/etc/nginx/ # 主配置目錄
/usr/share/nginx/html/ # 默認網站根目錄(存放靜態文件)
/etc/nginx/nginx.conf
Nginx 主配置文件,定義全局參數(如工作進程數、日志路徑等)。 文件是 NGINX 守護進程使用的默認配置入口點。此配置文 件能夠為 worker 進程、調優、日志記錄、動態模塊的加載以及對其他 NGINX 配 置文件的引用設置全局設置。在默認配置中,/etc/nginx/nginx.conf 文件包括頂層 http 代碼塊,也就是上下文,它提供了下述目錄中的所有配置文件。
/etc/nginx/conf.d/
存放用戶自定義的服務器塊(Server Block)配置,通常以 .conf
結尾。
/etc/nginx/modules/
動態模塊加載目錄(CentOS 默認不使用 sites-available/enabled
結構)。
/var/log/nginx/
/var/log/nginx/ 目錄是 NGINX 的默認日志位置,您可以從中找到一個 access.log 文件和 error.log 文件。默認情況下,訪問日志包含 NGINX 服務的每條請求的條 目。如果啟用了 debug 模塊,則錯誤日志文件包含錯誤事件和調試信息。
默認站點配置
/etc/nginx/conf.d/default.conf # 默認的服務器塊配置模板
2. 日志文件
訪問與錯誤日志
/var/log/nginx/access.log # 記錄所有客戶端請求
/var/log/nginx/error.log # 記錄 Nginx 運行時錯誤和警告
日志輪轉配置
/etc/logrotate.d/nginx # 日志自動切割策略
3. 緩存與臨時文件
代理緩存
/var/cache/nginx/ # 存放代理緩存和 FastCGI 緩存
臨時文件
/var/lib/nginx/ # 存放臨時文件和狀態數據
4. SSL/TLS 證書
- 默認證書路徑
/etc/pki/tls/certs/ # 系統默認 SSL 證書存儲位置
/etc/letsencrypt/live/ # Let's Encrypt 證書路徑(使用 Certbot 時)
關鍵命令
1. 安裝與更新
# 安裝 Nginx(需啟用 EPEL 倉庫)
sudo yum install epel-release
sudo yum install nginx
# 更新 Nginx
sudo yum update nginx
2. 服務管理
# 啟動/停止/重啟/重載
sudo systemctl start nginx
sudo systemctl stop nginx
sudo systemctl restart nginx # 強制重啟(中斷連接)
sudo systemctl reload nginx # 平滑重載配置(推薦)
# 設置開機自啟
sudo systemctl enable nginx
# 查看服務狀態
sudo systemctl status nginx
3. 配置檢查與調試
# 檢查配置文件語法
sudo nginx -t
# 查看 Nginx 版本及編譯參數
nginx -V
# 查看運行中的配置(需 root 權限)
sudo nginx -T
4. 日志管理
# 實時監控訪問日志
tail -f /var/log/nginx/access.log
# 查看最近 100 條錯誤日志
tail -n 100 /var/log/nginx/error.log
# 清空日志文件(謹慎操作)
cat /dev/null > /var/log/nginx/access.log
5. 進程管理
# 查看 Nginx 進程
ps aux | grep nginx
# 強制終止所有 Nginx 進程
sudo pkill nginx
配置示例
1. 添加新站點
- 在
/etc/nginx/conf.d/
創建配置文件(如 my-site.conf
):server {
listen 80;
server_name example.com;
root /usr/share/nginx/my-site;
index index.html;
}
- 檢查配置并重載:
sudo nginx -t && sudo systemctl reload nginx
2. 配置 HTTPS
- 使用 Certbot 自動生成證書:
sudo certbot --nginx -d example.com
- 證書續期測試:
sudo certbot renew --dry-run
3. 反向代理配置
在 /etc/nginx/conf.d/proxy.conf
中添加:
server {
listen 80;
server_name api.example.com;
location / {
proxy_pass http://localhost:3000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
}
注意事項
防火墻配置
CentOS 默認使用 firewalld
,需開放 HTTP/HTTPS 端口:
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https
sudo firewall-cmd --reload
SELinux 問題
若遇到權限錯誤,可臨時禁用 SELinux 或調整策略:
sudo setenforce 0 # 臨時禁用
sudo semanage port -a -t http_port_t -p tcp 8080 # 允許自定義端口
默認配置清理
建議禁用默認站點:
sudo rm /etc/nginx/conf.d/default.conf
總結
通過掌握 CentOS 下 Nginx 的核心文件、目錄和命令,您可以高效地部署和管理 Web 服務。建議結合 nginx -t
檢查配置后再重載服務,避免因語法錯誤導致服務中斷。
閱讀原文:原文鏈接
該文章在 2025/7/1 23:24:17 編輯過