아니요, 이 머신에는 로컬 IP가 할당되어 있으며 트래픽은 내 방화벽을 통해 해당 로컬 IP로 라우팅됩니다. 이것이 문제가 아닙니다.
공개 IP에는 서버용 A 레코드가 있으며 올바르게 라우팅됩니다. forum.somedomain.com은 → 올바른 서버를 가리킵니다.
예, 설치를 통과했습니다. 컨테이너가 실행되는 지점까지 100% 완료했습니다(3번).
모든 도메인/DNS 검사를 통과했습니다. 유효하다고 표시됩니다.
아니요, SSL 인증서는 내 리버스 프록시를 통해 발급되므로 레이트 리미트에 걸릴 수 없습니다. 인증서를 가지고 있습니다.
이 설치는 100% 완료되었습니다. 문제는 Docker가 172.17.0.1이라는 새로운 네트워크를 생성하는 것입니다. 저는 HOST 로컬 IP인 192.xx.xx.xx를 사용하길 원하므로 이는 필요하지 않습니다.
컨테이너는 실행 중이지만 다른 네트워크에서 실행되고 있습니다. HOST IP로 설정할 수 없습니다.
Docker 호스트는 호스트 서버의 IP(192.xxx.xxx.xxx)여야 하며 새로운 네트워크가 아닙니다. 아마도 작동은 하지만 그 네트워크에서 작동하고 있는 것 같습니다.
설치 과정에서 내 로컬 IP를 사용하고 172.17.0.1을 사용하지 않도록 어떻게 지시해야 하나요?
그건 꽤 자명한 문제입니다. app.yml에서 Nginx가 트래픽을 전달하는 HTTP 포트가 허용되어 있고, SSL이 비활성화되어 있습니다. 이 두 가지만 수정하면 됩니다. 물론 실제 IP를 전달해야 하지만, 백엔드가 Discourse, Moodle, WordPress, 기타 무엇이든 항상 그렇게 해야 합니다. UFW는 백엔드에 대한 직접 접근을 허용할 필요가 없으므로, 프론트엔드와 백엔드 사이의 접근만 제한하려고 합니다.
기억이 맞다면 Apache2를 설정하는 문서가 여기에 있습니다. Nginx도 같은 일을 하지만, 물론 그만의 방식으로 수행합니다.
Nginx 또는 Nginx+Varnish를 사용하여 같은 VPS에 Discourse를 실행하거나, 다른 IP의 VPS에 실행하는 것이 가능합니다. Nginx가 리버스 프록시로 작동할 때 실제로 무엇을 하는지 말씀해 주시지 않으셨습니다. 예제들이 조금 이해하기 어려운 이유는, 그것이 단순한 예시인지 아니면 실제로 사설 네트워크를 사용하려는 것인지 알 수 있는 방법이 없기 때문입니다.
하지만:
물론이죠. 그 포드는 수신되는 트래픽을 처리하는 용도이므로, 백엔드에는 다른 포트를 사용해야 합니다.
아래와 같은 설정을 사용하세요 (이것은 실제로 Varnish와 함께 사용되지만, 원리는 완전히 동일하며 매우 기초적인 내용입니다):
패킷 처리 시스템이 자체 샌드박스 안에서 작동하기 때문에 헷갈리는 겁니다. 기본적으로 그 정도 수준입니다.
하지만 도커를 이해하는 것과 사용하는 것은 별개의 문제입니다 (그리고 요즘 개발자분들이 꽤나 난감해하고 계시죠 ). 리버스 프록시가 방화벽을 통해 해당 IP로 트래픽을 보내고 있으며, 해당 IP와 리스닝 포트(청취 포트)를 지정해야 합니다. 그리고 그 IP에는 app.yml에서 지정한 포트에서 도커(즉, 디스커스)가 실행되고 있습니다. 디스커스와 함께 작동하는 내부 Nginx가 나머지 작업을 처리합니다.
이 부분은 전적으로 동의합니다. 울고 있다는 표현보다는, 리눅스를 제대로 다루는 시스템 관리자와 개발자들에게는 그냥 쓸모없는 것일 뿐이라고 말하는 게 더 적절할 것 같습니다. 격리된 LXC나 VM을 만든 뒤, 그 안에서 Docker가 또 다른 격리 환경을 만드는 것은 중복되고 무의미합니다.
이 부분이 가장 혼란스럽습니다. app.yml은 172.17.0.2에서 80:80과 443:443을 노출하고 있으며, 이 IP는 Docker 네트워크 172.17.0.1/16 내에 있고, VM의 IP는 10.10.1.38입니다.
10.10.1.38로 들어오는 모든 트래픽이 172.17.0.2로 전달되고, 나가는 모든 트래픽은 10.10.1.38을 통해 나가도록 Discourse/Docker를 설정하는 방법은 무엇인가요? 이 문제를 해결하는 데 필요한 것은 오직 이것뿐입니다. 정말로요.
WAN에서 forum.domainname.com으로의 라우팅은 제 리버스 프록시가 처리할 예정입니다.