Tệp cục bộ so với CDN


13

Nếu thời gian tải trang web là một mối quan tâm, thường sử dụng tốt hơn khi tham chiếu tệp JavaScript hoặc CSS? Việc sử dụng CDN sẽ tốt hơn hay chỉ cần thêm nhiều yêu cầu HTTP hơn?

Câu trả lời:


11

CDN nên được sử dụng cho tất cả các tệp tĩnh (.css / .js / hình ảnh).

Tuy nhiên, đôi khi các tệp javascript hoặc css có thể có khía cạnh động đối với chúng, chẳng hạn như nó sẽ bao gồm một chuỗi người dùng duy nhất hoặc một cái gì đó thuộc loại đó. Trong tình huống này, máy chủ CDN sẽ phải liên hệ với máy chủ gốc theo mọi yêu cầu sẽ đánh bại mục đích.

Nếu CSS và Javascript của bạn là tĩnh đối với tất cả người dùng thì sử dụng CDN là cách phù hợp. Điều này sẽ không gây ra bất kỳ yêu cầu HTTP bổ sung nào vì nó sẽ chỉ tải các tệp css và js từ CDN thay vì máy chủ web của riêng bạn (trừ khi bạn đang sử dụng mã nội tuyến). Vì vậy, thay vì trình duyệt người dùng tải các yêu cầu này từ máy chủ của bạn, họ sẽ được tải qua CDN, không có yêu cầu bổ sung nào bạn chỉ thay đổi nơi gửi các yêu cầu này (miễn là bạn hiện không sử dụng mã nội tuyến).

Các lợi ích khác từ việc sử dụng CDN là máy chủ CDN rất có thể sẽ được đặt gần hơn với người dùng cuối của bạn sau đó nguồn gốc của bạn sẽ có lợi cho thời gian tải. Các máy chủ CDN cũng có khả năng thiết lập để phục vụ nội dung tĩnh nhanh hơn nhiều so với máy chủ gốc của bạn bằng cách phục vụ cụ thể máy chủ web cho nội dung tĩnh.


2
Nếu CDN không ở gần và không sử dụng mạng con edns-client-sub thì nó sẽ không cải thiện hiệu suất. Đây không phải là "lợi ích khác", gần khách hàng hơn, có thể cung cấp một số tối ưu hóa nội dung / bảo vệ DOS (mặc dù bạn không đề cập đến những điều này) là những lợi ích duy nhất .
symcbean

Lợi ích chính khi sử dụng CDN là rất có thể người dùng đã truy cập một trang web sử dụng cùng CDN và trình duyệt đã lưu vào bộ nhớ cache, vì vậy khi người dùng đến trang web của bạn, trình duyệt sẽ không gửi bất kỳ yêu cầu nào.
Offir Pe'er

3

Sử dụng CDN so với lưu trữ web truyền thống để phân phối các tệp tĩnh của bạn như CSS, JS và hình ảnh thường được ưa thích. Điều này là do một khi các tệp của bạn được lưu trữ trên các máy chủ cạnh của CDN, khách truy cập trang web của bạn sẽ được gửi nội dung tĩnh từ điểm hiện diện gần nhất (PoP) thay vì máy chủ gốc.

Trong phần lớn các trường hợp, điều này rút ngắn khoảng cách giữa máy khách và máy chủ và do đó giúp cải thiện thời gian tải mà không cần thêm bất kỳ yêu cầu HTTP bổ sung nào. Điều này cũng giúp trong các lĩnh vực khác như tăng sự dư thừa, giảm tải nguồn gốc, v.v.


2

Sử dụng CDN nếu bạn cần CDN. Nếu người dùng của bạn ở toàn cầu và trải rộng trên một khu vực rộng lớn hoặc bạn có rất nhiều nội dung như vậy mà bạn không muốn lưu trữ trên máy chủ của riêng mình, đó là khi CDN hữu ích. Trên toàn cầu, nó có thể tăng tốc truy cập vào nội dung của bạn nếu máy chủ gần gũi hơn với người dùng. Nếu bạn có nhiều GB hoặc Terabyte dữ liệu tĩnh và tải nặng để truy cập vào nội dung đó, CDN có thể giúp với điều đó.

Tuy nhiên, các trang web nhỏ, cục bộ hoặc các trang web tải nhẹ hiếm khi cần những thứ như vậy và CDN chỉ có thể thêm một sự phức tạp nữa vào thiết lập, hoạt động và quy trình làm việc của bạn, chẳng hạn như các vấn đề về bộ đệm.

Tôi thường thấy mọi người sử dụng CDN vì họ đọc họ nên sử dụng một và không có lý do nào khác.


Cảm ơn đã chỉ ra nó không phải lúc nào cũng cần thiết và thực sự thêm các biến chứng không cần thiết. Trong trường hợp của tôi, tôi đang sử dụng một cms dựa trên laravel với bộ kết hợp tài sản phụ trợ và lưu trữ các tập tin được minif thiết lập một S3 cdn, gulp và vc trên một vài tệp js là một sự lãng phí thời gian. Tôi muốn tập trung vào bộ nhớ đệm DB và mã thích hợp cho tốc độ
Raja Khoury

1

Sử dụng CDN có thể vừa là gánh nặng vừa là lợi ích cho trang web, tất cả tùy thuộc vào cách thức triển khai.

Điểm tích cực

  1. Nội dung tĩnh được lưu trữ gần hơn với người dùng cuối (thời gian tải nhanh hơn)
  2. Các tên miền phụ bổ sung ( cdn1.example.com, cdn2.example.comv.v.), điều này hỗ trợ giới hạn vốn có trong các trình duyệt nơi chúng giới hạn tải tệp xuống hai tệp đồng thời từ cùng một tên miền đủ điều kiện bất kỳ lúc nào. Nói cách khác, sử dụng ví dụ này, bạn sẽ truy cập HTML từ www.example.comvà trong khi tải xuống 2 tệp từ cdn1.example.com, 2 tệp từ cdn2.example.comvà 2 tệp từ cdn3.example.comcả ba miền CDN truy cập vào một nguồn và dịch vụ CDN.

Bạn có thể đưa ra một tham chiếu từ nơi "2 tệp đồng thời cho mỗi tên miền" không? Nó chắc chắn là trên mỗi trình duyệt. Ngoài ra với sự ra đời của HTTP / 2, shending Domain đã trở thành một vấn đề tranh luận.
Patrick Mevzek

-1

Lưu trữ trên CDN có nhiều nhược điểm:

  1. Riêng tư. Mỗi khi bạn truy cập một trang web lưu trữ tập lệnh / bảng định kiểu / phông chữ trên CDN, CDN sẽ biết về bạn truy cập trang web.
  2. Thời gian ngoại tuyến. Trong những tuần trước, đám mây v.v ... có vài giờ, trong đó thời gian tải của họ rất chậm hoặc thậm chí ngoại tuyến trong vài phút. Trong trường hợp tốt nhất, trang web của bạn trông xấu, khi điều đó xảy ra, trong điều tồi tệ nhất, nó hoàn toàn không thể nhận ra trong một thời điểm, nơi các đối thủ của bạn cũng có vấn đề, và bạn có thể có được khách hàng của họ nếu trang web của bạn không trực tuyến.
  3. Bảo vệ. CDN có thể bị xâm phạm (nó đã xảy ra trước đó). Trong trường hợp tốt nhất, máy chủ của bạn phát tán phần mềm độc hại sau đó, trong trường hợp xấu nhất, dữ liệu của bạn sẽ được công khai hoặc biến mất.

So với những lợi thế là không đáng kể:

  1. Tải ít dữ liệu hơn: chúng tôi nói về khoảng 100kb tập lệnh trên mỗi trang. 1 hình ảnh chất lượng thấp không chiếm nhiều hơn thế. Nếu bạn không có một trang web nằm trong giới hạn của nó với khoảng 5.000.000 lượt truy cập mỗi phút, nó sẽ không tạo ra sự khác biệt. Và nếu, có lẽ bạn nên thiết lập một môi trường máy chủ tốt hơn với bộ cân bằng tải và nhiều máy chủ web hơn, bởi vì sử dụng CDN sẽ không giải quyết được vấn đề của bạn.
  2. Thời gian tải nhanh hơn, vì các máy chủ CDN gần máy khách hơn: theo thời gian, trong đó độ trễ từ EU đến Mỹ là khoảng 100ms cho gần như tất cả các kết nối, css được tải trong 50ms hoặc 100ms.

Không có lý do gì để sử dụng CDN trên môi trường sản xuất.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.