Ubuntu 上 Nginx 安装详细指南(新手零踩坑版)

Ubuntu 上 Nginx 安装详细指南(新手零踩坑版)

大家好~ 今天给大家带来 Ubuntu 系统下 Nginx 的完整安装指南,不管你是刚接触 Linux 的新手,还是需要快速部署 Web 服务器的开发者,这篇文章都能帮你从头到尾搞定 Nginx 环境搭建,全程步骤清晰、指令可直接复制,避开所有常见踩坑点。

先简单科普下 Nginx:Nginx(发音为"engine x")是一款开源、高性能的 HTTP 和反向代理服务器,同时也是一个 IMAP/POP3/SMTP 代理服务器。它的核心优势是 高并发、低内存占用、配置灵活,目前被广泛用于生产环境,无论是搭建个人博客、企业官网,还是作为反向代理、负载均衡服务器,Nginx 都是首选工具之一✨

本文适配 Ubuntu 20.04 / 22.04 / 24.04 LTS 版本(最常用、最稳定的版本),涵盖 2种核心安装方式(APT 仓库安装、官方源安装),以及配置文件解读、服务管理、基础测试、常见问题排查,新手跟着操作,10分钟就能完成 Nginx 安装并正常运行。

一、前置准备(必做步骤)

在安装任何软件前,建议先更新系统软件包索引,确保获取最新的版本和安全补丁,避免安装过程中出现依赖冲突(这是新手最容易忽略,也最容易踩坑的一步)。

打开 Ubuntu 终端(快捷键 Ctrl+Alt+T),依次执行以下两条命令:

bash 复制代码
# 更新软件包索引(获取最新的软件包信息)
sudo apt update

# 可选但推荐:升级已安装的软件包(提升系统稳定性,避免依赖兼容问题)
sudo apt upgrade -y

提示:输入 sudo 命令后,需要输入当前用户的密码(输入时不显示明文,正常输入即可),确认权限后等待执行完成,一般1-3分钟(取决于网络速度)。

补充:如果执行 sudo apt upgrade -y 时出现提示,直接按回车确认即可,无需额外操作。

二、Nginx 安装(2种方式,按需选择)

推荐新手优先选择 方式1(APT 仓库安装),最简单快捷,无需额外配置,安装后自动配置服务、设置开机自启;如果需要安装最新稳定版 Nginx(如 Nginx 1.25+),则选择方式2(官方源安装)。

方式1:APT 仓库安装(最推荐,新手首选)

Ubuntu 官方仓库中已包含 Nginx 稳定版(通常为 Nginx 1.18 或 1.21 版本),无需额外添加源,直接通过 apt 命令即可完成安装,步骤如下:

  1. 执行安装命令,自动安装 Nginx 及相关依赖:
    sudo apt install nginx -y"-y" 参数表示自动确认安装,无需手动输入 "y" 确认,节省操作步骤;如果不添加 "-y",安装过程中会提示"是否继续",输入 "y" 并回车即可。

  2. 安装完成后,检查 Nginx 服务状态,确认是否正常启动:
    sudo systemctl status nginx如果输出中出现 active (running)(如下所示),说明 Nginx 已成功启动,恭喜你,安装第一步完成!● nginx.service - A high performance web server and a reverse proxy server Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled) Active: active (running) since Wed 2026-03-16 10:00:00 CST; 1min ago Docs: man:nginx(8) Process: 1234 ExecStart=/usr/sbin/nginx -g daemon on; master_process on; (code=exited, status=0/SUCCESS) Main PID: 1235 (nginx) Tasks: 3 (limit: 4915) Memory: 3.2M CGroup: /system.slice/nginx.service ├─1235 nginx: master process /usr/sbin/nginx -g daemon on; master_process on; ├─1236 nginx: worker process └─1237 nginx: worker process

  3. 测试 Nginx 是否能正常访问:

    两种测试方式,任选一种即可:

    • 方式A:终端执行命令,查看 Nginx 欢迎页内容:
      curl http://localhost如果输出包含 "Welcome to nginx!" 字样,说明 Nginx 运行正常。

    • 方式B:打开 Ubuntu 自带浏览器,输入 http://localhosthttp://127.0.0.1,如果能看到 Nginx 官方欢迎页(蓝色背景、白色文字),则说明安装成功。

方式2:官方源安装(获取最新稳定版)

如果官方仓库的 Nginx 版本较低,无法满足你的需求(比如需要使用 Nginx 最新特性),可以通过 Nginx 官方提供的源进行安装,步骤稍多,但全程可复制执行:

  1. 安装依赖工具(用于添加官方源和验证密钥,避免安装非官方软件):
    sudo apt install lsb-release curl gpg -y

  2. 导入 Nginx 官方 GPG 密钥(用于验证软件包完整性,防止被篡改):
    curl -fsSL https://nginx.org/keys/nginx_signing.key | sudo gpg --dearmor -o /usr/share/keyrings/nginx-archive-keyring.gpg执行后无明显输出,说明密钥导入成功。

  3. 添加 Nginx 官方源到系统软件源列表(根据 Ubuntu 版本自动适配):
    echo "deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg] http://nginx.org/packages/ubuntu $(lsb_release -cs) nginx" | sudo tee /etc/apt/sources.list.d/nginx.list说明:$(lsb_release -cs) 会自动获取当前 Ubuntu 版本的代号(如 22.04 为 jammy,20.04 为 focal),无需手动修改。

  4. 更新软件包索引,使官方源生效:
    sudo apt update

  5. 安装 Nginx(此时安装的是官方最新稳定版):
    sudo apt install nginx -y

  6. 验证安装和启动状态(同方式1):
    sudo systemctl status nginx确认输出包含 active (running),再通过 curl http://localhost 或浏览器访问,验证 Nginx 正常运行。

三、Nginx 核心配置解读(新手必懂)

安装完成后,Nginx 会自动生成默认配置文件,新手无需过度修改,但需要了解核心配置文件的路径和基础结构,方便后续修改(如搭建网站、配置反向代理)。

1. 核心配置文件路径(重点记忆)

Ubuntu 上 Nginx 的配置文件主要集中在以下几个路径,新手重点记住前3个:

  • /etc/nginx/nginx.conf:Nginx 主配置文件,全局配置(如 worker 进程数、日志路径、内存限制等)。

  • /etc/nginx/sites-available/:站点配置文件目录,存放所有站点的配置(默认有一个 default 配置文件,对应默认欢迎页)。

  • /etc/nginx/sites-enabled/:启用的站点配置目录,只有软链接到这里的配置文件才会生效(默认已链接 default 配置)。

  • /var/www/html/:默认网站根目录,Nginx 欢迎页的文件(index.nginx-debian.html)就存放在这里。

  • /var/log/nginx/:Nginx 日志目录,包含访问日志(access.log)和错误日志(error.log),排查故障时常用。

2. 备份配置文件(重要!)

修改任何配置文件前,建议先备份原文件,避免误操作导致 Nginx 无法启动(新手必做):

bash 复制代码
# 备份主配置文件
sudo cp /etc/nginx/nginx.conf /etc/nginx/nginx.conf.bak

# 备份默认站点配置文件
sudo cp /etc/nginx/sites-available/default /etc/nginx/sites-available/default.bak

后续如果配置出错,可通过以下命令恢复备份(以主配置文件为例):

bash 复制代码
sudo cp /etc/nginx/nginx.conf.bak /etc/nginx/nginx.conf

3. 基础配置修改(新手入门)

这里以修改默认网站根目录和首页为例,教大家如何修改 Nginx 配置,步骤如下:

  1. 编辑默认站点配置文件:
    sudo nano /etc/nginx/sites-available/default使用 nano 编辑器(简单易操作),如果未安装 nano,执行 sudo apt install nano -y 即可安装。

  2. 修改网站根目录(默认是 /var/www/html):

    找到配置文件中的 root /var/www/html; 行,将其修改为自定义路径(如 /var/www/myblog):root /var/www/myblog;

  3. 修改默认首页(默认是 index index.nginx-debian.html index.html index.htm;):

    如果需要设置自定义首页(如 index.phpindex.html),可修改为:index index.html index.htm;

  4. 保存配置并退出:

    Ctrl+O 保存文件,按 Ctrl+X 退出 nano 编辑器。

  5. 创建自定义网站根目录,并添加测试首页:

    `# 创建自定义目录

    sudo mkdir -p /var/www/myblog

创建测试首页(写入简单内容)

sudo echo "

My First Nginx Page!

" > /var/www/myblog/index.html

设置目录权限(避免 Nginx 无法访问)

sudo chown -R www-data:www-data /var/www/myblog

sudo chmod -R 755 /var/www/myblog`

  1. 检查配置文件语法(关键步骤,避免配置错误):
    sudo nginx -t如果输出 nginx: configuration file /etc/nginx/nginx.conf test is successful,说明配置语法正确;如果出现错误,根据提示修改配置文件即可。

  2. 重启 Nginx 服务,使配置生效:
    sudo systemctl restart nginx

  3. 测试效果:打开浏览器输入 http://localhost,此时会显示我们自定义的首页内容("My First Nginx Page!"),说明配置修改成功。

四、Nginx 服务管理(常用命令,必记)

通过 systemctl 命令可快速管理 Nginx 服务(启动、停止、重启、设置开机自启等),适用于 APT 或官方源安装的 Nginx,新手记住以下几个命令即可:

bash 复制代码
# 1. 启动 Nginx 服务(安装后默认已启动)
sudo systemctl start nginx

# 2. 停止 Nginx 服务(如需卸载或维护时使用)
sudo systemctl stop nginx

# 3. 重启 Nginx 服务(修改配置后必须执行,使配置生效)
sudo systemctl restart nginx

# 4. 重新加载 Nginx 服务(修改配置后,无需停止服务,仅重新加载配置,推荐)
sudo systemctl reload nginx

# 5. 查看 Nginx 服务状态(确认是否正常运行)
sudo systemctl status nginx

# 6. 设置 Nginx 开机自启(默认已开启,可重新确认)
sudo systemctl enable nginx

# 7. 取消 Nginx 开机自启(如需卸载时使用)
sudo systemctl disable nginx

# 8. 查看 Nginx 服务日志(排查故障用,如无法启动、无法访问等)
sudo journalctl -u nginx

# 9. 查看 Nginx 版本(确认安装的版本)
nginx -v

补充:修改配置后,优先使用 sudo systemctl reload nginx(重新加载配置),比重启服务更高效,不会中断正在运行的请求。

五、常见问题排查(新手必看,避坑指南)

安装或使用过程中遇到问题,不要慌,参考以下排查方法,大部分问题都能快速解决。

问题1:Nginx 服务启动失败,提示"failed"

症状:执行 sudo systemctl status nginx 显示 active (failed),无法启动服务。

核心解决方法:查看日志,定位错误原因,日志是排查 Nginx 故障的关键。

  1. 查看 Nginx 错误日志(最直接):
    sudo cat /var/log/nginx/error.log

  2. 常见原因及解决方法:

    • 配置文件语法错误:执行 sudo nginx -t 检查配置语法,根据提示修改错误(如括号不匹配、路径错误等),修改后重新加载配置。

    • 端口 80 被占用(Nginx 默认使用 80 端口,若其他软件占用,会启动失败):

      `# 查看 80 端口占用情况(找到占用进程 ID)

      sudo lsof -i:80

    关闭占用进程(替换 1234 为进程 ID)

    sudo kill -9 1234

    重启 Nginx 服务

    sudo systemctl restart nginx常见占用 80 端口的软件:Apache(httpd)、Tomcat 等,可选择关闭该软件,或修改 Nginx 监听端口(在主配置文件中修改 listen 80;为其他端口,如listen 8080;`)。

    • 权限不足:确保网站根目录(如 /var/www/html)的权限正确,执行以下命令修复:
      sudo chown -R www-data:www-data /var/www sudo chmod -R 755 /var/www

问题2:浏览器访问 localhost 显示"404 Not Found"

症状:Nginx 服务正常运行,但访问时提示 404 错误。

解决方法:

  1. 检查网站根目录是否存在,以及目录下是否有默认首页(如 index.html):
    # 查看根目录内容(以默认根目录为例) ls /var/www/html如果没有 index.html 文件,创建一个测试文件即可:sudo echo "Test Page" > /var/www/html/index.html

  2. 检查站点配置文件中的 root 路径是否正确,确保路径指向的目录存在,且有默认首页。

  3. 检查配置文件后,重新加载 Nginx 服务:sudo systemctl reload nginx

问题3:无法远程访问 Ubuntu 上的 Nginx

症状:本地访问 http://localhost 正常,但远程电脑访问 http://Ubuntu 的 IP 地址 时,无法访问(提示"无法连接"或"超时")。

解决方法:

  1. 确认 Ubuntu 的 IP 地址正确(执行 ip addr 查看,通常是 eth0wlp2s0 下的 inet 地址)。

  2. 开放 Ubuntu 防火墙 80 端口(Nginx 默认端口,远程访问需要开放):

    `# 开放 80 端口(永久生效)

    sudo ufw allow 80

启用防火墙(若未启用)

sudo ufw enable

查看防火墙规则,确认 80 端口已开放

sudo ufw status`

  1. 确认 Nginx 配置中监听的是所有 IP(默认已配置,无需修改):
    查看站点配置文件,确保有 listen 80;listen 0.0.0.0:80;,表示监听所有网络接口。

问题4:安装 Nginx 时提示"无法定位软件包 nginx"

症状:执行 sudo apt install nginx -y 时,提示"E: 无法定位软件包 nginx"。

解决方法:

  1. 重新更新软件包索引:sudo apt update(确保网络正常)。

  2. 如果是方式2(官方源安装),检查官方源是否添加成功,重新执行方式2的步骤3-4。

  3. 若仍无法解决,可更换 Ubuntu 软件源(如阿里云源),具体步骤可自行搜索(新手可暂时放弃,改用方式1安装)。

六、Nginx 卸载(可选,如需重新安装)

如果需要卸载 Nginx,执行以下命令,彻底删除 Nginx 及相关配置文件:

bash 复制代码
# 1. 停止 Nginx 服务
sudo systemctl stop nginx

# 2. 卸载 Nginx 软件包
sudo apt remove nginx -y

# 3. 彻底删除 Nginx 相关配置文件和依赖
sudo apt purge nginx -y
sudo apt autoremove -y

卸载完成后,可重新执行本文的安装步骤,重新安装 Nginx。

七、总结

到这里,Ubuntu 上 Nginx 的安装、配置、服务管理和常见问题排查就全部讲解完成了。总结一下核心要点,方便新手记忆:

  • 新手优先用 APT 安装,简单快捷,无需额外配置;需要最新版本用官方源安装。
  • 修改配置前,一定要备份原配置文件,避免误操作导致服务无法启动。
  • 修改配置后,先执行sudo nginx -t 检查语法,再执行 sudo systemctl reload nginx 重新加载配置。
  • 遇到问题,优先查看 Nginx 错误日志(/var/log/nginx/error.log),大部分故障都能通过日志定位解决。
  • 常用命令:记住启动、停止、重启、重新加载、查看状态这5个核心命令,满足日常使用需求。
相关推荐
chxii1 天前
Nginx性能优化-压缩(返回头报文介绍)
运维·nginx·性能优化
chenqianghqu1 天前
ubuntu 22.04环境中安装goland
linux·运维·ubuntu
ken22321 天前
安装问题@ ubuntu 24.04 :efi 磁盘分区,挂载
linux·运维·ubuntu
数据知道1 天前
claw-code 源码详细分析:`reference_data` JSON 快照——大型移植里「对照底稿」该怎么治理与演进?
linux·python·ubuntu·json·claude code
i建模1 天前
华为MateBook X Pro 2020款在Ubuntu系统中提升音质
linux·ubuntu·华为
drbinzhao1 天前
ubuntu20 upgrade 22
ubuntu
胖好白1 天前
【ZYNQ的Linux开发】移植Ubuntu根文件系统
linux·ubuntu
Chris _data1 天前
从宿主机(Windows)通过 NAT 模式连接虚拟机(Ubuntu)中的 MySQL
windows·mysql·ubuntu
我是永恒1 天前
PostgreSQL数据库安装配置连接Paperclip
数据库·postgresql
oG99bh7CK1 天前
FastAPI + PostgreSQL 实战:从入门到不踩坑,一次讲透
数据库·postgresql·fastapi