가정에서 웹서버(쇼핑몰) 도메인 연결 방법
구입한 도메인을 가정에서 구축한 웹사이트에 연결 하고 싶습니다.
저려미 웹호스팅을 사용하려고 구입하였으나 이건 트래픽 제한이 너무 심하네요. (설치하다가 트래픽 초과)
가상화로(허접) 돌리는 서버도 있기에 도메인 연결을 해주고 싶은데 DDNS 환경이라 어떤 방법이 있을지 고견을 부탁드림니다.
도메인이야 1년에 2만원도 안하니 하나 구매하시는걸 추천드리고 도메인이랑 서버 매핑만 시켜주시면 될것 같네요
서버포럼 - [Web station에 대한 고찰 1부] 웹스테이션은 어떤 앱인가? (svrforum.com)
자세한건 여기에서 (은근슬쩍 본인글 홍보)
도메인은 연 1.5만원 밑에서도 구할수 있어요.
환율 낮을 때는 만원 미만도 가능은 했는데..요즘환율로는 어림도 없..
Cloudflare DNS이용 추천 드립니다.
1. Cloudflare에 구매하신 도메인 등록
2. NAS에 아래 CloudFlare DDNS Updater 스크립트를 스케쥴러로 돌려 A 레코드 업데이트하면 됩니다.
아래 붉은색만 맞게 수정하시면 됩니다. (하지만 DDNS라도 IP가 거의 바뀔일 없으니 안하셔도 됩니다...)
#!/bin/bash
### CloudFlare A Recoard Updater
### A_Record : Separate the contents with commas (,)
### Proxied : true or false
### TTL : Between 120 and 2147483647 seconds, or 1 for automatic
### To force updating, run with -f
Login_Email='CLOUDFLARE_EMAIL_주소'
Global_API_Key='CLOUDFLARE_글로벌_API_KEY'
Domain='도메인주소'
A_Record='A레코드_도메인주소'
Proxied=false
TTL=1
[ ! -f /var/tmp/ip.txt ] && touch /var/tmp/ip.txt
CIP=$(curl -s "https://ipv4.icanhazip.com/")
PIP=$(cat /var/tmp/ip.txt)
echo -e "CloudFlare A Recoard Updater v1.0.9"
echo -e "Current IP: $CIP"
echo -e "Previous IP: $PIP"
if [ "$CIP" == "$PIP" ] && [[ $1 != "-f" ]]; then
echo "No need to update"; exit 0
elif [[ $1 == "-f" ]]; then
echo "Force updating A recoard......"
elif [ "$CIP" != "$PIP" ]; then
echo "Updating A recoard......"
fi
echo $CIP > /var/tmp/ip.txt
V4="https://api.cloudflare.com/client/v4/zones"
H1="-HX-Auth-Email:$Login_Email"
H2="-HX-Auth-Key:$Global_API_Key"
H3="-HContent-Type:application/json"
ZN=$(curl -s -X GET "$V4?name=$Domain" \
$H1 $H2 $H3 | grep -Po '(?<="id":")[^"]*' | head -1)
string=$A_Record
IFS=',' ARARY=(${string})
function AID() {
for AREC in "${ARARY[@]}"
do
(curl -s -X GET "$V4/$ZN/dns_records?name=$AREC" \
$H1 $H2 $H3 | grep -Po '(?<="id":")[^"]*' | head -1)
done
}
IFS=$'\n' AIDARY=($(AID))
ATOTAL=${#ARARY[*]}
for ((i=0; i<$ATOTAL; i++))
do
(curl -s -X PUT "$V4/$ZN/dns_records/${AIDARY[$i]}" $H1 $H2 $H3 \
--data "{\"type\":\"A\",\"name\":\"${ARARY[$i]}\",\"content\":\"$CIP\",\"proxied\":$Proxied,\"ttl\":$TTL}" \
| grep -Po '(?<="name":")[^"]*|(?<="content":")[^"]*|(?<=Z"},)[^}]*|(?<="success":false,)[^$]*|(?<=\s\s)[^$]*' | xargs)
done
얼마 전에 제가 적은 글인데, 어느 정도 도움이 될 것 같습니다.
https://zepinos.tistory.com/m/category/Programming/%EC%9B%B9%EC%82%AC%EC%9D%B4%ED%8A%B8%20%EA%B5%AC%EC%B6%95
ddns 는 스크립트로도 되지만 ddns 을 위한 앱인 ddclient 을 설치하면 편합니다. ddclient 에 대한 것도 글을 올려야겠네요.
구입한 도메인으로 클플에서 DDNS 처럼 사용하는 내용입니다.
https://www.wsgvet.com/home/451
https://techjourney.net/update-cloudflare-as-dynamic-dns-ddns/
전 이게 확실 하더라구요. TTL=300 5분으로 설정 해 놓으면 되고... (클플이 기본 5분이네요.)
구매한 도메인이 어디서 하셨던지 DNS 서버만 클플로 옮기시면 됩니다.
저는 도메인 두개 있는데 하나는 구글 하나는 호스팅 KR 입니다. (국내 도메인)
클플에서 DNS 설정을 하셔야 API 키를 사용할수가 있고요. (토큰) 이게 있어야.
acme.sh 사용해서 와일드 카드 인증서를 Alias DNS 방식으로 받을수 있습니다. 시놀의 경우입니다.
Alias DNS 방식으로 받아야 자동 갱신이 되거든요. 일반 TXT 방식으로 받으면...
매번 TXT 값을 넣어 주어야 하는데... 많이 불편합니다. (해서 토큰 필요...)
NPM으로 받아도 API 토큰 있어야 하니... 클플이 좋지요.
홈에서 웹서버 돌릴려면 고정 IP아니면 DDNS 하고 인증서 두개만 해결되면 된다고 봅니다.
cmt alert