Internet i pravljenje sajtova je od naprednog postalo skoro svakodnevno korišćenje računara. Kad pričamo sa kolegama ili partnerima svi imaju potrebu da nešto kažu o sebi, postave nešto na internet – i većina pre ili kasnije krene da pravi svoj sajt. Kao i ovaj blog, platforma koju većina bira je WordPress. Zanimljiv deo je da suštinski problemi u performansama nisu vezani za najveće sajtove – mnogo gore je onima koji tek rastu. Naime, najveći sajtovi, koji imaju desetine i stotine hiljada unique posetilaca dnevno u stanju su da generišu i značajne prihode, a onda i da plate profesionalce koji će ih optimizovati. Sa druge strane neko ko ima 30 ili 50 posetilaca odjednom, ima mnogo veći problem: On ima sajt na nekom VPS-u, koji je dovoljno veliki da mu bude značajan, dovoljan je da optereti server, ali ne i da zaradi dovoljno da plati nekog profesionalca da mu pomogne. Ovaj tekst namenjen je njima: ovo je naš pokušaj da vam pomognemo kako brzo optimizovati vaš WordPress sajt.
Rešenje koje mi preporučujemo je keširanje u memoriji. Uz odgovorajući plugin i podršku daemona na Linuxu ispod moguće je cele web strane snimiti u memoriju i na dalje ih služiti posetiocima bez pristupa bazi, ili čak i disku. Ovakav pristup značajno ubrzava rad, a pravilno podešen ne nudi keširanje a ulogovane korisnike (editore), tako da ne utiče na njihovo iskustvo – njima rad ostaje spor, ali zato se promene vide odmah. Ako imate relativno statički sajt,koji se menja ne više od nekoliko puta dnevno, možete ručno prazniti keš kada izvršite promene.
Prvi korak je instalacija softvera za keširanje Treba će vam memcached daemon, i php podrška za rad sa njim. Komande iz konzole da se ovo uradi su, za RedHat derivate (CentOS i sl):
# yum install memcached php-pecl-memcache
a za Debian i Ubuntu servere:
# apt-get install memcached php5-memcache
Jednom podeseni restartujte web server i podignite sam memcache:
# service memcached start
i sistemski deo je skoro gotov. Podrazumevana konfiguracija nudi 64MB RAM-a odvojeno za memcached, sto je više nego dovoljno za većinu sajtova i primereno je većini VPS-ova. Sledeći korak je instaliranje w3tc plugin-a za WordPress, što je moguće uraditi iz samog WordPress-a, kroz deo Dodaci (plugins). Jednom kada je sam plugin instaliran i aktiviran podešavanje je jednostavno. Glavno je uključiti sva moguća keširanja, i podesiti da se za keširanje koristi memcached, ovako:
Dodatno, treba iskoristiti mogućnost w3tc plugina da smanji veličinu strane i optimizuje sam HTML i JS kod. Nije ništa teško u pitanju, evo i slike za primer:
Zadnja stavka treba da bude obezbediti instalaciju. Ako već niste, treba koristeći sistemski Linux firewall zatvoriti pristup bazi podataka i memcached serveru sa stane. Trik koji volim da koristim je da zatvorim pristup sa mrežne karte, jer time implicitno ostavljam localhost (127.0.0.1) za pristup od strane samog sajta. Ovo nudi jasan i čist firewall za čitanje, a ujedno i sigurnost na visokom nivou. Svega par komandi, istih na svim Linux distribucijama su:
# iptables -A INPUT -i eth0 -p tcp –dport 3306 -j REJECT
# iptables -A INPUT -i eth0 -p tcp –dport 11211 -j REJECT
# /etc/init.d/iptables save
Za sve ovo vam ne treba više od sat vremena, a dobićete mnogo brži i bolje optimizovan sajt, koji vama štedi novac, a vašim korisnicima nudi mnogo bolje iskustvo u korišćenju! Na ovo treba dodati još i razne bezbednosne optimizacije samog web dela, ali to ostavljam za kolegu koji će napisati nastavak ovog teksta, sa fokusom na baš tu temu.
Dobro bi dosla i neka pomoc oko shared hostinga, ako imam para za VPS imam i za coveka koji se razume da napravi optimizaciju.
Uh, prvo ne slazem se. “Ako imam para za VPS” nije bas realna procena. Sad sam proverio mCloud, minimalni VPS, sa dodatkom za 1GB RAM-a je 2055 dinara mesecno. Profesionalac koji ce sa Vama sklopiti ugovor o odrzavanju i koji ce vam biti “on-call” ce ipak traziti dosta vise novca od toga.
Saveti za shared hosting su jako nezahvalni, jer shared hosting nije usluga pokrivena nekim standardom, vec mozete naici na bilo sta. U sustini, ako Vam je budzet od 2100 dinara mesecno mnogo, onda imate neki hobi projekat koji verovatno ne generise puno posete. U tom slucaju, birajte neki WP optimized shared hosting, tipa wordpress.com gde osnovu mozete uraditi potpuno besplatno.
Kad dodjete dotle da Vam je projekat komercijalan, budzet od par hiljada dinara mesecno ne bi smeo da bude problem. Iskreno, ne znam kako da dam savet za vodjenje posla gde vam je mesecni trosak za sajt od 2100 dinara prevelik izdatak, a besplatan hosting Vam ne zavrsava posao.