这可能是一个新手问题,但无法在网上得到明确的答案,所以请帮忙。场景是:我有两个 php 服务器实例(假设为 A 和 B),一个 loadbalance 实例和一个 mysql 实例。堆栈几乎准备好了,但我心中有一个困惑,那就是用户上传的照片会发生什么。
Suppose user comes to sever 'A' through load balancer and uploads the image which gets stored on my "webroot" folder on server 'A'. Now after few days user visits the website again and this time hits server 'B'. He won't be able to see his image as it is residing on server 'A'. I want to know how AWS opswork handles this problem?? Will it sync the data automatically or some extra chef receipe needs to be created from my side.
请指导我。我正在将 opswork 应用于我的网站,但这种混乱让我无法继续。任何链接都会有用。
答案1
简短的回答是:不是。
您需要在应用程序中考虑应用程序状态(包括上传的文件)。上传文件的常见设计模式是使用 S3 进行存储,而不是使用本地文件系统
另一种选择是拥有一个长期运行的(非 ASG)存储服务器,该服务器通过 NFS 将文件系统导出到您的应用程序服务器,然后它们都使用该服务器来上传内容。
答案2
不,数据不会被同步。
AWS 上的典型方法是让您的应用程序将文件上传到 Amazon S3,而不是将它们留在单个实例上。这可以在客户端使用 JavaScript 完成(http://www.plupload.com/是我过去为此使用的方法)或在脚本中的服务器端。