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
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.
@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ę
@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.
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ą zazwyczaj
@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
@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 odbierał
@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
@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.

Innymi
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