Kiedy i kiedy nie należy korzystać z CDN

13

Pracuję nad aplikacją internetową, która ładuje kilka małych obrazów gif na ekran. Używam ścieżki względnej, co oznacza, że ​​są ładowane z tego samego serwera WWW, który obsługuje stronę php. Operacja jest natychmiastowa i jestem na innym kontynencie niż serwer WWW.

Właśnie przetestowałem w tym celu sieć CDN (Cloudfront), myśląc, że zbliżenie plików statycznych bliżej użytkownika to świetny pomysł. Wszystkie te pliki są teraz renderowane na ekranie przez około pół sekundy. Teraz muszę oczywiście użyć ścieżki bezwzględnej (https://xyzvf.cloufront.net/images/)

Dlaczego? Czy ścieżka bezwzględna stanowi problem? Ograniczam żądania HTTP do własnego serwera, co jest dobre, ale to opóźnienie jest denerwujące. Czy CDN nie jest do tego odpowiedni?


źródło
4
Zależy to w dużej mierze od lokalizacji CDN. Jeśli masz wiele małych obrazów, czy łączenie ich w duszka jest opcją? Oznaczałoby to tylko jedno żądanie załadowania wszystkich obrazów.
Mają te lokalizacje: michaelgaigg.com/blog/images/amazon-cloudfront.jpg Jestem w Europie, a ładowanie zdjęć z mojego serwera internetowego w USA jest szybsze niż ładowanie z Niemiec lub z dowolnej lokalizacji w Europie, z której obsługuje Amazon. A może problemem nie jest czas ładowania, ale coś innego? Korzystanie ze duszka to świetny pomysł, dzięki.
Możesz także użyć adresu URL bez protokołu z nazwą hosta, na przykład „//xyzf.cloudfront.net/images”. Pozwala to skorzystać z buforów ISP i firmowych serwerów proxy do buforowania wersji obrazów nieobsługujących protokołu SSL. Może to mieć ogromną korzyść zarówno dla wygody odwiedzających, jak i obciążenia serwera / przepustowości. Odwiedzający naszą stronę prawie w całości pochodzą z amerykańskich instytucji finansowych i wykrywamy około 85% odwiedzin za jakąś formą buforowania proxy. YMMV, więc oczywiście przetestuj własną witrynę i ruch.
rmalayter

Odpowiedzi:

6

Problemem może być DNS lub keep-alive- to znaczy, że przeglądarka ma już adres IP twojego serwera i ma otwarte połączenie, podczas gdy musi rozwiązać nazwę serwera CDN, a następnie otworzyć tam nowe połączenie i jedno z nich lub oba stanowią opóźnienie, które widzisz.

Spriting, choć wciąż dobry pomysł, nie pomógłby w tych problemach. Rzeczywiście, nie przychodzi mi na myśl żadne rozwiązanie. Jedynym komfortem jest to, że półsekundowe opóźnienie nie wydłużyłoby się znacznie, gdybyś miał tysiąc zdjęć (i plików CSS i JS oraz innych potrzebnych plików statycznych) i nie obciążałby więcej serwera źródłowego, jeśli trafiło w to tysiące użytkowników.

Malvolio
źródło
To dzwoni dzwonkiem. Powinienem wspomnieć, że pierwsze połączenie z serwerem CDN jest wykonywane, gdy potrzebny jest pierwszy obraz, jak na środku strony.
Ach, wtedy możesz uzyskać lepszą (postrzeganą) wydajność, jeśli odniosłeś się do CDN bardzo wcześnie na stronie. Najlepszym sposobem może być umieszczenie plików CSS w CDN i umieszczenie linktagów w headsekcji, aby proces połączenia rozpoczął się od razu.