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 结束。
我已经在 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 结束。