Docker에서 시작하는 서비스에 Traefik을 리버스 프록시로 연결
Traefik 소개
Traefik: https://github.com/containous/traefik
Go 언어의 역방향 에이전트 겸 부하 균형기
하고 싶은 일
jenkins.shikugawa.Docker 컨테이너에서 시작하는 Jenkins 서버에 네트워크를 통해 액세스하려고 합니다.또한 WW->Traefik 간에 SSL을 통한 통신을 원합니다.
절차.
CloudFlare의 DNS 설정
Traefik에서 Let's Encerypt에서 취득한 인증서를 업데이트하고 싶지만 지원하는 공급자에 제공되지 않은 DNS 서버는 대응할 수 없기 때문에 등록기에 전송해야 하는 DNS는 사용할 수 없습니다.이 가운데 클라우드 플라어는 무료로 이용할 수 있어 편리하다.아래의 느낌에 따라 설정할 수 있습니다.
참조: https://docs.traefik.io/configuration/acme/#dnschallenge
traefik 시작
docker-compose.yml
version: '2'
services:
traefik:
image: traefik:alpine
environment:
- CLOUDFLARE_EMAIL=${CLOUDFLARE_EMAIL}
- CLOUDFLARE_API_KEY=${CLOUDFLARE_API_KEY}
ports:
- 80:80
- 8080:8080 # WebUIを有効化させる際に必要
- 443:443
volumes:
- .:/etc/traefik/
traefik.tomldefaultEntryPoints = ["http", "https"]
[traefikLog]
filePath = "/var/traefik/traefik.log"
format = "json"
[entryPoints]
[entryPoints.http]
address = ":80"
[entryPoints.https]
address = ":443"
[entryPoints.https.tls]
[acme]
email = "YOUR EMAIL"
storage = "/etc/traefik/acme.json"
entryPoint = "https"
[acme.dnsChallenge]
provider = "cloudflare"
delayBeforeCheck = 0
[[acme.domains]]
main = "*.shikugawa.net"
[file]
watch = true
[backends]
[backends.jenkins]
[backends.jenkins.servers]
[backends.jenkins.servers.server0]
url = "http://jenkins:8080"
weight = 1
[frontends]
[frontends.jenkins]
backend = "jenkins"
passHostHeader = true # これをつけないとヘッダ情報がサービス側に飛ばない
[frontends.jenkins.routes.host]
rule = "Host:jenkins.shikugawa.net"
[api]
entryPoint = "traefik"
dashboard = true # WebUIの有効化
이 정도면 됐어.가장 적합한 곳은 백엔드다.jenkins.servers.서버 0의 URL 부분입니다.traefik-시작된 제인킨스 서비스default 네트워크에서 시작된 경우 포트는 인산염 측면에서 볼 수 있는 포트가 아니므로 컨테이너 측면에서 볼 수 있는 포트를 설정해야 합니다.Docker Engine에서 제공하는 내부 DNS는 호스트 이름이 가리키는 응용 프로그램이 시작하는 컨테이너의 IP를 주소로 변환하기 때문입니다.
Jenkins 시작
공식 이미지를 발표하다.
https://hub.docker.com/r/jenkins/jenkins/
docker-compose.yml
version: '3'
services:
jenkins:
image: jenkins:latest
networks:
- traefik_default
ports:
- "8090:8080"
- "50000:50000" # Slave用
volumes:
- './data:/var/jenkins_home'
networks:
traefik_default:
external: true
끝맺다
Consuul을 사용하는 것이 좋습니다.
https://docs.traefik.io/configuration/backends/consul/
https://qiita.com/woremacx/items/b6215cd6cf919fdb3824
Reference
이 문제에 관하여(Docker에서 시작하는 서비스에 Traefik을 리버스 프록시로 연결), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/Shikugawa/items/59ab8c3de39d1ec42c4a텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)