Moja witryna www.example.com (z włączoną obsługą SSL) jest hostowana na hostingu współdzielonym Amazon EC2. Ładuje się szybciej (czas ładowania <2 sekundy) w połączeniu WiFi / szerokopasmowym. Problem dotyczy sieci 3G w telefonie komórkowym ** (tryb H, a nie tryb H +) **. Zainicjuj fazę połączenia, a proces uzgadniania protokołu SSL zajmuje dużo czasu - 12 sekund. Monitorował parametry czasowe na karcie Chrome Network. Poniżej znajduje się zmierzony czas ładowania strony.
Rodzaj danych obsługiwanych na stronie: Testowana strona internetowa otrzymuje 5 sparowanych danych JSON za pomocą AJAX i wyświetla je na stronie internetowej. Jest to bardzo lekka strona z tylko 5-6 treściami tekstowymi.
Widziałem, że wiele witryn ładuje się szybciej w sieci komórkowej 3G (tryb H). Moja strona internetowa jest zbyt wolna podczas początkowej fazy ustanawiania połączenia w sieci 3G. Czy ktoś może mi pomóc, jak rozwiązać / zoptymalizować opóźnienie w początkowej fazie połączenia? Czy przejście na hosting dedykowany rozwiąże obecny problem?
Serwer WWW nie jest zajęty i zawsze jest dużo procesora i pamięci.
Konfiguracja serwera: Instancja Amazon EC2 - hosting dzielony (32 procesory i 60 GB pamięci RAM). Serwer WWW - Apache. SSL - Symantec.
źródło
Odpowiedzi:
Początkowe połączenie
Przekonasz się, że początkowe połączenie obejmuje negocjowanie protokołu SSL, więc ponieważ uścisk dłoni jest wysoki, jest to dobry wskaźnik, że coś jest poważnie nie tak ze sposobem skonfigurowania protokołu SSL.
Uzgadnianie SSL i TTFB
Masz dwa główne problemy: czas spędzony na uzgadnianiu protokołu SSL i serwery oczekujące na TTFB (czas do pierwszego bajtu).
Należy również zauważyć, że podczas testowania za pomocą urządzeń 3G / 4G może to powodować dłuższe pierwsze bajty, ponieważ siła sygnałów telefonicznych różni się siłą ... może to powodować sporadyczne problemy z połączeniem i różne czasy oczekiwania.
Krok 1: Badanie problemu z SSL
To oczywiste, że masz poważny problem z SSL i najprawdopodobniej z powodu wadliwej instalacji OpenSSL lub podobnej. Zacznij od przetestowania certyfikatu SSL za pomocą Laboratorium SSL, a następnie naprawienia wszelkich sugerowanych problemów lub ostrzeżeń.
Jeśli protokół SSL nadal działa wolno, najprawdopodobniej masz przeciążony serwer lub awarię serwera. Jeśli to jest później, musisz spróbować zawęzić miejsce, w którym leży wina. Użyj stosu błędów serwera, jeśli potrzebujesz dodatkowej pomocy w tej sprawie, jeden użytkownik zgłosił, że utworzenie nowych kluczy rozwiązało powolny problem z SSL , z którym się spotkał, który może, ale nie musi być istotny.
Usługi równoważenia obciążenia mogą pomóc, jeśli jest to problem z zasobami serwera.
Krok 2: Badanie TTFB
Po zbadaniu rozwiązania problemu z SSL i nadal zwiększeniu TTFB, powinieneś przetestować swój serwer, upewniając się, że ma wystarczającą ilość zasobów.
Na czas pierwszego bajtu wpływ mają między innymi:
Czasami zwiększenie procesora i pamięci RAM nie zawsze jest najlepszą opcją. Czasami lepiej jest wprowadzić moduł równoważenia obciążenia, ponieważ nie tylko oznacza to, że można łatwo uruchomić wiele serwerów obok siebie, ale w rzeczywistości odciąża buforowanie i żądania SSL. Niektóre inne korzyści obejmują:
Wskazówki dotyczące obniżania TTFB:
źródło
Czytając tytuł pytania , możesz przyspieszyć początkowe połączenie i uzgadnianie SSL / TLS. Działają one dla każdego połączenia, nie tylko 3G, więc i tak powinieneś używać ich jako najlepszej praktyki.
Najpierw użyj HTTP / 2 do obsługi witryny. Wymaga to Apache 2.4.17 lub nowszego .
Po drugie, skonfiguruj Apache, aby używał zszywania OCSP. Wymaga to Apache 2.3.3 lub nowszego oraz OpenSSL 0.9.8h lub nowszego, z dobrym przewodnikiem, aby skonfigurować go tutaj . Zszywanie OCSP nie przyspieszy sprawy, ale wykona część pracy dla klienta i pozwoli zaoszczędzić kłopotów z próbą wyszukiwania OCSP.
Czytając treść pytania , myślę, że masz znacznie większy problem ze środowiskiem hostingowym. Te czasy ładowania są niedopuszczalne. Wspominasz, że jest to „hosting współdzielony”, powinieneś skontaktować się z każdym, kto zarządza hostingiem współdzielonym i zapytać, dlaczego jego serwer jest tak wolny. Prawdopodobnie lepiej będzie spróbować innego hosta współdzielonego lub samodzielnie uruchomić VPS (jest to więcej pracy, ale daje większą szybkość i elastyczność).
Skoro już korzystasz z AWS, dlaczego nie wypróbować ich bezpłatnej warstwy, aby przetestować i uzyskać działający i zoptymalizowany serwer? Użyj go z subdomeną i niektórymi statycznymi stronami HTML do testowania, a następnie przenieś swoją główną stronę (w razie potrzeby skaluj się poza limity wolnych poziomów).
źródło