PHP:$\u会话变量未在代理/负载平衡器后面的服务器上持久化

PHP:$\u会话变量未在代理/负载平衡器后面的服务器上持久化,php,session,proxy,load-balancing,Php,Session,Proxy,Load Balancing,我在PHP应用程序中使用$\u会话变量时遇到很多问题。如果我直接访问运行PHP应用程序的web服务器,一切正常。然而,在生产中,托管PHP应用程序的web服务器实际上在代理/负载平衡器后面。架构如下所示: AWS负载平衡器->由2个相同的代理服务器组成->每个代理服务器只将请求转发到后端服务器->后端服务器实际执行并运行PHP应用程序 之所以在生产中必须这样做,是因为需要在浏览器中具有特定的URL 我已经把 session_start(); 及 在所有相关页面上 请求的转发是否会导致$\u会话

我在PHP应用程序中使用$\u会话变量时遇到很多问题。如果我直接访问运行PHP应用程序的web服务器,一切正常。然而,在生产中,托管PHP应用程序的web服务器实际上在代理/负载平衡器后面。架构如下所示:

AWS负载平衡器->由2个相同的代理服务器组成->每个代理服务器只将请求转发到后端服务器->后端服务器实际执行并运行PHP应用程序

之所以在生产中必须这样做,是因为需要在浏览器中具有特定的URL

我已经把

session_start();

在所有相关页面上

请求的转发是否会导致$\u会话变量无法持久化


我不明白,后端服务器正在做任何事情,$\u会话变量应该持久化后端服务器,代理服务器只是转发/接收来自后端服务器的请求,而不做任何事情???

确保负载平衡器配置为为为每个客户端使用持久化后端服务器。默认情况下,每个后端服务器都有自己的会话数据,因此如果用户切换到不同的后端服务器,则不会有在另一台服务器上分配的会话变量


或者您需要在所有后端服务器之间实现共享会话存储。

虽然有两个代理,但只有一个后端服务器,因此理论上,无论哪个代理服务器收到请求,它们都会转发到同一后端服务器。这仍然会影响$\u会话变量吗?
header('p3p: CP="NOI ADM DEV PSAi COM NAV OUR OTR STP IND DEM"');