(해결) traefik 타임아웃 원인이 도대체 뭘까요?
네이비스택님 깃헙에 있는 traefik을 받고 진행했습니다 (이번엔 traefik이지만 이전에 npm 관련 질문과 서비스만 바뀐거빼고 거의 동일합니다;;)
가이드에 있는대로 우선 도커부터 설치후, traefik.toml과 docker-compose를 수정하였고 클플에선
A - @ / 공인IP / DNS
CNAME - traefik / @ / DNS
로 설정후 공유기에서 80(tcp) 443(tcp/udp)로 설정까지 해줬는데도 이전에 npm 썼을때랑 동일증상인 타임아웃이 뜨고 안넘어갑니다
npm도 안되는거 보면 공유기쪽 설정문제로 포트가 안열린거 같은데.. 이경우에는 공유기쪽을 봐야할까요 아니면 설정파일을 봐야할까요?
npm도 동일문제로 못쓰고있어서 traefik을 재도전하려 한건데 똑같이 타임아웃에서 안넘어가니 답답하네요;;
추가) traefik 폴더가 /etc/로 들어가야 하는게 맞는건가요?
추가2) http routers에 PathPrefix(`/.well-known/acme-challenge/`)가 에러로 떠있던데 이거때문에 그랬을까요?
아래는 내부아이피로 들어간건데 8080 붙여서 들어가면 잘뜹니다
클플 :
공유기 :
traefik.toml :
[global]
sendAnonymousUsage = false
checkNewVersion = true
[api]
dashboard = true
insecure = true
debug = true
[log]
level = "ERROR"
#filePath = "/etc/traefik/logs/log-file.log"
[accessLog]
#filePath = "/etc/traefik/logs/access.log"
#[accessLog.filters]
#statusCodes = ["200", "300-302"]
#retryAttempts = true
#minDuration = "10ms"
[ping]
entryPoint = "ping"
[entryPoints]
[entryPoints.web]
address = ":80"
[entryPoints.web.http.redirections]
[entryPoints.web.http.redirections.entryPoint]
to = "websecure"
scheme = "https"
permanent = true
[entryPoints.websecure]
address = ":443"
[entryPoints.websecure.http3]
advertisedPort = 443
[entryPoints.ping]
address = ":8082"
[providers]
[providers.file]
watch = true
filename = "/etc/traefik/dynamic.toml"
[providers.docker]
endpoint = "unix:///var/run/docker.sock"
exposedByDefault = false
network = "traefik-network"
watch = true
[certificatesResolvers.letsencrypt.acme]
email = "메일주소"
storage = "/etc/traefik/acme/acme.json"
[certificatesResolvers.letsencrypt.acme.httpChallenge]
entryPoint = "web"
[metrics]
[metrics.prometheus]
buckets = [0.1,0.3,1.2,5.0]
addEntryPointsLabels = true
addRoutersLabels = true
addServicesLabels = true
[experimental]
http3 = true
docker-compose:
version: "3.9"
services:
traefik:
image: traefik:v2.9
restart: unless-stopped
logging:
options:
max-size: "10m"
healthcheck:
test: ["CMD", "wget", "http://localhost:8082/ping", "--spider"]
interval: 10s
timeout: 2s
retries: 3
start_period: 5s
command:
- "--log.level=WARN"
- "--accesslog=true"
labels:
- "traefik.enable=true"
- "traefik.docker.network=traefik-network"
- "traefik.http.services.dashboard.loadbalancer.server.port=8080"
- "traefik.http.services.dashboard.loadbalancer.passhostheader=true"
- "traefik.http.routers.dashboard.rule=Host(`traefik.도메인`)"
- "traefik.http.routers.dashboard.entrypoints=websecure"
- "traefik.http.routers.dashboard.service=api@internal"
- "traefik.http.routers.dashboard.tls=true"
- "traefik.http.routers.dashboard.tls.certresolver=letsencrypt"
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- ./etc/traefik.toml:/etc/traefik/traefik.toml
- ./etc/dynamic.toml:/etc/traefik/dynamic.toml
- traefik-certificates:/etc/traefik/acme
networks:
- traefik-network
ports:
- target: 80
published: 80
mode: host
- target: 443
published: 443
mode: host
protocol: tcp
- target: 443
published: 443
mode: host
protocol: udp
- target: 8080
published: 8080
mode: host
protocol: tcp
networks:
traefik-network:
external: true
volumes:
traefik-certificates:
driver: local
driver_opts:
o: bind
type: none
device: ./etc/traefik/ssl/
좋은답변을 받기위해서는 좋은 질문이 필요합니다.
유의할점⚠️
- 예의를 지켜주세요. 답변자는 답변을 할 의무는 없습니다.
- 질문에 대한 대부분의 답은 검색으로 찾아보실 수 있습니다.
- 답변자가 답변을 하면서 대개 많은 경우는 다시 질문을 하는 경우가 많이 있습니다.
- (질문의 대한 정보가 부족합니다. ~일 경우 결과물이 어떻게 됩니까? 등등)
질문방법🙏
자신의 상황을 최대한 자세히 설명해주세요.
상황이 정확하고 많을 수록 답변의 정확도가 올라갑니다.
ex) ex) 헤놀로지라면 메인보드 모델 칩셋정보, CPU, 사용한 DSM 버전, 모델, 부수적인 추가 컨트롤러 나 랜카드 등과 어떠한 로더의 이미지를 사용했는지.(arpl-i18n, mshell), 어떤 버전을 사용했는지, 문제가있다면 어떠한것인지 스크린샷을 동반하고 에러의 경우 에러로그를 출력해서 주시면 좋습니다.
*가능하면 최신버전 OS/SW를 이용해주세요
답변에대한 피드백을 주세요.
정보가 질문에 모두 담겨있지않다면 대부분의 답변이 다른정보를 요구합니다.
이러한 답변에 대해 명확한 피드백을 주시면 도움이 됩니다.
네트워크 환경이 이중 라우팅되고 있는 건 아닌지 한번 확인해 보세요.
트래픽이 설치된 장비의 방화벽도 점검해 보시고요.
/etc/traefik이 기본 설정된 폴더입니다.
폴더는 아무데나 편한 곳으로 지정하면 됩니다.
챌린지 라우팅 오류는 로그를 봐야 정확하겠지만
80, 443 포트 접근이 안 되니 발생하지 않을까 싶네요.
타임아웃의 직접적인 원인은 아닐 것으로 보입니다.
흐음.. 예전에 npm 설치했을땐 문제가 없었다가 공유기 초기화하고 npm이나 traefik이 안먹히는 상황인데 초기화 한거랑 연관이 있으려나요?
이중라우팅 의심하기에는 이전이랑 똑같은 구성(udp로 443만 추가된상황)이였고 방화벽때문에 막혔다라기엔 우분투 자체에서 방화벽이 꺼져있는 상황입니다
패킷이 막히는 대표적인 사례를 말씀드린 겁니다.
그밖에 글 내용의 정보를 토대로 점검을 해 본다면...
도메인 말고 공인IP로 접속 시도
공유기의 IP가 공인IP인지 확인
공유기의 공인IP가 클플의 A 레코드와 일치 여부
우분투의 IP가 포트포워딩한 192.168.0.34와 일치 여부
정도가 있겠네요.
네트워크 구성이 어떻게 되어 있는지 알 수 없는 상황이라
결국 본인이 이것 저것 테스트해서 알아내는 수 밖에 없습니다.
방금 아이피 다시 확인하고 클플이랑 확인해봤는데 갑자기 아이피가 바뀔수도 있는건가요..?
이전에 등록해둔거랑 갑자기 바뀌었더라고요..?
지금까지 아이피 안바뀐거 보고 공인으로 계속 착각했었나 보네요;;
이럴거면 아이피부터 확인해볼건데 도대체 왜 이런 삽질을 한건지;;
헉... 아직도.. 안되시는가 보네요..
내 IP 찾기 하시고 8080포트 포워딩 한 후 모바일 로 와이파이 끄신 후
공인IP : 8080 으로 접속 가능한지 확인부터 하셔야 할 듯 하네요.
지금 상황은 도메인 연결이 중요치 않아보여요.. 음.
아이피 다시 확인해보려니깐 클플에 등록했던거랑 갑자기 바뀌었는데 이게 맞나 싶네요;;
왜 유동인데 공인으로 착각한걸까요 ㅋㅋㅋ; 아이피 바뀌어서 착각했나 봅니다;;
그래서 클플에 아이피 자동으로 변경되도록 하는 스크립트??? 였나? docker 였나?
가 있었습니다..
ssl은 traefik 자체에서 건들어야 하던데 오늘 찾아보려고요
그리고 당연히 안바뀌었을거라 생각하고 있었는데 이런일이 일어난거보면 이전에 그랬던것도 바뀌어서 안가졌던건데 아이피부터 확인해볼걸 그랬나봅니다;
추가) npm도 역시 바꿔주니 잘되네요
거의 고정인데 꺼지는 상황이 생길 경우 누군가가 그 아이피를 가져가면 변경이 되더라고요.
그리고 가끔 변경하고 싶은 경우 맥을 살짝 바꿔주면 변경도 됩니다. ㅎ.
이걸 일찍 알아챘더라면 금방 고쳤을건데 말이죠..
이럴거면 먼저 혹시모르니 확인부터 해볼걸 그랬네요
cmt alert