P粉7978557902023-09-01 15:45:09
이 답변을 확인하세요. 분명히 이 문제는 세션의 최대 만료 시간을 memcached의 만료 제한보다 크게 설정하면 발생할 수 있습니다. 해당 게시물에서 OP는 다음 구성 변수를 수정하여 문제를 해결했습니다. 시도해 볼 수 있습니다.
으아악또 다른 옵션은 memcached
并使用内存驻留 sqlite3
데이터베이스를 제거하고 이를 세션 저장소로 교체하는 것입니다. 두 경우 모두 프로덕션 성능이 크게 다르지 않을 것이라고 생각합니다.
P粉7627302052023-09-01 11:17:20
AWS ElastiCache Memcached 클러스터를 사용하는 경우 구성에서 사용 중인 엔드포인트를 확인하세요$config['sess_save_path']
。一种选择是使用配置端点(其中包含 .cfg.
),另一种选项是单个节点端点(包含 .0001.
、.0002.
등). 구성 엔드포인트를 사용하는 경우 자동 검색이 활성화되어 있는지 확인하세요(서버에 추가 설치 필요 - PHP용 ElastiCache 클러스터 클라이언트). 활성화하지 않으면 노드가 올바르게 해결되지 않아 이와 같은 문제가 발생합니다.
나도 그랬다는 사실이 밝혀졌다. 세션 start, regenerate 및 destroy에서 메시지 로깅을 시도했는데 파일 드라이버를 사용하면 재생성이 발생하는 반면 memcached를 사용하면 session_start()
함수 이외의 어떤 함수도 호출하지 않습니다. 이것 말고도 . 몇 가지 조사 끝에 호스트를 다시 확인하기로 결정했고 우연히 를 발견했습니다. AWS session_start()
之外的任何函数。经过一番调查后,我决定重新检查主机并偶然发现 这个AWS 中的指南。事实证明,在问题开始时,第二个节点已添加到我们的 Memcached 集群中,但我们一直在使用配置端点,而没有设置此 自动发现。我根本不确定设置是如何工作的。因此,我将 $config['sess_save_path']
가이드. 문제가 시작되었을 때 두 번째 노드가 Memcached 클러스터에 추가되었지만 우리는 이 자동 검색
$config['sess_save_path']
를 노드 중 하나의 끝점으로 변경했더니 문제가 사라졌습니다. 이 솔루션은 필요한 모듈을 설치 및 설정할 때까지, 그리고 노드가 변경되지 않는 한 작동해야 합니다. 🎜