本教程介绍如何使用 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 控制台中,前往虚拟机实例页面。
- 在外部 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 控制台中,前往防火墙规则页面。
- 查找一条允许所有 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