Nginx RPM包安装与配置全流程指南

一、环境准备与前置检查

1.1 权限要求

Nginx安装需要管理员权限,建议通过以下两种方式获取:

  • 直接使用root用户登录系统
  • 普通用户通过sudo命令提权(需提前配置sudo权限)

1.2 依赖检查

确认系统已安装基础依赖包:

  1. yum install -y pcre-devel zlib-devel openssl-devel

这些依赖分别提供正则表达式支持、压缩功能及SSL加密能力,是Nginx核心功能的基础。

1.3 文件传输

将RPM包传输至服务器时,推荐使用以下安全方式:

  • SCP命令scp /本地路径/nginx.rpm root@服务器IP:/目标路径/
  • SFTP工具:通过图形化工具上传文件
  • 内网传输:对于物理服务器,可使用U盘通过lsblk确认设备后挂载传输

建议将安装包存放在/opt/software/目录下,便于统一管理。

二、RPM包安装详解

2.1 安装命令解析

执行标准安装命令:

  1. rpm -ivh nginx-*.rpm

参数说明:

  • -i:安装模式
  • -v:显示详细过程
  • -h:输出进度哈希符

若需强制覆盖已安装版本(谨慎使用):

  1. rpm -ivh --replacefiles nginx-*.rpm

2.2 安装日志分析

安装过程会输出关键信息,需重点关注:

  1. Preparing... ######################### [100%]
  2. Updating / installing...
  3. 1:nginx-1.16.1-2.p01.ky10.sw_64 ######################### [100%]

若出现依赖错误,可通过yum localinstall自动解决:

  1. yum localinstall nginx-*.rpm

三、安装验证与路径检查

3.1 版本确认

使用以下命令验证安装:

  1. nginx -v # 显示编译版本
  2. rpm -q nginx # 显示RPM包版本

3.2 文件清单

通过rpm -ql查看所有安装文件:

  1. rpm -ql nginx | grep -E 'conf|sbin|log'

典型输出:

  1. /etc/nginx/nginx.conf
  2. /usr/sbin/nginx
  3. /var/log/nginx/

3.3 配置文件结构

主配置文件采用模块化设计:

  1. /etc/nginx/
  2. ├── nginx.conf # 主配置文件
  3. ├── conf.d/ # 扩展配置目录
  4. ├── mime.types # MIME类型定义
  5. └── sites-enabled/ # 虚拟主机配置(需手动创建)

四、服务管理与启动

4.1 系统服务控制

使用systemd管理服务:

  1. systemctl start nginx # 启动服务
  2. systemctl stop nginx # 停止服务
  3. systemctl restart nginx # 重启服务
  4. systemctl status nginx # 查看状态

4.2 开机自启配置

  1. systemctl enable nginx # 设置开机启动
  2. systemctl is-enabled nginx # 验证自启状态

4.3 日志监控

实时查看访问日志:

  1. tail -f /var/log/nginx/access.log

五、功能测试与故障排查

5.1 基础测试

执行以下命令验证服务:

  1. curl -I http://localhost

正常响应应包含:

  1. HTTP/1.1 200 OK
  2. Server: nginx/1.16.1

5.2 端口监听检查

  1. netstat -tulnp | grep nginx
  2. # 或使用ss命令(更现代)
  3. ss -tulnp | grep nginx

5.3 防火墙配置

开放HTTP/HTTPS端口:

  1. firewall-cmd --zone=public --add-service=http --permanent
  2. firewall-cmd --zone=public --add-service=https --permanent
  3. firewall-cmd --reload

六、生产环境优化建议

6.1 性能调优

nginx.conf中调整以下参数:

  1. worker_processes auto; # 自动匹配CPU核心数
  2. worker_rlimit_nofile 65535; # 增大文件描述符限制
  3. events {
  4. worker_connections 4096; # 每个worker最大连接数
  5. }

6.2 安全加固

  • 隐藏版本号:
    1. server_tokens off;
  • 限制访问IP:
    1. allow 192.168.1.0/24;
    2. deny all;

6.3 日志轮转

配置logrotate实现日志自动切割:

  1. /var/log/nginx/*.log {
  2. daily
  3. missingok
  4. rotate 14
  5. compress
  6. delaycompress
  7. notifempty
  8. create 0640 www-data adm
  9. sharedscripts
  10. postrotate
  11. [ -f /var/run/nginx.pid ] && kill -USR1 `cat /var/run/nginx.pid`
  12. endscript
  13. }

七、常见问题解决方案

7.1 端口冲突

错误现象:

  1. nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)

解决方法:

  1. netstat -tulnp | grep :80 # 查找占用进程
  2. kill -9 PID # 终止冲突进程

7.2 配置文件错误

使用测试命令验证配置:

  1. nginx -t

典型错误处理:

  1. nginx: [emerg] unknown directive "xxx" in /etc/nginx/nginx.conf:10

需检查第10行的语法错误。

7.3 性能瓶颈

通过stap工具进行动态追踪:

  1. stap -ve 'probe syscall.open { printf("%s %s\n", execname(), filename) }'

分析高频文件访问情况。

本文通过系统化的步骤讲解,帮助读者完成从环境准备到生产部署的全流程操作。建议在实际部署前,先在测试环境验证所有配置,并建立完整的备份恢复机制。对于高并发场景,可考虑结合负载均衡和缓存技术进一步提升性能。