Laravel 应用程序和负载均衡器

Laravel Application & Load balancer

我已经在 AWS 云上托管了我的应用程序,负载均衡器是 运行 在两个实例之上,这两个实例由 Nginx 在 Php7.0-fpm 之上提供服务。假设我的应用程序下载一个文件并将其存储在本地,以便可以将内容提供给客户。带有一个弹性伸缩组,配置两个实例;

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

或者

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

非常感谢任何帮助!!

对于具有超过 1 个负载平衡实例的网站,强烈建议您将缓存和会话存储在 1 个位置,而不是多个。为此,您可以在所有服务器上安装 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 结束。