로컬 파일과 CDN


14

웹 사이트로드 시간이 중요한 경우 JavaScript 또는 CSS 파일을 참조 할 때 일반적으로 사용하는 것이 더 좋은 방법은 무엇입니까? CDN을 사용하는 것이 더 좋을까요, 아니면 더 많은 HTTP 요청을 추가 할 것입니까?

답변:


12

CDN은 모든 정적 파일 (.css / .js / images)에 사용해야합니다.

그러나 때로는 자바 스크립트 또는 CSS 파일에 고유 한 사용자 문자열이나 그와 비슷한 것을 포함하는 것과 같은 동적 측면이있을 수 있습니다. 이 상황에서 CDN 서버는 모든 요청에서 원래 서버에 접속하여 목적을 무효화해야합니다.

CSS와 Javascript가 모든 사용자에게 정적 인 경우 CDN을 사용하는 것이 올바른 방법입니다. 인라인 코드를 사용하지 않는 한 자체 웹 서버 대신 CDN에서 css 및 js 파일 만로드하기 때문에 추가 HTTP 요청이 발생하지 않습니다. 따라서 서버에서 이러한 요청을로드하는 사용자 브라우저 대신 CDN을 통해로드되는 요청 대신 이러한 요청을 보낼 위치를 변경하는 추가 요청은 없습니다 (현재 인라인 코드를 사용하지 않는 한).

CDN을 사용함으로써 얻을 수있는 다른 이점은 CDN 서버가 최종 사용자보다 가까운 곳에 위치하여 로딩 시간에 도움이 될 것입니다. CDN 서버는 또한 정적 컨텐츠를 위해 웹 서버를 특별히 제공하여 오리진 서버보다 훨씬 정적 컨텐츠를 제공하도록 설정되었을 가능성이 있습니다.


2
CDN에 인 경우 되지 가까이와 EDNS 클라이언트 서브넷을 사용하지 않습니다 전혀 성능을 향상시킬 수 없을거야. 이것은 "다른 이점"이 아니며, 클라이언트에 가까워 일부 DOS 보호 / 컨텐츠 최적화를 제공 할 수도 있습니다 (여러분은 언급하지 않더라도) 만이 유일한 이점입니다.
symcbean

CDN을 사용하는 주요 이점은 사용자가 동일한 CDN을 사용하는 웹 사이트를 이미 방문했으며 브라우저가 이미이를 캐시했기 때문에 사용자가 웹 사이트에 도착하면 브라우저가 요청을 보내지 않는다는 것입니다.
Offir Pe'er

3

사용하여 호스팅 전통적인 웹 대 CDN을 같은 CSS, JS로 정적 파일을 제공하기위한, 이미지 것이 일반적으로 바람직하다. 파일이 CDN의 에지 서버에 캐시되면 사이트 방문자는 원본 서버 대신 가장 가까운 PPO (Point of Presence)에서 정적 컨텐트를 제공하기 때문입니다.

대부분의 경우 클라이언트와 서버 사이의 거리가 짧아 지므로 HTTP 요청을 추가하지 않고도 로딩 시간을 단축 할 수 있습니다. 또한 이중화 증가, 원점에서 부하 제거 등과 같은 다른 영역에서도 도움이됩니다.


2

CDN이 필요한 경우 CDN을 사용하십시오. 사용자가 전 세계적이며 넓은 지역에 퍼져 있거나 자신의 서버에 저장하고 싶지 않은 콘텐츠가 많은 경우, 즉 CDN이 유용 할 때입니다. 전 세계적으로 서버가 사용자에게 더 가까이 있으면 컨텐츠에 대한 액세스 속도를 높일 수 있습니다. GB 또는 테라 바이트의 정적 데이터가 있고 해당 컨텐츠에 액세스하기 위해 많은로드가있는 경우 CDN이이를 도울 수 있습니다.

그러나 소규모 로컬 사이트 나로드가 적은 사이트에는 그러한 것들이 거의 필요하지 않으며 CDN은 캐싱 문제와 같은 설정, 운영 및 워크 플로에 하나 이상의 복잡성을 추가 할 수 있습니다.

사람들이 CDN을 사용하는 경우가 종종 있습니다.


항상 필요한 것은 아니며 실제로 불필요한 합병증을 추가합니다. 필자의 경우 백엔드 자산 결합기와 함께 laravel 기반 cms를 사용하고 있으며 적은 js 파일에 S3 cdn, gulp 및 vc를 설정하는 최소화 된 파일을 캐시하는 것은 시간 낭비였습니다. 차라리 속도를 DB 캐싱 및 적절한 코드에 초점을 맞출 것
라자 쿠리에게

1

CDN을 사용하는 것은 구현 방법에 따라 웹 사이트에 부담이되고 이익이 될 수 있습니다.

긍정적 인 포인트

  1. 최종 사용자에게 더 가까운 정적 콘텐츠 (로드 시간 단축)
  2. 추가 하위 도메인 ( cdn1.example.com, cdn2.example.com등)은 브라우저에서 파일 다운로드를 한 번에 동일한 정규화 된 도메인 이름에서 동시에 두 개의 동시 파일로 제한하는 고유 한 제한을 지원합니다. 즉이 예제를 사용하여 당신 것 액세스 HTML에서 www.example.com하고있는 동안은에서이 개 파일을 다운로드 할 수있는 모든 cdn1.example.com2 개 파일 cdn2.example.com에서, 2 개 파일을 cdn3.example.com하나 개의 CDN 서비스 및 소스에 액세스하는 모든 세 CDN 도메인에.

"도메인 당 2 개의 동시 파일"이 어디에서 오는지 참조 할 수 있습니까? 브라우저마다 다릅니다. 또한 HTTP / 2의 출현으로 도메인 샤딩은 문제가되었습니다.
Patrick Mevzek

0

CDN에서 호스팅하면 많은 단점이 있습니다.

  1. 은둔. CDN에서 스크립트 / 스타일 시트 / 글꼴을 호스팅하는 사이트를 방문 할 때마다 CDN은 사이트 방문에 대해 알고 있습니다.
  2. 오프라인 시간. 지난 몇 주 동안 cloudflare 등은 로딩 시간이 매우 느리거나 몇 분 동안 오프라인 상태 인 시간을 가졌습니다. 가장 좋은 경우에는 사이트가보기 흉한데, 그럴 때 최악의 경우에는 경쟁 업체에도 문제가있는 사이트를 완전히 사용할 수 없으며 사이트가 온라인 상태이고 그렇지 않은 경우 고객을 확보 할 수 있습니다.
  3. 보안. CDN이 손상 될 수 있습니다 (이전에 발생 했음). 가장 좋은 경우 서버가 맬웨어를 퍼 뜨리고 최악의 경우 데이터가 공개되거나 사라집니다.

그와 비교하여 장점은 중요하지 않습니다.

  1. 로드 할 데이터 감소 : 사이트 당 약 100kb의 스크립트에 대해 이야기합니다. 저품질의 1 이미지는 그 이상을 차지합니다. 분당 5.000.000 회의 방문으로 한계에있는 웹 사이트가 없으면 차이가 없습니다. 그리고 CDN을 사용해도 문제가 해결되지 않으므로로드 밸런서 및 더 많은 웹 서버로 더 나은 서버 환경을 설정해야합니다.
  2. CDN 서버는 클라이언트와 더 가까워 로딩 시간이 단축됩니다. EU에서 미국으로의 대기 시간이 거의 모든 연결에 대해 약 100ms 인 경우 CSS는 50ms 또는 100ms로로드됩니다.

프로덕션 환경에서 CDN을 사용하는 이유는 전혀 없습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.