2017-01-27 4 views
3

I've been struggling to put SilverStripe behind a load balancer 그리고 인스턴스를 rsyncing하고 공유 저장소를 사용하여 여러 가지 문제를 해결했으며 거의 ​​안정적이었습니다. 그러나 CMS를 손상시키는 다른 문제를 발견했습니다.Silverstripe TinyMCE가로드 밸런서 뒤에 충돌합니다.

특히 TinyMCE 편집기에서 CMS에 링크를 추가하려고하면 팝업 화면에 페이지/파일 선택이 표시 될 때 tinyMCE.activeEditornull을 반환한다는 JavaScript 예외가 발생합니다.

나는 두 서버 사이의 캐시 디렉토리 silverstripe-cache을 rsynced 여전히 단 몇 초 m=timestamp 사이에 차이가 있지만, 나는이 tiny_mce_gzip.php 다시로드 강제로하게하기에 충분 같은데요했습니다.

세션 저장소 공유 db에 대한 공유 redis 캐시가 있고 캐시 디렉토리를 rsynced하고 CodeDeploy을 사용하여 응용 프로그램을 모두 동기화해야합니다. 다른 저장 영역으로 인해 다른 m 타임 스탬프가 발생할 수 있습니까? 끈적 세션없이로드 밸런서 뒤에 SilverStripe CMS를 사용하여 성공한 사람이 있습니까?

+0

AWS는 다른 모든 실패한 경우 일부 문제를 해결하기위한 보봇 (botch) 인 "끈적 세션"구성을 제공합니다 (다른로드 밸런서도 마찬가지입니다). 그것은 모든 요청에 ​​대해 동일한 서버에 동일한 사용자를 배치합니다. 문제에 대한 해결책은 아니지만 다른 모든 것이 실패하는지 살펴볼 가치가 있습니다. – apokryfos

+0

@apokryfos 예 일반적으로로드 균형 조정과 관련하여로드 문제가 있었는데 일반적으로 한 서버에 더 많은로드를 가하고 있습니다. 따라서이 문제를 피하고자합니다. – Rudiger

답변

3

HTML 편집기의 gzip 버전을 비활성화 할 수 있습니다. 나는 이것이 전에 일어난 것을 보았다. config/config.yml에 다음을 추가하십시오. HTMLEditorField: use_gzip: false

그런 다음 완전히 플러시하고 다시 시도해보십시오.

다른 옵션은 자바 스크립트가 올바르게 동기화되지 않는 것입니다. 이를 위해서는 ?m=12345의 방식을 변경해야합니다. 기본적으로 타임 스탬프를 기반으로 작성됩니다.

그렇지 않으면 문제를 해결할 수있는 md5 기반 파일을 찾을 수 있는지 확인합니다.

* 편집

나중에, 프로젝트에서이 곳을 만드는 시도하고 추가 이동 여기

_config.php Requirements::set_backend(new MysiteRequirementsBackend()); https://gist.github.com/Firesphere/794dc0b5a8508cd4c192a1fc88271bbf

실제 작업에 다음과 같은 우리가 우연히 내 동료 중 하나입니다 같은 문제.

+0

그래서 전체 파일에서 md5가 생성되므로 md5가 변경되면 어떻게됩니까? 가능한 성능 영향은 무엇입니까? – Rudiger

+0

예, 성능에 약간의 영향이 있습니다. 완전히 확신 할 수는 없지만 깨진 HTMLEditorField보다 몇 밀리 초 정도 느린 작업 CMS를 선호합니까? 전체 파일의 MD5를 만드는 지점은로드 균형 조정기 뒤에서 작업 할 수있을만큼 고유하게 만드는 것입니다. 그리고 CMS에만 적용됩니다. 개인적으로 CMS 속도에 대한 불만이 없었습니다 (SilverStripe 플랫폼) –

+0

그래, 무슨 뜻인지 아시겠지만 혹시 눈치 채 셨는지 알고 싶다. 지금 구현하는 중입니다. – Rudiger