gpt4 book ai didi

PHP SESSION 在负载平衡的服务器中不一样(不同步)?

转载 作者:行者123 更新时间:2023-12-04 04:48:04 25 4
gpt4 key购买 nike

刚刚转移到 AWS 并启动了 2 个负载平衡的 RHEL 服务器。并安装了Apache和PHP。仅此而已。第二个是第一台服务器的图像。

但突然间我才注意到 PHP $_SESSION变量不同步。各有千秋。

在我运行这个之后:

<?php
session_start();

if ( $_GET["setvalue"] ) {
$_SESSION["sess_test"] = $_GET["setvalue"];
}

echo "session value: ".$_SESSION["sess_test"];
?>

然后我分配如下:
  • http://www.example.com/session.php?setvalue=hello

  • 在我分配 session 值并一次又一次刷新(当然通过删除“ ?setvalue=hello ”部分)之后,每当我刷新时,同一页面都会显示 2 倍不同的值(因为我有两个负载平衡服务器)。

    一是显示:
  • session 值:你好

  • 下一次显示:
  • session 值:

  • 在我再次给出不同的值后,只有一个命中服务器显示最后一个值,而其他服务器仍然没有用最后一个值更新。

    请问有什么想法吗? :(

    最佳答案

    如果您使用默认的基于文件的 session 存储引擎,那么自然而然地,您无法对它们进行负载平衡(至少,不能不使用某种 stickiness )。

    您需要的是 session 的集中存储,例如使用 databasememcache .

    另见 PHP sessions in a load balancing cluster - how?

    关于PHP SESSION 在负载平衡的服务器中不一样(不同步)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17879291/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com