2026/10/14 1:08:43

Nginx 安装与运维实战指南:Windows / Linux / Docker 全场景部署与开机自启动(nginx-tutorial)

Nginx 安装与运维实战指南:Windows / Linux / Docker 全场景部署与开机自启动(nginx-tutorial) 文档教程【免费下载链接】nginx-tutorial这是一个 Nginx 极简教程目的在于帮助新手快速入门 Nginx。项目地址https://gitcode.com/gh_mirrors/ng/nginx-tutorial点击查看免费下载本文以 nginx-tutorial 仓库的 Nginx 运维 文档为主体系统讲解 Nginx 在 Windows、Linuxrpm 包与源码编译两种方式以及 Docker 容器三种形态下的安装、启动、自启动与日常运维方法并结合仓库内自带的 examples 演示工程与脚本给出可直接照做的操作步骤与可验证的配置证据。读完本文你将能够独立完成 Nginx 从下载安装到开机自启、再到配置校验与重启的全流程运维工作。一、Nginx 运维概览先认清三种部署形态Nginx 的安装从来不只是把二进制放到机器上那么简单它通常与后续的配置管理、进程守护、日志轮转、负载均衡策略绑定在一起。结合本仓库的教程体系运维安装是整个链路的第一步快速上手Nginx 快速教程 讲解常用命令与七大实战场景反向代理、HTTPS、负载均衡、多 webapp、静态站点、文件服务器、跨域安装运维Nginx 运维即本文主体覆盖 Windows / Linux / Docker 三种安装方式与开机自启动配置详解Nginx 配置 深入 nginx.conf 的完整参数体系与工程化组织规范排错手册Nginx 问题 汇集常见问题。从部署形态上看本仓库文档覆盖了三条主线部署形态适用场景安装方式Windows 二进制包本地开发、演示、学习官网下载 nginx/Windows 压缩包解压即用Linux rpm 包生产服务器快速部署通过 yum 源安装自带 systemd 服务文件Linux 源码编译需要定制模块、安装路径、编译参数configure make make installDocker 容器隔离环境、快速迁移、CI/CDdocker pull docker run 挂载配置仓库中 examples/nginx-1.14.0 内置了 Nginx 1.14.0 的 Windows 官方版本及其配套启动/停止脚本并随 examples 提供了 6 个一键式实战演示反向代理、负载均衡、多 webapp、前后端分离、文件服务器、静态站点可作为安装完成后验证效果的现成环境。二、Windows 安装 Nginx2.1 下载与解压进入 Nginx 官方下载地址选择nginx/Windows-xxx版本Windows 平台专用构建与 Linux 源码包不同下载后解压到本地即可无需执行安装程序。2.2 启动、校验与停止解压目录即 Nginx 的安装目录目录内通常包含conf/配置文件、html/默认站点、logs/日志等子目录。启动方式如下以 C 盘根目录为例cd C: cd C:\nginx-0.8.54 start nginx更稳妥的启动流程是先校验配置、再启动。仓库中 nginx-start.bat 正是这一标准做法的落地脚本其核心命令为rem 1. 如果目录不存在 logs 目录则创建 if not exist %~dp0logs ( md %~dp0logs ) rem 2. 如果目录不存在 temp 目录则创建 if not exist %~dp0temp ( md %~dp0temp ) rem 3. 指定 conf/nginx.conf 启动 nginx nginx.exe -t -c conf/nginx.conf start nginx停止服务则使用仓库中的 nginx-stop.bat内部只有一条命令nginx.exe -s stop注Nginx / Win32 运行在一个控制台程序而非 Windows 服务方式。服务器方式目前还处于开发尝试阶段。这意味着 Windows 下 Nginx 随系统自启需要通过启动目录、计划任务等额外手段实现本文不展开。2.3 验证安装启动后在浏览器访问http://localhost出现 Nginx 默认欢迎页对应html/index.html即表示安装成功。随后即可按照 Nginx 快速教程 的实战章节或直接复用仓库 examples 中的demo0x-start.bat演示脚本进入配置实战。三、Linux 安装 NginxLinux 下有两种主流安装路径rpm 包方式推荐与源码编译方式二者各有取舍下面分别说明。3.1 rpm 包方式推荐rpm 方式的核心思路是先安装 Nginx 官方维护的 yum 源再用 yum 直接安装 nginx全程自动化处理依赖。1下载 Nginx 官方 yum 源 rpm 包进入 Nginx 官方软件包下载页面选择对应发行版如 CentOS 7的 release 包$ wget http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm2安装 yum 源注意这个 rpm 包本身并不是 nginx 程序而是安装了 nginx 的 yum 源。$ rpm -ivh nginx-*.rpm3通过 yum 正式安装 nginx$ yum install nginx4放行 80 端口防火墙安装后默认监听 80 端口需要放行防火墙规则CentOS 7 使用 firewalld$ firewall-cmd --zonepublic --add-port80/tcp --permanent $ firewall-cmd --reloadrpm/yum 安装后配置与日志通常遵循发行版约定如/etc/nginx/nginx.conf、/var/log/nginx/并且会自动创建 nginx.service 文件这一点对后续设置开机自启动非常关键见第四章。3.2 源码编译方式源码编译适合需要自定义安装路径、按需选择模块如 stub_status、ssl、或发行版软件源版本滞后的场景。本仓库运维文档以 Nginx 1.12.2 为例演示完整流程。3.2.1 安装编译工具及依赖库Nginx 源码编译依赖 gcc 及若干库文件必须先安装$ yum -y install make zlib zlib-devel gcc-c libtool openssl openssl-develNginx 的正则表达式能力依赖PCRE 库需要单独下载编译1下载解压到本地以下以 8.35 版本为例wget -O /opt/pcre/pcre-8.35.tar.gz http://downloads.sourceforge.net/project/pcre/pcre/8.35/pcre-8.35.tar.gz cd /opt/pcre tar zxvf pcre-8.35.tar.gz2编译安装 PCREcd /opt/pcre/pcre-8.35 ./configure make make install3验证 PCRE 是否安装成功执行pcre-config --version命令能输出版本号即说明安装成功。3.2.2 编译安装 Nginx1下载解压源码以 1.12.2 版本为例wget -O /opt/nginx/nginx-1.12.2.tar.gz http://nginx.org/download/nginx-1.12.2.tar.gz cd /opt/nginx tar zxvf nginx-1.12.2.tar.gz2configure 配置并编译安装cd /opt/nginx/nginx-1.12.2 ./configure --with-http_stub_status_module --with-http_ssl_module --with-pcre/opt/pcre/pcre-8.35 make make install三个核心 configure 参数的含义参数作用--with-http_stub_status_module启用stub_status状态页模块可实时查看 Nginx 连接数等运行状态--with-http_ssl_module启用 SSL 支持是配置 HTTPS 反向代理443 端口的前提--with-pcre/opt/pcre/pcre-8.35显式指定 PCRE 源码路径让 Nginx 编译时链接刚编译好的 PCRE 库不指定--prefix时默认安装到/usr/local/nginx主配置位于/usr/local/nginx/conf/nginx.conf可执行文件位于/usr/local/nginx/sbin/nginx。3放行 80 端口$ firewall-cmd --zonepublic --add-port80/tcp --permanent $ firewall-cmd --reload4启动 Nginx 并验证安装成功后直接执行nginx命令即可启动完整路径为/usr/local/nginx/sbin/nginx。启动后访问站点http://服务器IP即可看到 Nginx 欢迎页证明编译安装成功。两种方式对比小结rpm 方式一条 yum 命令搞定依赖与 systemd 服务文件适合大多数生产场景源码方式则把模块选择、安装路径、编译参数的掌控权完全交还给你代价是需要手动管理依赖并自行编写服务文件见下文。四、Linux 开机自启动配置CentOS 7 及以上版本使用Systemd进行系统初始化。Systemd 是 Linux 最新的初始化系统init设计目标是克服 sysvinit 固有缺点、提高系统启动速度。Systemd 服务文件以.service结尾是否自动创建该文件决定了自启动配置的复杂度。4.1 rpm 包方式一条命令搞定如果是通过 rpm 包安装的安装过程会自动创建nginx.service文件直接启用即可$ systemctl enable nginx.service执行后Nginx 即被注册为开机自启动服务同时可通过systemctl start nginx、systemctl status nginx等标准方式管理。4.2 源码编译方式手动创建 systemd 服务如果采用源码编译方式安装安装到/usr/local/nginx需要手动创建nginx.service文件。可参考如下通用模板保存为/usr/lib/systemd/system/nginx.service[Unit] Descriptionnginx - high performance web server Afternetwork.target remote-fs.target nss-lookup.target [Service] Typeforking PIDFile/usr/local/nginx/logs/nginx.pid ExecStartPre/usr/local/nginx/sbin/nginx -t -c /usr/local/nginx/conf/nginx.conf ExecStart/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf ExecReload/bin/kill -s HUP $MAINPID ExecStop/bin/kill -s QUIT $MAINPID PrivateTmptrue [Install] WantedBymulti-user.target随后执行# 重新加载 systemd 配置 $ systemctl daemon-reload # 设置开机自启并立即启动 $ systemctl enable nginx $ systemctl start nginx # 查看运行状态 $ systemctl status nginx模板要点说明TypeforkingNginx 主进程启动时会 fork 出 worker 进程属典型的守护型进程ExecStartPre启动前先执行nginx -t校验配置语法防止配置错误导致服务起不来ExecReload/ExecStop通过向主进程发送 HUP / QUIT 信号实现平滑重载与优雅停止这与nginx -s reload/nginx -s quit的作用一致。4.3 systemd 方式下的日常运维注册为 systemd 服务后日常运维可统一走 systemctlsystemctl start nginx # 启动 systemctl stop nginx # 停止 systemctl reload nginx # 平滑重载配置不中断服务 systemctl restart nginx # 重启 systemctl enable nginx # 设置开机自启 systemctl status nginx # 查看状态五、Docker 方式安装与运维对于隔离环境、快速迁移和 CI/CD 场景Docker 是更轻量的选择。官方镜像为nginxDocker Hub 上的官方镜像整个流程只需三条核心命令# 下载镜像 docker pull nginx # 启动容器挂载日志目录与配置文件 docker run --name my-nginx -p 80:80 \ -v /data/docker/nginx/logs:/var/log/nginx \ -v /data/docker/nginx/conf/nginx.conf:/etc/nginx/nginx.conf:ro \ -d nginx启动命令参数解读参数含义--name my-nginx为容器命名便于后续引用-p 80:80将宿主机 80 端口映射到容器内 80 端口-v /data/docker/nginx/logs:/var/log/nginx将宿主机日志目录挂载到容器日志目录日志落在宿主机-v ...nginx.conf:/etc/nginx/nginx.conf:ro以只读方式挂载自定义主配置宿主机改配置即容器内生效-d后台运行容器容器内 Nginx 的日常操作通过docker exec或docker stop/restart完成# 重新加载配置注此方式实测无效只能重启服务 docker exec -it my-nginx nginx -s reload # 停止服务两种方式 docker exec -it my-nginx nginx -s stop docker stop my-nginx # 重新启动服务 docker restart my-nginx注意容器内执行nginx -s reload在部分场景下不能按预期生效原运维文档的实测结论是目前测试无效只能重启服务。因此在 Docker 形态下修改配置后优先使用docker restart my-nginx确保生效。六、Nginx 日常运维命令与配置校验无论用哪种方式安装Nginx 的命令行操作都是统一的。常用命令整理如下完整命令表见 Nginx 快速教程命令作用nginx -s stop快速关闭 Nginx可能不保存相关信息并迅速终止 Web 服务nginx -s quit平稳关闭 Nginx保存相关信息有安排地结束 Web 服务nginx -s reload因改变了 Nginx 相关配置重新加载配置平滑重载不中断服务nginx -s reopen重新打开日志文件日志轮转后常用nginx -c filename为 Nginx 指定一个配置文件代替缺省的 nginx.confnginx -t仅测试配置文件检查配置语法正确性并尝试打开配置中引用的文件nginx -v显示 Nginx 版本nginx -V显示 Nginx 版本、编译器版本和编译配置参数推荐运维习惯任何一次配置修改后都先执行nginx -t校验语法再执行nginx -s reload或 systemd 下的systemctl reload nginx平滑生效。配置重载还有多种等价形式详见 Nginx 配置 的重加载 Nginx 配置一节包括systemctl reload nginx service nginx reload /etc/init.d/nginx reload /usr/sbin/nginx -s reload kill -HUP $(cat /var/run/nginx.pid)此外运维中最常看的两个日志文件是错误日志error_log排查启动失败与运行时错误和访问日志access_log分析请求量与来源其路径可在 nginx.conf 中通过error_log、access_log、log_format指令自定义参数详解见 Nginx 配置。七、一键安装脚本与仓库演示脚本7.1 Linux 一键安装脚本运维文档提供了一套 CentOS 7 环境的 Nginx 一键安装脚本源自软件运维配置脚本集合其安装说明如下采用编译方式安装 Nginx并将其注册为 systemd 服务安装路径为/usr/local/nginx默认下载安装1.16.0版本。默认安装——执行以下任意一条命令即可在线拉取脚本并执行curl -o- nginx-install.sh 在线地址 | bash wget -qO- nginx-install.sh 在线地址 | bash自定义安装——将脚本下载到本地后按以下格式执行[version]指定版本号sh nginx-install.sh [version]7.2 仓库自带演示脚本安装后的一站式验证环境除运维文档介绍的一键脚本外本仓库 examples 还内置了一套开箱即用的 Windows 演示环境安装 Nginx 后可以直接运行验证nginx-start.bat / nginx-stop.bat启动 / 停止内置的 Nginx 1.14.0examples/nginx-1.14.0/conf/nginx.conf演示主配置通过include conf.d/*.conf;批量引入各场景配置片段examples/scripts 下的demo01-start.bat~demo06-start.bat一键启动对应实战场景反向代理、负载均衡、多 webapp、前后端分离、文件服务器、静态站点。值得说明的是演示后端 javaapp 是一个可参数化的嵌入式 Tomcat 服务其启动类 Main.java 支持通过-Dtomcat.connector.port和-Dtomcat.context.path在启动时指定端口与上下文路径源码中System.getProperty(tomcat.connector.port)的默认值为 8080。借助这一设计演示脚本可以用同一份代码模拟出多个服务器实例例如负载均衡场景 demo02-start.bat 一次拉起 9021/9022/9023 三个端口多 webapp 场景 demo03-start.bat 一次拉起/、/product、/user三个上下文从而直观验证 Nginx 的upstream加权轮询与location上下文分流效果对应配置见 demo02.conf 与 demo03.conf。八、延伸阅读完成安装与自启动配置后建议按以下顺序继续深入Nginx 快速教程常用命令 七大实战场景完整配置可直接对照上手Nginx 配置nginx.conf 全参数详解、配置工程化组织规范、日志轮转与调试技巧Nginx 问题常见报错与排查方案examples 示例说明6 个一键式实战演示的运行步骤与配置要点用于验证安装结果。赞分享文档教程【免费下载链接】nginx-tutorial这是一个 Nginx 极简教程目的在于帮助新手快速入门 Nginx。项目地址https://gitcode.com/gh_mirrors/ng/nginx-tutorial点击查看免费下载相关推荐Linux-Tutorial 实战Ansible 安装、配置与 Playbook 自动化运维指南Linux Tutorial 实战Ansible 安装、配置与 Playbook 自动化运维指南 本文是《Java 程序员眼中的 Linux》系列Linux文档教程技术博客Mall4j 生产部署运维全指南jar 部署、Docker Compose、Nginx 与上线检查Mall4j 生产部署运维全指南jar 部署、Docker Compose、Nginx 与上线检查 导读 本文是 Mall4j 开源电商系统的部署运维实战指电商后端前端移动开发如何在全平台部署与运维CovenantDocker、Linux、Windows终极指南如何在全平台部署与运维CovenantDocker、Linux、Windows终极指南 Covenant是一款基于.NET的命令与控制C2框架专为红队人网络安全应用安全创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考