You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Azure Linux App Service PHP7.4不同客户端重复Session ID问题修复咨询

Azure Linux App Service PHP7.4 ARR Affinity下多客户端同Session ID问题修复方案

问题现象

在Azure Linux App Service环境使用PHP7.4且启用ARR Affinity时,出现不同客户端(不同IP)获取到相同Session ID的异常,相关日志如下:

时间session idIP
2023/02/17 09:21:00c3afe305bd82d13d532d18a1e29c0ab0fbfe51365c7fbf61.163.94.12
2023/02/17 09:21:14c3afe305bd82d13d532d18a1e29c0ab0fbfe51365c7fbf61.163.94.12
2023/02/17 09:21:19c3afe305bd82d13d532d18a1e29c0ab0fbfe51365c7fbf61.163.94.12
2023/02/17 09:21:25c3afe305bd82d13d532d18a1e29c0ab0fbfe51365c7fbf61.163.94.12
2023/02/17 09:28:10c3afe305bd82d13d532d18a1e29c0ab0fbfe51365c7fbf6106.64.41.90
2023/02/17 09:28:11c3afe305bd82d13d532d18a1e29c0ab0fbfe51365c7fbf6106.64.41.90
2023/02/17 09:28:13c3afe305bd82d13d532d18a1e29c0ab0fbfe51365c7fbf61.163.94.12

问题原因

  1. PHP7.4默认Session ID生成依赖服务器端共享资源(如进程随机数种子),在多实例/容器环境下易出现重复
  2. 若使用默认文件系统存储Session,当多个App Service实例挂载同一路径时,Session数据会被共享,导致不同客户端复用同一ID
  3. ARR Affinity启用后,若实例重启或状态异常,可能导致Session ID生成逻辑出现复用问题

修复方案

1. 强化Session ID生成唯一性

修改PHP配置或自定义生成逻辑,提升Session ID的唯一性:

  • 在php.ini中调整参数:
    session.sid_length = 32
    session.entropy_file = /dev/urandom
    session.entropy_length = 32
    
  • 在代码初始化阶段自定义Session ID生成函数:
    if (!session_id()) {
        $uniqueId = bin2hex(random_bytes(16)); // 生成32位加密安全的唯一ID
        session_id($uniqueId);
        session_start();
    }
    

2. 配置分布式Session存储

替换默认文件存储为Azure分布式存储,避免实例间Session共享:

  • 使用Azure Redis Cache作为Session存储,在php.ini中配置:
    session.save_handler = redis
    session.save_path = "tcp://<your-redis-host>:6380,password=<your-redis-key>,ssl=1"
    
  • 也可使用Azure Blob Storage配合第三方Session handler,确保Session数据全局隔离且唯一

3. 调整ARR Affinity配置

  • 若业务无需粘性会话,可在Azure门户的App Service「配置」->「常规设置」中关闭ARR Affinity,观察问题是否缓解
  • 若必须启用ARR Affinity,确认App Service实例的资源隔离配置正常,避免实例间共享进程状态

4. 升级PHP版本

PHP7.4已停止安全维护,升级至PHP8.0及以上版本,新版本优化了Session生成逻辑,降低重复ID概率,同时提升整体安全性与性能

5. 临时应急修复

重启所有App Service实例,清除可能存在的共享进程状态或缓存的随机数种子,临时解决当前异常

内容的提问来源于stack exchange,提问作者WenJing

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.31 08:56:08