一、环境准备与前置检查
1.1 权限要求
Nginx安装需要管理员权限,建议通过以下两种方式获取:
- 直接使用root用户登录系统
- 普通用户通过
sudo命令提权(需提前配置sudo权限)
1.2 依赖检查
确认系统已安装基础依赖包:
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 安装命令解析
执行标准安装命令:
rpm -ivh nginx-*.rpm
参数说明:
-i:安装模式-v:显示详细过程-h:输出进度哈希符
若需强制覆盖已安装版本(谨慎使用):
rpm -ivh --replacefiles nginx-*.rpm
2.2 安装日志分析
安装过程会输出关键信息,需重点关注:
Preparing... ######################### [100%]Updating / installing...1:nginx-1.16.1-2.p01.ky10.sw_64 ######################### [100%]
若出现依赖错误,可通过yum localinstall自动解决:
yum localinstall nginx-*.rpm
三、安装验证与路径检查
3.1 版本确认
使用以下命令验证安装:
nginx -v # 显示编译版本rpm -q nginx # 显示RPM包版本
3.2 文件清单
通过rpm -ql查看所有安装文件:
rpm -ql nginx | grep -E 'conf|sbin|log'
典型输出:
/etc/nginx/nginx.conf/usr/sbin/nginx/var/log/nginx/
3.3 配置文件结构
主配置文件采用模块化设计:
/etc/nginx/├── nginx.conf # 主配置文件├── conf.d/ # 扩展配置目录├── mime.types # MIME类型定义└── sites-enabled/ # 虚拟主机配置(需手动创建)
四、服务管理与启动
4.1 系统服务控制
使用systemd管理服务:
systemctl start nginx # 启动服务systemctl stop nginx # 停止服务systemctl restart nginx # 重启服务systemctl status nginx # 查看状态
4.2 开机自启配置
systemctl enable nginx # 设置开机启动systemctl is-enabled nginx # 验证自启状态
4.3 日志监控
实时查看访问日志:
tail -f /var/log/nginx/access.log
五、功能测试与故障排查
5.1 基础测试
执行以下命令验证服务:
curl -I http://localhost
正常响应应包含:
HTTP/1.1 200 OKServer: nginx/1.16.1
5.2 端口监听检查
netstat -tulnp | grep nginx# 或使用ss命令(更现代)ss -tulnp | grep nginx
5.3 防火墙配置
开放HTTP/HTTPS端口:
firewall-cmd --zone=public --add-service=http --permanentfirewall-cmd --zone=public --add-service=https --permanentfirewall-cmd --reload
六、生产环境优化建议
6.1 性能调优
在nginx.conf中调整以下参数:
worker_processes auto; # 自动匹配CPU核心数worker_rlimit_nofile 65535; # 增大文件描述符限制events {worker_connections 4096; # 每个worker最大连接数}
6.2 安全加固
- 隐藏版本号:
server_tokens off;
- 限制访问IP:
allow 192.168.1.0/24;deny all;
6.3 日志轮转
配置logrotate实现日志自动切割:
/var/log/nginx/*.log {dailymissingokrotate 14compressdelaycompressnotifemptycreate 0640 www-data admsharedscriptspostrotate[ -f /var/run/nginx.pid ] && kill -USR1 `cat /var/run/nginx.pid`endscript}
七、常见问题解决方案
7.1 端口冲突
错误现象:
nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
解决方法:
netstat -tulnp | grep :80 # 查找占用进程kill -9 PID号 # 终止冲突进程
7.2 配置文件错误
使用测试命令验证配置:
nginx -t
典型错误处理:
nginx: [emerg] unknown directive "xxx" in /etc/nginx/nginx.conf:10
需检查第10行的语法错误。
7.3 性能瓶颈
通过stap工具进行动态追踪:
stap -ve 'probe syscall.open { printf("%s %s\n", execname(), filename) }'
分析高频文件访问情况。
本文通过系统化的步骤讲解,帮助读者完成从环境准备到生产部署的全流程操作。建议在实际部署前,先在测试环境验证所有配置,并建立完整的备份恢复机制。对于高并发场景,可考虑结合负载均衡和缓存技术进一步提升性能。