U ovom članku objasniću kako sam tačno podesio Cloudflare opcije za svoje WordPress sajtove – da dobijem maksimalnu moguću brzinu i zaštitu, a da sve radi kako treba. Pokazujem sve na besplatnom Cloudflare paketu, koji je svima dostupan bez ikakvih dodatnih troškova.
U posebnim člancima možete pročitati o tome šta je to Cloudflare, kao i o neophodnim DNS podešavanjima za Cloudflare.
Velika većina ovde prikazanih podešavanja će raditi za veliku većinu sajtova, ne samo za WordPress.
U posebnom članku objasnio sam podešavanje za Cloudflare WordPress APO, i za Cloudflare Pro.
Sadržaj:
- Uvod
- Overview
- Analytics
- DNS
- SSL/TLS
- Firewall – sad se zove “Security”
- Access
- Speed
- Caching
- Workers
- Rules
- Network
- Traffic
- Stream
- Custom Pages
- Apps
- Scrape Shield
0. Uvod
Cloudflare je odličan servis koji pruža dosta brzine, sigurnosti i olakšava život (kod migriranja sajtova i sl.) čak i u 100% besplatnoj verziji (opširnije: šta je to Cloudflare?).
U momentu pisanja ovog članka, Cloudflare ima 17 opcija u glavnom meniju, od kojih mnoge imaju više pod-opcija. Koristiću tu strukturu da prođem kroz sve opcije i objasnim podešavanja koja koristim & preporučujem. Preskakaću opcije na kojima ništa ne treba dirati/podešavati.
Aktuelni Cloudflare meni ima još dve opcije: “Zaraz” i “Web3” – ne koristim ih, pa za sada nisu spomenute ni u ovom članku. Aktuelna verzija je suštinski ista, samo vizuelno drugačija, a prikazana je u članku o Cloudflare Pro i WordPress APO paketima.
Sve ovde napisano je na osnovu mog znanja i iskustva sa više WordPress sajtova tokom prethodnih godina (koristim Cloudflare za WordPress od 2018. godine). Ovako ja nameštam, ovo meni radi posao, ali sve date savete sledite na sopstvenu odgovornost. Drugim rečima: koristite zdrav razum i nemojte mene kriviti ako nešto pođe po zlu. 🙂
1. – 4. Opcije 1 (Overview) do 4 (Email)
Overview i Analytics meniji su informativnog karaktera. Nude osnovne informacije o vašem nalogu, ali ne sadrže nikakve opcije za podešavanja, tako da ovde nećemo trošiti reči na njih – dosta su jasne i intuitivne sami po sebi.
DNS opcije su detaljno objašnjene u posebnom članku: DNS podešavanja za Cloudflare. Pročitajte taj članak i podesite prvo DNS kako treba. Bez toga, sve ovde prikazane stvari neće raditi.
Email – novi Cloudflare servis. Lično preferiram MXroute i poseban članak posvetio sam podešavanju MXroute mejl servisa.
5. SSL/TLS
5.1. Overview
- Podesite prvu opciju na “Full (strict)“
Ako vaš server nema dobro podešen SSL/TLS sertifikat, neće hteti da radi sa ovakvim podešavanjem. Posebni članci objašnjavaju kako instalirati SSL/TLS u cPanel-u, i u DirectAdmin SSL/TLS instalaciju. - SSL/TLS Recommender – ON
Ne škodi ništa da se ovo aktivira, pa da vas Cloudflare obavesti mejlom ako vaš metod enkripcije može da se unapredi.
5.2. Edge Certificates
- Edge Certificates – Cloudflare ovo radi automatski i besplatno. Ne treba ništa dirati. Za moj domen tu stoji (i vaš domen bi trebalo da prikaže po istom principu):
*.bikegremlin.com, bikegremlin.com, i “Status Active”. - Always Use HTTPS – OFF
Volim da ovo isključim, pa proverim da li je moj sajt i server podešen da sve ispravno služi preko HTTPS protokola. Sam po sebi ne smeta ako je uključen, ali trudim se sajtove namestiti tako da rade OK čak i ako ne koristim Cloudflare (za slučaj da počnu naplaćivati skupo, ili im se pogorša kvalitet usluge). - HTTP Strict Transport Security (HSTS) – OFF
Nemojte ovo aktivirati. Ovde sam objasnio zašto mislim da HSTS može zakomplikovati život. - Minimum TLS Version – 1.1
Ovo definiše najnižu verziju protokola preko koje će sajt dozvoliti konekciju. Nikako nemojte dozvoliti nižu verziju (1.0). Moderni računari i browseri će svakako moći koristiti noviju verziju. Verzija 1.0 (SSL) se smatra nebezbednom i ne bi je trebalo dozvoliti. - Opportunistic Encryption – ON
Ovo nije zamena za HTTPS, ali omogućava enkripciju čak i za druge protokole, poput HTTP/2. - TLS 1.3 – ON
- Automatic HTTPS Rewrites – OFF
Ako se ovo aktivira, Cloudflare će pokušati da sve linkove, čak i one koji nisu HTTPS, posluži preko HTTPS protokola (ako je dostupan za link/resurs). Slično kao i “Always Use HTTPS” opcija: ne smeta ako se uključi, ali bolje je da vidite ako vam linkovi, ili slike ne idu preko HTTPS protokola, pa da to ispravite. - Certificate Transparency MonitoringBeta – ON
Cloudflare će proveriti javne spiskove izdatih TLS/SSL sertifikata i javiti vam ako je izdat sertifikat za vaš domen. Ukoliko niste sami (ili vaš hosting server) obnovili sertifikat, dobro je da znate da je neko pokušao i uspeo dobiti sertifikat za vaš domen. - Disable Universal SSL – nemojte kliktati na ovu opciju, osim ako želite ručno podesiti TLS/SSL sertifikate za Cloudflare.
5.3. Client Certificates
Ovde ništa ne dirati.
5.4. Origin Server
Ako nemate mogućnost instaliranja sertifikata na svom serveru (obično traži admin nivo pristupa), ovde ništa ne dirajte. Dakle:
- Origin Certificates – Ne kliktati na ovo.
- Authenticated Origin Pulls – OFF
Preskačemo i naredni pod-meni “Custom Hostnames.”
6. Firewall – sad se zove “Security”
Preskačemo pod-menije “Overview,” “Page Shield,” i “DDoS.” Oni su za posebne namene i izvan opsega ovog članka. Za većinu sajtova je sasvim OK ako se tu ništa ne dira.
6.2. WAF
Kliknite na “Create firewall rule” i kreirajte ovakvo pravilo (obratite pažnju na vodeće i prateće kose crte “/” – važne su):
6.2.1.
Rule name (required)
WP-admin-protection
When incoming requests match…
- URI Path | contains | /wp-login.php
OR - URI Path | contains | /wp-admin/
OR - URI Path | contains | /cart/
OR - URI Path | contains | /checkout/
OR - URI Path | contains | /my-account/
OR - URI Path | contains | /?unapproved
Then…
Managed Challenge (Recommended)
6.2.2.
Rule name (required)
cpanel-and-whm-BLOCK
When incoming requests match…
- URI Path | equals | /cpanel
OR - URI Path | equals | /whm
Then…
Block
Napomena: ovo neće blokirati portove 2083 is 2087 (za cPanel i WHM). Da bi se oni blokirali, treba kliknuti na opciju “edit expression” i ručno uneti (kao tekst):
(http.request.uri.path eq "/cpanel") or (http.request.uri.path eq "/whm") or (cf.edge.server_port in {2083 2087})
U posebnom članku (na engleskom) objasnio sam kako se Cloudflare WAF koristi za blokiranje SPAM-a.
6.4. Bots
- Bot Fight Mode – OFF
Ako ovo aktivirate, WordPress REST API i Loopback zahtevi neće raditi kako treba.
Ovo je sasvim OK sve ostaviti na “default-u.” Čak se i umereni bot napadi mogu rešiti opcijama iz narednog pod-menija, kako objašnjavam u nastavku.
Preskačemo sad i “DDoS” pod-meni.
6.6. Settings
- Security Level – Low
Stavite ovo na “High,” ili na “I’m Under Attack!” ako imate problema sa napadima botova (probajte prvo sa “High,” to često bude dovoljno, a ne smara sve posetioce sa reCAPTCHA proverama. - Challenge Passage – 1 hour
- Browser Integrity Check – ON
- Privacy Pass Support – ON
Sad preskačemo “Access” meni (tu ništa ne treba dirati) i idemo dalje.
8. Speed
Kao što vidite, preskočili smo “Access” meni (tu ne treba ništa dirati) i požurili na “Speed.” 🙂
8.1. Overview
Bitna stvar ovde je dugme za kupovinu Cloudflare paketa za keširanje WordPress sajta na Cloudflare edge serverima, koristeći Cloudflare WordPress APO (link ka CF sajtu).
Ovo zadovoljstvo košta 5$ mesečno. Da, možete napraviti da vam sajt bude brz i bez ovoga (serija mojih članaka o optimizaciji sajtova). I da, možete i pomoću raznih caka probati napraviti nešto slično. Glavni problem kada ne platite je omogućavanje da se u zavisnosti od “kolačića” u browseru zaobiđe keš, kako se posetiocima ne bi prikazivale keširane stranica administratora, i obrnuto.
Povećanje brzine je izvanredno kada se stranice pre-kreiraju (keširaju) i služe posetiocima sa Cloudflare servera, direktno. Opet, sajtovi mogu raditi dovoljno brzo i bez ovoga, pa možete uštedeti 5$. Ako imate prodavnicu, pogotovo ako prodajete ljudima stvari koje im ne trebaju, pa dodatnih pola sekunde više za razmišljanje utiče loše na prodaju, platite tih 5$, vredi. Za neprofitne sajtove ovo nema smisla plaćati (moram pitati Cloudflare da me sponzoriše, pa da napravim review sa uporednim rezultatima sa i bez ove opcija 🙂 ).
8.2. Optimization
Ažuriranje, oktobar 2024:
Pod Optimization -> Content Optimization tabom, nalazi se “Speed Brain” opcija (sada u beta fazi). Aktivna je po default-u!?! Da bi vam WordPress sajt normalno radio i normalno se ažurirao, najbolje je da isključite tu opciju.
Isto važi i za “Cloudflare Fonts” opciju (najbolje da je isključite).
- Image Resizing – Pro opcija (za skuplje, plaćene Cloudflare planove)
- Polish – Pro opcija
- Auto Minify – DEčekirajte sve opcije (JavaScript, CSS i HTML) i oslonite se na svoj LiteSpeed plagin za keširanje za to.
- Brotli – ON
- Early Hints – još u beta test fazi. Rado bih testirao i dao povratne informacije za razumnu nadoknadu. 🙂 AŽURIRANJE: najbolje je isključiti ovo (OFF).
- Automatic Platform Optimization for WordPress – ovde isto možete kupiti Cloudflare WordPress APO.
- Enhanced HTTP/2 Prioritization – Pro opcija (nije za nas sirotinju 🙂 )
- TCP Turbo – Pro opcija
- Mirage – Pro opcija u beta fazi (platiš im da testiraš 🙂 ). Za sada radi OK na većini mojih sajtova.
- Rocket Loader™ – OFF* (*vidite objašnjene odmah ispod)
Ovo uglavnom radi dobro kada je aktivirano. Ja sam morao deaktivirati kako bi mi radila Gugl Programabilna pretraga (ažuriranje: pogledajte sliku 12 na tom linku, uspeo sam namestiti da radi, za sada 🙂 ). Barem dok ne skontam koje sve skripte povlači pretraga, pa da samo njih “premostim” – Cloudflare uputstvo za Rocket Loader ignorisanje pojedinačnih JavaScript-i.
Ako koristite WordPress APO plagin, Cloudflare preporučuje OFF. Railgun™ – ako vaš hosting server ovo podržava, moći ćete aktivirati ovu opciju (kako aktivirati i testirati Cloudflare Railgun). Međutim, ako koristite WordPress APO, Railgun će automatski biti onemogućen za sajt koji ima APO plagin instaliran – jer u tom slučaju nije ni potreban, sadržaj se služi sa Edge servera, keširan.
Ažuriranje, oktobar 2023: Cloudflare Railgun ide u penziju, pa ova tačka više nije relevantna.- Automatic Signed Exchanges (SXGs) – Pro opcija u beta test fazi
- Prefetch URLs – Enterprise opcija
- AMP Real URL – OFF
Aktiviranjem prikazuje pravi URL sajta na AMP verziji sajta. Isključio sam ovo, hoću da bude jasno kad gledam AMP verziju. - Mobile Redirect – OFF
Oni kojima je verzija sajta za mobilne telefone na posebnom (pod)domenu će verovatno hteti da uključe ovu opciju.
Preskačemo “Browser Insights” – nema se šta videti, i idemo dalje.
9. Caching
Preskačemo i “Overview” i idemo pravo na:
9.2. Tiered Cache
- Argo Tiered Cache – ON
9.3. Configuration
- Purge Cache – klik na dugme “Purge Everything” briše sav Cloudflare keš, što je nekad zgodno (sitne CSS izmene i sl.). “Custom Purge” vam otvara meni da unesete spisak URL-ova za koje treba obrisati keš (da se ne briše sve komplet).
- Caching Level – Standard
- Browser Cache TTL – Respect Existing Headers
Radi najbolje sa LiteSpeed Cache plaginom.
Za WordPress APO plagin, podesiti na “4 hours”. - CSAM Scanning Tool – pretražiće vaš sajt za “nedozvoljene slike dece” i obavestiti vas. Na dobro zaštićenom serveru ovo vam ne treba (znate šta uploadujete). Ali na sajtovima koji dozvoljavaju članovima da uploaduju sadržaj, ovo bi moglo biti zgodno.
- Crawler Hints – OFF
Šalje sve žive stranice pretraživačima, ukjlučujući i back-end stranice koje niko ne treba da vidi niti treba da su dostupne i indeksirane. Najbolje je ovo disejblovati. - Always Online™ – ON, ali nemojte kliktati na “Update,” to je još u beta fazi testiranja.
- Development Mode – OFF
Ako ovo aktivirate, zaobići ćete Cloudflare servise i radiće samo kao DNS. Korisno prilikom developmenta i rešavanja problema, mada lično preferiram da to radim na staging okruženju i da “ručno” deaktiviram opcije pri rešavanju problema. - Enable Query String Sort – Enterprise opcija
10. Workers
Workers opcije omogućavaju da radite čarobne stvari, čak i besplatno. Međutim, to je tema za poseban članak, ili seriju članaka, u zavisnosti od namene.
11. Rules
11.1. Page Rules
Ovde je redosled bitan! Za svaku posetu stranici, spisak uslova za pravila se iščitava od prvog ka poslednjem, i čim se naiđe na uslov koji je zadovoljen, to pravilo se izvršava, a dalja pravila (ispod) se zanemaruju. Ovo je spisak BikeGremlin pravila:
Drugo pravilo je za redirekciju pod-domena sa www. početkom (nekad sam mislio da je to dobra ideja 🙂 ) na gole pod-domene.
Prvo pravilo je dobra ideja za svaki WordPress sajt i pokazaću ga detaljno. Ako koristite goli domen (bez www.), onda izbacite tačku nakon prve zvezdice, pre imena svog domena.
Mislim da su goli domeni loša ideja (koristim www.bikegremlin.com, ili poddomene kao ovaj – io.bikegremlin.com).
Možete napraviti slično pravilo i za *vasdomen.com/wp-login*
Možete staviti i “Security Level” na “I’m Under Attack!”
Preskočićemo “Transform Rules” i idemo dalje.
11.3. Settings
- Normalize incoming URLs – ON
- Normalize URLs to origin – OFF
12. Network
- HTTP/2 – ON
- HTTP/3 (with QUIC) – ON
- 0-RTT Connection Resumption – ON
- IPv6 Compatibility – ON
- gRPC – OFF
- WebSockets – ON
- Onion Routing – ON
- Pseudo IPv4 – OFF
- IP Geolocation – ON
- Maximum Upload Size – 100MB
- Response Buffering – Enterprise opcija
- True-Client-IP Header – Enterprise opcija
13. – 16. Opcije 13 (Traffic) do 16 (Apps)
Opcije pod “Traffic,” “Stream,” “Custom Pages” i “Apps” su mahom plaćene (Pro i Enterprise opcije), ili za specijalne namene.
Ovde ne moramo ništa dirati. Idemo dalje.
17. Scrape Shield
- Email Address Obfuscation – ON
- Server-side Excludes – ON
Ova opcija omogućava da koristite “specijalan” HTML tag za komentare kako biste sakrili neki sadržaj (poput broja telefona) od “nečasnih posetilaca,” na primer: “<!–sse–>moj telefon ovde<!–/sse–>“ - Hotlink Protection – ON
Ova opcija se može i isključiti, pa na nivou hosting servera (.htacces fajla) odrediti za koje pod-domene želite zabraniti korištenje slika na drugim sajtovima (misli se na “embed” slika unutar strana, ne na linkovanje ka slikama).
Možete i kreirati direktorijum “hotlink-ok” na svom root domenu (kao “https://bikegremlin.com/hotlink-ok/”). Sve slike koje tu stavite će moći da se embeduju na druge sajtove, čak i ako je Hotlink zaštita aktivna.
Ako koristite WordPress APO plagin, podesite ovo na OFF.
Zanimljivost
Ovaj članak nisam uspeo postaviti na Fejsbuk grupi “WordPress Srbija.” a za to sam dobio ovo obrazloženje:
U grupi želimo da izbegnemo razne oblike samopromocija kako pojedinaca tako i firmi. Iz tog razloga je doneta odluka da se ovakve objave odbijaju. Dozvoljeno je jedino kao komentar ako sadržaj linka precizno odgovara na pitanje i rešava problem.
Administratori
Poslednji put ažurirano:
Prvobitno objavljeno: