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个核心命令,满足日常使用需求。
相关推荐
委婉待续2 小时前
关于ubuntu开机进入recovering journal的解决方法
linux·运维·ubuntu
炸炸鱼.2 小时前
Nginx 安全防护与 HTTPS 部署实战
nginx·安全·https
ego.iblacat2 小时前
Nginx 安全防护与 HTTPS 部署实战
nginx·安全·https
刘晨鑫12 小时前
Nginx安全防护与HTTPS部署实战
nginx·安全·https
写代码的小阿帆2 小时前
SpringBoot项目部署——命令行、Nginx代理与docker容器
spring boot·nginx·docker
J超会运2 小时前
Nginx安全配置实战:8大核心功能详解
运维·nginx·安全
北城笑笑2 小时前
Vue 99 ,Vue 项目代理配置规范:跨域解决、路径重写与多环境适配最佳实践( 企业级避坑指南 )
运维·前端·nginx·vue
主角1 72 小时前
Nginx安全
linux·运维·nginx
徒 花2 小时前
Docker在Ubuntu上的安装及配置(基于k8s基础环境配置)
ubuntu·docker·kubernetes