본문 바로가기

자유

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

Hide_D2022.09.06 02:13조회 수 399댓글 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
1031 자유 [4기] 이번 기수 로마국의 누명 해명합니다.81 노도치 2018.10.10 2018.10.08
1030 자유 자기가 하면 로맨스고, 남이 하면 불륜인가?48 無名別動隊(슈퍼블루문) 2024.05.30 2024.05.23
1029 토론&토의 10기 컨셉 추천 받습니다.46 Hide_D 2019.04.27 2019.04.22
1028 국가열전 57기 평범한국가 후기 및 장수열전40 평민킬러 2023.07.09 2023.06.17
1027 국가열전 44기 평범한국가 후기 및 장수열전38 평민킬러 2022.06.19 2022.06.04
1026 국가열전 65기 평범한국가 열전36 평민킬러 2024.02.22 2024.02.17
1025 인터뷰 (인터뷰) 44기 천통군주 '평민킬러' 님 인터뷰35 앵벌스 2023.06.15 2022.07.03
1024 자유 이번 논란에 대해 여러국 입장 들어보고 조금이나마 서로의 입장이나 생각을 정리할 수 있기 위해 올리는 글.35 SARS 2018.09.11 2018.09.10
1023 국가열전 59기 동물 국가/장수 열전34 사스케 2023.08.21 2023.08.08
1022 자유 이번 깃수 군주님들은 갠메 얼마나 뿌리셨나요? (2)34 가이 2018.10.08 2018.10.06
1021 국가열전 체48기 연구원(연구소) 국가/장수 열전33 Hide_D 2022.10.02 2022.10.02
1020 자유 뉴비 질문받아요32 헹이 2019.04.06 2019.03.29
1019 국가열전 7기 먹튀♡ 열전32 이시리스 2019.03.14 2019.03.05
1018 인터뷰 (완료) 39기 천통군주 인터뷰 (세계다람쥐애정협회 - 앵벌스) 님께 질문해주세요30 앵벌스 2023.06.15 2022.01.20
1017 자유 [4기] 로마국의 주장에 대한 답변30 아비그네일 2018.10.10 2018.10.08
1016 자유 AI국 입장입니다.28 자비스 2018.12.05 2018.12.05
1015 국가열전 5기 랜덤은50퍼 장수열전(2/2)28 평민킬러 2018.11.29 2018.11.24
1014 자유 현재 유유자적의 상황은 다음과 같습니다.27 나레이터킬러 2019.02.17 2019.02.15
1013 개인열전 64기 로드롤러26 미과 2023.12.28 2023.12.24
1012 국가열전 43기 삼린이좋아국 장수열전26 SARS 2022.06.05 2022.05.10
이전 1 2 3 4 5 6 7 8 9 10... 52다음
첨부 (0)