上一篇我们初识了Nginx——知道了它是高性能的HTTP和反向代理服务器,懂了它为什么被99%的互联网公司青睐,也明确了我们后续的学习路线。本篇文章将手把手教你在Linux和Windows系统上,完成Nginx的安装、部署、启动、停止 ,同时解决安装过程中最常见的报错,全程无冗余、无晦涩,新手跟着步骤走,10分钟就能搞定,看完就能独立操作。- Linux系统(CentOS/Ubuntu)两种安装方式(包管理器+源码编译,按需选择)
- 安装/启动时最常见的8个报错,一键解决(不用查百度)
提前说明:日常开发/生产环境,90%以上用Linux系统部署Nginx;Windows系统仅用于本地测试,大家可根据自己的需求,重点学习对应系统的安装步骤。无论哪种系统,安装前做好以下准备,能减少80%的报错:- Linux系统:确保服务器能正常联网(安装需要下载依赖),拥有root权限(执行安装命令需要);
- Windows系统:确保系统是Win10及以上版本,解压路径不要有中文、空格(比如不要放在“桌面/我的软件”,建议放在D盘根目录);
- 通用:关闭不必要的防火墙(Linux)或杀毒软件(Windows),避免拦截安装/启动进程。
Linux系统推荐两种安装方式,新手优先选包管理器安装(简单、快捷、自动配置依赖);有自定义需求(比如指定安装目录、添加特殊模块),再选源码编译安装。方式1:包管理器安装(CentOS/Ubuntu通用,新手首选)这种方式无需手动配置依赖,一行命令就能完成安装,适合新手和快速部署场景。说明:-y参数表示自动确认安装,无需手动输入y确认。- 安装完成后,查看Nginx版本(验证是否安装成功):
输出类似 nginx version: nginx/1.24.0,说明安装成功。如果需要自定义Nginx安装目录、添加第三方模块(比如限流、缓存模块),可以用这种方式,步骤稍多,但更灵活。# CentOS系统yum install gcc pcre-devel zlib-devel openssl-devel -y# Ubuntu系统apt install gcc libpcre3 libpcre3-dev zlib1g-dev openssl libssl-dev -y
2.下载Nginx源码包(推荐稳定版,比如1.24.0):wget http://nginx.org/download/nginx-1.24.0.tar.gz
#CentOSyum install wget -y#Ubuntuapt install wget -y
tar -zxvf nginx-1.24.0.tar.gz
5.配置安装目录(自定义路径,这里以/usr/local/nginx为例): ./configure --prefix=/usr/local/nginx
这个过程会持续1-2分钟,耐心等待,无报错即为编译成功。cd /usr/local/nginx/sbin./nginx -v
新手提醒:如果没有特殊需求,优先用包管理器安装;源码编译安装后续卸载、升级稍麻烦,适合有进阶需求的同学。Windows系统安装更简单,无需命令,解压即可使用,适合本地测试静态网站、调试配置。- 下载Nginx安装包:访问Nginx官方网站(http://nginx.org/),点击右侧“download”,选择“Stable version”(稳定版),下载Windows版本(如nginx/Windows-1.24.0.zip)。
将下载的.zip文件,解压到 纯英文、无空格的路径(重点!),比如D:\nginx-1.24.0。解压后,进入目录,能看到以下核心文件夹:- conf:存放Nginx配置文件(后续重点用到);
- sbin:存放Nginx启动/停止命令(nginx.exe)。
打开解压后的sbin目录,双击nginx.exe,会弹出一个黑色命令行窗口,瞬间消失——这是正常现象,说明Nginx已启动。打开浏览器,输入http://localhost,能看到Nginx默认首页,即为安装成功。注意:Windows系统中,Nginx启动后,黑色窗口会立即消失,不要误以为启动失败;如果窗口一闪而过且无法访问,大概率是80端口被占用(后续报错排查会讲)。安装完成后,重点掌握这3个操作,后续修改配置、维护Nginx都要用到,分Linux和Windows分别说明,简单好记。推荐用systemctl命令,操作简单、稳定,适合包管理器安装的Nginx:# 1. 启动Nginxsystemctl start nginx# 2. 停止Nginxsystemctl stop nginx# 3. 重启Nginx(修改配置后必须执行,让配置生效)systemctl restart nginx# 4. 查看Nginx运行状态systemctl status nginx
补充:如果是源码编译安装(自定义目录),用以下命令(以/usr/local/nginx为例):# 进入Nginx执行目录cd /usr/local/nginx/sbin# 启动./nginx# 停止(强制停止,不推荐)./nginx -s stop# 优雅停止(推荐,等待所有请求处理完成后停止)./nginx -s quit# 重启(修改配置后生效)./nginx -s reload
- 进入Nginx解压目录的sbin文件夹(比如D:\nginx-1.24.0\sbin):
# 启动nginx.exe# 停止nginx.exe -s stop# 优雅停止nginx.exe -s quit# 重启(修改配置后生效)nginx.exe -s reload
打开任务管理器,找到“nginx.exe”进程,右键选择“结束任务”,即可停止Nginx;双击sbin目录下的nginx.exe,即可启动。重点牢记:修改Nginx配置文件后,必须执行“重启”命令,配置才能生效!无论哪种系统,安装启动后,一定要验证是否能正常运行,避免后续操作踩坑。- 本地测试(Linux/Windows):打开浏览器,输入http://localhost,能看到Nginx默认首页(蓝色页面,显示“Welcome to nginx!”),即为正常。
- 远程测试(Linux服务器):打开本地浏览器,输入服务器公网IP(比如http://123.45.67.89),能看到默认首页,即为正常(需开放80端口,后续报错排查会讲)。
# Linux系统curl http://localhost# Windows系统(CMD中执行)curl http://localhost
如果输出Nginx默认首页的HTML代码(包含“Welcome to nginx!”),说明Nginx正常运行。新手安装Nginx,最容易遇到以下报错,不用慌,对照报错信息,复制对应的解决命令,一键搞定:报错1:Linux启动Nginx报错:Job for nginx.service failed because the control process exited with error code.原因:80端口被其他服务(比如Apache、Tomcat)占用;解决:关闭占用80端口的服务,或修改Nginx监听端口(后续配置会详细说)。# 查看80端口占用情况netstat -tulnp | grep 80# 关闭占用服务(以Apache为例)systemctl stop httpd
报错2:Windows启动Nginx一闪而过,浏览器访问不到原因:80端口被占用(比如IIS、迅雷、微信等软件),或解压路径有中文/空格;解决: 查找并关闭占用80端口的软件:CMD中执行 netstat -ano | findstr :80 ,找到PID,在任务管理器中结束对应进程;将Nginx解压到纯英文、无空格路径(比如D:\nginx)。报错3:Linux执行nginx -v报错:nginx: command not found原因:源码编译安装,未配置环境变量,系统找不到nginx命令;解决:用完整路径执行命令(以/usr/local/nginx为例): /usr/local/nginx/sbin/nginx -v
报错4:源码编译安装时,报错:./configure: error: the HTTP rewrite module requires the PCRE library.# CentOSyum install pcre-devel -y# Ubuntuapt install libpcre3 libpcre3-dev -y
报错5:Linux启动Nginx报错:nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)报错6:Windows执行nginx -s reload报错:nginx: [error] open() "D:\nginx-1.24.0/logs/nginx.pid" failed (2: No such file or directory)解决:重新启动Nginx,再执行reload命令。报错7:Linux包管理器安装Nginx后,启动报错:No such file or directory# CentOSyum remove nginx -yyum install nginx -y# Ubuntuapt remove nginx -yapt install nginx -y
报错8:远程访问Linux服务器的Nginx,浏览器无法打开原因:Linux防火墙未开放80端口,或云服务器安全组未配置;firewall-cmd --permanent --add-port=80/tcpfirewall-cmd --reload
云服务器:登录控制台,找到“安全组”,添加80端口入站规则(允许所有IP访问)。本篇文章完成了Nginx的核心部署操作,重点总结:- Linux系统:新手用包管理器(yum/apt)安装,简单快捷;有自定义需求用源码编译安装;
- Windows系统:解压即可使用,重点注意“纯英文路径”和“80端口占用”;
- 核心命令:启动、停止、重启,修改配置后必须重启Nginx;
- 报错解决:遇到问题不用慌,对照本文的报错列表,一键就能解决。
到这里,你已经拥有了一台可正常运行的Nginx服务器——这是我们后续所有学习的基础。下一篇,我们将进入Nginx的核心配置环节,教你读懂nginx.conf配置文件,亲手搭建第一个静态网站,真正实现“会用”Nginx。