运行基本的 IIS 网络服务器


您可以对 Compute Engine 上的虚拟机 (VM) 实例进行控制,就像控制任何标准 Windows 服务器一样。本教程介绍如何部署一个简单的 IIS 网络服务器,以便您了解在虚拟机上运行网络服务器的基础知识。

准备工作

您需要一个允许 HTTP 流量的新 Windows 实例。

  • 按照快速入门说明进行操作,创建一个新的 Windows 实例,并通过 RDP 连接该实例。

安装 IIS

  1. 在 Windows 任务栏的搜索字段中输入 PowerShell,然后按 Enter。如果任务栏上没有搜索字段,请点击搜索图标,再输入 PowerShell,然后按 Enter。如果搜索字段和搜索图标均未出现在任务栏上,请参阅 Hide and unhide your search box in Windows(在 Windows 中隐藏和取消隐藏搜索框)。

  2. 在搜索结果的应用下方,右键点击 Windows PowerShell,然后选择以管理员身份运行

  3. 使用以下命令安装 IIS 服务:

    import-module servermanager
    
    add-windowsfeature web-server -includeallsubfeature
    
  4. 使用以下命令覆盖 IIS Web 服务器默认网页:

    echo '<!doctype html><html><body><h1>Hello World!</h1></body></html>' > C:\inetpub\wwwroot\index.html
    

测试服务器

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

  1. 在 Google Cloud Console 中,转到虚拟机实例页面。

    转到虚拟机实例

  2. 查看 Hello World! 页面,方法是复制外部 IP 列中的 IP 地址并将其粘贴到新的浏览器标签页中。如果您没有看到 Hello World! 页面,请按照问题排查步骤中的说明进行操作。

清理

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

问题排查

收到 Connection Refused 错误

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

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

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

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

  1. 在 Google Cloud 控制台中,打开虚拟机实例页面。

    打开“虚拟机实例”

  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]