Laravel应用程序&负载均衡器

时间:2018-05-05 16:38:19

标签: laravel amazon-web-services autoscaling elastic-load-balancer

我已将我的应用程序托管在AWS云上,并且负载均衡器正在两个实例之上运行,这些实例由Nginx在Php7.0-fpm之上提供服务。让我们说我的应用程序下载文件并将其存储在本地,以便可以将内容提供给客户。使用自动缩放组,配置为两个实例;

1)如果我的会话以实例1开始,我的文件被下载,然后突然切换到实例-2,我会得到相同的内容吗?

或者

2)如果在单个实例上创建会话,在我退出应用程序之前是否会使用相同的实例?

非常感谢任何帮助!!

1 个答案:

答案 0 :(得分:2)

对于具有多个负载均衡实例的网站,强烈建议您将缓存和会话存储在一个位置而不是多个位置。为此,您可以在所有服务器上安装memcached并配置它们以将它们指向1台服务器以存储它们。

SESSION_DRIVER=memcached
CACHE_DRIVER= memcached
MEMCACHED_HOST=127.0.0.1 #on your memcache server, point to localhost
MEMCACHED_HOST=10.10.1.10 #on other instances, point to memcache server
MEMCACHED_PORT=11211

对于文件和图像上传,请使用AWS中的S3或带有FTP的专用存储服务器进行存储,以便所有服务器都可以直接以相同方式访问它。最简单,最有效:)

如果您在本地存储它们,您的服务器将不会与同一内容同步,您的用户最终将使用404。