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