云计算百科
云计算领域专业知识百科平台

【Linux】教你在 Linux 上搭建 Web 服务器,步骤清晰无门槛

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

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

  • Nginx:发音为 “Engine-X”,以其高性能、高并发和低资源消耗而闻名,特别擅长处理静态文件和作为反向代理。
  • Apache HTTP Server:一款老牌、稳定且功能极其丰富的 Web 服务器,拥有庞大的模块生态系统,配置灵活,兼容性好。
  • 我们将分别介绍如何在以下两种主流 Linux 发行版上安装它们,您可以根据自己的服务器系统选择对应的教程:

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

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

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

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

    通过 SSH 连接服务器

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

    代码语言:javascript

    AI代码解释

    ssh username@your_server_ip

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

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

    更新系统软件包

    在 Ubuntu / Debian 上:

    代码语言:javascript

    AI代码解释

    # 更新可用软件包列表
    sudo apt update

    # 升级所有已安装的软件包到最新版本
    sudo apt upgrade -y

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

    在 CentOS / RHEL / Fedora 上:

    代码语言:javascript

    AI代码解释

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

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

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

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

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

    3.1 在 Ubuntu 22.04 上安装 Nginx

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

    安装 Nginx

    代码语言:javascript

    AI代码解释

    sudo apt install nginx -y

    配置防火墙

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

    代码语言:javascript

    AI代码解释

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

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

    代码语言:javascript

    AI代码解释

    # 仅允许 HTTP 流量 (端口 80)
    sudo ufw allow 'Nginx HTTP'

    # 启用防火墙 (如果尚未启用)
    sudo ufw enable

    # 查看防火墙状态,确认规则已生效
    sudo ufw status

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

    管理 Nginx 服务

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

    代码语言:javascript

    AI代码解释

    # 检查 Nginx 服务状态
    sudo systemctl status nginx

    # 如果服务未运行,手动启动
    # sudo systemctl start nginx

    # 设置 Nginx 开机自启
    sudo systemctl enable nginx

    验证安装

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

    3.2 在 CentOS Stream 9 上安装 Nginx

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

    安装 Nginx

    代码语言:javascript

    AI代码解释

    sudo dnf install nginx -y

    配置防火墙

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

    代码语言:javascript

    AI代码解释

    # 永久允许 HTTP (端口 80) 和 HTTPS (端口 443) 流量
    sudo firewall-cmd –permanent –add-service=http
    sudo firewall-cmd –permanent –add-service=https

    # 重新加载防火墙配置以使规则生效
    sudo firewall-cmd –reload

    管理 Nginx 服务

    代码语言:javascript

    AI代码解释

    # 启动 Nginx 服务
    sudo systemctl start nginx

    # 设置 Nginx 开机自启
    sudo systemctl enable nginx

    # 检查服务状态
    sudo systemctl status nginx

    验证安装

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

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

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

    4.1 在 Ubuntu 22.04 上安装 Apache

    安装 Apache

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

    代码语言:javascript

    AI代码解释

    sudo apt install apache2 -y

    配置防火墙

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

    代码语言:javascript

    AI代码解释

    # 查看预设方案
    sudo ufw app list

    # 允许 Apache 的 HTTP 流量
    sudo ufw allow 'Apache'

    # 查看防火墙状态
    sudo ufw status

    管理 Apache 服务

    代码语言:javascript

    AI代码解释

    # 检查 Apache 服务状态
    sudo systemctl status apache2

    # 设置开机自启
    sudo systemctl enable apache2

    验证安装

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

    4.2 在 CentOS Stream 9 上安装 Apache

    安装 Apache

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

    代码语言:javascript

    AI代码解释

    sudo dnf install httpd -y

    配置防火墙

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

    代码语言:javascript

    AI代码解释

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

    管理 Apache 服务

    代码语言:javascript

    AI代码解释

    # 启动 httpd 服务
    sudo systemctl start httpd

    # 设置开机自启
    sudo systemctl enable httpd

    # 检查服务状态
    sudo systemctl status httpd

    验证安装

    浏览器访问 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 用户操作(实际生产环境不推荐,但对于初学者练习来说最简单)。

    代码语言:javascript

    AI代码解释

    sudo -i

    现在,根据您安装的服务器和系统,进入对应的目录并创建文件。

    示例:以 Nginx on Ubuntu 为例

    代码语言:javascript

    AI代码解释

    # 进入 Web 根目录
    cd /usr/share/nginx/html/

    # (可选) 备份默认文件
    mv index.nginx-debian.html index.nginx-debian.html.bak

    # 创建并编辑新的 index.html 文件
    nano index.html

    编写 HTML 内容

    在打开的 nano 编辑器中,粘贴以下简单的 HTML 代码:

    代码语言:javascript

    AI代码解释

    <!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!” 页面了

    赞(0)
    未经允许不得转载:网硕互联帮助中心 » 【Linux】教你在 Linux 上搭建 Web 服务器,步骤清晰无门槛
    分享到: 更多 (0)

    评论 抢沙发

    评论前必须登录!