2011-12-25 16 views
14

Aktualnie używam małego oprogramowania PHP, do którego dostęp mają dwie grupy osób, jedna grupa w Chinach, a druga w Irlandii. Serwer jest hostowany w Irlandii i bez wątpienia ładuje strony od 0,3 do 0,8 sekundy.Jak przyspieszyć ładowanie strony po przeciwnej stronie planety?

Chińczycy rejestrują czasy od 3,0 sekund do 10 sekund.

Przeprowadziłem testy prędkości, a Chińczycy mają połączenie z Internetem o długości 1,5 Mb (serwer testowy w Irlandii) i ping o długości 750ms.

Do tej pory, aby poprawić czas ładowania, przeprojektowałem wiele interakcji z bazą danych MySQL w celu zmaksymalizowania wydajności, ale to nie pomogło. Zakładam, że to tylko nieznacznie skraca czas przetwarzania serwera, ale ma niewielki wpływ na czas pobierania strony.

Myślałem, czy mogę dostać hosting w Chinach i użyć tego jako bramy dla systemu w Irlandii. Z pewnością opóźnienie i prędkość pobierania pomiędzy tym chińskim serwerem byłyby lepsze niż przeciętna osoba. A przeciętne prośby osób zostałyby przekierowane tutaj.

Czy to brzmi w ogóle możliwe? A może ktoś ma sugestie w związku z tym?

+0

Cóż, z pewnością poprawi to czas ładowania, ale będziesz musiał synchronizować bazy danych. Jeśli to zadanie można wykonać co godzinę lub codziennie, to rozwiązanie może działać, jeśli potrzebujesz synchronizacji online, wróciłeś do pierwszego. – Yaniro

Odpowiedz

7

Twoim największym problemem jest opóźnienie.Jeśli możesz zminimalizować liczbę żądań http, powinieneś zobaczyć duże zyski.

Ale prawdopodobnie łatwiej jest kupić usługi sieci dostarczania treści i przenieść do nich wszystkie statyczne pliki, upewniając się, że mają dobrze połączone serwery w Chinach i Irlandii. Myślę, że to łatwiejsze niż przeprojektowanie witryny.

Najtańszy huk dla złotówki pochodziłby z wysyłania odpowiednich nagłówków HTTP, aby wskazać przeglądarkom internetowym, że nie muszą ciągle sprawdzać z serwerami pod kątem walidacji świeżości (nie należy wykonywać warunkowych żądań http). Jeśli możesz to zrobić dla wszystkich zewnętrznych obiektów strony internetowej (obrazów, css, js itp.), To ładowanie pierwszej strony będzie trwało 10 sekund lub coś innego, ale kolejne ładowanie stron powinno być bardzo zbliżone do irlandzkich gości. Jest to tylko kwestia konfiguracji serwera WWW. Herezje a tutorial w razie potrzeby. Mówiąc szczerze, wysyłanie przyjaznych nagłówków w pamięci podręcznej jest zawsze dobrym pomysłem, dzięki temu zyskujesz te wrażliwe strony, które wszyscy lubimy.

+0

Wielkie dzięki za tę cenną wskazówkę, myślę, że tak to zrobię. – user1020317

1

Hosting/tworzenie kopii lustrzanych w Chinach to zdecydowanie najlepsza droga. To będzie szybsze dla ludzi i bardziej niezawodne. Najlepiej byłoby mieć go również hostowane w Irlandii i mieć pewne równoważenie obciążenia w miejscu.

+0

To świetny pomysł i prawdopodobnie najlepsze rozwiązanie. Globalne równoważenie obciążenia nie jest jednak najłatwiejsze do zrobienia. ponieważ mogą wystąpić problemy z synchronizacją danych i zasobów, nie wspominając już o komplikacji związanych z konfigurowaniem globalnego równoważenia obciążenia, czy to za pośrednictwem DNS, czy rozwiązania sprzętowego. –

2

Przede Follow best practices to speed up you website .Następnie również sprawdzić YSlow do pomiaru prędkości witryny i sprawdzić, co można zrobić, aby poprawić wydajność. Myślę, że zmiana serwerów nie zapewni Ci lepszego czasu na odpowiedź. Myślę, że powinieneś najpierw pomyśleć o optymalizacji, a następnie sprawdzić dobrą i wydajną firmę hostingową i plan hostingowy.

Cheers

+3

Lub Pagespeed od Google: https://developers.google.com/pagespeed/ – ZippyV

1

pewno lustro witrynę na serwerze gdzieś w Azji. Dokonałeś już pewnych ulepszeń wydajności, które nie przyniosły znacznie lepszych wyników z Chin, więc zakładam, że opóźnienia sieci powodują większość czasu ładowania.

Możesz wdrożyć swoją witrynę internetową do jednej z usług chmurowych. Amazon EC2 instancje są dostępne na przykład w Singapurze i Tokio. Możesz też wdrożyć "zwykłego" dostawcę usług hostingowych w Chinach.

Jeśli musisz dostarczyć głównie pliki statyczne, sprawdź usługę sieci Content Distribution Network (CDN).

+0

Umieszczenie instancji EC2 w Singapurze niewiele pomoże, aby przyspieszyć. Doszedłem na tę stronę, ponieważ nasi chińscy użytkownicy doświadczają powolnej prędkości, a wszystkie nasze serwery podstawowe znajdują się w regionie AWS w Singapurze. Oczekuję, że Tokio będzie podobną sytuacją. –

1

Aby przyspieszyć czas ładowania, można rozważyć umieszczenie statycznych plików (obrazów, css, javascript, dokumentów) w CDN (sieć dostarczania treści). Sieci CDN działają poprzez hostowanie plików w wielu węzłach na całym świecie. Po otrzymaniu żądania, serwer najbliższy odwiedzającemu będzie obsługiwał plik - zmniejszając tym samym opóźnienie.

Możesz spróbować CloudFlare (http://cloudflare.com), to darmowy produkt, który służy jako odwrotne proxy i CDN Twojej witryny. Zamiast bezpośredniego dostępu do witryny, CloudFlare będzie tym, który uzyska dostęp do Twojej witryny i zoptymalizuje ją pod kątem dostarczenia do odwiedzającego.

0

Jestem w trakcie robienia tego samego. Stworzę lustro serwisu na chmurze aliyun.com. Witam moją stronę (www.discoverwish.com) w witrynie siteground w singapurze, ale czasy ładowania dla moich chińskich użytkowników bez VPN są niesamowicie wolne.

użyję rsync aby przechowywać informacje zsynchronizowane w górę, a następnie przekierować chińskich użytkowników za pomocą DNSpod

0

Odnośnie tego komentarza: „może chcesz spróbować CloudFlare (http://cloudflare.com), jest to darmowy produkt, który służy jako odwrotne proxy i CDN Twojej witryny. Zamiast bezpośredniego dostępu do strony, CloudFlare będzie tym, który uzyska dostęp do Twojej strony i zoptymalizuje ją pod kątem dostarczania do odwiedzającego. "

Próbowaliśmy tego dla klienta w Chinach, ale niestety CloudFlare nie ma jeszcze lokalnej wersji ich CDN działającej w Chinach. Aktualnie testujemy CDN firmy Amazon, która wydaje się mieć pozytywne recenzje.

Powiązane problemy