跳到主要内容
Linux 搭建 Web 服务器指南:Nginx 与 Apache 实战 | 极客日志
Shell / Bash
Linux 搭建 Web 服务器指南:Nginx 与 Apache 实战 提供一份详细的 Linux Web 服务器搭建指南。内容涵盖在 Ubuntu 22.04 和 CentOS Stream 9 系统上安装配置 Nginx 和 Apache 两种主流 Web 服务器软件。教程包括通过 SSH 连接服务器、更新系统、配置防火墙(ufw/firewalld)、管理服务状态以及部署自定义 HTML 网页等关键步骤。旨在帮助开发者从零开始掌握 Linux 环境下的 Web 服务部署流程,为后续学习虚拟主机、动态网站及 HTTPS 配置打下基础。
性能调优 发布于 2026/4/6 更新于 2026/5/19 30 浏览摘要
对于许多开发者和技术爱好者而言,拥有一个属于自己的 Web 服务器是迈向更广阔技术世界的第一步。它不仅是学习网络知识、托管个人博客、展示作品集的平台,更是理解互联网工作原理的绝佳实践。然而,面对 Linux 的命令行,许多新手可能会望而却步。本文旨在打破这一壁垒,提供一份超详细、步骤清晰、真正零门槛的 Linux Web 服务器搭建指南。我们将以当前最主流的两种 Web 服务器软件 Nginx 和 Apache 为例,分别在两大主流 Linux 发行版家族(基于 Debian/Ubuntu 和基于 RHEL/CentOS)上进行实战演示。从系统更新、软件安装、防火墙配置,到部署第一个网页,每一步都配有详尽的命令和解释,确保即便您是第一次接触 Linux,也能轻松跟上,成功点亮您的第一个网站。
一、引言:为何要在 Linux 上搭建 Web 服务器?
在当今这个时代,云服务器已经触手可及,价格也日益亲民。拥有一台 Linux 云服务器,就如同拥有了一块数字世界的'自留地',您可以在上面自由地构建和实验。而搭建 Web 服务器,就是在这块土地上盖起第一座房子的过程。
为什么选择 Linux?
开源与免费 :Linux 内核及其上绝大多数的软件都是开源的,这意味着您可以免费使用,并且可以深入研究其源代码。
稳定与安全 :Linux 以其卓越的稳定性和强大的安全模型著称,是全球绝大多数服务器的首选操作系统。
高性能 :Linux 对系统资源的有效管理使其能够提供优异的性能,非常适合运行需要 7x24 小时不间断服务的 Web 应用。
强大的社区支持 :遇到任何问题,您都可以在庞大的全球社区中找到答案和帮助。
本文将聚焦于两款最受欢迎的 Web 服务器软件:
Nginx :发音为 'Engine-X',以其高性能、高并发和低资源消耗而闻名,特别擅长处理静态文件和作为反向代理。
Apache HTTP Server :一款老牌、稳定且功能极其丰富的 Web 服务器,拥有庞大的模块生态系统,配置灵活,兼容性好。
我们将分别介绍如何在以下两种主流 Linux 发行版上安装它们,您可以根据自己的服务器系统选择对应的教程:
Ubuntu 22.04 (代表 Debian 家族)
CentOS Stream 9 (代表 RHEL/Fedora 家族)
准备好了吗?让我们开始这段激动人心的旅程吧!
二、准备工作:连接并更新你的服务器
在开始安装任何软件之前,我们需要先通过 SSH (Secure Shell) 登录到您的 Linux 服务器,并执行一次全面的系统更新。这是一个至关重要的好习惯,可以确保系统中的所有软件包都处于最新状态,修复已知的安全漏洞。
username:通常是 root 或您在创建服务器时设置的用户名。
your_server_ip:您服务器的公网 IP 地址。
2. 更新系统软件包
在 CentOS / RHEL / Fedora 上:
sudo dnf update -y
在较旧的 CentOS 7 等版本中,使用的命令是 yum 而不是 dnf。
在 Ubuntu / Debian 上:
sudo apt update
sudo apt upgrade -y
sudo 命令用于以管理员(root)权限执行命令。-y 标志会自动对所有提示回答'是'。
通过 SSH 连接服务器 您需要一个 SSH 客户端。在 Windows 10/11 上,您可以使用 PowerShell 或命令提示符;在 macOS 和 Linux 上,可以直接使用终端。命令格式如下:
ssh username@your_server_ip
首次连接时,系统会提示您确认主机的真实性,输入 yes 并回车即可。然后输入您的密码,登录成功后,您将看到服务器的命令行欢迎信息。
完成以上步骤后,您的服务器就已经处在一个干净且最新的状态,可以开始安装 Web 服务器软件了。
三、方案一:搭建 Nginx Web 服务器 Nginx 是现代 Web 架构的宠儿,我们将先介绍如何安装和配置它。
3.1 在 Ubuntu 22.04 上安装 Nginx Ubuntu 的官方软件仓库中包含了 Nginx,安装过程非常直接。
sudo apt install nginx -y
安装完成后,Nginx 服务通常会自动启动。您可以使用 systemctl 命令来管理它。
sudo systemctl status nginx
sudo systemctl enable nginx
Ubuntu 默认使用 ufw (Uncomplicated Firewall) 作为防火墙管理工具。我们需要允许外部流量访问 Web 服务器的端口。
您会看到类似 Nginx HTTP, Nginx HTTPS, Nginx Full 的选项。
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 同样简单。
sudo dnf install nginx -y
sudo systemctl start nginx
sudo systemctl enable nginx
sudo systemctl status nginx
CentOS 默认使用 firewalld 作为防火墙。
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 在 Ubuntu 上,Apache 的软件包名为 apache2。
sudo apt install apache2 -y
sudo systemctl status apache2
sudo systemctl enable apache2
sudo ufw app list
sudo ufw allow 'Apache'
sudo ufw status
打开浏览器,访问 http://your_server_ip。您将看到 Apache 在 Ubuntu 上的默认页面,它会告诉您配置文件的位置等信息。
4.2 在 CentOS Stream 9 上安装 Apache 在 CentOS/RHEL 家族中,Apache 的软件包名为 httpd。
sudo dnf install httpd -y
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/
创建 HTML 文件 我们将使用 nano 这个简单易用的命令行文本编辑器来创建一个 index.html 文件。当然,您也可以使用 vim。首先,为了避免权限问题,我们直接切换到 root 用户操作(实际生产环境不推荐,但对于初学者练习来说最简单)。
现在,根据您安装的服务器和系统,进入对应的目录并创建文件。示例:以 Nginx on Ubuntu 为例
cd /usr/share/nginx/html/
mv index.nginx-debian.html index.nginx-debian.html.bak
nano index.html
编写 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 >
保存并退出
在 nano 中,按下 Ctrl + X。
它会询问您是否保存,按下 Y。
最后按下 Enter 确认文件名。
刷新浏览器 现在,回到您的浏览器,刷新 http://your_server_ip 页面。您应该能看到您刚刚创建的 'Hello, World!' 页面了!
总结 恭喜你!通过遵循本指南,您已经成功地在 Linux 服务器上搭建起了自己的 Web 服务器,并部署了第一个自定义网页。我们回顾一下核心步骤:
连接与准备 :通过 SSH 登录服务器,并使用 apt 或 dnf 更新系统,这是保证系统安全和稳定的基础。
选择与安装 :我们演示了如何在 Ubuntu 和 CentOS 上安装 Nginx 和 Apache 这两款主流的 Web 服务器软件。
防火墙配置 :学习了如何使用 ufw 和 firewalld 为 Web 服务打开必要的 HTTP/HTTPS 端口,这是让外界能够访问您网站的关键一步。
服务管理 :掌握了使用 systemctl 来启动、停止、重启、设置开机自启和检查服务状态,这是服务器日常运维的基本技能。
内容部署 :了解了 Web 根目录的概念,并成功创建并部署了一个简单的 HTML 页面。
这仅仅是一个开始。从这里出发,您可以继续探索更多高级主题,例如:
配置虚拟主机 ,在同一台服务器上托管多个不同的网站。
安装 PHP、MySQL/MariaDB ,搭建经典的 LAMP 或 LEMP 环境以支持动态网站(如 WordPress)。
申请并配置 SSL 证书 ,启用 HTTPS,保障网站数据传输安全。
学习 Nginx/Apache 的高级配置 ,实现负载均衡、反向代理等功能。
希望这篇指南能为您打开一扇通往 Linux 和 Web 开发世界的大门。记住,动手实践是最好的学习方式。不断尝试,不断探索,您将收获更多。
拓展阅读与参考链接 相关免费在线工具 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