Nginx 从零到上手:Windows  Linux 双环境教程
Nginx 从零到上手Windows Linux 双环境教程一、Nginx 是什么简单说Nginx 是一个高性能的Web 服务器和反向代理服务器。你可以用它来做这些事情把网页文件发布给浏览器访问静态网站把请求转发给后面的应用比如 Java、Node.js、Python 程序同时转发给多台服务器分担压力负载均衡给网站加上 HTTPS 小锁接下来我们分别看在 Linux 和 Windows 上怎么把它装好、用起来。二、在 Linux 上安装 Nginx环境说明本教程以CentOS 7 / RHEL 7或Rocky Linux 8/9作为 yum 安装的演示系统。如果你用的是 Ubuntu/Debian可以将yum换成apt思路完全一样。方法一使用 yum 安装推荐新手、生产环境yum 是 CentOS/RHEL 系统的包管理器它会帮你自动解决依赖并注册成系统服务开机自启。1. 添加 Nginx 官方仓库CentOS 默认仓库里没有最新版 Nginx需要手动添加官方源。执行下面的命令创建仓库文件sudovi/etc/yum.repos.d/nginx.repo按i进入编辑模式粘贴以下内容对应 CentOS 7如果是 RHEL 8/9 请把$releasever改成8或9或者直接复制官方对应系统的配置[nginx-stable] namenginx stable repo baseurlhttp://nginx.org/packages/centos/$releasever/$basearch/ gpgcheck1 enabled1 gpgkeyhttps://nginx.org/keys/nginx_signing.key module_hotfixestrue按Esc退出编辑再输入:wq保存退出。注如果你用的是 Rocky Linux 9 等可以去官网复制对应的nginx.repo内容但上面通常可以直接使用。2. 安装 Nginxsudoyuminstallnginx-y等待安装完成。3. 启动 Nginx 并设置开机自启sudosystemctl start nginx# 启动sudosystemctlenablenginx# 开机自启sudosystemctl status nginx# 查看运行状态如果状态显示active (running)说明启动成功。4. 防火墙放行端口Nginx 默认使用80端口。如果你开启了防火墙需要允许访问sudofirewall-cmd--permanent--add-servicehttpsudofirewall-cmd--reload现在打开浏览器访问你服务器的 IP 地址就能看到 Nginx 的默认欢迎页了。方法二解压二进制包安装通用所有 Linux 发行版这种方式不需要 root 权限就可以安装到任意目录比如你的家目录适合测试或没有包管理器的环境。1. 下载预编译包前往 Nginx 官网下载页面https://nginx.org/en/download.html我们选择Stable version的 Linux 版一般是.tar.gz包。在服务器上用wget下载以 1.24.0 为例cd~wgethttps://nginx.org/download/nginx-1.24.0.tar.gz2. 解压到指定目录解压后得到一个文件夹里面就是可以直接运行的 Nginx。tar-zxvfnginx-1.24.0.tar.gzmvnginx-1.24.0 nginx# 重命名一下方便操作cdnginx3. 目录结构说明nginx/ ├── conf # 配置文件 nginx.conf 就在这里 ├── html # 默认网页文件夹 ├── logs # 日志文件access.log, error.log └── sbin # 可执行文件 nginx4. 启动 Nginx进入 nginx 目录后直接运行./sbin/nginx没有任何输出就表示启动成功。检查进程psaux|grepnginx也可以访问http://你的IP验证。5. 停止、重载等命令./sbin/nginx-sstop# 快速停止./sbin/nginx-squit# 优雅停止处理完当前请求后退出./sbin/nginx-sreload# 重新加载配置不中断服务./sbin/nginx-t# 检查配置文件语法是否正确6. 设置环境变量可选方便在任何位置直接输入nginxechoexport PATH$PATH:~/nginx/sbin~/.bashrcsource~/.bashrc之后就可以直接用nginx命令了。三、在 Windows 上安装 NginxWindows 下也是下载官方提供的 zip 压缩包解压即用。1. 下载 Windows 版本进入 https://nginx.org/en/download.html同样选择Stable version下的 Windows 版本一般以.zip结尾。下载后解压到一个路径不包含空格的文件夹例如C:\nginx。2. 目录结构与 Linux 解压版一致C:\nginx\ ├── conf ├── html ├── logs └── nginx.exe 可执行文件3. 启动 Nginx打开命令提示符cmd或 PowerShell进入 nginx 目录cd C:\nginx start nginx或者直接双击nginx.exe会闪过一个黑框正常。之后在任务管理器里可以看到两个nginx.exe进程主进程和工作进程。4. 验证打开浏览器访问http://localhost如果 80 端口没被占用即可看到欢迎页。如果 80 端口被 IIS 或其他程序占用可以先停止它们或者修改 Nginx 监听端口后面会讲。5. Windows 下的常用命令同样在nginx目录下执行nginx -s stop # 快速停止 nginx -s quit # 优雅停止 nginx -s reload # 重新加载配置 nginx -t # 检查配置文件语法小贴士如果命令提示找不到nginx要么把C:\nginx加到系统 PATH 环境变量要么就 cd 到该目录再运行。6. 将 Nginx 注册为 Windows 服务可选默认直接运行的方式重启电脑后 Nginx 不会自动启动。可以用工具nssm或者WinSW把它变成服务。新手先不用管手动启动即可。四、Nginx 常用命令汇总操作Linux (yum 安装)Linux (解压版)Windows启动systemctl start nginx./sbin/nginxstart nginx或双击 nginx.exe停止systemctl stop nginx./sbin/nginx -s stopnginx -s stop优雅停止-./sbin/nginx -s quitnginx -s quit重载配置systemctl reload nginx./sbin/nginx -s reloadnginx -s reload检查配置nginx -t./sbin/nginx -tnginx -t查看版本nginx -v./sbin/nginx -vnginx -v测试配置输出详细信息nginx -T./sbin/nginx -Tnginx -T常用技巧修改任何配置文件后一定先用-t检查语法确认无误再reload。如果reload后发现没有生效可以看日志logs/error.log排查。五、Nginx 核心配置详解配置文件默认位置Linux (yum)/etc/nginx/nginx.conf通常还会包含/etc/nginx/conf.d/*.confLinux (解压)~/nginx/conf/nginx.confWindowsC:\nginx\conf\nginx.conf我们以解压版的nginx.conf为例子逐段解释。5.1 全局块与 events 块# 指定工作进程数一般设为 CPU 核心数或 auto worker_processes 1; events { # 每个工作进程的最大并发连接数 worker_connections 1024; }worker_processesNginx 会启动多少个工作进程配合多核 CPU 提升性能。auto表示自动检测。worker_connections每个进程能同时处理的连接数决定了 Nginx 的并发能力。5.2 http 块http 块里放的是网站相关的所有配置比如虚拟主机、反向代理。http { # 引入 MIME 类型映射表 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 logs/access.log main; # 高效文件传输模式 sendfile on; # 长连接超时时间 keepalive_timeout 65; # 引入其他配置文件 include conf.d/*.conf; # 很多 Linux 发行版会从 conf.d 目录加载 # 或者直接在这个文件里写 server 块 }5.3 server 块虚拟主机一个server块就是一个网站。可以根据不同的域名或端口区分。server { listen 80; # 监听 80 端口 server_name www.example.com; # 绑定域名多个用空格分隔 # 网站根目录 root /var/www/html; # Linux 典型路径Windows 可改为 C:/www/html index index.html index.htm; # 默认首页文件 # 访问日志独立存放可选 access_log logs/example.access.log main; error_log logs/example.error.log; # location 块定义不同 URL 的处理方式 location / { try_files $uri $uri/ 404; # 先找文件再找目录都没有返回404 } }listen指定 IP 和端口80是 HTTP 默认。server_name当浏览器请求的域名匹配这个值时就会使用这个 server 块。如果都不匹配Nginx 会选第一个 server 或带有default_server的。root网页文件存放的文件夹路径。index如果访问目录默认显示哪个文件。5.4 location 块详解location根据 URL 路径URI决定怎么处理请求。常用修饰符 /path精确匹配优先级最高~ \.php$区分大小写的正则匹配~* \.jpg$不区分大小写的正则^~ /images/前缀匹配且匹配后不再检查正则无修饰符/普通前缀匹配优先级低示例一静态文件服务location /images/ { root /data; # 最终路径为 /data/images/xxx.jpg autoindex on; # 开启目录浏览方便下载文件 expires 30d; # 缓存静态文件30天减少请求 }示例二反向代理到后端应用location /api/ { proxy_pass http://127.0.0.1:8080; # 转发给本机的8080端口 proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; }反向代理的含义用户访问http://你的域名/api/xxx时Nginx 帮你向后面的127.0.0.1:8080请求内容并返回给用户。后面可能是 Tomcat、Node.js 等。示例三负载均衡把请求分给多台服务器先在http块里定义一个服务器组upstream backend { server 192.168.1.10:8080 weight3; # weight 代表权重 server 192.168.1.11:8080; server 192.168.1.12:8080 backup; # 仅在其他服务器全挂时启用 }然后在location里引用location / { proxy_pass http://backend; # ... 其他 proxy_set_header }5.5 配置 HTTPS (SSL)需要先准备好 SSL 证书.crt和.key文件。假设你已经从云厂商或 Let’s Encrypt 申请到了。server { listen 443 ssl; server_name secure.example.com; ssl_certificate /etc/nginx/ssl/server.crt; ssl_certificate_key /etc/nginx/ssl/server.key; ssl_protocols TLSv1.2 TLSv1.3; ssl_ciphers HIGH:!aNULL:!MD5; location / { root /var/www/secure_site; index index.html; } } # 同时将 HTTP 强制跳转到 HTTPS server { listen 80; server_name secure.example.com; return 301 https://$host$request_uri; }ssl_certificate和ssl_certificate_key指向证书文件路径。下面的 80 端口 server 块用301永久重定向将所有 HTTP 请求引到 HTTPS。5.6 日志与错误排查默认日志位置访问日志logs/access.log记录所有请求错误日志logs/error.log启动失败、配置错误、运行时错误都在这里常用错误查看tail-flogs/error.log# Linux 解压版Get-Content logs/error.log-Wait# Windows PowerShell 中实时查看当配置不生效或 502/404 时先看错误日志。六、修改配置后如何生效步骤使用编辑器修改nginx.conf或对应的conf.d下的文件。检查语法nginx -t看到syntax is ok和test is successful即为通过。重新加载配置nginx -s reloadLinux 解压版或 Windows 或systemctl reload nginxLinux yum 安装。这个操作不会中断现有连接用户无感知。重要提醒每次改动都先-t再reload这是运维的好习惯。七、实战小练习为了巩固建议你动手完成以下任务在 Linux 上发布一个静态页面把自己写好的index.html放到/var/www/myweb/目录yum 安装或者~/nginx/html/下。修改server的root指向该目录端口改为8080避免和默认冲突。访问http://IP:8080验证。在 Windows 上做反向代理本地用 Node.js 或 Python 启一个简单 Web 服务监听3000端口。配置 Nginx 的location /使用proxy_pass http://127.0.0.1:3000;访问 Nginx 的 80 端口看能否拿到后端数据。实现负载均衡的模拟在本地同时运行两个不同的后端例如不同端口返回不同内容配置upstream访问后刷新几次看是否轮换显示。八、总结比较维度Linux yum 安装Linux 解压安装Windows 解压安装安装难度简单一条命令中等需手动下载解压简单解压即用服务管理systemctl开机自启需手动写 systemd 服务需手动启动或注册服务配置文件位置/etc/nginx/解压目录/conf/解压目录/conf/适用场景生产环境测试、无网络、多版本共存开发调试、Windows 服务器生产环境掌握这些内容后你就能在公司任何环境下快速部署 Nginx 并排查基础问题了。

相关新闻

Grasscutter命令生成器:彻底解决原神私服管理复杂性的完整方案

Grasscutter命令生成器:彻底解决原神私服管理复杂性的完整方案

Grasscutter命令生成器:彻底解决原神私服管理复杂性的完整方案 【免费下载链接】GrasscutterCommandGenerator Command Generator and Gacha Banner Editor 项目地址: https://gitcode.com/gh_mirrors/gr/GrasscutterCommandGenerator Grasscutter命令生成器…

2026/6/30 14:09:42阅读更多 →
【小白也能轻松玩转龙虾】虾壳云一键部署 OpenClaw v2.7.9,零基础搭建本地 AI(附最新安装包)

【小白也能轻松玩转龙虾】虾壳云一键部署 OpenClaw v2.7.9,零基础搭建本地 AI(附最新安装包)

OpenClaw(小龙虾)Windows 一键部署实操手册|十分钟搭建专属本地数字员工 适配平台:Windows 10/11(64 位)|零基础友好|全可视化界面|无编程门槛 当下热度较高的开源 AI 智…

2026/6/30 14:09:42阅读更多 →
孙悦生辰限定暖心单曲上线!《温暖你我》 一曲写尽相守的温情

孙悦生辰限定暖心单曲上线!《温暖你我》 一曲写尽相守的温情

这是一场蓄谋已久的"生日告白"。6月29日,孙悦生日当天,全新治愈单曲《温暖你我》全网上线———为爱人、为伙伴。从《祝你平安》到《温暖你我》,三十余年音乐路,她选在属于自己的特殊日子,把一首歌还给所有在…

2026/6/30 14:04:41阅读更多 →
分钟级移植!AtomCode搞定鸿蒙PC mimalloc适配

分钟级移植!AtomCode搞定鸿蒙PC mimalloc适配

欢迎加入【开源鸿蒙PC社区】,一起共建鸿蒙化C/C三方库生态。 欢迎在【PC社区】平台贡献你的项目。 资源地址上游仓库地址https://github.com/microsoft/mimalloc适配源码地址https://atomgit.com/unisources/mimallocAtomCode 文档https://atomcode.atomgit.comlyci…

2026/6/30 15:00:01阅读更多 →
MetahumanModelerProV2.3:增加基于多视图生成贴图功能

MetahumanModelerProV2.3:增加基于多视图生成贴图功能

MetahumanModelerProV2.3

2026/6/30 15:00:01阅读更多 →
《另一个伊甸》火队新核心‘花咲’保姆级攻略:从技能解析到实战配队(附红白珠机制详解)

《另一个伊甸》火队新核心‘花咲’保姆级攻略:从技能解析到实战配队(附红白珠机制详解)

《另一个伊甸》火队新核心‘花咲’深度实战指南:红白珠机制与极限输出配队在《另一个伊甸》2.13.50版本中,异时层妖刀「花咲」的加入彻底改变了火属性队伍的战术格局。这位手持长枪的东方王族不仅拥有独特的红白珠系统,更能通过ZONE觉醒实现火…

2026/6/30 15:00:01阅读更多 →
如何轻松掌控你的塔科夫离线之旅:SPT-AKI存档编辑器终极指南

如何轻松掌控你的塔科夫离线之旅:SPT-AKI存档编辑器终极指南

如何轻松掌控你的塔科夫离线之旅:SPT-AKI存档编辑器终极指南 【免费下载链接】SPT-AKI-Profile-Editor Программа для редактирования профиля игрока на сервере SPT-AKI 项目地址: https://gitcode.com/gh_mir…

2026/6/30 15:00:01阅读更多 →
3. 从鱼眼到折反射:全向相机模型统一建模实战

3. 从鱼眼到折反射:全向相机模型统一建模实战

1. 全向相机基础:从鱼眼到折反射的成像革命 第一次拆开无人机上的全景摄像头时,我发现里面既不是传统镜头也不是普通反光镜,而是一个碗状的金属曲面。这种被称为折反射相机的设计,与常见的鱼眼相机共同构成了全向视觉的两大技术路…

2026/6/30 15:00:01阅读更多 →
手把手教你复现Juniper SRX的CVE-2023-36845漏洞(附EXP与FOFA语法)

手把手教你复现Juniper SRX的CVE-2023-36845漏洞(附EXP与FOFA语法)

从零实战:Juniper SRX设备CVE-2023-36845漏洞深度解析与安全验证当你第一次听说Juniper SRX系列设备存在任意文件读取漏洞时,是否和我一样既兴奋又忐忑?兴奋的是这可能是进入网络安全实战的一个绝佳案例,忐忑的是面对复杂的设备环…

2026/6/30 14:55:00阅读更多 →
AI Coding 六个月真实ROI账本:产品经理的血泪教训,研发的冷静忠告

AI Coding 六个月真实ROI账本:产品经理的血泪教训,研发的冷静忠告

6个月前的2025年12月,Boris Cherny 公开宣布自己卸载了 IDE。一时间,Vibe Coding 成了全行业最热的话题。6个月后,当我们回过头来拉一份真实账本,发现事情远没有"一句话生成一个App"那么浪漫。本文从产品经理和研发两个…

2026/6/30 4:03:30阅读更多 →
审计来了,数据权限全开——审计走了,怎么确保权限全部关掉?

审计来了,数据权限全开——审计走了,怎么确保权限全部关掉?

引言:审计结束三个月了,审计员的权限还没关某城商行每年按照监管要求开展至少一次数据安全审计。审计期间,内审部门需要抽样检查各类业务数据——交易流水、客户信息、员工操作日志、权限配置记录。这些数据分布在不同系统中,审计…

2026/6/30 4:36:27阅读更多 →
为什么你需要Destiny 2 Solo Enabler:技术原理与实战指南

为什么你需要Destiny 2 Solo Enabler:技术原理与实战指南

为什么你需要Destiny 2 Solo Enabler:技术原理与实战指南 【免费下载链接】Destiny-2-Solo-Enabler Repo containing the C# and XAML code for the D2SE program. Included is also the dependency for the program, and image asset. 项目地址: https://gitcode…

2026/6/30 0:02:58阅读更多 →
第六章:PowerPoint 2010 核心功能与实战应用 —— 从入门到精通

第六章:PowerPoint 2010 核心功能与实战应用 —— 从入门到精通

1. PowerPoint 2010基础操作全攻略 刚接触PowerPoint 2010时,很多人会被它复杂的界面吓到。其实只要掌握几个核心区域,就能快速上手。我最开始用PPT时,经常找不到功能按钮在哪,后来发现主要操作都集中在顶部功能区。 工作窗口主要…

2026/6/30 0:02:58阅读更多 →
XGBoost超参数实战:从理论到调优策略

XGBoost超参数实战:从理论到调优策略

1. XGBoost超参数基础认知 第一次接触XGBoost时,我被它那密密麻麻的参数列表吓到了。这感觉就像面对一架波音747的驾驶舱——每个按钮都可能有神奇的效果,但按错了就可能坠机。经过多年实战,我发现其实掌握十几个核心参数就能解决90%的问题。…

2026/6/30 0:02:59阅读更多 →