IIS

一旦您的 Windows Web 服务器运行起来并且可以通过 RDP 访问,您可能需要安装一些可选模块:

  • URL 重写模块 - 在这里下载并安装。

  • 应用程序请求路由 (ARR) - 在这里下载并安装。

从开始菜单中键入 IIS,您将能够选择 Internet 信息服务 (IIS) 管理器。

在 IIS 管理器中,选择左侧面板中“开始页面”下方的服务器,并在主窗口底部的“管理”部分打开“配置编辑器”。

IIS 管理器 - 配置编辑器在管理部分

将“部分选择器”更改为 system.webServer/proxy,如此图所示,并将“启用”设置为 True,然后单击“应用”(右上角)。

初始站点绑定

现在在 IIS 管理器的左侧面板中,展开服务器和站点,选择“默认网站”。

  • 在右侧面板中,单击“绑定”。

  • 在“绑定”窗口中,双击端口 80 的单个条目。

  • 在“主机名”字段中,键入您希望客户端连接的完全限定域名 (FQDN),然后单击“确定”,然后关闭“站点绑定”窗口。

  • 这将是您已注册并设置 DNS 指向此 Web 服务器的域名。

编辑站点绑定 - 输入您的 FQDN 并单击确定

完成后应如下所示:

带主机名的站点绑定

应用程序池回收 (App Pool Recycling)

由于所有客户端都将通过 IIS 连接,而 IIS 使用一个“工作进程”默认在一定时间间隔内自行回收,我们需要禁用回收,因为这会导致所有客户端断开连接。

  • 仍然选择默认网站,在右侧面板中点击“基本设置”,并记下显示在窗口中的应用程序池名称,然后关闭该窗口。

  • 在左侧面板中,点击“应用程序池”,在主面板中选择在上面的“基本设置”中分配的应用程序池,然后在右侧面板中点击“回收”。

  • 在“编辑应用程序池回收设置”中,确保没有选中任何选项(如下所示),然后点击“下一步”,然后点击“完成”。

编辑应用程序池回收设置

SSL 证书 (SSL Certificate)

您需要为您的域名获取 SSL 证书。

  • 这里 下载 WinAcme 并保存到自己的文件夹中,然后解压到同一文件夹中(这样以后更新时可以方便地覆盖为更新版本)。

  • 运行 WACS.exe 并按照提示使用默认设置为 IIS 中的默认站点创建证书。在此步骤之后,您将为游戏客户端和代理更新绑定。

  • WinAcme 创建一个定期更新 SSL 的计划任务,以防止证书过期。

WinAcme 控制台应用程序

附加站点绑定 (Additional Site Bindings)

成功使用 WinAcme 安装 SSL 后,返回到 IIS 管理器,选择默认站点,再次点击“绑定”,就像之前一样操作。

您会看到 WinAcme 已经为端口 443 添加了一个绑定,使用了与端口 80 相同的主机名。

你可以双击端口 443 的绑定,查看 SSL 证书的设置情况。

点击“添加”以创建一个端口 7777 的额外绑定,如下所示,使用与端口 443 相同的 SSL 证书。这将用于客户端连接到稍后在本文档中设置的反向代理。如果您在同一服务器上运行多个游戏服务器实例,请为每个使用的端口添加一个绑定。确保防火墙已打开所有端口。

IIS绑定

简单 Web 传输

确保简单 Web 传输设置如下:

  • 启用 SSL:未选中

  • SSL 协议:Tls 12

  • 服务器端口:27777

  • 客户端使用 Wss:已选中

  • 客户端端口选项:指定端口

  • 自定义客户端端口:7777

带有反向代理设置的简单Web传输

构建和部署

在 Unity 中,Network Manager 中,将网络地址更改为与上述绑定中使用的名称相同,例如 game.example.com。

  • 在构建设置中选择专用服务器平台,构建并部署服务器到服务器上的一个文件夹。Mirror 将在指定的端口(上图中的 27777)上启动服务器。

  • 在构建设置中更改平台为 WebGL,构建客户端,并将其上传到您的服务器上的文件夹,该文件夹指向 IIS 中指向的默认网站。

用于 IIS 的 web.config

在 IIS 管理器中,右键单击您之前配置的默认站点,然后选择“浏览”。这是您将部署 WebGL 构建文件的文件夹。

  • 如果该文件夹中已经有一个web.config文件,请在记事本中打开它,否则创建一个空文件并打开它。

  • 将下面的 XML 合并到可能已经存在的内容中,保存并关闭。

  • 返回到 IIS,选择服务器本身,然后在右侧面板中点击“重新启动”。

Build and Deploy (构建和部署)

以下是 web.config 文件的假设内容:

  • 你已经将服务器构建为监听端口 27777,并且 WebGL 客户端连接到 7777

  • 你已经使用 brotli(首选)或 gzip 压缩构建了 WebGL 客户端。

  • 你已经按照上面所示设置了绑定。

  • 如果你为更多服务器创建了绑定,你需要在下面的规则部分添加额外的反向代理规则,通过复制/粘贴并更改模式和操作中的端口。

最后更新于

这有帮助吗?