Cloudflare域名綁定AWS ALB負載均衡器

Hachibye
May 22, 2024

--

Cloudflare domain name binding AWS ALB load balancer

Step1:購買域名

本文以cloudflare為例:https://dash.cloudflare.com/

Step2:配置證書(AWS側)

前往AWS ACM https://ap-southeast-1.console.aws.amazon.com/acm

填寫域名之後送出

Step3:配置證書(cloudflare側)

DNS > 紀錄底下 > 新增紀錄

將「CNAME名稱」與「CNAME 值」填回cloudflare

Step4. 建立ALB目標群組

  • 指派機器及端口(例如:你的服務部署在的機器及“對外”端口)

Step5. 建立ALB負載均衡器

需要仔細檢查以下項目是否有配置正確

  • vpc是否正確
  • subnet是否正確(內外zone,與映射的目標群組相同subnet)
  • 安全群組是否正確
  • ACM(域名證書)
  • 偵聽器HTTPS/443指向剛才建立的目標群組
  • Auto Scaling 的「負載平衡器目標群組」需要關聯目標群組
  • Auto Scaling>網路>可用區域>確認subnet

Step6. 配置HTTP偵聽器

讓HTTP/80流量也自動導轉到HTTPS/443

Step7. 新增標頭(cloudflare側)

DNS > 紀錄底下 > 新增紀錄

「CNAME名稱」填寫「*」代表所有標頭

「CNAME 值」填寫指定ALB的DNS地址

以上這樣

訪問 *.你的域名就會自動打到剛才目標群組註冊的機器及端口上了!

同場加映:配置Caddy反向代理

Caddyfile撰寫方式

#統一對外端口為8080

:8080 {
handle_path / {
respond "ok"
}
metrics /metrics
}

#域名及服務模組

http://tmp.你的域名:8080 {
encode gzip
log {
output file /var/log/caddy/日誌名稱.log {
roll_size 10mb
roll_keep_for 168h
}
}
@變數名稱 {
path /model/路徑/*
}
reverse_proxy @變數名稱 http://容器名稱:8080 {
header_up Host {http.reverse_proxy.upstream.hostport}
health_status 2xx
health_interval 10s
health_timeout 3s
}
}

驗證

nslookup > api.你的域名.com(走*標頭對應的ALB)

nslookup > tmp.你的域名.com(走tmp標頭對應的ALB)

— -等待生效 — -

--

--

Hachibye
Hachibye

Written by Hachibye

字幕組退休勞工 ... DevOps/系統/雲端/資安

No responses yet