运行基本的 Apache 网络服务器

您可以控制 Google Compute Engine 上的虚拟机实例,就像控制所有标准的 Linux 服务器一样。请部署一个简单的 Apache 网络服务器,了解在虚拟机实例上运行服务器的基础知识。

前提条件

通过执行以下操作,创建一个允许 HTTP 流量的 Linux 实例:

  1. 按照快速入门说明创建一个新的 Linux 实例。

  2. (可选)按照快速入门创建一个新的 Linux 实例时,您可以允许 HTTP 流量,这样会为流量打开 tcp:80。但是,如果要打开其他端口,请配置防火墙,然后配置 Apache 以使用防火墙。

  3. 连接到新的 Linux 实例。如需了解详情,请参阅连接到实例

安装 Apache

  1. 使用 Debian 软件包管理器来安装 apache2 软件包。

    sudo apt update && sudo apt -y install apache2
    

    安装 Apache 后,操作系统会自动启动 Apache 服务器。

  2. 使用以下命令覆盖 Apache Web 服务器默认网页:

    echo '<!doctype html><html><body><h1>Hello World!</h1></body></html>' | sudo tee /var/www/html/index.html
    

测试服务器

测试您的实例是否正在处理其外部 IP 上的流量。

  1. 转到 Google Cloud Console 中的“虚拟机实例”页面。

    转到“虚拟机实例”页面

  2. 外部 IP 列下方,复制您的实例的外部 IP。
  3. 在浏览器中,导航到 http://[EXTERNAL_IP]。请勿使用 https 连接,因为服务器会返回 Connection Refused 错误。

您现在应该会看到“Hello World!”页面。

清理

完成实验后,请按照快速入门中的清理说明进行操作,以避免虚拟机实例产生费用。

问题排查

收到 Connection Refused 错误

如果您看到 Connection Refused 错误,则可能是因为:

  • 您的虚拟机实例无法公开访问,因为您的防火墙规则或标记存在以下某个配置错误:

    • 虚拟机实例没有适当的标记允许 Compute Engine 将相应的防火墙规则应用于您的实例。
    • 您的项目没有创建允许流量流向您实例的外部 IP 地址的防火墙规则。
  • 您正尝试使用 https 地址访问虚拟机。请检查确保您的网址格式是 http://[EXTERNAL_IP],而不是 https://[EXTERNAL_IP]

为了确保您的虚拟机实例拥有正确的标记,请执行以下操作:

  1. 转到 Google Cloud Console 中的“虚拟机实例”页面。

    转到“虚拟机实例”页面

  2. 点击您正在尝试连接的实例的名称。
  3. 点击页面顶部的修改
  4. 向下滚动到防火墙,并确保选中允许 HTTP 流量复选框。如果该复选框未被选中,请将其选中。
  5. 保存更改。这样可确保向虚拟机实例中添加正确的标记。

如需确保存在正确的防火墙规则,请执行以下操作:

  1. 转到 Google Cloud Console 中的“防火墙”页面。

    转到“防火墙”页面

  2. 查找一条允许所有 IP 地址范围通过 tcp:80 的防火墙规则。通常,此规则命名为 default-allow-http 规则。
  3. 如果规则不存在,请按以下步骤创建规则。
    1. 点击创建防火墙规则
    2. 输入规则的名称,例如 default-allow-http
    3. 来源 IP 地址范围下方,输入 0.0.0.0/0 以允许来自所有来源的流量。
    4. 协议和端口下方,选中指定的协议和端口,并输入 tcp:80
    5. 创建防火墙规则。

要再次测试服务器,请转到实例的外部 IP 地址:

http://[EXTERNAL_IP]

后续步骤

了解如何在 Google Compute Engine 上托管网站