컨테이너 외부에서 Nginx 레이트 리미팅 - 팁이 있을까요?

Docker 컨테이너 외부에서 nginx의 속도 제한(rate limiting)에 대한 작동하는 설정을 공유해 주실 수 있나요? (소켓으로 discourse가 설정된 환경) 감사합니다.

적절하게 튜닝하는 방법을 찾지 못해 유효한 트래픽까지 제한되고 있습니다.

제한되지 않아야 할 때 트래픽이 제한되고 있다는 뜻인가요, 아니면 제한되어야 할 때 트래픽을 제한하지 못하고 있다는 뜻인가요?

그렇습니다. 처음에 컨테이너 내부의 템플릿을 사용하다가 외부로 옮겼습니다. 외부 nginx의 레이트 리미팅에 대해 권장되는 설정이 있는지 모르겠습니다.
이모지와 아바타는 나머지 트래픽과 다른 제한 설정이 적용되는 것 같습니다.

방금 올려봤는데… 정말로 외부 nginx에서 작업하는 레이트 리밋 팁을 공유해 주실 분이 없으신가요? 미리 감사드립니다!

게시물을 다시 올리지 마세요. 답변이 있었다면 그 사람이 이미 알려주었을 것입니다.

meta의 다른 가이드를 따랐다고 가정하고, nginx가 클라이언트 IP를 컨테이너로 전달하도록 올바르게 구성되어 있다면, 이것이 실제로 discourse의 문제인가요?

a) AFAIK 컨테이너 외부에서 nginx를 사용하는 것이 권장됩니다.
b) discourse가 요구하는 내용에 맞게 맞춤 설정해야 합니다.

따라서, 저는 이것이 discourse 관련 문제라고 생각합니다.

이것이 정말 사실이며 권장되는 관행인가요?

rate limit 템플릿 templates/web.ratelimited.template.yml 은 docker 구성에서 제거되어야 하며, 대신 외부 nginx 인스턴스에서 rate limit을 설정해야 합니다.

아니요, Discourse는 컨테이너 외부에서 nginx를 요구하지 않습니다.

nginx는 이미 컨테이너 내부에 존재하며 자동으로 구성됩니다. 표준 설치 절차를 따랐다면 추가 설정 없이 바로 사용할 수 있습니다.

호스트에 다른 서비스를 실행하지 않는다면 외부 nginx 인스턴스가 전혀 필요하지 않습니다.

죄송하지만, 오프라인 페이지 없이 20분 이상 앱을 재빌드하는 것은 좋은 관행이 아니라고 생각합니다(트래픽이 많은 사이트의 경우).

다운타임이 필요한 수동 재구축은 1년에 한두 번 발생합니다. /admin/upgrade를 통해 업그레이드하면 중단 없이 진행됩니다.

두 개의 컨테이너를 설치하면 재구축 시간을 크게 줄일 수 있으며, nginx를 사용하든 아니든 이 방법을 살펴볼 것을 권장합니다.

2개 컨테이너 설치 방식이 좋네요. 하지만 이 포럼에서 관련 문서를 찾을 수가 없어요 :frowning:

아니요, 그렇지 않습니다. 가능은 하지만 표준 권장 사항은 아닙니다.

다음은 가이드입니다.

가장 큰 우려 사항이 재빌드 과정에서의 다운타임이라면, 이것이 최선의 선택이 될 것입니다. 설정에 도움이 필요하시면 Marketplace 채널에서 도움을 받을 수 있습니다.