Nginx 安装与配置全流程指南(2025 最新版)

一、环境准备与依赖安装

1.1 系统要求
  • 操作系统:支持主流 Linux 发行版(Ubuntu 20.04+/CentOS 7+/Debian 10+)
  • 硬件配置:内存 ≥512MB,磁盘 ≥10GB 可用空间(建议使用 SSD)
  • 网络要求:开放 80/443 端口(可通过 firewall-cmd --list-ports 验证)
1.2 安装基础依赖
# Ubuntu/Debian
sudo apt update && sudo apt install -y build-essential libpcre3 libpcre3-dev zlib1g-dev libssl-dev# CentOS/RHEL
sudo yum groupinstall "Development Tools" -y
sudo yum install -y pcre-devel zlib-devel openssl-devel

说明

  • build-essential 包含 GCC 编译工具链
  • pcre 支持正则表达式重写规则
  • zlib 提供 HTTP 压缩功能
  • openssl 启用 HTTPS 支持

二、三种主流安装方式

2.1 包管理器安装(推荐新手)
# Ubuntu/Debian
sudo apt install nginx -y
sudo systemctl enable --now nginx# CentOS/RHEL
sudo yum install epel-release -y
sudo yum install nginx -y
sudo systemctl start nginx

优势

  • 自动处理依赖关系
  • 默认集成 systemd 服务管理
  • 配置文件路径标准化(/etc/nginx/nginx.conf
2.2 源码编译安装(定制化推荐)
# 下载最新稳定版(以 1.25.3 为例)
wget https://nginx.org/download/nginx-1.25.3.tar.gz
tar zxvf nginx-1.25.3.tar.gz
cd nginx-1.25.3# 配置编译参数
./configure \--prefix=/usr/local/nginx \--with-http_ssl_module \--with-http_v2_module \--with-threads \--with-stream# 编译安装
make -j $(nproc) && sudo make install# 创建系统服务
sudo nano /etc/systemd/system/nginx.service

服务文件内容

[Unit]
Description=The NGINX HTTP server
After=network.target[Service]
Type=forking
ExecStart=/usr/local/nginx/sbin/nginx
ExecReload=/usr/local/nginx/sbin/nginx -s reload
PIDFile=/usr/local/nginx/logs/nginx.pid[Install]
WantedBy=multi-user.target

关键参数说明

  • --with-threads 启用线程池提升并发性能
  • --with-stream 支持 TCP/UDP 代理
2.3 Docker 容器化部署
# 拉取官方镜像
docker pull nginx:1.25-alpine# 启动容器(映射配置与静态资源)
docker run -d \--name nginx \-p 80:80 \-p 443:443 \-v /path/to/conf:/etc/nginx/conf.d \-v /path/to/html:/usr/share/nginx/html \nginx:1.25-alpine

优势

  • 快速部署与版本切换
  • 配置与数据持久化存储
  • 支持 Kubernetes 集群化扩展

三、核心配置优化

3.1 安全加固
# /etc/nginx/nginx.conf
server_tokens off;  # 隐藏版本信息
client_max_body_size 10m;  # 限制上传文件大小
limit_conn_zone $binary_remote_addr zone=addr:10m;  # 防止 DDoS 攻击
add_header X-Content-Type-Options "nosniff";  # MIME 类型安全
3.2 性能优化
events {worker_connections 10240;multi_accept on;use epoll;  # Linux 高效事件模型
}http {gzip on;gzip_types text/plain text/css application/json application/javascript;open_file_cache max=10000 inactive=30s;  # 文件缓存优化
}

调优效果

  • 静态文件吞吐量提升 3-5 倍
  • 内存占用降低 20%

四、验证与测试

4.1 基础验证
# 检查版本与模块
nginx -V# 查看服务状态
systemctl status nginx# 测试默认页面
curl -I 127.0.0.1

预期输出

HTTP/1.1 200 OK
Server: nginx
Date: Wed, 24 Apr 2025 08:00:00 GMT
Content-Type: text/html
4.2 压力测试
# 使用 wrk 进行基准测试
wrk -t12 -c400 -d30s http://localhost

典型结果

Requests/sec: 35678.25
Transfer/sec: 4.21GB

五、常见问题排查

5.1 端口冲突
# 检查 80/443 端口占用
sudo lsof -i :80# 修改监听端口
sed -i 's/listen 80;/listen 8080;/g' /etc/nginx/conf.d/default.conf
5.2 权限问题
# 修复 SELinux 限制
sudo chcon -Rt httpd_sys_content_t /var/www/html/# 调整文件权限
sudo chown -R nginx:nginx /var/log/nginx

六、进阶学习路径

  1. 反向代理配置

    location / {proxy_pass http://backend;proxy_set_header Host $host;proxy_set_header X-Real-IP $remote_addr;
    }
    
  2. SSL 证书部署

    # 使用 Certbot 自动化配置
    sudo certbot --nginx -d example.com
    
  3. 负载均衡策略

    upstream backend {least_conn;server 192.168.1.101:8080 weight=3;server 192.168.1.102:8080;
    }
    

参考资料

  • Windows 基础安装流程
  • CentOS 编译安装实践
  • Linux 环境优化方案
  • 反向代理配置案例
  • 多安装方式对比
  • 源码编译详解
  • 生产环境最佳实践

通过本指南,您已掌握从基础安装到生产级部署的全套技能。建议结合具体业务场景选择安装方式,并持续关注 Nginx 社区的动态更新。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/902962.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【LeetCode 热题 100】滑动窗口最大值 / 最小覆盖子串 / 轮转数组 / 缺失的第一个正数

⭐️个人主页:小羊 ⭐️所属专栏:LeetCode 热题 100 很荣幸您能阅读我的文章,诚请评论指点,欢迎欢迎 ~ 目录 子串和为 K 的子数组滑动窗口最大值最小覆盖子串 普通数组最大子数组和合并区间轮转数组除自身以外数组的乘积缺失的…

golang的cgo的一点小心得

最后有个项目需要涉及到cgo,在这块以前用的不多, 这次略微用得深入了一点,记下来几点以备以后使用 本质上cgo去用的时候就是遵守一些ABI而已,总体而言,尽量避免复杂结构的来回传递。1 对于变长参数,只有…

异构网络环境下的切换策略研究

移动互联网应用快速崛起,现有的无线接入技术有,无线局域网(Wireless Local Area NetWork,WLAN),移动蜂窝网络(4G,5G),无线广域网(Wireless Wide Area Network,WWAL)以及卫星通信网络等。多接入技术方便用户通信,还符合多业务场景。这种多无线接入技术共存的网络环…

人工智能赋能美妆零售数字化转型:基于开源AI大模型的S2B2C商城系统构建

摘要 在消费升级背景下,美妆行业正经历从传统卖场向智能体验空间的转型。本文以"未来商店"为研究对象,探讨开源AI大模型与S2B2C商城系统的协同效应,揭示人工智能技术如何重构"人-货-场"关系。通过实证研究发现&#xff…

计算机视觉中的正则化:从理论到实践的全面解析

🌟 计算机视觉中的正则化:从理论到实践的全面解析🌟 大家好!今天要和大家分享的是在计算机视觉(CV)领域中非常重要的一个概念——正则化(Regularization)。无论你是刚开始接触深度学…

Linux字符设备驱动开发的详细步骤

1. 确定主设备号​​ ​​手动指定​​:明确设备号时,使用register_chrdev_region()静态申请(需确保未被占用)。​​动态分配​​:通过alloc_chrdev_region()由内核自动分配主设备号(更灵活,推…

软件工程效率优化:一个分层解耦与熵减驱动的系统框架

软件工程效率优化:一个分层解耦与熵减驱动的系统框架** 摘要 (Abstract) 本报告构建了一个全面、深入、分层的软件工程效率优化框架,旨在超越简单的技术罗列,从根本的价值驱动和熵减原理出发,系统性地探讨提升效率的策略与实践。…

【Docker游戏】使用Docker部署vue-XiuXianGame文字修仙小游戏

【Docker游戏】使用Docker部署vue-XiuXianGame文字修仙小游戏 一、vue-XiuXianGame介绍1.1 vue-XiuXianGame简介1.2 主要特点 二、本次实践规划2.1 本地环境规划2.2 本次实践介绍 三、本地环境检查3.1 检查Docker服务状态3.2 检查Docker版本3.3 检查docker compose 版本 四、拉…

用 LangChain 手搓 RAG 系统:从原理到实战

一、RAG 系统简介 在当今信息爆炸的时代,如何高效地从海量数据中获取有价值的信息并生成准确、自然的回答,成为了人工智能领域的重要课题。检索增强生成(Retrieval-Augmented Generation,RAG)系统应运而生,…

SpringBoot集成LiteFlow实现轻量级工作流引擎

LiteFlow 是一款专注于逻辑驱动流程编排的轻量级框架,它以组件化方式快速构建和执行业务流程,有效解耦复杂业务逻辑。通过支持热加载规则配置,开发者能够即时调整流程步骤,将复杂的业务如价格计算、下单流程等拆分为独立且可复用的…

38 python random

在实际中,我们常常会用到随机的概念,比如 模拟抽奖活动(如:月度优秀员工抽奖)生成测试数据(如:随机考勤时间、随机销售额)打乱数据顺序(如:随机分配任务到人)Python 的random模块就像你的 "随机事件生成器",帮你轻松创建各种随机数据 一、基础操作:从随…

附赠二张图,阐述我对大模型的生态发展、技术架构认识。

文章精炼,用两张图说明大模型发展业态方向,以及大模型主体技术架构。(目前还需要进一步验证我的Thought && ideas,等待机会吧.........) 图一:探究大模型三个层次应用方向,浅层次入门简…

2025上海车展 | 移远通信全栈车载智能解决方案重磅亮相,重构“全域智能”出行新范式

2025年4月23日至5月2日,第二十一届上海国际汽车工业展览会在国家会展中心(上海)盛大启幕。作为车载智能解决方案领域的领军企业,移远通信以“全域智能 驭见未来”为主题,携丰富的车载解决方案及客户终端惊艳亮相8.2馆8…

告别 “幻觉” 回答:RAG 中知识库与生成模型的 7 种对齐策略

一、引言 大语言模型(LLM)在文本生成领域展现出惊人能力,但 “幻觉” 问题(生成虚构或偏离事实的内容)始终是落地应用的核心挑战。检索增强生成(RAG)通过将外部知识库与 LLM 结合,形…

项目笔记2:post请求是什么,还有什么请求

在 HTTP(超文本传输协议)中,请求方法用于向服务器表明客户端想要执行的操作。POST 请求是其中一种常见的请求方法,此外还有 GET、PUT、DELETE 等多种请求方法,下面为你详细介绍: POST 请求 定义&#xff…

中间系统-邻居建立,数据库同步

ISIS邻居状态: 1、Down:接口一旦启用ISIS协议之后就是Down状态 2、Init:收到了邻居的Hello报文后,发现了邻居。 3、up:收到了邻居的Hello报文,并且在邻居的hello报文中发现了自己。 ISIS邻居建立的条件&…

玩转Docker | Docker部署LMS轻量级音乐工具

玩转Docker | Docker部署LMS轻量级音乐工具 前言一、LMS介绍LMS简介主要特点二、系统要求环境要求环境检查Docker版本检查检查操作系统版本三、部署LMS服务下载镜像创建容器创建容器检查容器状态检查服务端口安全设置四、访问LMS服务访问LMS首页注册账号五、基本使用上传音乐文…

AR行业应用案例与NXP架构的结合

1. 工业巡检AR头盔 场景示例:宁德核电基地使用AR智能头盔进行设备巡检,通过实时数据叠加和远程指导,将工作效率提升35%。头盔需处理传感器数据、图像渲染和低延迟通信1。 NXP架构支持: 协处理器角色:NXP i.MX RT系列M…

【Harmony OS】组件

目录 组件概述 组件常用属性 系统内置组件 Text TextArea 多行文本输入框组件 TextInput 文本输入框 Button Image 图片组件,支持本地图片和网络图片 Radio 单选框 Checkbox 复选框 Blank 空白填充组件 Divider 分隔符 PatternLock 图案密码锁组件 Prog…

Flutter Dart 集合类型List Set Map详解军 以及循环语句 forEaclh map where any every

List基础用法 var list1 ["西瓜", "苹果", "香蕉", true, 0];var list2 <String>["西瓜", "苹果", "香蕉"];List list3 ["西瓜", "苹果", "香蕉"];list3.add("草莓&…