본문 바로가기

자유

서버 reverse proxy 단을 nginx에서 caddy로 변경합니다. (운영 노트)

Hide_D2022.09.06 02:13조회 수 395댓글 6

    • 글자 크기

별건 아니지만 나름 의미가 있을테니 설정을 남겨둡니다.

 

공용 Caddyfile

{
	#email

	log {
		output file /var/log/caddy/access.log
	}
}

(default_https_header) {
	header {
		# enable HSTS
		+Strict-Transport-Security "max-age=31536000; includeSubDomains"
		Location http:// https://
	}

	log {
		output file /var/log/caddy/access_https.log
	}

	encode zstd gzip
}

(default_proxy) {
	import default_https_header
	reverse_proxy {args.0} {
		header_up X-Real-IP {remote_host}
		header_down -Strict-Transport-Security
	}
}

 

sam.hided.net 쪽 caddy

sam.hided.net {
	import default_proxy localhost:80808800

	@mirror_mode {
		remote_ip #CIDR
	}

	reverse_proxy @mirror_mode localhost:80808800{
		header_up host sam-mirror.hided.net
		header_down -Strict-Transport-Security
		trusted_proxies #TODO:cidr 입력!
	}
}

sam-mirror.hided.net쪽 caddy

sam-mirror.hided.net {
	import default_https_header
	reverse_proxy https://sam.hided.net {
		header_up host sam.hided.net
		header_up X-Real-IP {remote_host}
		header_down -Strict-Transport-Security
		header_up -alt-svc
		header_down -alt-svc
		header_down -server
		header_up -upgrade-insecure-requests

		transport http {
			tls
			tls_renegotiation once
			versions 2 1.1
		}
	}
}

 

해결해야 했던 사안:

(1) 두개의 URL sam.hided.net 이 원래 서버, sam-mirror.hided.net 이 미러일 때, 제대로 host와 remote_addr이 지정되도록 해야함.

(2) 두 서버 모두 caddy를 사용해야함!

(3) http/3를 써보고 싶었기 때문에 tcp stream proxy는 배제함. (기존 nginx에서는 tcp stream proxy 사용)

 

 

핵심 해결책:

(1) sam-mirror - sam 통신에서 header의 host 조작을 왔다갔다 해야함

(2) reverse_proxy에서 trusted_proxies를 지정해야 HTTP_X_FORWARDED_FOR가 제대로 전달됨

 

 

 

수정 2022-09-21: Caddy 2.6에서는 HTTP/3를 기본 지원하므로 기존 config 수정

    • 글자 크기

댓글 달기

댓글 6
번호 분류 제목 글쓴이 최근 수정일 날짜
공지 관리/운영 60기 이벤트 이후 당분간 추가 기능 류의 작업이 늦춰집니다.6 Hide_D 2023.10.30 2023.08.02
664 개인열전 4 김나영 2022.10.26 2022.10.24
663 자유 제 1회 삼모인의 밤 결산 및 회고 (2023.10.14~15)12 앵벌스 2023.10.16 2023.10.15
662 개인열전 48기 바나낫 개인열전10 셀레미 2022.10.06 2022.10.02
661 인터뷰 (진행중) 62기 천통군주 '제로포카리국 포카리'님 인터뷰 질문 부탁드립니다.6 앵벌스 2023.10.23 2023.10.16
660 국가열전 45기 식물국 열전 - 1편 (국가열전1/2)4 셀레미 2022.09.21 2022.09.12
659 인터뷰 (인터뷰) 53기 천통 풍년갈비국 군주 '카류'님 인터뷰8 앵벌스 2023.06.16 2023.06.15
658 개인열전 민트토끼8 바나낫 2022.10.26 2022.10.25
657 자유 제 1회 삼모인의밤 (23/10/14) 후기12 불패 2023.10.17 2023.10.16
656 국가열전 60기 북조선인민공화국 국가의 역사 한짤 요약 + 개인 열전4 이해고 2023.09.21 2023.08.28
655 자유 하지마4 앵벌스 2023.12.23 2023.12.07
654 국가열전 64기 역병국(전 역병제국) 소소한 잡담 및 장수열전 -119 Karl 2023.12.31 2023.12.25
653 국가열전 45기 식물국 열전 - 2편 (국가열전2/2)4 셀레미 2022.09.13 2022.09.12
652 개인열전 10 미과 2022.10.27 2022.10.24
651 국가열전 53기 풍년갈비 열전7 찌질이 2023.06.10 2023.05.24
650 관리/운영 65기 이벤트 깃수 안내 (12-27 수정 3)10 Hide_D 2023.12.27 2023.12.26
649 건국선언 48기 건국선언1 사스케 2022.08.24 2022.08.24
648 인터뷰 (완료) 51기 천통 청월국 군주 '강유' 님 인터뷰 질문 받습니다11 앵벌스 2023.07.06 2023.06.15
647 국가열전 포카리국 장수열전 -21 POCARI 2023.10.22 2023.10.17
646 국가열전 54기 식물국 천통 열전 (국가열전x / 장수열전o)14 셀레미 2023.06.04 2023.05.30
645 토론&토의 마이너 빙의 시나리오 빙의 방식 개선에 대한 토의7 류화영 2022.10.26 2022.10.20
이전 1 ... 13 14 15 16 17 18 19 20 21 22... 51다음
첨부 (0)