두 가지 서비스가 있는데 둘 다 깔끔하게 고정되어 있고 각각 고유한 docker-compose.yml
.
각 서비스에는 고유한 도메인 이름이 있습니다.
두 서비스 모두 HTTPS를 사용하며 Lets Encrypt 인증서가 있습니다.
두 서비스 모두 완전히 독립적이며 80 및 443을 수신합니다.
.--[http]-[https]--. .--[http]-[https]--.
| | | |
| Service A | | Service B |
| | | |
'------------------' '------------------'
동일한 호스트에서 두 서비스를 모두 시작할 수 있도록 역방향 프록시를 어떻게 설정합니까?
.--------------[http]-[https]--------------.
| |
| REVERSE PROXY |
| |
'---+--------+---------------+--------+----'
| | | |
http https http https
req. req. req. req.
domainA domainA domainB domainB
| | | |
V V V V
.--[http]-[https]--. .--[http]-[https]--.
| | | |
| Service A | | Service B |
| | | |
'------------------' '------------------'
나는 서비스를 독립적으로 유지하고 싶습니다. 즉, 서비스 컨테이너에서 인증서를 추출하는 것을 피하고 싶습니다.
내 실험에 따르면 nginx는 인증서 없이는 HTTPS 요청을 전달할 수 없는 것 같습니다.것 같다이것을 달성하는 것이 가능해야 하는 것처럼. 아마도 다른 역방향 프록시 소프트웨어를 사용하고 있을까요?
나는 두 서비스를 모두 제어할 수 있습니다 docker-compose.yml
. 필요한 경우 포트 등을 변경할 수 있습니다.
이상적으로는 다음과 같은 구성을 허용하는 간단한 데몬을 찾고 싶습니다.
[service a]
domain: domainA.tld
localPort: 8080
[service b]
domain: domainB.tld
localPort: 8081
미친 듯이 검색했지만 그런 도구를 찾지 못했습니다.
답변1
당신은jwilder/nginx-프록시, 자동화된 역방향 프록시 기능을 제공하고 간편한 docker-compose 통합이 함께 제공됩니다(서비스가 실행되는 포트와 서비스를 사용할 수 있는 도메인 등 몇 가지 환경 변수만 지정하면 됩니다).
다음을 사용하여 Let's Encrypt 인증서 생성을 자동화할 수도 있습니다.jrcs/letsencrypt-nginx-프록시-컴패니언.