本教程介绍如何使用 Compute Engine 在虚拟机 (VM) 实例上部署 Apache 网络服务器。如需详细了解可用于 Google Cloud 上的 Web 服务的技术,请参阅选择 Google Cloud 上的托管选项。
您可以控制 Compute Engine 上的虚拟机,就像控制任何标准 Linux 服务器一样。让我们部署一个 Apache Web 服务器,了解在虚拟机实例上运行服务器的基本知识。
前提条件
通过执行以下操作,创建一个允许 HTTP 流量的 Linux 虚拟机:
创建一个新的 Linux 虚拟机。如需了解详情,请参阅快速入门:使用 Linux 虚拟机。
连接到 Linux 虚拟机。如需了解详情,请参阅连接到虚拟机实例。
安装 Apache
- 在 Google Cloud 控制台中,打开虚拟机实例页面。
- 如需连接到刚创建的 Linux 虚拟机,请点击该虚拟机所在行中的 SSH。
如需更新可用软件包并安装
apache2
软件包,请使用该操作系统的系统软件包管理器。如果您按照快速入门进行操作,则此命令会创建一个 Ubuntu 虚拟机。如需更新 Ubuntu 虚拟机,请运行以下命令:sudo apt update && sudo apt -y install apache2
安装 Apache 后,操作系统会自动启动 Apache 服务器。
验证 Apache 是否正在运行:
sudo systemctl status apache2
覆盖 Apache Web 服务器的默认网页:
echo '<!doctype html><html><body><h1>Hello World!</h1></body></html>' | sudo tee /var/www/html/index.html
测试服务器
测试您的虚拟机是否正在处理其外部 IP 上的流量。
- 在 Google Cloud Console 中,转到虚拟机实例页面。
- 在外部 IP 列下方,复制您的虚拟机的外部 IP。
- 在浏览器中,导航到
http://[EXTERNAL_IP]
。请勿使用https
进行连接,因为这会导致服务器返回Connection Refused
错误。
您现在应该会看到“Hello World!”页面。
清理
为避免在完成实验后虚拟机产生费用,请删除虚拟机。如需了解详情,请参阅清理。
问题排查
收到 Connection Refused
错误
如果您看到 Connection Refused
错误,则可能是因为:
您的虚拟机实例无法公开访问,因为您的防火墙规则或标记存在以下某个配置错误:
- 虚拟机实例没有适当的标记允许 Compute Engine 将相应的防火墙规则应用于您的实例。
- 您的项目没有创建允许流量流向您实例的外部 IP 地址的防火墙规则。
您正尝试使用
https
地址访问虚拟机。请检查确保您的网址格式是http://[EXTERNAL_IP]
,而不是https://[EXTERNAL_IP]
。
要确保您的虚拟机实例拥有正确的标记,请执行以下操作:
- 在 Google Cloud 控制台中,打开虚拟机实例页面。
- 点击您正在尝试连接的实例的名称。
- 点击页面顶部的修改。
- 向下滚动到防火墙,并确保选中允许 HTTP 流量复选框。如果该复选框未被选中,请将其选中。
- 保存更改。这样可确保向虚拟机实例中添加正确的标记。
要确保存在正确的防火墙规则,请执行以下操作:
- 在 Google Cloud Console 中,转到防火墙规则页面。
- 查找一条允许所有 IP 地址范围通过 tcp:80 的防火墙规则。通常,此规则命名为
default-allow-http
规则。 - 如果规则不存在,请按以下步骤创建规则。
- 点击创建防火墙规则。
- 输入规则的名称,例如
default-allow-http
。 - 在来源 IP 地址范围下方,输入
0.0.0.0/0
以允许来自所有来源的流量。 - 在协议和端口下方,选中指定的协议和端口,并输入
tcp:80
。 - 创建防火墙规则。
要再次测试服务器,请转到实例的外部 IP 地址:
http://[EXTERNAL_IP]
后续步骤
了解如何在 Compute Engine 上设置 LAMP。
自行试用
如果您是 Google Cloud 新手,请创建一个账号来评估 Compute Engine 在实际场景中的表现。新客户还可获享 $300 赠金,用于运行、测试和部署工作负载。
免费试用 Compute Engine