Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/260.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/amazon-web-services/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php AWS中的Joomla部署,特别是在多个可用性区域中运行的web服务器(实例)之间管理公共文件/文件夹_Php_Amazon Web Services_Amazon Ec2_Deployment_Joomla2.5 - Fatal编程技术网

Php AWS中的Joomla部署,特别是在多个可用性区域中运行的web服务器(实例)之间管理公共文件/文件夹

Php AWS中的Joomla部署,特别是在多个可用性区域中运行的web服务器(实例)之间管理公共文件/文件夹,php,amazon-web-services,amazon-ec2,deployment,joomla2.5,Php,Amazon Web Services,Amazon Ec2,Deployment,Joomla2.5,当我们在AWS VPC-EC2实例上部署应用程序时,configuration.php中的Joomla配置日志、Tmp路径是什么。我的VPC是自动可扩展的,因此我假设一些日志应该如何位于任何共享位置?或者应该在EC2实例本地位置上? 另外,我们将在joomla的configuration.php中提到的路径是什么 public $log_path = '/home/public_html/logs'; public $tmp_path = '/home/public_html/temp';

当我们在AWS VPC-EC2实例上部署应用程序时,
configuration.php
中的Joomla配置日志、Tmp路径是什么。我的VPC是自动可扩展的,因此我假设一些日志应该如何位于任何共享位置?或者应该在EC2实例本地位置上? 另外,我们将在joomla的
configuration.php
中提到的路径是什么

public $log_path = '/home/public_html/logs'; 
public $tmp_path = '/home/public_html/temp'; 

在VPC中,当我们的web服务器运行在多个可用区域时,在共享媒体内容上会出现常见问题。例如,在一种特定情况下,当
log
temp
路径时,以及在
图像
文件
可由用户/管理员上载或由应用程序生成的情况下

当负载平衡器将网站流量定向到随机服务器(在不同的可用性区域中运行)时,这将成为一个需要解决的大问题

在这种情况下,我们必须有一个共享的公共位置来保存这些媒体文件(由用户上传或由应用程序生成)。否则,每个服务器(在可用区域中)将分别保存文件,如果用户上次上传的照片碰巧在可用区域a服务器中,那么下次用户定向到(通过负载平衡器)可用区域B服务器时,文件将不在那里。这是一个非常糟糕的案例

解决方案:

  • 最好建议用户使用AWS EFS服务,该服务由AWS设计,以满足这一特殊需求。这将创建一个公共位置来保存共享/公共文件,可以像访问本地文件系统文件夹一样访问这些文件。就像NFS装载的文件夹一样

  • 您可以使用S3存储,这在某些情况下也是推荐的,但您需要修改或设置代码,使其能够处理S3存储文件系统。 此外,还可以使用第三方S3FS将S3存储装载到Web服务器(EC2实例)。但美国焊接学会确实建议采用50%的建议。因为AWS可能无法做一些监控工作来帮助客户监控流量和其他内容

  • 您还可以创建一个独立的EC2实例,它的主要任务是保存这些公共媒体文件。它可以在公共或私有子网中的任何位置创建,只要它与其他子网在同一路由表中,它就可以工作。我们可以通过在此实例中创建所需数量的目录并将其导出到特定的web服务器(位于不同的可用性区域)或
    导出到IP范围(如果我们在AWS中设置了自动可伸缩组),将此实例用作NFS。然后,每个客户机(web服务器)都需要
    将导出的目录装载到我们的应用程序需要这些目录的位置。然后,这些目录将像普通的本地目录一样工作,但在不同可用性区域中的所有正在运行的web服务器中都是通用的

  • 如果有一个
    natec2实例运行,我们还可以使用它作为NFS服务器,在上面创建目录并将它们导出到web服务器

  • 结论:
    空间
    预算成本
    是两个重要因素。在上述所有情况下,性能更相似。当我们有媒体文件在下面时,你一句话也不说就给问题打负面标记是不公平的。你从这个问题中理解的要点可能不正确。我的二分钱:就像一年前,我们为大约30个Joomla网站试用了EFS,但速度非常慢(大IO延迟;Joomla有很多小文件,而不是几个大文件;EFS在几乎没有大文件的情况下工作得更好)。但我不能确定该服务是否改善了对“多个文件”用例的支持。更多:公开了许多关于EFS延迟问题的观点。@arod,你的观点非常重要。我在我的NAT实例上安装了NFS导出,该实例正在我的web服务器实例中导入。我没有注意到任何延迟问题,因为这更像是同一系统上的本地目录。EFS可能存在一些延迟问题(当有大量请求需要小型媒体资产时),但CDN是最好的选择。这是一个非常重要的问题,但我想知道为什么我的问题权重为-2:)不幸的是,问题的措辞有点混乱,因此可能会导致有人投反对票。事实上,我的评论是针对公认的答案,而不是针对你的问题。