会话持久性是指在“会话”持续期间或完成任务或事务所需的时间内,将客户端的请求定向到同一个后端 Web 或应用服务器。
高流量网站必须以快速、可靠的方式支持数十万甚至数百万的用户。 IT 组织通过将服务器分组为通常所谓的服务器场来支持这些海量数据。 负载平衡器位于服务器组前面,以最大限度提高效率的方式将流量引导至各个服务器。
如果用户浏览您的网站五分钟,她可能会从多个后端服务器获取信息。 如果 Web 浏览器或后端服务器尝试通过存储信息来让用户的下一步操作更快地发生,从而改善 Web 体验,那么每次不访问同一个服务器可能会导致问题。 在这种情况下,重要的是(不是说必须的)将所有用户请求发送到同一台服务器。
为了提高性能,后端服务器可能会缓存用户请求的数据,以及预先缓存它认为用户可能会请求的其他信息。 通常,在用户看来像是一个单一的请求(例如下载一个大文档),实际上会被分解并作为多个请求响应事务在客户端和服务器之间传输。 用户接收所请求信息的最有效方式是访问已经缓存该信息的服务器。
在其他情况下,用户可能会参与需要多个步骤的交易,例如填写表格、购买产品或升级其帐户。 当客户端和服务器交换数据时,他们需要存储有关会话的状态信息(称为上下文),以确保事务顺利进行。 在这种情况下,会话持久性使得事务更容易成功完成。
负载平衡器或应用交付控制器 (ADC) 位于服务器组前面,并实现将用户会话与特定服务器绑定的逻辑。
NGINX Plus和NGINX是 Dropbox、Netflix 和 Zynga 等高流量网站使用的一流的负载平衡解决方案。 全球有超过3.5 亿个网站依靠 NGINX Plus 和 NGINX Open Source 快速、可靠、安全地传递其内容。
作为基于软件的负载均衡器,NGINX Plus 比具有类似功能的硬件解决方案便宜得多。 NGINX 通过多种方式本地管理会话持久性,包括使用 cookie 和粘性路由。