사이트 문제 해결을 위한 정보 수집
사이트 문제 해결을 위한 정보 수집
데이터를 수집하여 문제를 진단하고 Cloudflare 지원팀을 통해 문제를 간편하게 해결하는 방법을 알아보세요. 대부분의 문제 해결 시, 우선 HAR 파일을 만들 것을 강력히 권고합니다.
이 문서에서
- 개요
- HAR 파일 만들기
- 요청을 처리하는 Cloudflare 데이터 센터 파악
- cURL로 문제 해결 요청
- Cloudflare 일시 중지
- traceroute 실행
- 로그에 CF-RAY 헤더 추가
- 관련 자료
개요
문제를 진단하고 Cloudflare 지원에 적절한 정보를 제공하기 위해 되도록 많은 정보를 수집해야 합니다. 본 문서는 Cloudflare 지원팀이 일반적으로 요청하는 문제 해결 정보의 수집 방법을 소개합니다.
HAR 파일 만들기
HAR(HTTP Archive)은 요청 및 응답 헤더, 본문 콘텐츠, 페이지 로드 시간을 비롯한 모든 웹 브라우저 요청을 기록합니다.
현재는 Chrome과 Firefox만 기본적으로 HAR 기능을 액세스할 수 있습니다. 다른 브라우저는 브라우저 확장을 해야 HAR을 만들 수 있거나, HAR을 만들 수 없는 브라우저도 있습니다. 브라우저 확장을 설치할 때는 확장 공급자의 지에 따르세요.
1. 브라우저 페이지에서 아무 곳이나 마우스 오른쪽 버튼으로 클릭하고 요소 검사를 선택하세요.
2. 개발자 도구가 브라우저 하단이나 왼쪽에 나타납니다. 네트워크탭을 클릭하세요.
3. 로그 보존을 체크하세요.
4. 레코드를 클릭하세요.
5. 문제가 있는 URL로 이동하세요. 문제가 발생하면 네트워크 탭 내 아무 항목이나 클릭하고 콘텐츠를 포함하여 모두 HAR로 저장을 선택하세요.
6. HAR 파일을 지원 티켓에 첨부하세요.
1. 애플리케이션 메뉴에서 도구 > 웹 개발자 > 네트워크를 선택하거나 Ctrl+Shift+I(Windows/Linux) 또는 Cmd+Option+I(OS X)를 누르세요.
2. 문제가 있는 URL로 이동하세요.
3. 문제를 복제한 후 마우스 오른쪽 버튼을 클릭하고 모두 HAR로 저장을 선택하세요.
1. 개발자 도구(바로 가기 F12)로 이동하고 네트워크 탭을 선택하세요.
2. 문제가 있는 URL로 이동하세요.
3. 문제를 복제한 후 HAR로 내보내기를 클릭하고, **다른 이름으로 저장…**을 클릭하세요.
1. Safari에서 브라우저 창 상단에 개발 메뉴가 나타나는지 확인하세요. 그렇지 않으면, Safari > 기본 설정 > 고급으로 이동하여 메뉴 모음에 개발자 메뉴 표시를 선택하세요.
2. 개발 > Web Inspector 표시로 이동하세요.
3. 문제가 있는 URL로 이동하세요.
4. Ctrl 키와 함께 Web Inspector 내 리소스를 클릭하고 HAR 내보내기를 클릭하세요.
요청을 처리하는 Cloudflare 데이터 센터 파악
대륙별로 정리된 Cloudflare 데이터 센터 지도가 Cloudflare 상태 페이지에 있습니다. 데이터 센터 이름의 3문자 코드는 가장 가까운 국제 공항의 IATA 코드입니다. http://``_www.example.com_``/cdn-cgi/trace
에서 요청을 처리하는 Cloudflare 데이터 센터를 확인하세요.
_ www.example.com_을 도메인과 호스트 이름으로 교체하세요. 출력의 colo 필드에 주목하세요.
cURL로 문제 해결 요청
cURL은 HTTP/HTTPS 요청을 보내기 위한 명령줄 도구이며 문제 해결에 유용합니다.
- HTTP/HTTPS
- HTTP 오류 응답
- HTTP 헤더
- API
- 서버/프록시 응답 비교
- SSL 인증서
다음 명령을 실행하여 표준 HTTP GET 요청을 웹사이트에 보내세요(_ www.example.com_을도메인과 호스트 이름으로 교체하세요).
curl -svo /dev/null http://www.example.com/
이 예에서 cURL 명령은 HTTP 응답 및 요청 헤더를 상세히 설명한 출력을 반환하지만, 페이지 본문 출력은 버립니다. cURL 출력은 HTTP 응답을 확인하고 Cloudflare가 현재 사이트의 트래픽을 프록시 설정 중인지 알려줍니다. 응답에 있는 cf-request-id 헤더는 요청이 Cloudflare를 통해 프록시 설정됐다는 것을 확인합니다.
cf-request-id: 023aa754ae0000517ab8829200000001
아래 섹션을 펼쳐서 HTTP 오류, 성능, 캐싱, SSL/TLS 인증서 문제를 해결하기 위한 팁을 확인하세요.
Cloudflare 응답의 HTTP 오류를 해결할 때는 원본 웹 서버에 직접 요청을 보내 원본이 오류를 일으키는지 여부를 테스트하세요. HTTP 오류를 해결하려면, cURL을 원본 웹 서버 IP 주소에 직접 실행하세요(Cloudflare의 프록시 우회).
curl -svo /dev/null http://example.com --connect-to ::203.0.113.34
cURL은 -w 또는 --write-out cURL 옵션을 통해 HTTP/HTTPS 요청의 대기 시간이나 성능 저하를 측정합니다. 아래 예에서 cURL은 TLS 핸드셰이크, DNS 조회, 리디렉션, 전송 등의 요청 트랜잭션에 대한 여러 성능 벡터를 측정합니다.
curl -svo /dev/null https://example.com/ -w "\n콘텐츠 유형: %{content_type} \\nHTTP 코드: %{http_code} \\nHTTP 연결:%{http_connect} \\n연결 개수: %{num_connects} \\n리디렉션 개수: %{num_redirects} \\nURL 리디렉션: %{redirect_url} \\n다운로드 크기: %{size_download} \\n업로드 크기: %{size_upload} \\nSSL 확인: %{ssl_verify_result} \\n핸드셰이크 시간: %{time_appconnect} \\n연결 시간: %{time_connect} \\n이름 조회 시간: %{time_namelookup} \\n프리트랜스퍼 시간: %{time_pretransfer} \\n리디렉션 시간: %{time_redirect} \\n전송 시작 시간: %{time_starttransfer} \\n총 시간: %{time_total} \\n유효 URL: %{url_effective}\n" 2>&1
이 타이밍 출력에 대한 설명은 Cloudflare 블로그를 참조하시기 바랍니다.
cURL은 캐싱에 영향을 주는 HTTP 응답 헤더를 검토하는 데 도움이 됩니다. 특히 Cloudflare 캐싱 문제를 해결할 때, 여러 HTTP 헤더를 검토합니다.
- CF-캐시-상태
- 캐시-제어/Pragma
- 만료
- 최근 수정됨
- S-Maxage
cURL로 인증서 검토
다음 cURL 명령은 HTTPS 요청 중 Cloudflare가 제공하는 SSL 인증서를 보여줍니다(_ www.example.com_을도메인과 호스트 이름으로 교체하세요).
curl -svo /dev/null http://www.example.com/ 2>&1 | egrep -v "^{.*$|^}.*$|^* http.*$"
원본 인증서(하나가 설치된 경우)를 표시하려면 아래 _203.0.113.34_를 원본 웹 서버의 실제 IP 주소로 교체하고 _ www.example.com_을도메인과 호스트 이름으로 교체하세요).
curl -svo /dev/null https://www.example.com --connect-to ::203.0.113.34 2>&1 | egrep -v "^{.*$|^}.*$|^* http.*$"
TLS 벤더 테스트
브라우저 지원 문제를 해결하거나 지원되는 TLS 버전을 확인할 때 다음 옵션 중 하나를 cURL에 추가하여, cURL로 특정 TLS 버전을 테스트할 수 있습니다.
- --tlsv1.0
- --tlsv1.1
- --tlsv1.2
- --tlsv1.3
Cloudflare 일시 중지
Cloudflare를 일시 중지하여, Cloudflare의 리버스 프록시 대신 원본 웹 서버에 트래픽을 직접 보내세요. 일시 중지된 도메인에 SSL이나 WAF 같은 Cloudflare 서비스가 활성화되어 있으면 안 됩니다. Cloudflare를 모두 일시 중지하는 대신 Cloudflare DNS 앱에서 트래픽을 수신하는 레코드를 회색 구름으로 변경해도 됩니다.
Cloudflare 일시 중지 방법:
- Cloudflare dashboard의 개요 탭으로 이동하세요.
- 고급 작업 아래 페이지 하단 오른쪽에서 사이트의 Cloudflare 일시 중지를 클릭하세요.
traceroute 실행
traceroute는 네트워크 전반에서 패킷의 경로 대기 시간을 측정하는 네트워크 진단 도구입니다. 대부분의 운영 체제는 traceroute 명령을 지원합니다. Cloudflare 프록시 설정된 웹사이트에 연결 문제가 있고 Cloudflare 지원에 도움을 요청한 경우, traceroute의 출력을 제공하도록 하세요.
다양한 운영 체제에서 traceroute를 실행하는 방법은 아래를 참조하세요. 아래 예에서 _ www.example.com_을도메인과 호스트 이름을 교체하세요.
1. 시작 메뉴를 여세요.
2. 실행을 클릭하세요.
3. 명령줄 인터페이스를 열려면 cmd를 입력한 후 확인을 클릭하세요.
4. 명령줄 프롬프트에서 다음과 같이 입력하세요. IPv4인 경우 -
> tracert www.example.com
IPv6인 경우 -
> tracert -6 www.example.com
5. Enter를 누르세요.
6. 결과를 복사하여 파일에 저장하거나 다른 프로그램에 붙여 넣을 수 있습니다.
1. 터미널 창을 여세요.
2. 명령줄 프롬프트에서 다음과 같이 입력하세요.
IPv4인 경우 -
> traceroute www.example.com
IPv6인 경우 -
> traceroute -6 www.example.com
3. 결과를 복사하여 파일에 저장하거나 다른 프로그램에 붙여 넣을 수 있습니다.
- 네트워크 유틸리티 애플리케이션을 여세요.
- Traceroute 탭을 클릭하세요.
- 적절한 입력 필드에 _도메인_이나 _IP 주소_를 입력하고 추적을 누르세요.
- 결과를 복사하여 파일에 저장하거나 다른 프로그램에 붙여 넣을 수 있습니다.
또는 Mac OS 터미널 프로그램을 사용하는 경우 위의 Linux와 같이 traceroute를 실행하세요.
로그에 CF-RAY 헤더 추가
CF-RAY 헤더는 Cloudflare의 네트워크를 통해 웹사이트 요청을 추적합니다. 문제를 해결할 때, 웹 요청의 CF-RAY를 Cloudflare 지원팀에 제공하세요. 또한 웹 서버 브랜드에 해당하는 조각으로 원본 웹 서버 구성을 편집하여 CF-RAY를 로그에 추가할 수도 있습니다.
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-agent}i\" %{CF-Ray}i" cf_custom
log_format cf_custom '$remote_addr - $remote_user [$time_local] ''"$request" $status $body_bytes_sent ''"$http_referer" "$http_user_agent" ''$http_cf_ray';