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)通過(guò) 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)配置入口點(diǎn)。此配置文 件能夠?yàn)?worker 進(jìn)程、調(diào)優(yōu)、日志記錄、動(dòng)態(tài)模塊的加載以及對(duì)其他 NGINX 配 置文件的引用設(shè)置全局設(shè)置。在默認(rèn)配置中,/etc/nginx/nginx.conf 文件包括頂層 http 代碼塊,也就是上下文,它提供了下述目錄中的所有配置文件。
/etc/nginx/conf.d/
存放用戶自定義的服務(wù)器塊(Server Block)配置,通常以 .conf
結(jié)尾。
/etc/nginx/modules/
動(dòng)態(tài)模塊加載目錄(CentOS 默認(rèn)不使用 sites-available/enabled
結(jié)構(gòu))。
/var/log/nginx/
/var/log/nginx/ 目錄是 NGINX 的默認(rèn)日志位置,您可以從中找到一個(gè) access.log 文件和 error.log 文件。默認(rèn)情況下,訪問(wèn)日志包含 NGINX 服務(wù)的每條請(qǐng)求的條 目。如果啟用了 debug 模塊,則錯(cuò)誤日志文件包含錯(cuò)誤事件和調(diào)試信息。
默認(rèn)站點(diǎn)配置
/etc/nginx/conf.d/default.conf # 默認(rèn)的服務(wù)器塊配置模板
2. 日志文件
訪問(wèn)與錯(cuò)誤日志
/var/log/nginx/access.log # 記錄所有客戶端請(qǐng)求
/var/log/nginx/error.log # 記錄 Nginx 運(yùn)行時(shí)錯(cuò)誤和警告
日志輪轉(zhuǎn)配置
/etc/logrotate.d/nginx # 日志自動(dòng)切割策略
3. 緩存與臨時(shí)文件
代理緩存
/var/cache/nginx/ # 存放代理緩存和 FastCGI 緩存
臨時(shí)文件
/var/lib/nginx/ # 存放臨時(shí)文件和狀態(tài)數(shù)據(jù)
4. SSL/TLS 證書
- 默認(rèn)證書路徑
/etc/pki/tls/certs/ # 系統(tǒng)默認(rèn) SSL 證書存儲(chǔ)位置
/etc/letsencrypt/live/ # Let's Encrypt 證書路徑(使用 Certbot 時(shí))
關(guān)鍵命令
1. 安裝與更新
# 安裝 Nginx(需啟用 EPEL 倉(cāng)庫(kù))
sudo yum install epel-release
sudo yum install nginx
# 更新 Nginx
sudo yum update nginx
2. 服務(wù)管理
# 啟動(dòng)/停止/重啟/重載
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)試
# 檢查配置文件語(yǔ)法
sudo nginx -t
# 查看 Nginx 版本及編譯參數(shù)
nginx -V
# 查看運(yùn)行中的配置(需 root 權(quán)限)
sudo nginx -T
4. 日志管理
# 實(shí)時(shí)監(jiān)控訪問(wèn)日志
tail -f /var/log/nginx/access.log
# 查看最近 100 條錯(cuò)誤日志
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. 添加新站點(diǎn)
- 在
/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 自動(dòng)生成證書:
sudo certbot --nginx -d example.com
- 證書續(xù)期測(cè)試:
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;
}
}
注意事項(xiàng)
防火墻配置
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 問(wèn)題
若遇到權(quán)限錯(cuò)誤,可臨時(shí)禁用 SELinux 或調(diào)整策略:
sudo setenforce 0 # 臨時(shí)禁用
sudo semanage port -a -t http_port_t -p tcp 8080 # 允許自定義端口
默認(rèn)配置清理
建議禁用默認(rèn)站點(diǎn):
sudo rm /etc/nginx/conf.d/default.conf
總結(jié)
通過(guò)掌握 CentOS 下 Nginx 的核心文件、目錄和命令,您可以高效地部署和管理 Web 服務(wù)。建議結(jié)合 nginx -t
檢查配置后再重載服務(wù),避免因語(yǔ)法錯(cuò)誤導(dǎo)致服務(wù)中斷。
閱讀原文:原文鏈接
該文章在 2025/7/1 23:24:17 編輯過(guò)