글 / Nginx 운영

서버 내부에서의 자기 도메인 확인

서버 내부에서 자신의 공인 주소로 접속되지 않을 때 curl --resolve로 확인한다.

작성일 · 읽는 시간 1분

서버 내부 접속 문제

공유기 후단의 서버에서 자신의 도메인으로 접속하면 연결되지 않는 경우가 있다. 패킷이 외부로 송신된 뒤 같은 공유기로 되돌아오는 경로를 공유기가 처리하지 못하기 때문이다. 외부에서는 정상적으로 접속된다.

--resolve를 이용한 우회

도메인 이름은 그대로 두고, 접속할 주소만 서버 자신으로 변경한다. 이름이 동일하므로 nginx는 외부 접속 시와 동일한 서버 블록과 인증서를 선택한다.

서버 내부에서 자기 도메인으로 접속할 때의 경로와 --resolve 우회

bash
curl -s -o /dev/null -w '%{http_code}\n' \
  --resolve example.com:443:127.0.0.1 https://example.com/

다중 도메인 일괄 확인

bash
for d in example.com blog.example.com; do
  echo "$d : $(curl -s -o /dev/null -w '%{http_code}' \
    --resolve $d:443:127.0.0.1 https://$d/)"
done

000이 출력되면 연결 자체가 이루어지지 않은 것이다. 등록하지 않은 도메인이라면 이 결과가 정상이다.