当前位置: 首页 > news >正文

Linux 下 Nginx 服务器从入门到精通:安装、配置、实战与性能优化​

在高性能 Web 服务器领域,Nginx 绝对是 “顶流”—— 它以高并发、低内存占用、稳定可靠的特性,占据了全球近 40% 的 Web 服务器市场(2025 年数据)。无论是部署静态网站、做反向代理,还是实现负载均衡,Nginx 都是开发者的首选工具。​

本文针对 Linux 系统(覆盖 CentOS、Ubuntu 主流发行版),从零基础带你掌握 Nginx 的核心用法,全程附带可直接复制的命令与实战案例,新手也能轻松上手!​

一、为什么选择 Nginx?先搞懂核心优势​

在动手前,先明确 Nginx 的 “过人之处”,避免盲目学习:​

  1. 高并发处理:采用 “异步非阻塞” 事件模型,单台服务器可轻松支撑 10 万 + 并发连接(Apache 通常仅数千);​

  2. 轻量高效:启动后内存占用仅几 MB,相比 Apache 更节省服务器资源;​

  3. 功能全面:支持静态资源服务、反向代理、负载均衡、Gzip 压缩、SSL 加密等;​

  4. 稳定性强:核心模块经过多年迭代,崩溃概率极低,且支持热部署(更新配置无需重启服务)。​

二、准备工作:Linux 环境检查与依赖安装​

无论用哪种方式安装 Nginx,都需要先确保系统满足基础依赖(主要是编译工具和库文件)。​

2.1 系统版本确认​

先通过以下命令查看 Linux 发行版,后续安装命令会针对性区分:​

# 查看系统版本(CentOS/RHEL会显示版本号,Ubuntu会显示发行版名称)​

cat /etc/os-release​

# 或简化命令​

lsb_release -a​

2.2 安装基础依赖​

(1)CentOS/RHEL 系统​

# 安装编译工具(gcc、g++)、依赖库(pcre、zlib、openssl)​

yum install -y gcc gcc-c++ make pcre-devel zlib-devel openssl-devel​

说明:pcre-devel 用于支持 Nginx 的 URL 重写(Rewrite)模块,zlib-devel 用于 Gzip 压缩,openssl-devel 用于 HTTPS 加密。​

(2)Ubuntu/Debian 系统​

# 对应依赖安装命令​

apt update && apt install -y gcc g++ make libpcre3-dev zlib1g-dev libssl-dev​

三、3 种 Nginx 安装方式:新手推荐 “包管理器”,进阶选 “源码编译”​

Nginx 有 3 种主流安装方式,各有适用场景,根据自身需求选择:​

3.1 方式 1:包管理器安装(新手首选,1 分钟完成)​

通过 yum/apt 直接安装,优点是 “快、无需手动配置依赖”,缺点是版本可能不是最新(但满足大部分场景)。​

(1)CentOS/RHEL 系统​

# 1. 安装Nginx官方仓库(默认yum源的Nginx版本较旧)​

rpm -Uvh http://nginx.org/packages/centos/$(rpm -E %{centos_ver})/noarch/RPMS/nginx-release-centos-$(rpm -E %{centos_ver})-1.el$(rpm -E %{centos_ver}).ngx.noarch.rpm​

# 2. 安装Nginx​

yum install -y nginx​

# 3. 启动并设置开机自启​

systemctl start nginx​

systemctl enable nginx​

# 4. 验证是否安装成功(出现"active (running)"表示正常)​

systemctl status nginx​

(2)Ubuntu/Debian 系统​

# 1. 安装Nginx(Ubuntu默认源已包含较新的Nginx版本)​

apt install -y nginx​

# 2. 启动并设置开机自启​

systemctl start nginx​

systemctl enable nginx​

# 3. 验证(同CentOS)​

systemctl status nginx​

测试访问​

安装完成后,在浏览器输入 Linux 服务器的 IP 地址(如http://192.168.1.100),若看到 Nginx 默认欢迎页,说明安装成功!​

3.2 方式 2:源码编译安装(进阶首选,自定义功能)​

若需要最新版本或自定义编译模块(如添加第三方缓存模块),推荐源码编译。以 Nginx 1.25.3(2025 年稳定版)为例:​

# 1. 下载Nginx源码包(官网地址:https://nginx.org/en/download.html)​

wget https://nginx.org/download/nginx-1.25.3.tar.gz​

# 2. 解压源码包​

tar -zxvf nginx-1.25.3.tar.gz​

cd nginx-1.25.3​

# 3. 配置编译参数(重点:--prefix指定安装目录,--with-*启用模块)​

./configure \​

--prefix=/usr/local/nginx \ # 安装目录(建议固定,后续好管理)​

--with-http_ssl_module \ # 启用HTTPS模块​

--with-http_gzip_static_module \ # 启用Gzip静态压缩​

--with-http_stub_status_module # 启用状态监控模块​

# 4. 编译并安装(-j4表示用4个线程编译,速度更快)​

make -j4 && make install​

# 5. 配置系统服务(方便用systemctl管理)​

cat > /usr/lib/systemd/system/nginx.service << EOF​

[Unit]​

Description=Nginx Server​

After=network.target​

[Service]​

Type=forking​

ExecStart=/usr/local/nginx/sbin/nginx​

ExecReload=/usr/local/nginx/sbin/nginx -s reload​

3.3 方式 3:Docker 安装(容器化部署,隔离性好)​

若习惯用 Docker 管理服务,可通过容器快速启动 Nginx:​

# 1. 拉取Nginx官方镜像​

docker pull nginx:latest​

# 2. 启动容器(映射80端口,挂载本地目录到容器内)​

docker run -d \​

--name nginx-server \​

-p 80:80 \ # 主机80端口映射到容器80端口​

-v /root/nginx/html:/usr/share/nginx/html \ # 本地静态资源目录挂载​

-v /root/nginx/conf:/etc/nginx/conf.d \ # 本地配置文件挂载​

nginx:latest​

# 3. 验证(查看容器运行状态)​

docker ps | grep nginx-server​

四、Nginx 核心配置解析:搞懂这几个文件就够了​

无论哪种安装方式,Nginx 的配置逻辑一致,核心文件位置如下(以 “包管理器安装” 为例,源码安装对应/usr/local/nginx/conf):​

配置文件 / 目录​

路径(CentOS/Ubuntu)​

作用​

主配置文件​

/etc/nginx/nginx.conf​

全局配置(进程数、日志、include 等)​

虚拟主机配置目录​

/etc/nginx/conf.d/​

存放站点配置(如 xxx.conf)​

静态资源默认目录​

/usr/share/nginx/html​

默认首页(index.html)所在目录​

日志目录​

/var/log/nginx/​

access.log(访问日志)、error.log(错误日志)​

4.1 主配置文件(nginx.conf)关键参数​

打开主配置文件:vim /etc/nginx/nginx.conf,重点关注以下参数(已加注释):​

# 1. 全局配置:运行用户、进程数(建议设为CPU核心数)

user nginx;

worker_processes auto; # auto表示自动匹配CPU核心数

# 2. 错误日志与PID文件路径

error_log /var/log/nginx/error.log notice;

pid /var/run/nginx.pid;

# 3. 事件模块:并发连接数配置

events {

worker_connections 10240; # 每个worker进程最大连接数(默认1024,建议调至10240)

use epoll; # 启用epoll事件模型(Linux下高性能模型,默认已启用)

}

# 4. HTTP核心模块:全局HTTP配置

http {

include /etc/nginx/mime.types; # 媒体类型映射(如.html对应text/html)

default_type application/octet-stream;

# 日志格式(main为默认格式,可自定义)

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; # 配合sendfile使用,减少网络包数量

tcp_nodelay on;

keepalive_timeout 65; # 长连接超时时间(秒)

types_hash_max_size 2048;

# 引入虚拟主机配置(所有conf.d目录下的.conf文件)

include /etc/nginx/conf.d/*.conf;

}

五、总结与进阶建议

到这里,你已经掌握了 Linux 下 Nginx 的核心用法 —— 从安装到配置,再到排坑,足够应对日常开发需求。如果想进一步提升,可以学习这些内容:

  1. HTTPS 配置:给 Nginx 添加 SSL 证书(Let's Encrypt 免费证书),实现http->https跳转;

  2. Nginx 缓存:配置proxy_cachefastcgi_cache,减少后端服务压力;

  3. 限流配置:用limit_reqlimit_conn限制单 IP 的请求频率,防止恶意攻击;

  4. 监控告警:用 Prometheus+Grafana 监控 Nginx 的并发数、请求量、错误率,设置告警阈值。

如果在操作中遇到其他问题,欢迎在评论区留言,觉得这篇文章有用的话,别忘了点赞 + 收藏,后续还会更新更多 Linux 和服务器实战内容~

http://www.dtcms.com/a/353199.html

相关文章:

  • mfc中操作excel
  • 关于国产 RAC 和分布式研讨
  • 【DBCExcelConvent】CAN报文解析辅助工具之DBC与Excel互转
  • 使用k8s实现部署MySQL的主从复制
  • 【LeetCode - 每日1题】求网格最长V形对角线段的长度
  • 页面跳转html
  • HTML响应式设计的颜色选择器,适配各种屏幕尺寸
  • rk3588 ubuntu20.04屏幕显示问题解决
  • CPU-IO-网络-内核参数的调优
  • AOSP 编译系统 (Android build system)
  • 嵌入式C语言进阶:位操作的艺术与实战
  • 【测试】pytest测试环境搭建
  • Linux 离线环境下 Anaconda3 与核心机器学习库(scikit-learn/OpenCV/PyTorch)安装配置指南
  • 解决Visual Studio中UWP设计器无法显示的问题:需升级至Windows 11 24H2
  • 【SQL优化案例】SQL执行频率问题与优化效果预期
  • NumPy/PyTorch/C char数组内存排布
  • 网站防爆破安全策略分析
  • python项目开发:创建虚拟环境
  • 利用机器学习优化Backtrader策略原理与实践
  • 深入解析函数栈帧创建与销毁
  • 斯塔克工业技术日志:用基础模型打造 “战甲级” 结构化 AI 功能
  • 预测模型及超参数:1.传统机器学习:SVR与KNN
  • 网页版云手机怎么样
  • Enduro 克隆游戏 — 基于 HTML、CSS 与 JavaScript 的完整教程模板
  • 23种设计模式——单例模式(Singleton)​详解
  • 金仓数据库文档系统全面升级:用户体验焕然一新
  • CPU、IO、网络与内核参数调优
  • Linux 性能调优实战:CPU、磁盘 I/O、网络与内核参数
  • 系统架构设计师备考第8天——嵌入式系统
  • 工业网络安全:保护制造系统和数据