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
目录
相关文章
|
15小时前
|
JSON 调度 数据格式
LangChain+FastMCP 搭建大模型工具调用服务
本文基于MCP协议与轻量级FastMCP框架,构建标准化大模型工具调用方案:支持Streamable HTTP通信,集成LangChain生态;通过天气查询与系统时间两大实战案例,完整演示自定义工具开发、静态资源封装、提示词模板配置及多服务协同调用,附可运行代码与环境配置,助力开发者快速落地轻量化、可复用的AI工具链。(239字)
34 3
LangChain+FastMCP 搭建大模型工具调用服务
|
15小时前
|
机器学习/深度学习 数据采集 人工智能
千问大模型完整RLHF全参数微调指南
本文详解Qwen3.5-0.8B-Base全参数微调全流程,覆盖SFT监督微调、RM奖励建模、PPO强化学习与DPO直接偏好优化四大环节,提供可运行脚本与医疗领域实践案例,助力开发者低成本完成小模型垂直定制。(239字)
40 0
|
15小时前
|
人工智能 自然语言处理 测试技术
LangGraph Server Agent 框架本地部署指南
本文详解如何在Windows本地离线部署LangGraph Server构建AI Agent:全程不依赖公网大模型,适配llama.cpp等本地模型,提供纯净环境安装、项目模板搭建、UTF-8编码配置及内存调试服务。强调MIT协议核心库免费无限制,但LangGraph Server Lite版年节点执行上限100万次。
39 2
|
15小时前
|
人工智能 中间件 API
LangChain+Llama.cpp 本地模型与Agent工具调用
本文介绍如何用LangChain对接本地llama.cpp服务:通过`llama-server`启动Qwen量化模型,配置OpenAI兼容接口;安装LangChain生态包;实现基础对话与自定义工具Agent(如查天气、时间),全程离线运行,零依赖云端API,适合私有化AI原型开发。(239字)
37 3
|
10天前
|
JSON Ubuntu 物联网
千问大模型二次LoRA‑SFT指令微调指南
大模型微调是实现模型领域定制的核心方案。本文基于 Ubuntu 22.04 服务器环境,依托 NVIDIA RTX 家用高性能显卡,选用千问 Qwen3.5‑0.8B‑Instruct 指令模型,完整演示二次 LoRA‑SFT 微调全流程,包含环境搭建、模型选型、ChatML 数据集制作校验、LoRA 参数配置、SFT 训练、效果验证、权重合并,附带可直接运行的工程脚本,便于开发者快速实现千问模型轻量化定制与上线部署。
176 2
|
12天前
|
机器学习/深度学习 人工智能 自然语言处理
轻量化小模型MiniMind从训练到落地指南
本文基于Ubuntu 22.04与RTX显卡,手把手教你用原生PyTorch从零训练MiniMind(26M–200M)轻量大模型:涵盖环境配置、预训练、SFT微调、LoRA垂域适配、DPO对齐、Web服务搭建及GGUF量化全流程。3小时可跑通基础对话,低成本、可复现、适合新手入门与私有化部署。(239字)
193 2
|
1天前
|
IDE 开发工具
额度翻倍!还有四天
Qoder推出Sonus模型专属福利:9月16-19日,付费用户每日12:00可领1000 Credits,用于全球顶级Sonus模型——支持编程、长程任务、专业软件操作及公式表格处理。登录Qoder各端活动入口即可领取。
86 0
|
2天前
|
缓存 人工智能 自然语言处理
通义千问Qwen大模型全系列模型深度解析:能力矩阵、行业落地、选型定价与API实操完整教程(Max/Plus/Flash/Coder/Omni)
随着生成式AI从单点Demo走向企业规模化落地,很多团队在选型大模型时容易陷入困惑:不知道该选用旗舰模型还是轻量模型,分不清文本、视觉、全模态、编程模型各自适用场景,不清楚不同档位模型的价格差异,也不熟悉API集成、上下文缓存、批量推理等工程化手段。通义千问Qwen并非单一模型,而是一套分层完整的大模型家族,覆盖旗舰复杂推理、均衡长文本、高并发轻量任务、代码开发、图像视频理解、全模态音视频交互等多个品类,同时提供在线API调用、开源本地部署两种方案。本文将完整梳理Qwen全系列模型能力矩阵,拆解每一类模型的技术特点、适用业务场景,介绍金融、制造、政务、电商、软件研发等行业落地案例,详细讲解按量
232 0
|
15小时前
|
人工智能 数据库
LangChain 实现AdvancedRAG增强向量检索生成
Advanced-RAG是工业级RAG优化方案,在朴素RAG基础上不改架构,通过Multi-Query扩召回、MMR多样性检索、LLM上下文压缩、BGE重排序等多层增强,精准过滤噪声、提升上下文相关性与问答稳定性。(239字)
34 0
|
15小时前
|
存储 人工智能 自然语言处理
Python 原生封装 Llama.cpp 大模型推理接口
本文以通义千问Qwen量化GGUF模型为例,基于Llama.cpp框架,用原生Python实现本地大模型调用:涵盖模型元数据解析、单次/多轮对话、记忆持久化及自定义工具调用(如时间、计算),无需重型AI框架,轻量高效,助开发者深入理解本地大模型运行原理与工程落地实践。(239字)
33 0