![带有 IIS 的 Windows 提供存储在 Amazon S3 上的 ASP 文件](https://linux22.com/image/604108/%E5%B8%A6%E6%9C%89%20IIS%20%E7%9A%84%20Windows%20%E6%8F%90%E4%BE%9B%E5%AD%98%E5%82%A8%E5%9C%A8%20Amazon%20S3%20%E4%B8%8A%E7%9A%84%20ASP%20%E6%96%87%E4%BB%B6.png)
我们有一个托管在 Windows Server 2008 R2 上的网站,使用 IIS 7.5。该网站服务器托管了几个使用 ASP Classic 和 ASPX 开发的网站
有没有办法在 Amazon S3 上托管动态网站的文件?
我知道静态内容可以直接从 S3 提供,但事实并非如此,因为它是一个必须由 IIS 处理的动态网站。
其业务案例是使用 Amazon S3 作为 EC2 Web 服务器场之间的共享容器,当服务器的负载激增或减慢时,它将使用 CloudWatch 进行实例化和终止。
编辑:有些 ASP 页面会创建或编辑其他 ASP 页面。因此,它们需要在 Web 服务器群(AWS 中的 EC2 自动缩放组)中共享。
答案1
我发现了一些软件,可让您将 S3 Bucket 用作 EC2 实例上的 Windows 驱动器。这样就可以制作驱动器,并使用它在使用 IIS 的多个服务器上设置带有共享 asp 文件的网站。
有薪酬的
打开(不仅适用于 IIS,还适用于 *nix WebServers)
- 与亚马逊融合:S3FS(*不)
我还没有找到在 Windows 上将 S3 安装为驱动器的免费/开放的替代方案。
答案2
不要将您的 asp 页面存储在 S3 中。
创建一个包含您的 asp 内容的 AMI,以便进行自动扩展管理。当您的 asp 页面发生变化时,再创建一个新的 AMI。
答案3
S3 不是适合您工作的工具。S3 用于存储任何特定主机相对不频繁访问的静态对象。
满足您需求的更好选择:
- 网络文件共享可能是最简单的解决方案。网络延迟对性能影响不大,但比 S3 更好。还存在潜在的扩展问题,但本地缓存可以帮助解决这两个问题。
- 更好的选择是将所有代码置于版本控制之下,并在提交更改时有一个明确的部署事件,导致所有主机签出/更新其代码。
- 两者之间的某种混合,也许使用 S3 来存储代码档案,每个服务器在部署时可以获取这些档案,然后通过网络文件共享存储共享文件(例如,假设您不能修改应用程序以使用 S3,则上传)。
考虑到您的一些要求,例如:
有些 ASP 页面可以创建或编辑其他 ASP 页面。
网络文件共享可能是您唯一的选择。
答案4
S3 -> SSS -> 简单存储服务。关键词是“简单”,又称“静态”。
如果您想在亚马逊上运行动态服务,那么您需要查看 EC2,又称弹性计算云。
如果您有兴趣减少由于动态生成但很少改变的页面重复点击而导致的服务器负载,那么我建议您研究像 Varnish 这样的反向代理。