跳到主要内容
极客日志极客日志面向AI+效率的开发者社区
首页博客GitHub 精选镜像工具UI配色美学隐私政策关于联系
搜索内容 / 工具 / 仓库 / 镜像...⌘K搜索
注册
博客列表
Shell / Bash

Linux 搭建 Web 服务器:Nginx 与 Apache 安装配置指南

综述由AI生成Linux 服务器搭建 Web 服务涉及系统更新、软件安装及防火墙配置。演示了在 Ubuntu 22.04 和 CentOS Stream 9 上部署 Nginx 与 Apache 的具体步骤。涵盖通过 SSH 连接、使用 apt 或 dnf 安装服务、配置 ufw 或 firewalld 开放端口,以及创建并上传自定义 HTML 页面至 Web 根目录。掌握 systemctl 管理服务状态,为后续虚拟主机、动态环境及 SSL 证书配置奠定基础。

DevStack发布于 2026/4/8更新于 2026/5/2315 浏览
Linux 搭建 Web 服务器:Nginx 与 Apache 安装配置指南

Linux 搭建 Web 服务器:Nginx 与 Apache 安装配置指南

Web Server Setup


摘要

对于许多开发者和技术爱好者而言,拥有一个属于自己的 Web 服务器是迈向更广阔技术世界的第一步。它不仅是学习网络知识、托管个人博客、展示作品集的平台,更是理解互联网工作原理的绝佳实践。然而,面对 Linux 的命令行,许多新手可能会望而却步。本文旨在打破这一壁垒,提供一份超详细、步骤清晰、真正零门槛的 Linux Web 服务器搭建指南。我们将以当前最主流的两种 Web 服务器软件 Nginx 和 Apache 为例,分别在两大主流 Linux 发行版家族(基于 Debian/Ubuntu 和基于 RHEL/CentOS)上进行实战演示。从系统更新、软件安装、防火墙配置,到部署第一个网页,每一步都配有详尽的命令和解释,确保即便您是第一次接触 Linux,也能轻松跟上,成功点亮您的第一个网站。


一、引言:为何要在 Linux 上搭建 Web 服务器?

在当今这个时代,云服务器已经触手可及,价格也日益亲民。拥有一台 Linux 云服务器,就如同拥有了一块数字世界的'自留地',您可以在上面自由地构建和实验。而搭建 Web 服务器,就是在这块土地上盖起第一座房子的过程。

为什么选择 Linux?

  • 开源与免费:Linux 内核及其上绝大多数的软件都是开源的,这意味着您可以免费使用,并且可以深入研究其源代码。
  • 稳定与安全:Linux 以其卓越的稳定性和强大的安全模型著称,是全球绝大多数服务器的首选操作系统。
  • 高性能:Linux 对系统资源的有效管理使其能够提供优异的性能,非常适合运行需要 7x24 小时不间断服务的 Web 应用。
  • 强大的社区支持:遇到任何问题,您都可以在庞大的全球社区中找到答案和帮助。

本文将聚焦于两款最受欢迎的 Web 服务器软件:

  1. Nginx:发音为 'Engine-X',以其高性能、高并发和低资源消耗而闻名,特别擅长处理静态文件和作为反向代理。
  2. Apache HTTP Server:一款老牌、稳定且功能极其丰富的 Web 服务器,拥有庞大的模块生态系统,配置灵活,兼容性好。

我们将分别介绍如何在以下两种主流 Linux 发行版上安装它们,您可以根据自己的服务器系统选择对应的教程:

  • Ubuntu 22.04 (代表 Debian 家族)
  • CentOS Stream 9 (代表 RHEL/Fedora 家族)

准备好了吗?让我们开始这段激动人心的旅程吧!

二、准备工作:连接并更新你的服务器

在开始安装任何软件之前,我们需要先通过 SSH (Secure Shell) 登录到您的 Linux 服务器,并执行一次全面的系统更新。这是一个至关重要的好习惯,可以确保系统中的所有软件包都处于最新状态,修复已知的安全漏洞。

  • username:通常是 root 或您在创建服务器时设置的用户名。
  • your_server_ip:您服务器的公网 IP 地址。
1. 通过 SSH 连接服务器

您需要一个 SSH 客户端。在 Windows 10/11 上,您可以使用 PowerShell 或命令提示符;在 macOS 和 Linux 上,可以直接使用终端。命令格式如下:

ssh username@your_server_ip

首次连接时,系统会提示您确认主机的真实性,输入 yes 并回车即可。然后输入您的密码,登录成功后,您将看到服务器的命令行欢迎信息。

2. 更新系统软件包

在 CentOS / RHEL / Fedora 上:

# 更新所有已安装的软件包到最新版本
sudo dnf update -y

在较旧的 CentOS 7 等版本中,使用的命令是 yum 而不是 dnf。

在 Ubuntu / Debian 上:

# 更新可用软件包列表
sudo apt update
# 升级所有已安装的软件包到最新版本
sudo apt upgrade -y

sudo 命令用于以管理员(root)权限执行命令。-y 标志会自动对所有提示回答'是'。

完成以上步骤后,您的服务器就已经处在一个干净且最新的状态,可以开始安装 Web 服务器软件了。

三、方案一:搭建 Nginx Web 服务器

Nginx 是现代 Web 架构的宠儿,我们将先介绍如何安装和配置它。

3.1 在 Ubuntu 22.04 上安装 Nginx

Ubuntu 的官方软件仓库中包含了 Nginx,安装过程非常直接。

安装 Nginx

sudo apt install nginx -y

管理 Nginx 服务 安装完成后,Nginx 服务通常会自动启动。您可以使用 systemctl 命令来管理它。

# 检查 Nginx 服务状态
sudo systemctl status nginx
# 如果服务未运行,手动启动
# sudo systemctl start nginx
# 设置 Nginx 开机自启
sudo systemctl enable nginx

配置防火墙 Ubuntu 默认使用 ufw (Uncomplicated Firewall) 作为防火墙管理工具。我们需要允许外部流量访问 Web 服务器的端口。

# 查看 ufw 为 Nginx 预设的配置方案
sudo ufw app list

您会看到类似 Nginx HTTP, Nginx HTTPS, Nginx Full 的选项。

# 仅允许 HTTP 流量 (端口 80)
sudo ufw allow 'Nginx HTTP'
# 启用防火墙 (如果尚未启用)
sudo ufw enable
# 查看防火墙状态,确认规则已生效
sudo ufw status

输出应该会显示 Nginx HTTP 规则处于 ALLOW 状态。

验证安装 现在,打开您的本地浏览器,在地址栏输入您服务器的公网 IP 地址:http://your_server_ip。如果一切顺利,您将看到 Nginx 的默认欢迎页面!

3.2 在 CentOS Stream 9 上安装 Nginx

在 CentOS Stream 9 上安装 Nginx 同样简单。

安装 Nginx

sudo dnf install nginx -y

管理 Nginx 服务

# 启动 Nginx 服务
sudo systemctl start nginx
# 设置 Nginx 开机自启
sudo systemctl enable nginx
# 检查服务状态
sudo systemctl status nginx

配置防火墙 CentOS 默认使用 firewalld 作为防火墙。

# 永久允许 HTTP (端口 80) 和 HTTPS (端口 443) 流量
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https
# 重新加载防火墙配置以使规则生效
sudo firewall-cmd --reload

验证安装 同样地,在浏览器中访问 http://your_server_ip。您应该能看到 CentOS 上的 Nginx 欢迎页面。

四、方案二:搭建 Apache Web 服务器

Apache 历史悠久,社区庞大,资料丰富,是新手入门的另一个绝佳选择。

4.1 在 Ubuntu 22.04 上安装 Apache

安装 Apache 在 Ubuntu 上,Apache 的软件包名为 apache2。

sudo apt install apache2 -y

管理 Apache 服务

# 检查 Apache 服务状态
sudo systemctl status apache2
# 设置开机自启
sudo systemctl enable apache2

配置防火墙 ufw 同样为 Apache 提供了预设配置。

# 查看预设方案
sudo ufw app list
# 允许 Apache 的 HTTP 流量
sudo ufw allow 'Apache'
# 查看防火墙状态
sudo ufw status

验证安装 打开浏览器,访问 http://your_server_ip。您将看到 Apache 在 Ubuntu 上的默认页面,它会告诉您配置文件的位置等信息。

4.2 在 CentOS Stream 9 上安装 Apache

安装 Apache 在 CentOS/RHEL 家族中,Apache 的软件包名为 httpd。

sudo dnf install httpd -y

管理 Apache 服务

# 启动 httpd 服务
sudo systemctl start httpd
# 设置开机自启
sudo systemctl enable httpd
# 检查服务状态
sudo systemctl status httpd

配置防火墙 这与 Nginx 在 CentOS 上的防火墙配置完全相同。如果您之前已经为 Nginx 配置过,则无需重复操作。

sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https
sudo firewall-cmd --reload

验证安装 浏览器访问 http://your_server_ip,您会看到由 CentOS 提供的 Apache 测试页面。

五、部署你的第一个网页

现在服务器已经运行起来了,但它只显示默认页面。让我们用一个自定义的 'Hello, World!' 页面来替换它。

Web 服务器从一个特定的目录中读取文件并将其提供给访问者,这个目录被称为 Web 根目录 (Web Root)。

  • Nginx 的默认 Web 根目录: /usr/share/nginx/html/
  • Apache (Ubuntu) 的默认 Web 根目录: /var/www/html/
  • Apache (CentOS) 的默认 Web 根目录: /var/www/html/

我们以 Nginx on Ubuntu 为例进行操作:

  1. 切换到 root 用户 为了避免权限问题,我们直接切换到 root 用户操作(实际生产环境不推荐,但对于初学者练习来说最简单)。

    sudo -i
    
  2. 进入 Web 根目录并备份默认文件

    cd /usr/share/nginx/html/
    mv index.nginx-debian.html index.nginx-debian.html.bak
    
  3. 创建 HTML 文件 我们将使用 nano 这个简单易用的命令行文本编辑器来创建一个 index.html 文件。当然,您也可以使用 vim。

    nano index.html
    
  4. 编写 HTML 内容 在打开的 nano 编辑器中,粘贴以下简单的 HTML 代码:

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>Welcome to My Server!</title>
        <style>
            body { font-family: sans-serif; display: flex; justify-content: center; align-items: center; height: 100vh; background-color: #2c3e50; color: #ecf0f1; margin: 0; }
            h1 { font-size: 3em; text-shadow: 2px 2px 4px #000; }
        </style>
    </head>
    <body>
        <h1>Hello, World! My Web Server is Running!</h1>
    </body>
    </html>
    
  5. 保存并退出

    • 在 nano 中,按下 Ctrl + X。
    • 它会询问您是否保存,按下 Y。
    • 最后按下 Enter 确认文件名。
  6. 刷新浏览器 现在,回到您的浏览器,刷新 http://your_server_ip 页面。您应该能看到您刚刚创建的 'Hello, World!' 页面了!

总结

恭喜你!通过遵循本指南,您已经成功地在 Linux 服务器上搭建起了自己的 Web 服务器,并部署了第一个自定义网页。我们回顾一下核心步骤:

  1. 连接与准备:通过 SSH 登录服务器,并使用 apt 或 dnf 更新系统,这是保证系统安全和稳定的基础。
  2. 选择与安装:我们演示了如何在 Ubuntu 和 CentOS 上安装 Nginx 和 Apache 这两款主流的 Web 服务器软件。
  3. 防火墙配置:学习了如何使用 ufw 和 firewalld 为 Web 服务打开必要的 HTTP/HTTPS 端口,这是让外界能够访问您网站的关键一步。
  4. 服务管理:掌握了使用 systemctl 来启动、停止、重启、设置开机自启和检查服务状态,这是服务器日常运维的基本技能。
  5. 内容部署:了解了 Web 根目录的概念,并成功创建并部署了一个简单的 HTML 页面。

这仅仅是一个开始。从这里出发,您可以继续探索更多高级主题,例如:

  • 配置虚拟主机,在同一台服务器上托管多个不同的网站。
  • 安装 PHP、MySQL/MariaDB,搭建经典的 LAMP 或 LEMP 环境以支持动态网站(如 WordPress)。
  • 申请并配置 SSL 证书,启用 HTTPS,保障网站数据传输安全。
  • 学习 Nginx/Apache 的高级配置,实现负载均衡、反向代理等功能。

希望这篇指南能为您打开一扇通往 Linux 和 Web 开发世界的大门。记住,动手实践是最好的学习方式。不断尝试,不断探索,您将收获更多。


拓展阅读与参考链接

  1. Nginx 官方文档 (Beginner's Guide)
    • 简介:Nginx 官方提供的入门指南,内容权威、准确,是深入学习 Nginx 配置和原理的最佳起点。
  2. Apache HTTP Server 官方文档
    • 简介:Apache 的官方文档库,非常全面,涵盖了从基础配置到高级模块开发的所有内容。
  3. DigitalOcean Community Tutorials
    • 简介:一个高质量的技术教程社区,拥有大量关于 Linux 系统管理、Web 服务器配置(包括 LAMP/LEMP 栈)的优秀文章,步骤清晰,解释详尽。
  4. Let's Encrypt 官网
    • 简介:一个免费、自动化、开放的证书颁发机构。当您准备为您的网站启用 HTTPS 时,这里是您获取免费 SSL 证书的首选之地,其提供的 Certbot 工具可以极大地简化配置过程。
  5. MDN Web Docs: HTML Introduction
    • 简介:如果您对创建网页本身感兴趣,Mozilla 开发者网络 (MDN) 提供了最权威、最全面的前端技术学习资料,从 HTML、CSS 到 JavaScript,应有尽有。

目录

  1. Linux 搭建 Web 服务器:Nginx 与 Apache 安装配置指南
  2. 摘要
  3. 一、引言:为何要在 Linux 上搭建 Web 服务器?
  4. 二、准备工作:连接并更新你的服务器
  5. 1. 通过 SSH 连接服务器
  6. 2. 更新系统软件包
  7. 更新所有已安装的软件包到最新版本
  8. 更新可用软件包列表
  9. 升级所有已安装的软件包到最新版本
  10. 三、方案一:搭建 Nginx Web 服务器
  11. 3.1 在 Ubuntu 22.04 上安装 Nginx
  12. 检查 Nginx 服务状态
  13. 如果服务未运行,手动启动
  14. sudo systemctl start nginx
  15. 设置 Nginx 开机自启
  16. 查看 ufw 为 Nginx 预设的配置方案
  17. 仅允许 HTTP 流量 (端口 80)
  18. 启用防火墙 (如果尚未启用)
  19. 查看防火墙状态,确认规则已生效
  20. 3.2 在 CentOS Stream 9 上安装 Nginx
  21. 启动 Nginx 服务
  22. 设置 Nginx 开机自启
  23. 检查服务状态
  24. 永久允许 HTTP (端口 80) 和 HTTPS (端口 443) 流量
  25. 重新加载防火墙配置以使规则生效
  26. 四、方案二:搭建 Apache Web 服务器
  27. 4.1 在 Ubuntu 22.04 上安装 Apache
  28. 检查 Apache 服务状态
  29. 设置开机自启
  30. 查看预设方案
  31. 允许 Apache 的 HTTP 流量
  32. 查看防火墙状态
  33. 4.2 在 CentOS Stream 9 上安装 Apache
  34. 启动 httpd 服务
  35. 设置开机自启
  36. 检查服务状态
  37. 五、部署你的第一个网页
  38. 总结
  39. 拓展阅读与参考链接
  • 💰 8折买阿里云服务器限时8折了解详情
  • Magick API 一键接入全球大模型注册送1000万token查看
  • 🤖 一键搭建Deepseek满血版了解详情
  • 一键打造专属AI 智能体了解详情
极客日志微信公众号二维码

微信扫一扫,关注极客日志

微信公众号「极客日志V2」,在微信中扫描左侧二维码关注。展示文案:极客日志V2 zeeklog

更多推荐文章

查看全部
  • 修改 WSL2 网络模式为 Mirrored 以使用 Windows 代理
  • Python Web 自动化测试实战:常用函数全解析与场景化应用指南
  • Linux 进程信号入门:软中断机制与实战
  • 深入理解 Claude Skills:架构、特性与实战
  • K-Nearest Neighbors 算法距离度量选择与数据维度归一化
  • AI 绘画角色画风入门指南:从关键词解析到实战调参
  • OpenClaw:开源本地优先的 AI 助手框架,支持多渠道交互与任务执行
  • Android Studio 结合 Trae 使用 Kotlin 开发 WebView 应用
  • 2025 开源大模型生态回顾与趋势
  • ThyGPT 多模态大模型:甲状腺结节活检率降低 40%+ 研究解析
  • PyCharm 中 Copilot 插件 Claude 模型不可用解决方案
  • Node-RED 低代码数据面板搭建实战指南
  • LLM 大模型学习路线图详解与技术指南
  • AI 时代前端设计稿生成实战:三种高效工作流
  • GitHub Copilot 插件安装与配置指南
  • Android 开发常用开源库推荐与技术解析
  • 因子图与消息传递算法解析
  • 基于 Netty 构建高性能 HTTP 服务器
  • 基于 Rokid 灵珠 AI 平台开发春节全能助手智能体
  • 大型语言模型在疾病诊断中的应用综述

相关免费在线工具

  • Base64 字符串编码/解码

    将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online

  • Base64 文件转换器

    将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online

  • Markdown转HTML

    将 Markdown(GFM)转为 HTML 片段,浏览器内 marked 解析;与 HTML转Markdown 互为补充。 在线工具,Markdown转HTML在线工具,online

  • HTML转Markdown

    将 HTML 片段转为 GitHub Flavored Markdown,支持标题、列表、链接、代码块与表格等;浏览器内处理,可链接预填。 在线工具,HTML转Markdown在线工具,online

  • JSON 压缩

    通过删除不必要的空白来缩小和压缩JSON。 在线工具,JSON 压缩在线工具,online

  • JSON美化和格式化

    将JSON字符串修饰为友好的可读格式。 在线工具,JSON美化和格式化在线工具,online