Nginx 1.30.4 编译安装与参数调优

简介: 本文详解Nginx 1.30.4在CentOS/RHEL 10上的源码编译安装全流程:涵盖依赖安装、用户创建、模块定制、systemd服务配置、高并发调优(worker、连接、压缩、日志)、内核参数优化及安全加固,开箱即用,适配企业生产环境。(239字)

Nginx 是一款轻量级、高性能、高并发的开源Web服务器、反向代理与负载均衡软件,凭借低资源占用、高稳定性的核心优势,成为当下互联网行业主流的服务部署组件,广泛应用于各类网站及业务系统的Web服务、反向代理、负载均衡场景。其基于宽松的类BSD开源协议发布,可免费商用。本文将完整展示 Nginx 1.30.4 源码编译安装、环境配置、systemd服务管理、内核及配置高性能调优的全套流程,适配CentOS/RHEL 10系列系统,可直接落地应用于企业生产环境。

1、源码编译需要gcc编译工具、正则、加密、压缩等依赖库,先执行依赖安装命令,确保编译环境完整。

[root@localhost ~]# dnf install -y epel-release
[root@localhost ~]# dnf install -y gcc gcc-c++ make zlib zlib-devel pcre2 pcre2-devel openssl openssl-devel libtool
Last metadata expiration check: 0:25:59 ago on Wed 02 Sep 2026 10:03:21 AM CST.
Package gcc-14.4.1-3.el10.x86_64 is already installed.
Package gcc-c++-14.4.1-3.el10.x86_64 is already installed.
Package make-1:4.4.1-9.el10.x86_64 is already installed.
Package zlib-ng-compat-2.2.3-3.el10.x86_64 is already installed.
Package zlib-ng-compat-devel-2.2.3-3.el10.x86_64 is already installed.
Package pcre2-10.44-1.el10.3.x86_64 is already installed.
Package pcre2-devel-10.44-1.el10.3.x86_64 is already installed.
Package openssl-1:3.5.8-1.el10.x86_64 is already installed.
Package openssl-devel-1:3.5.8-1.el10.x86_64 is already installed.
Package libtool-2.4.7-14.el10.x86_64 is already installed.
Dependencies resolved.
Nothing to do.
Complete!

2、从Nginx官方镜像下载稳定版1.30.4源码包,解压后进入源码目录,为编译做准备。

[root@localhost ~]# wget https://nginx.org/download/nginx-1.30.4.tar.gz
[root@localhost ~]# tar -xzvf nginx-1.30.4.tar.gz
[root@localhost nginx-1.30.4]# ls -lh
total 916K
drwxr-xr-x 6 502 wheel 4.0K Sep  2 10:28 auto
-rw-r--r-- 1 502 wheel 338K Jul 16 01:24 CHANGES
-rw-r--r-- 1 502 wheel 517K Jul 16 01:24 CHANGES.ru
-rw-r--r-- 1 502 wheel 5.1K Jul 16 01:20 CODE_OF_CONDUCT.md
drwxr-xr-x 2 502 wheel  168 Sep  2 10:28 conf
-rwxr-xr-x 1 502 wheel 2.6K Jul 16 01:20 configure
drwxr-xr-x 4 502 wheel   72 Sep  2 10:28 contrib
-rw-r--r-- 1 502 wheel 4.9K Jul 16 01:20 CONTRIBUTING.md
drwxr-xr-x 2 502 wheel   40 Sep  2 10:28 html
-rw-r--r-- 1 502 wheel 1.3K Jul 16 01:20 LICENSE
drwxr-xr-x 2 502 wheel   21 Sep  2 10:28 man
-rw-r--r-- 1 502 wheel  15K Jul 16 01:20 README.md
-rw-r--r-- 1 502 wheel 4.8K Jul 16 01:20 SECURITY.md
drwxr-xr-x 9 502 wheel   91 Jul 16 01:20 src
-rw-r--r-- 1 502 wheel 1.7K Jul 16 01:20 SUPPORT.md

3、为保证服务安全,创建不可登录系统用户运行Nginx,同时创建临时文件目录、日志存储目录,规范文件管理。

[root@localhost ~]# useradd -s /sbin/nologin nginx
[root@localhost ~]# mkdir -p /var/tmp/nginx
[root@localhost ~]# mkdir -p /var/log/nginx

4、自定义Nginx安装路径、日志路径、进程文件路径,同时开启SSL、状态监控、反向代理、流媒体等核心常用模块,适配绝大多数生产场景。

[root@localhost nginx-1.30.4]# mkdir -p /usr/local/nginx
[root@localhost nginx-1.30.4]# ./configure \
--user=nginx \
--group=nginx \
--prefix=/usr/local/nginx \
--sbin-path=/usr/local/nginx/sbin/nginx \
--conf-path=/usr/local/nginx/conf/nginx.conf \
--error-log-path=/var/log/nginx/error.log \
--http-log-path=/var/log/nginx/access.log \
--pid-path=/var/run/nginx.pid \
--lock-path=/var/run/nginx.lock \
--http-client-body-temp-path=/var/tmp/nginx/client_body \
--http-proxy-temp-path=/var/tmp/nginx/proxy \
--http-fastcgi-temp-path=/var/tmp/nginx/fastcgi \
--http-uwsgi-temp-path=/var/tmp/nginx/uwsgi \
--http-scgi-temp-path=/var/tmp/nginx/scgi \
--with-http_ssl_module \
--with-http_stub_status_module \
--with-http_realip_module \
--with-http_sub_module \
--with-http_addition_module \
--with-http_random_index_module \
--with-http_secure_link_module \
--with-http_gunzip_module \
--with-http_gzip_static_module \
--with-stream \
--with-stream_ssl_module

[root@localhost nginx-1.30.4]# make
[root@localhost nginx-1.30.4]# make install

默认Nginx会暴露版本号,存在一定安全风险,可通过修改源码文件隐藏版本信息(本文仅展示配置,按需修改)。

[root@localhost ~]# vim nginx-1.30.4/src/core/nginx.h

#define nginx_version      1030004
#define NGINX_VERSION      "1.30.4"
#define NGINX_VER          "nginx/" NGINX_VERSION

#ifdef NGX_BUILD
#define NGINX_VER_BUILD    NGINX_VER " (" NGX_BUILD ")"
#else
#define NGINX_VER_BUILD    NGINX_VER
#endif

#define NGINX_VAR          "NGINX"
#define NGX_OLDPID_EXT     ".oldbin"

5、通过版本命令验证安装是否成功,确认编译参数、依赖版本无误。输出包含Nginx版本、GCC编译版本、OpenSSL版本及已开启的模块,即代表编译安装成功。

[root@localhost nginx-1.30.4]# cd 
[root@localhost ~]# /usr/local/nginx/sbin/nginx -V
nginx version: nginx/1.30.4
built by gcc 14.4.1 20260724 (Red Hat 14.4.1-3) (GCC) 
built with OpenSSL 3.5.8 25 Aug 2026
TLS SNI support enabled

6、为方便全局调用nginx命令,将程序路径加入系统环境变量。

[root@localhost ~]# echo 'export PATH=$PATH:/usr/local/nginx/sbin' >> /etc/profile
[root@localhost ~]# source /etc/profile
[root@localhost ~]# nginx -v
nginx version: nginx/1.30.4

7、创建systemd服务文件,实现Nginx开机自启、启停、重载管理,适配系统服务管理规范。

[root@localhost ~]# vim /usr/lib/systemd/system/nginx.service

[Unit]
Description=nginx
After=network.target
[Service]
Type=forking
ExecStart=/usr/local/nginx/sbin/nginx
ExecReload=/usr/local/nginx/sbin/nginx -s reload
ExecStop=/usr/local/nginx/sbin/nginx -s stop
[Install]
WantedBy=multi-user.target

[root@localhost ~]# systemctl daemon-reload
[root@localhost ~]# systemctl start nginx
[root@localhost ~]# systemctl status nginx
● nginx.service - nginx
     Loaded: loaded (/usr/lib/systemd/system/nginx.service; disabled; preset: disabled)
     Active: active (running) since Wed 2026-09-02 10:59:58 CST; 7s ago
 Invocation: c7d50f2edde24e01b45bd3a7e33d8f8c
    Process: 14300 ExecStart=/usr/local/nginx/sbin/nginx (code=exited, status=0/SUCCESS)
   Main PID: 14301 (nginx)
      Tasks: 2 (limit: 10320)
     Memory: 1.9M (peak: 2.3M)
        CPU: 8ms
     CGroup: /system.slice/nginx.service
             ├─14301 "nginx: master process /usr/local/nginx/sbin/nginx"
             └─14302 "nginx: worker process"

Sep 02 10:59:58 localhost systemd[1]: Starting nginx.service - nginx...
Sep 02 10:59:58 localhost systemd[1]: Started nginx.service - nginx.

重载服务配置并启动

[root@localhost ~]# nginx -t          # 检查配置语法
[root@localhost ~]# nginx -s reload   # 平滑重启
[root@localhost ~]# nginx -s stop     # 快速停止
[root@localhost ~]# nginx -s quit     # 优雅停止

8、备份默认配置文件后,对 nginx.conf 进行高并发调优,适配生产大流量场景,开启压缩、连接优化、状态监控等功能。

[root@localhost ~]# cd /usr/local/nginx/conf/
[root@localhost conf]# ll
total 68
-rw-r--r-- 1 root root 1077 Sep  2 10:33 fastcgi.conf
-rw-r--r-- 1 root root 1077 Sep  2 10:34 fastcgi.conf.default
-rw-r--r-- 1 root root 1007 Sep  2 10:33 fastcgi_params
-rw-r--r-- 1 root root 1007 Sep  2 10:34 fastcgi_params.default
-rw-r--r-- 1 root root 2837 Sep  2 10:34 koi-utf
-rw-r--r-- 1 root root 2223 Sep  2 10:34 koi-win
-rw-r--r-- 1 root root 5349 Sep  2 10:33 mime.types
-rw-r--r-- 1 root root 5349 Sep  2 10:34 mime.types.default
-rw-r--r-- 1 root root 2630 Sep  2 10:33 nginx.conf
-rw-r--r-- 1 root root 2630 Sep  2 10:34 nginx.conf.default
-rw-r--r-- 1 root root  636 Sep  2 10:33 scgi_params
-rw-r--r-- 1 root root  636 Sep  2 10:34 scgi_params.default
-rw-r--r-- 1 root root  664 Sep  2 10:33 uwsgi_params
-rw-r--r-- 1 root root  664 Sep  2 10:34 uwsgi_params.default
-rw-r--r-- 1 root root 3611 Sep  2 10:34 win-utf
[root@localhost conf]# 
[root@localhost conf]# cp -a nginx.conf nginx.conf.bak

替换完整优化配置

[root@localhost ~]# vim /usr/local/nginx/conf/nginx.conf
# ------------------------------------
# 全局配置
# ------------------------------------
user nginx nginx;
worker_processes auto;
worker_cpu_affinity auto;
worker_rlimit_nofile 65535;
error_log /var/log/nginx/error.log warn;
pid /var/run/nginx.pid;

# -------------------------------
# Events 块
# ------------------------------
events {
   
    use epoll;
    worker_connections 65535;
    multi_accept on;
}

# --------------------------
# HTTP块通用调优
# --------------------------

http {
   
    include       mime.types;
    default_type  application/octet-stream;

    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  /var/log/nginx/access.log  main;

    # 调优参数
    sendfile on;
    tcp_nopush on;
    tcp_nodelay on;
    keepalive_timeout 65;
    keepalive_requests 1000;
    client_max_body_size 100M;
    client_body_buffer_size 128k;
    client_header_buffer_size 4k;
    large_client_header_buffers 4 32k;
    client_header_timeout 10;
    client_body_timeout 10;
    send_timeout 10;
    gzip on;
    gzip_min_length 1k;
    gzip_buffers 4 16k;
    gzip_http_version 1.1;
    gzip_comp_level 6;
    gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;
    gzip_vary on;

    include vhost/*.conf;

    server {
   
        listen       80;
        server_name  localhost;

        location / {
   
            root   html;
            index  index.html index.htm;
        allow 0.0.0.0;
        }

        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
   
            root   html;
        }

    # 性能监控
    location /nginx-status{
   
        stub_status on;
        allow 127.0.0.1;
        deny all;
    }
    }
}

9、高并发场景依赖系统内核参数优化,调整TCP连接、文件句柄等核心参数,突破系统默认限制。

[root@localhost ~]# vim /etc/sysctl.conf

net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_fin_timeout = 30
net.ipv4.tcp_keepalive_time = 1200
net.ipv4.ip_local_port_range = 1024 65535
net.ipv4.tcp_max_syn_backlog = 8192
net.ipv4.tcp_max_tw_buckets = 5000
fs.file-max = 6553500

[root@localhost ~]# sysctl -p
[root@localhost ~]# cat /proc/sys/fs/file-max 
6553500
[root@localhost ~]# cat /proc/sys/net/ipv4/tcp_tw_reuse 
1

10、调高Nginx用户文件句柄最大限制,解决高并发下文件打开数耗尽问题,修改后需重新登录会话生效。

[root@localhost ~]# vim /etc/security/limits.conf
nginx soft nofile 65535
nginx hard nofile 65535

[root@localhost ~]# ulimit -n
65535
目录
相关文章
|
29天前
|
人工智能 Ubuntu 数据可视化
Ubuntu 本地部署Ollama+OpenWebUI教程
本文详解Ubuntu下零基础部署Ollama+OpenWebUI:一键安装Ollama(支持CPU/GPU)、拉取轻量qwen3.5:0.8b模型、虚拟环境隔离安装OpenWebUI、配置systemd自启服务,最终建成可远程访问、离线运行、稳定易用的本地AI对话网页。
436 2
|
29天前
|
JSON 自然语言处理 物联网
基于魔搭 MS-Swift 实现大模型微调落地指南
MS-Swift是阿里达摩院魔搭社区开源的一站式大模型开发框架,支持预训练、微调、对齐、推理、量化与部署全链路,兼容600+文本及300+多模态模型,助力企业高效落地Agent定制。
306 2
|
29天前
|
人工智能 中间件 API
LangChain+Llama.cpp 本地模型与Agent工具调用
本文介绍如何用LangChain对接本地llama.cpp服务:通过`llama-server`启动Qwen量化模型,配置OpenAI兼容接口;安装LangChain生态包;实现基础对话与自定义工具Agent(如查天气、时间),全程离线运行,零依赖云端API,适合私有化AI原型开发。(239字)
211 3
|
29天前
|
人工智能 自然语言处理 测试技术
LangGraph Server Agent 框架本地部署指南
本文详解如何在Windows本地离线部署LangGraph Server构建AI Agent:全程不依赖公网大模型,适配llama.cpp等本地模型,提供纯净环境安装、项目模板搭建、UTF-8编码配置及内存调试服务。强调MIT协议核心库免费无限制,但LangGraph Server Lite版年节点执行上限100万次。
169 2
|
29天前
|
机器学习/深度学习 数据采集 人工智能
千问大模型完整RLHF全参数微调指南
本文详解Qwen3.5-0.8B-Base全参数微调全流程,覆盖SFT监督微调、RM奖励建模、PPO强化学习与DPO直接偏好优化四大环节,提供可运行脚本与医疗领域实践案例,助力开发者低成本完成小模型垂直定制。(239字)
266 1
|
24天前
|
弹性计算 运维 安全
阿里云服务器免费领取最新教程:新用户、学生、个人、企业申领渠道、配置与运维完整实操流程指南(个人新用户3个月、学生1年免费服务器)
整体来看免费ECS权益给学生、个人开发者提供了零成本接触云计算的渠道。个人新用户可以拿到最长3个月免费实例,学生通过高校认证可以拿到代金券实现一年免费使用。整套流程从账号注册、实名认证,再到实例申领、安全配置、命令实操,新手跟着步骤就可以独立完成。但要牢记免费资源存在额度、周期限制,到期及时续费或者释放资源,防止产生不必要账单。拿到实例之后优先做好安全配置,只开放业务必须端口,不要把全部端口对外开放,降低服务器被扫描入侵的风险。利用免费算力多多练习项目部署、运维操作,快速积累云上实操经验。
258 1
|
29天前
|
JSON 调度 数据格式
LangChain+FastMCP 搭建大模型工具调用服务
本文基于MCP协议与轻量级FastMCP框架,构建标准化大模型工具调用方案:支持Streamable HTTP通信,集成LangChain生态;通过天气查询与系统时间两大实战案例,完整演示自定义工具开发、静态资源封装、提示词模板配置及多服务协同调用,附可运行代码与环境配置,助力开发者快速落地轻量化、可复用的AI工具链。(239字)
123 3
LangChain+FastMCP 搭建大模型工具调用服务
|
1月前
|
机器学习/深度学习 人工智能 弹性计算
周一上线|谷歌利用果蝇实现“AI 突围”?Cognition 再融 20 亿美元;AI 三巨头集体呼吁放慢脚步
本周AI圈聚焦Agent能力跃迁:SWE-2压缩无效探索,Muse实现后台自主推进,DeepSeek V4.1-Flash以新CED架构将KV Cache压至1/4,大幅降本增效;HyperFrames让Agent“写视频”,Marketing Skills拓展至营销全链路;Cognition融资超20亿美元,OpenAI因Astra火爆暂停Pro新订阅。
218 1
周一上线|谷歌利用果蝇实现“AI 突围”?Cognition 再融 20 亿美元;AI 三巨头集体呼吁放慢脚步
|
1月前
|
数据采集 存储 运维
加油机数据采集设备加油机数据采集器加油机智能采集器液位仪数据采集设备原厂成品油流通数智化综合监管平台技术原理与落地应用解决方案
本文系统阐述加油机数据采集器的技术原理与落地应用:针对成品油监管中数据割裂、设备兼容差、环境复杂等痛点,提出“终端采集+边缘传输+云端管控”三层架构,支持明/密文双模式解析、防爆宽温运行、断网续传及多源数据校准,并通过全链路加密与智能云服务,实现销售与设备数据的精准采集、安全传输与智能监管。(239字)
加油机数据采集设备加油机数据采集器加油机智能采集器液位仪数据采集设备原厂成品油流通数智化综合监管平台技术原理与落地应用解决方案
|
29天前
|
安全 Linux 网络安全
Apache 2.4.68 编译安装与配置
Apache是全球最流行的开源Web服务器,跨平台、高性能、安全稳定。本文详述在CentOS Stream 10上源码编译安装最新稳定版2.4.68的完整流程,含APR依赖、event模型、SSL及核心模块配置,适配OpenSSL 3.0与pcre2,支持生产环境部署。(239字)
876 5