오, 그래요. 이건 결정적인 증거(smoking gun)인 것 같고, 다른 문제를 가리키는 것 같습니다.
로그에서 avatar_proxy가 나타나는 것은 보통 discourse가 cloudflare R2 CDN에서 아바타를 직접 서빙하는 것을 거부하고 있다는 뜻입니다. 대신 discourse가 요청을 적극적으로 가로채 R2에서 이미지를 로컬 서버의 /tmp 폴더로 다운로드한 뒤, ruby를 사용해 브라우저에 이미지를 서빙합니다. 따라서 CDN을 완전히 우회하고 있다고 생각하며, 이것이 3초 지연을 설명하는 것 같습니다 - 서버가 모든 요청마다 수동으로 파일을 가져오고 로드한다고 추정합니다 ![]()
discourse는 몇 가지 매우 구체적인 시나리오에서 avatar_proxy를 사용하며, 보통 외부 URL을 마스킹하도록 서버를 강제하는 프라이버시 또는 보안 설정 때문입니다.
관리자 - 사이트 설정(admin - site settings)에서 다음 설정들을 확인해 주세요:
external system avatars url을 찾아보세요 - 그 입력란에 무엇이든(예: /letter_avatar_proxy/v4/...) 있다면, discourse가 기본 문자 아바타를 프록시하지 않도록 비워 두세요. 또한 uploaded avatars allowed groups도 확인하여 TL_0이라고 되어 있는지 확인하는 것이 좋습니다.
DISCOURSE_S3_CDN_URL도 다시 한번 확인하여 끝날에 슬래시나 오타가 없이 정확히 설정되어 있는지 확인해 보세요?
사용자 정의 아바타 리맵:
데이터베이스에 여전히 원본 R2 버킷 URL이 저장되어 있고 새로운 CDN URL이 아닌 것 같습니다. URL이 일치하지 않기 때문에 보안상의 이유로 포럼이 이를 프록시하는 것으로 보입니다.
rails 콘솔에서 discourse가 정확히 무엇과 충돌하고 있는지 확인해 보세요:
./launcher enter app
rails c
아바타 로딩이 느린 사용자를 선택하세요
u = User.find_by_username("the_selected_username")
u.user_avatar.custom_upload.url
출력이 원본 버킷 URL을 반환한다면 이전 리맵이 모든 것을 포착하지 못한 것입니다(서브도메인이나 스킴을 놓쳤을 수도 있습니다).
수정하려면 서버에 ssh로 접속하고 컨테이너로 돌아가세요(rails가 아님) (./launcher enter app) 그리고 리맵 도구를 실행하여(또다시 ㅋㅋ) 원본 URL을 CDN URL로 교체하세요:
discourse remap "https://<your-raw-cloudflare-url>.r2.cloudflarestorage.com" "https://cdn.your-domain.com"
그리고 혹시 모를 경우를 대비해 https:// 대신 //를 사용하여 두 번째로 실행해 보세요.
참고로, 궁금해서 여쭤보는 건데 어떤 호스팅 서비스를 사용하시나요? 저는 당신과 거의 동일한 일반적인 설정을 사용하는데 아직 이 문제를 경험해 본 적이 없습니다. 그래서 당신의 설정에 관심이 있고, 어떻게든 재현해 보고 싶습니다.