HA Proxy 뒤에서 로그인 시 CSFR 오류 발생

여러분 안녕하세요. 이 문제가 도움을 요청하기에 적절한 섹션인지 모르겠네요.

최근 Discourse 서버 앞에 있는 리버스 프록시를 변경했습니다.
여러 개의 Discourse가 설치된 서버가 있고, 그 앞에 도메인을 올바른 웹 서버로 가리키도록 설정된 리버스 프록시가 있습니다.

두 환경 모두에서 HA Proxy를 사용했지만, 플랫폼이 다릅니다. 이전에는 PFSense에 설치되어 있었고, 지금은 OPNSense에 설치되어 있습니다.

리버스 프록시는 완벽하게 작동하지만, 로그인하려고 하면 CSRF 오류가 발생해서 아무것도 할 수 없습니다.

Discourse 설정은 변경된 것이 없으며, HA Proxy 설정도 그대로 복사해 온 것이므로 문제없을 것으로 생각됩니다.
X-Forwarded-For와 SSL을 활성화했지만, 여전히 Discourse는 클라이언트의 원래 IP를 유지하지 못하고 프록시의 IP만 인식하는 것 같습니다.

이 문제를 지원팀에 문의했던 Reddit 게시글입니다: Reddit

csrf 문제를 해결할 수 있을지 확신은 없습니다(https 인증서 문제와 관련이 있다고 생각하지만, 정확히는 모르겠어요). 하지만 당신이 컨테이너 내부의 nginx에 어떤 주소를 신뢰해야 하는지 알려줌으로써 수행한 forwarded for 설정은 도움이 될 수 있습니다. 여기서 X-forwarded-for를 검색하면 해당 문제를 수정하는 방법에 대한 예시를 찾을 수 있습니다.

답변 주셔서 감사합니다.
포럼에서 관련 내용을 찾아보았지만, 최신 정보를 찾기 어렵네요.

컨테이너 내부의 nginx에 Real_ip를 설정하는 방법에 대한 오래된 주제들이 꽤 있긴 하지만, 어떻게 해야 할지 감이 오지 않습니다.

혹시 특정 가이드를 추천하시나요?

구체적인 가이드는 보이지 않지만, 곧 하나 만들어 보겠습니다. 여기 Inconsistent / missing registration & last IP - #13 by pfaffman 링크가 real-ip 관련해서 필요한 정보를 제공해 줄 것 같습니다.

X-Forwarded-Proto 헤더도 함께 전송해야 합니다.

감사합니다! 정말 3일 동안 같은 문제를 반복하다가 이 방법으로 해결했습니다!

Proto 헤더도 추가했는데 작동했습니다!

참고로, Discourse 앱 앞에 배치되는 리버스 프록시 서버에 대한 많은 예시 구성이 있으며, 이 구성을 포함하여 거의 모든 예에서 "X-Forwarded-Proto"를 다룹니다: