Коли і коли не використовувати CDN


13

Я працюю над веб-додатком, що завантажує на екран кілька маленьких gif-зображень. Я використовую відносний шлях, що означає, що вони завантажуються з того самого веб-сервера, який обслуговує сторінку php. Операція миттєва, і я перебуваю на іншому континенті, ніж веб-сервер.

Я щойно тестував мережу CDN для цього (Cloudfront), думаючи, що переміщення статичних файлів ближче до користувача - це чудова ідея. Однак, всі ці файли займають пів секунди або близько того, щоб відображатися на екрані. Зараз я, звичайно, повинен використовувати абсолютний шлях (https://xyzvf.cloufront.net/images/)

Чому так? Чи є проблема абсолютного шляху? Я скорочую HTTP-запити до власного сервера, що добре, але ця затримка дратує. Чи для цього не підходить CDN?


4
Це в значній мірі залежить від того, де знаходиться CDN. Якщо у вас багато маленьких зображень, поєднувати їх у спрайт варіант? Це означатиме лише один запит на завантаження всіх зображень.

У них є такі розташування: michaelgaigg.com/blog/images/amazon-cloudfront.jpg Я в Європі, а завантаження зображень з мого веб-сервера в США відбувається швидше, ніж завантаження з Німеччини чи з будь-якого місця, в якому Європа обслуговує мене. А може не проблема завантаження, а щось інше? Використання спрайту - чудова ідея спасибі.

Ви також можете використовувати URL-адресу без протоколу з ім'ям хоста, наприклад "//xyzf.cloudfront.net/images". Це дозволяє скористатися кешами провайдерів провайдерів та корпоративних проксі-серверів для кешування не-SSL-версій зображень. Це може мати величезну користь як для вашого відвідувача, так і для завантаження сервера / пропускної здатності. Відвідувачі нашого сайту майже всі з американських фінансових установ, і ми виявляємо близько 85% відвідувань з-за певної форми проксі-кешування. YMMV, тому, звичайно, протестуйте власний сайт і трафік.
rmalayter

Відповіді:


6

Проблема може бути DNS або keep-alive- тобто у браузера вже є IP-адреса для вашого сервера і відкрите для нього з'єднання, тоді як він повинен вирішити ім'я сервера CDN, а потім відкрити нове з'єднання там, і одне з них або обидва складають затримку, яку ви бачите.

Spriting, хоча все ще гарна ідея, не допоможе цим проблемам. Дійсно, жодне рішення не спадає на думку. Єдине зручність полягає в тому, що затримка на півсекунди не буде набагато довшою, якби у вас було тисяча зображень (і CSS-файли, і JS-файли, і будь-які інші статичні файли, які вам потрібні), і ви б більше не напружували ваш початковий сервер, якщо тисячі більше користувачів потрапили на нього.


Цим дзвонить дзвін. Слід зазначити, що перший дзвінок на CDN-сервер робиться тоді, коли потрібне перше зображення, як посередині сторінки.

Ага, тоді ви можете отримати кращу (сприйняту) ефективність, якщо ви зробили посилання, будь-яке посилання на CDN дуже рано на сторінці. Найкращим способом може бути розміщення CSS-файлів на CDN та розміщення linkтегів у headрозділі, щоб процес підключення розпочався відразу.
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.