Wpis z mikrobloga

#webdev #cloudflare #wordpress

Mirki. Czy darmowe cloudflare ma jakiś sens? W moim odczuciu spowalnia tylko działanie.
Przed spamem też nie chroni. Pełno spam botów mi się rejestruje w serwisie. Ładowanie trwa też długo. Po wklepaniu adresu mam "oczekiwanie na..." i ogólnie GET trwa długo według waterfalla. Jak już zaskoczy to śmiga.

Hosting na @webh

Czego może być powodem takie długie łączenie z serwerem. Cloduflare?
  • 9
  • Odpowiedz
  • 0
Cloudflare #!$%@? w momencie kiedy dany adres zostanie co najmniej 3 razy wyświetlony.

Tak po prostu włączony jest tylko zwykłym proxy. Żeby on w ogóle miał jakiś sens to musisz ustawić sobie reguły: wymuszasz cache oraz odpowiedni poziom zabezpieczeń na podstawie URL.
  • Odpowiedz
@kosti9191: Ma sens przy większym ruchu i atakach.
Kilka faktów:
1. Jak masz mało popularną stronę to zasoby krótko istnieją w cache'u CF. CF obsługuje masę stron i nie będzie tam trzymało długo zasobów, które są otwierane raz na długi czas - woli zwolnić to miejsce dla innych. I wtedy przy kolejnych odwiedzinach użytkownik ponownie musi się połączyć z CF, a CF z Twoim serwerem.
2. Kwestie infrastruktury - zdarza się że zapytania z CF są throttlowane. Wyobraź sobie, że jest serwer fizyczny, na którym stoi kilkaset stron, na którym choćby kilka korzysta z CF. Z perspektywy hostingu jakiś adres IP lub zakres IP wybitnie często regularnie odpytuje rożne strony na tej maszynie. Gdy adresy CF nie są na białej liście wpadają w limity - czy to transferu, czy jednoczesnych połączeń itp. Nie wiem jak jest na webh, ale miałem sytuację, że na konkretnych hostingach CF działał wybitnie źle.
3. Rodzaje zasobów - CF bardzo nie lubi gdy próbuje się cachować ciężkie zasoby. CF powstał jako cache do małych, statycznych zasobów (HTML strony, pliki CSS, JS, ale już nie obrazki czy filmy - te powinny być najlepiej wysyłane z innej domeny, w przeciwnym razie CF przy większym ruchu potrafi wyłączyć nawet swój darmowy pakiet, ale nawet gdy tego nie robi - takie zasoby nie są priorytetowe, więc jeżeli próbujesz robić coś niezgodnie z ToS nie zdziwiłbym się gdyby właśnie w ten sposób próbowali automatycznie
  • Odpowiedz
@zwierzak40: mam około 30k odwiedzin miesięcznie. Strona jest aktualizowana (nowe wpisy) może w ilości 4 - 5 miesięcznie. Częściej dodawane są komentarze. Cache mam ustawione dla większości rzeczy na właśnie miesiąc i więcej, więc sądziłem, że skoro na tyle ustawiłem to tyle powinien trzymać kesza.

Hmm, chyba jednak wezmę zrezygnuję z CF na jakiś czas i samemu wgram coś do cache + wordfence.
  • Odpowiedz
Cache mam ustawione dla większości rzeczy na właśnie miesiąc


@kosti9191: Nie, CF ma swoją własną politykę czasu trwania elementu w Cache. Gdyby można było sobie samemu ustalać cache na miesiąc to przy 30k odwiedzin miałbyś tylko 1 zapytanie do serwera w ciągu miesiąca. Hit rate z resztą masz w panelu CF. Najprawdopodobniej CF trzyma w cache'u tylko niewielką część podstron Twojej strony + assety JS i CSS (bo one są
  • Odpowiedz
@zwierzak40: ale to samo robi chyba przeglądarka po stronie frontu, wystarcza ustawienia htaccess expires, ew. od strony backendu cache plików bazy również, więc w sumie jeden pies
  • Odpowiedz
@getin: Oczywiście, ale zanim trafi do przeglądarki skądś musi to odebrać. Cloudflare cacheuje to u siebie i wykorzystując swój CDN (przynajmniej teoretycznie) szybciej dostarcza zasoby do przeglądarki. Jak już tam cache trafi to przeglądarka decyduje na ile zapisać u siebie właśnie za pomocą nagłówków expiries. Nie jest to jeden pies choćby właśnie ze względu na to że CF to CDN więc zasób zapisany w ich sieci użytkownik z USA będzie
  • Odpowiedz
@zwierzak40: robiłem kiedyś testy i CDN miał większe opóźnienia w ms od normalnych plików na serwerze (chociaż strony testowe obecnie namiętnie to zalecają), acz przy stronach wielojęzycznych na rynek światowy na pewno ma to większe znaczenie
  • Odpowiedz
@getin: Ile requestów/s testowałeś? ( ͡° ͜ʖ ͡°) Bo to o to się rozchodzi. Oczywistym jest, że dodając element do układanki opóźnienia będą większe.

Jak wspominałem wcześniej - jednym z przypadków użycia kiedy CF jest naprawdę fajny to nagłe skoki popularności. Przy takich nagłych wzrostach hit rate na CF to nawet 95% co oznacza, że możesz przyjąć 20krotnie większy ruch niż pozwala na to Twój sprzęt.
  • Odpowiedz
  • 0
wszystko jest ładnie opisane na ich blogu. po pierwsze NIE #!$%@? standardowo HTML, tylko trzeba jawnie samemu wymusić w regułach , ustawić EDGE cache i cache all.
https://support.cloudflare.com/hc/en-us/articles/200172516-Which-file-extensions-does-Cloudflare-cache-for-static-content-

A tego większość osób nie ustawia, więc nie ma cache dla takich stron tylko coś co z nginx nazywa się microcache (jeśli kilka osób prosi o tą samą stronę to leci jedno zapytanie do serwera i CF odpowiada wszystkim).

po drugie jest wymóg, że do konkretnych URL musi być w jakimś krótkim przedziale czasu byc przynajmniej trzy hity/wywołania - to jest to o czym pisze @zwierzak40
  • Odpowiedz