개요


Regexp로 forward 처리하기


Title에 regexp라고 적어놓은 것과 같이 traefik에서는 regular express를 지원을 한다.

여기서 regexp는 **“.domain.com”**에서 **“”**에 대해서 처리를 해야해서 필요하다.

또한 여기서 priority부분이 나오는데 이것은 굉장히 중요하다.

router에는 priority(우선순위)가 존재하는데, 이 우선 순위는 숫자가 높을수록 순위가 높다.

traefik에서 file로 처리도 가능하지만, docker로 구성하는 마당에 main traffic은 docker의 label 처리가 깔끔하다고 느끼게 되어 label로 처리하게 되었다.

아래의 예시는 docker-compose.yml의 일부이며 실제로 사용하는 labels이다.

## docker-compose.yml

#--------------------- 생략 ---------------------#

    labels:
      traefik.enable: true
      traefik.docker.network: proxy

      # ...
      
      # host-redirect
      traefik.http.routers.host-redirect.rule: Host(`$HOST_URL`) || HostRegexp(`^.+\\.$HOST_URL$`)
      traefik.http.routers.host-redirect.priority: 1
      traefik.http.routers.host-redirect.tls: true
      traefik.http.routers.host-redirect.tls.options: $TLS_OPTION
      traefik.http.routers.host-redirect.entrypoints: websecure
      traefik.http.routers.host-redirect.middlewares: host-redirect@docker
      traefik.http.middlewares.host-redirect.redirectregex.regex: ^.+
      traefik.http.middlewares.host-redirect.redirectregex.replacement: https://kuma.$HOST_URL
      traefik.http.middlewares.host-redirect.redirectregex.permanent: true
      
#--------------------- 생략 ---------------------#