一、环境准备与软件获取
1.1 系统环境确认
在开始部署前,需确保系统满足以下条件:
- CentOS 7.9 64位系统
- 至少2GB可用内存(生产环境建议4GB+)
- 10GB以上磁盘空间(包含依赖库和日志存储)
- root用户或具有sudo权限的普通用户
1.2 获取Nginx源码包
推荐从官方渠道获取稳定版源码:
- 访问Nginx官方下载页面(通过搜索引擎查找”nginx download”)
- 选择”Stable version”标签页
- 下载
nginx-1.24.0.tar.gz源码包 - 使用
wget命令直接下载(示例):wget https://nginx.org/download/nginx-1.24.0.tar.gz
二、依赖库安装与验证
2.1 基础编译工具链
安装GCC编译器及开发工具:
yum groupinstall "Development Tools" -yyum install gcc gcc-c++ make -y
验证安装:
gcc --versionmake --version
2.2 核心依赖库
PCRE库(正则支持)
yum install pcre pcre-devel -y
验证安装:
rpm -q pcre pcre-devel
Zlib库(压缩支持)
yum install zlib zlib-devel -y
验证安装:
find /usr -name "zlib.h" 2>/dev/null
OpenSSL库(SSL支持)
yum install openssl openssl-devel -y
验证安装:
openssl version
2.3 可选依赖库
根据业务需求可安装以下扩展:
libxslt-devel:支持XSLT转换gd-devel:支持图片处理GeoIP-devel:支持IP地理位置
三、编译安装Nginx
3.1 创建专用用户
出于安全考虑,建议使用非root用户运行:
groupadd -r nginxuseradd -r -g nginx -s /sbin/nologin nginx
3.2 源码编译配置
解压源码包并进入目录:
tar zxvf nginx-1.24.0.tar.gzcd nginx-1.24.0
典型生产环境配置示例:
./configure \--prefix=/usr/local/nginx \--user=nginx \--group=nginx \--with-http_ssl_module \--with-http_v2_module \--with-http_realip_module \--with-http_gzip_static_module \--with-stream \--with-threads
关键配置参数说明:
| 参数 | 作用 |
|———|———|
| --prefix | 指定安装目录 |
| --with-http_ssl_module | 启用HTTPS支持 |
| --with-stream | 支持TCP/UDP代理 |
| --with-threads | 启用线程池 |
3.3 编译安装过程
make -j$(nproc) # 使用全部CPU核心加速编译make install
安装完成后验证文件结构:
ls -l /usr/local/nginx/
四、服务管理与配置
4.1 基本控制命令
启动服务:
/usr/local/nginx/sbin/nginx
优雅重启:
/usr/local/nginx/sbin/nginx -s reload
停止服务:
/usr/local/nginx/sbin/nginx -s stop
4.2 配置文件结构
主配置文件:/usr/local/nginx/conf/nginx.conf
典型目录结构:
/usr/local/nginx/├── conf/ # 配置文件目录├── html/ # 默认站点目录├── logs/ # 日志目录├── sbin/ # 可执行文件└── modules/ # 动态模块目录
4.3 开机自启动配置
创建systemd服务文件:
cat > /etc/systemd/system/nginx.service <<EOF[Unit]Description=nginx - high performance web serverAfter=network.target[Service]Type=forkingPIDFile=/usr/local/nginx/logs/nginx.pidExecStart=/usr/local/nginx/sbin/nginxExecReload=/usr/local/nginx/sbin/nginx -s reloadExecStop=/usr/local/nginx/sbin/nginx -s stopPrivateTmp=true[Install]WantedBy=multi-user.targetEOF
启用服务:
systemctl daemon-reloadsystemctl enable nginxsystemctl start nginx
五、生产环境优化建议
5.1 性能调优参数
在nginx.conf的http块中添加:
worker_processes auto;worker_rlimit_nofile 65535;events {use epoll;worker_connections 4096;multi_accept on;}
5.2 安全加固建议
-
隐藏版本信息:
server_tokens off;
-
限制访问方法:
if (\$request_method !~ ^(GET|HEAD|POST)\$ ) {return 444;}
-
禁用危险目录遍历:
autoindex off;
5.3 日志管理方案
配置日志轮转:
cat > /etc/logrotate.d/nginx <<EOF/usr/local/nginx/logs/*.log {dailymissingokrotate 14compressdelaycompressnotifemptycreate 0640 nginx admsharedscriptspostrotateif [ -f /usr/local/nginx/logs/nginx.pid ]; thenkill -USR1 \`cat /usr/local/nginx/logs/nginx.pid\`fiendscript}EOF
六、常见问题排查
6.1 端口冲突解决
检查80端口占用:
netstat -tulnp | grep :80
6.2 配置文件语法检查
/usr/local/nginx/sbin/nginx -t
6.3 模块加载问题
查看已加载模块:
/usr/local/nginx/sbin/nginx -V 2>&1 | grep -o with-.*
七、扩展功能实现
7.1 HTTPS配置示例
server {listen 443 ssl;server_name example.com;ssl_certificate /path/to/cert.pem;ssl_certificate_key /path/to/key.pem;ssl_protocols TLSv1.2 TLSv1.3;ssl_ciphers HIGH:!aNULL:!MD5;location / {root html;index index.html index.htm;}}
7.2 负载均衡配置
upstream backend {server 192.168.1.10:8080 weight=3;server 192.168.1.11:8080;server 192.168.1.12:8080 backup;}server {listen 80;location / {proxy_pass http://backend;}}
通过以上步骤,您已完成Nginx 1.24.0在CentOS 7.9上的完整部署。建议定期检查官方安全公告并及时升级版本,同时根据实际业务需求调整配置参数。对于高并发场景,可考虑结合Linux内核参数调优和连接池技术进一步提升性能。