CentOS 7.9环境下Nginx 1.24.0完整部署指南

一、环境准备与软件获取

1.1 系统环境确认

在开始部署前,需确保系统满足以下条件:

  • CentOS 7.9 64位系统
  • 至少2GB可用内存(生产环境建议4GB+)
  • 10GB以上磁盘空间(包含依赖库和日志存储)
  • root用户或具有sudo权限的普通用户

1.2 获取Nginx源码包

推荐从官方渠道获取稳定版源码:

  1. 访问Nginx官方下载页面(通过搜索引擎查找”nginx download”)
  2. 选择”Stable version”标签页
  3. 下载nginx-1.24.0.tar.gz源码包
  4. 使用wget命令直接下载(示例):
    1. wget https://nginx.org/download/nginx-1.24.0.tar.gz

二、依赖库安装与验证

2.1 基础编译工具链

安装GCC编译器及开发工具:

  1. yum groupinstall "Development Tools" -y
  2. yum install gcc gcc-c++ make -y

验证安装:

  1. gcc --version
  2. make --version

2.2 核心依赖库

PCRE库(正则支持)

  1. yum install pcre pcre-devel -y

验证安装:

  1. rpm -q pcre pcre-devel

Zlib库(压缩支持)

  1. yum install zlib zlib-devel -y

验证安装:

  1. find /usr -name "zlib.h" 2>/dev/null

OpenSSL库(SSL支持)

  1. yum install openssl openssl-devel -y

验证安装:

  1. openssl version

2.3 可选依赖库

根据业务需求可安装以下扩展:

  • libxslt-devel:支持XSLT转换
  • gd-devel:支持图片处理
  • GeoIP-devel:支持IP地理位置

三、编译安装Nginx

3.1 创建专用用户

出于安全考虑,建议使用非root用户运行:

  1. groupadd -r nginx
  2. useradd -r -g nginx -s /sbin/nologin nginx

3.2 源码编译配置

解压源码包并进入目录:

  1. tar zxvf nginx-1.24.0.tar.gz
  2. cd nginx-1.24.0

典型生产环境配置示例:

  1. ./configure \
  2. --prefix=/usr/local/nginx \
  3. --user=nginx \
  4. --group=nginx \
  5. --with-http_ssl_module \
  6. --with-http_v2_module \
  7. --with-http_realip_module \
  8. --with-http_gzip_static_module \
  9. --with-stream \
  10. --with-threads

关键配置参数说明:
| 参数 | 作用 |
|———|———|
| --prefix | 指定安装目录 |
| --with-http_ssl_module | 启用HTTPS支持 |
| --with-stream | 支持TCP/UDP代理 |
| --with-threads | 启用线程池 |

3.3 编译安装过程

  1. make -j$(nproc) # 使用全部CPU核心加速编译
  2. make install

安装完成后验证文件结构:

  1. ls -l /usr/local/nginx/

四、服务管理与配置

4.1 基本控制命令

启动服务:

  1. /usr/local/nginx/sbin/nginx

优雅重启:

  1. /usr/local/nginx/sbin/nginx -s reload

停止服务:

  1. /usr/local/nginx/sbin/nginx -s stop

4.2 配置文件结构

主配置文件:/usr/local/nginx/conf/nginx.conf
典型目录结构:

  1. /usr/local/nginx/
  2. ├── conf/ # 配置文件目录
  3. ├── html/ # 默认站点目录
  4. ├── logs/ # 日志目录
  5. ├── sbin/ # 可执行文件
  6. └── modules/ # 动态模块目录

4.3 开机自启动配置

创建systemd服务文件:

  1. cat > /etc/systemd/system/nginx.service <<EOF
  2. [Unit]
  3. Description=nginx - high performance web server
  4. After=network.target
  5. [Service]
  6. Type=forking
  7. PIDFile=/usr/local/nginx/logs/nginx.pid
  8. ExecStart=/usr/local/nginx/sbin/nginx
  9. ExecReload=/usr/local/nginx/sbin/nginx -s reload
  10. ExecStop=/usr/local/nginx/sbin/nginx -s stop
  11. PrivateTmp=true
  12. [Install]
  13. WantedBy=multi-user.target
  14. EOF

启用服务:

  1. systemctl daemon-reload
  2. systemctl enable nginx
  3. systemctl start nginx

五、生产环境优化建议

5.1 性能调优参数

在nginx.conf的http块中添加:

  1. worker_processes auto;
  2. worker_rlimit_nofile 65535;
  3. events {
  4. use epoll;
  5. worker_connections 4096;
  6. multi_accept on;
  7. }

5.2 安全加固建议

  1. 隐藏版本信息:

    1. server_tokens off;
  2. 限制访问方法:

    1. if (\$request_method !~ ^(GET|HEAD|POST)\$ ) {
    2. return 444;
    3. }
  3. 禁用危险目录遍历:

    1. autoindex off;

5.3 日志管理方案

配置日志轮转:

  1. cat > /etc/logrotate.d/nginx <<EOF
  2. /usr/local/nginx/logs/*.log {
  3. daily
  4. missingok
  5. rotate 14
  6. compress
  7. delaycompress
  8. notifempty
  9. create 0640 nginx adm
  10. sharedscripts
  11. postrotate
  12. if [ -f /usr/local/nginx/logs/nginx.pid ]; then
  13. kill -USR1 \`cat /usr/local/nginx/logs/nginx.pid\`
  14. fi
  15. endscript
  16. }
  17. EOF

六、常见问题排查

6.1 端口冲突解决

检查80端口占用:

  1. netstat -tulnp | grep :80

6.2 配置文件语法检查

  1. /usr/local/nginx/sbin/nginx -t

6.3 模块加载问题

查看已加载模块:

  1. /usr/local/nginx/sbin/nginx -V 2>&1 | grep -o with-.*

七、扩展功能实现

7.1 HTTPS配置示例

  1. server {
  2. listen 443 ssl;
  3. server_name example.com;
  4. ssl_certificate /path/to/cert.pem;
  5. ssl_certificate_key /path/to/key.pem;
  6. ssl_protocols TLSv1.2 TLSv1.3;
  7. ssl_ciphers HIGH:!aNULL:!MD5;
  8. location / {
  9. root html;
  10. index index.html index.htm;
  11. }
  12. }

7.2 负载均衡配置

  1. upstream backend {
  2. server 192.168.1.10:8080 weight=3;
  3. server 192.168.1.11:8080;
  4. server 192.168.1.12:8080 backup;
  5. }
  6. server {
  7. listen 80;
  8. location / {
  9. proxy_pass http://backend;
  10. }
  11. }

通过以上步骤,您已完成Nginx 1.24.0在CentOS 7.9上的完整部署。建议定期检查官方安全公告并及时升级版本,同时根据实际业务需求调整配置参数。对于高并发场景,可考虑结合Linux内核参数调优和连接池技术进一步提升性能。