CentOS 下 Nginx 核心文件、目录与命令详解
|
admin
2025年6月28日 23:38
本文热度 38
|
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 编辑过