Traefik에서 X-forward-proto를 https로 설정하는 방법
wordpress https 너무 화가 나요.
wordpress는 서버 주소를 https://domain으로 설정해두면
http로 접속시 https로 redirection을 합니다.
근데 기본으로 https 감지를 X-Forward-Proto로 안해요.
...??
reverse proxy 뒤에 워드 프레스가 있으면
https://domain에서 https://domain으로 20번 redirection하고 중단 됩니다.
...?????????
nginx 실행이 너무 오래걸려서, replica를 설정했고..
당연히 다른 컨테이너로 접속하면 로그아웃이 되겠지요.
로그인을 3번 해줘야 로그인이 되는 것입니다.
그래서 이번에 스티키 세션을 하려고 했습니다.
독커 swarm에서도 lb를 제공하고 있고, 그걸로 했더니..
안되더군요.
알고보니 docker EE만 되고, CE에서는 안된다고 하더군요..
그래서 LB로 트래픽을 쓰기로 결정 했습니다.
문제는 트래픽이 X-Forwarded-Proto가 전달이 안됩니다...
제 컴퓨터에서 cloudflared까지는 https이고,
cloudflared에서 traefik은 http이지만 X-Forwarded-Proto는 https이고
traefik에서 nginx로는 http이지만 X-Forwarded-Proto가. http가 되더군요..
그래서 열심히 찾아봤는데, http를 https로 redirection하는 방법만 나오더군요.
아니. 이미 https라구요..
ㅠㅠㅠㅠ
그걸 왜 계속 redirection을..
그래도 traefik은 공식 문서가 너무 잘되어있어서 그거 보고 했네요.
구글 바보. 멍청이...
찻집한테 물어볼껄.....
아니네. 얘도 멍청하네요.ㅎㅎㅎㅎ
어쨋든, 다음을 설정하면 됩니다.
http:
middlewares:
<middlewares이름>:
headers:
customRequestHeaders:
X-Forwarded-Proto: https
공식 문서 보고 처음에 시도했던 방법 중 하나거든요...
http:
middlewares:
<middlewares이름>:
headers:
customRequestHeaders:
X-Forwarded-Proto: https
이게...
근데 처음 할 때는 X-Forwarded-Proto라는 필드를 찾을 수 없다면서 Traefik이 실행조차 안되었습니다.
그래서
customRequestHeaders:
X-Forwarded-Proto: https
이 두 부분 주석하고 실행했었다가..
2시간 정도 삽질하고 주석 해제 했는데
됬어요.
?????????????????????????????????
cmt alert