Traefik을 사용하면서 적용한 설정 정리
static + dynamic config, dashboard basic auth, 80 to 443 redirect
# traefik.yml - static config
global:
checkNewVersion: true
sendAnonymousUsage: true
entryPoints:
web:
address: ":8090"
dashboard:
address: ":8080"
api:
dashboard: true
providers:
docker:
watch: true
network: "proxy"
endpoint: "unix:///var/run/docker.sock"
file:
filename: /dynamic.yml
# dynamic.yml - dynamic config
http:
routers:
dashboard:
rule: "PathPrefix(`/dashboard`) || PathPrefix(`/api`)"
service: api@internal
middlewares:
- auth
middlewares:
auth:
basicAuth:
users:
- "[유저]:[비밀번호 암호화]"
basicAuth 에는 암호화된 비밀번호를 입력해야한다.
httpd-tools를 설치한 후, htpasswd 명령어로 bcrypt 암호화한 비밀번호를 생성한다.
참고로 암호화된 비밀번호는 왠만하면 터미널창에서 그대로 복사해서 설정파일에 붙여 넣길 추천한다.
노트패드나 노션에 옮겨놓았다가 붙여넣으면 생성한 비밀번호가 잘 적용되지 않았다.
# httpd-tools 설치
sudo dnf install -y httpd-tools.x86_64
# [유저]:[비밀번호 암호화] 출력
[admin@my-server traefik]$ htpasswd -nb [유저] "[비밀번호]"
NCP의 Load Balancer로 구현했다. 흐름은 이러하다.
HTTP 80 → HTTPS 443 → HTTP 8090 (traefik에 묶인 실제 서비스)
예전에 nextcloud 만들 때는 이것보다 더 복잡하게 구성했는데, 이렇게 하는 것이 더 깔끔하고 쉽다.
그때는 LB 사용법을 지금보다 더 몰랐던 것 같다.