我有一个问题,我正在使用 nginx 和 PHPFPM。
我正在使用 2个PHPFPM服务器的负载均衡器,为了保持来自两个phpfpm服务器的会话同步,我使用了memcached。
但是当我使用memcached时,我发现页面速度变慢。
当我使用文件作为会话保存类型时,网站运行得更快,但是会话不会立即同步(我猜测文件被覆盖了)。我正在使用NFS共享会话。
请问有什么想法吗?如何在使用nginx负载均衡器为phpfpm服务器时同步会话?
我有一个问题,我正在使用 nginx 和 PHPFPM。
我正在使用 2个PHPFPM服务器的负载均衡器,为了保持来自两个phpfpm服务器的会话同步,我使用了memcached。
但是当我使用memcached时,我发现页面速度变慢。
当我使用文件作为会话保存类型时,网站运行得更快,但是会话不会立即同步(我猜测文件被覆盖了)。我正在使用NFS共享会话。
请问有什么想法吗?如何在使用nginx负载均衡器为phpfpm服务器时同步会话?
session_write_close()
以释放锁为止。对于分布式会话存储,你很少需要慢的基于文件系统的锁定。大多数内存存储都更快。由于NFS通常无法处理flock调用,如果两个并发请求尝试写入同一个会话文件,则会导致会话损坏。换句话说,你看到的“更快”基本上是因为请求可能更快地破坏它们的会话,因为没有针对并发性的会话锁。NFS(版本2和3)协议不支持文件锁定
session_write_close
,以便任何其他并发请求可以访问会话。这通常是当你正在执行大量长轮询请求到PHP(例如通过AJAX)时的问题。