一、系统环境准备与规划
1.1 基础环境检查
在部署前需确认系统版本为CentOS 7.9(可通过cat /etc/redhat-release验证),建议使用全新安装的系统环境以避免版本冲突。系统需具备至少2GB内存和20GB可用磁盘空间,推荐使用LVM管理磁盘分区以方便后续扩容。
1.2 网络配置要求
确保服务器具备公网访问权限(编译安装需要下载依赖包),建议配置静态IP地址并设置DNS解析。可通过以下命令验证网络连通性:
ping -c 4 mirrors.aliyun.comcurl -I http://nginx.org
二、依赖环境构建
2.1 核心编译工具链
Nginx编译需要完整的GCC工具链支持,通过以下命令安装基础开发环境:
yum groupinstall -y "Development Tools"yum install -y pcre-devel zlib-devel openssl-devel wget
其中:
- pcre-devel:提供正则表达式支持
- zlib-devel:实现Gzip压缩功能
- openssl-devel:保障HTTPS安全通信
2.2 依赖版本验证
使用rpm -qi命令检查已安装依赖版本,建议使用以下版本组合:
- GCC ≥ 4.8.5
- OpenSSL ≥ 1.0.2
- PCRE ≥ 8.32
三、软件包获取与验证
3.1 官方源码获取
通过wget命令从主托管仓库获取稳定版源码包:
wget http://nginx.org/download/nginx-1.24.0.tar.gz
建议同时下载对应版本的SHA256校验文件进行完整性验证:
wget http://nginx.org/download/nginx-1.24.0.tar.gz.sha256sha256sum -c nginx-1.24.0.tar.gz.sha256
3.2 历史版本管理
对于生产环境,建议将下载的软件包存储在/opt/src目录并建立版本目录结构:
/opt/src/├── nginx/│ ├── 1.24.0/│ │ ├── nginx-1.24.0.tar.gz│ │ └── nginx-1.24.0.tar.gz.sha256
四、编译安装流程
4.1 源码解压与目录准备
tar zxvf nginx-1.24.0.tar.gz -C /usr/local/src/cd /usr/local/src/nginx-1.24.0
4.2 配置编译参数
根据实际需求选择配置选项,生产环境推荐配置:
./configure \--prefix=/usr/local/nginx \--with-http_ssl_module \--with-http_realip_module \--with-http_stub_status_module \--with-threads \--with-stream \--with-http_gzip_static_module
关键参数说明:
--prefix:指定安装目录--with-stream:启用TCP/UDP代理功能--with-threads:启用线程池优化
4.3 编译与安装
使用多核编译加速安装过程(假设系统为4核CPU):
make -j4 && make install
安装完成后验证文件结构:
ls -l /usr/local/nginx/# 应包含conf/ html/ logs/ sbin/等标准目录
五、服务配置与管理
5.1 系统服务集成
创建systemd服务单元文件/etc/systemd/system/nginx.service:
[Unit]Description=nginx - high performance web serverAfter=network.target[Service]Type=forkingPIDFile=/usr/local/nginx/logs/nginx.pidExecStartPre=/usr/local/nginx/sbin/nginx -tExecStart=/usr/local/nginx/sbin/nginxExecReload=/usr/local/nginx/sbin/nginx -s reloadExecStop=/usr/local/nginx/sbin/nginx -s quitPrivateTmp=true[Install]WantedBy=multi-user.target
5.2 基础配置优化
编辑主配置文件/usr/local/nginx/conf/nginx.conf,建议修改以下参数:
worker_processes auto; # 自动匹配CPU核心数worker_rlimit_nofile 65535; # 提升最大文件描述符events {use epoll;worker_connections 4096;}http {include /usr/local/nginx/conf/mime.types;default_type application/octet-stream;# 性能优化参数sendfile on;tcp_nopush on;tcp_nodelay on;keepalive_timeout 65;# 日志配置log_format main '$remote_addr - $remote_user [$time_local] "$request" ''$status $body_bytes_sent "$http_referer" ''"$http_user_agent" "$http_x_forwarded_for"';access_log /usr/local/nginx/logs/access.log main;}
六、常见问题处理
6.1 端口冲突解决
当80端口被占用时,可通过以下命令查找占用进程:
netstat -tulnp | grep :80# 或使用ss命令ss -tulnp | grep :80
解决方案包括:
- 停止冲突服务:
systemctl stop httpd - 修改Nginx监听端口
- 配置端口转发规则
6.2 编译错误排查
典型错误案例:
-
PCRE库缺失:
./configure: error: the HTTP rewrite module requires the PCRE library.
解决方案:安装pcre-devel包后重新编译
-
SSL模块缺失:
nginx: [emerg] the "ssl" parameter requires ngx_http_ssl_module
解决方案:确保配置时包含
--with-http_ssl_module参数 -
权限问题:
nginx: [alert] could not open error log file: Permission denied
解决方案:检查日志目录权限或以root用户启动服务
七、性能测试与调优
7.1 基准测试
使用ab工具进行压力测试:
ab -n 10000 -c 500 http://127.0.0.1/
关键指标分析:
- Requests per second:每秒请求数
- Time per request:平均请求耗时
- Failed requests:失败请求数量
7.2 调优建议
根据测试结果调整以下参数:
worker_processes:通常设置为CPU核心数worker_connections:根据并发量调整(建议值:worker_processes * 1024)multi_accept:高并发场景建议开启
通过以上完整流程,读者可系统掌握Nginx在CentOS 7.9环境下的部署方法,并能根据实际需求进行定制化配置。建议将安装脚本和配置文件纳入版本管理,便于后续维护和升级。对于高可用场景,可进一步研究Nginx Plus或结合Keepalived实现负载均衡集群部署。