28 April 2008 - 19:43Předcházení problémů nastavení účtu webhostingu u klientů

Provozování hostingových služeb je celkem hračka co zvládne celkem každý, 100 klientu je pohoda. Ale pokud počet klientů přeroste určitou hranici kdy už se nevejdete na jeden server, tak vetšinou nastává problém s tím že nevíte co ma jaký klient nastaveno v outlooku někdo používá k připojení k databázi localhost někdo tam pro jistotu nenapíše nic. Někdo používá mysql.example.org …atd.

Doporučuji na začátku pevně stanovit pravidla.

- Mysql server vždy beží na mysql.example.org (nejlépe úplně zakázat přístup z localhost * )
- Postgresql server je dostupný jen na pgsql.example.org
- Odchozí server je vždy smtp. example.org
- Příchozí pošta pro pop3 je pop3.example.org
- Příchozí pošta pro imap je imap.example.org
- FTP server beží jen na ftp.example.org

S takto rozdělenými službami si již můžete snadno hrát a  naprosto bez problémů
je přehodit na jiný server s nějakým dočasným (dejme tomu týdenním redirectem).
A snadno bez výpadků můžete růst z jednoho serveru dál.

Jestliže, ale máte situaci  kdy každý klient používá jiné nastavení tak je buď musíte všechny
obvolat nebo oslovit emailem což Vám stejně nikdy nezaručí, že si své nastavení
zkontrolují a opraví.

Naopak když tomu budete důsledně dbát na nastavení a směrovat klienty správným směrem
ušetříte čas, peníze a ještě Vás budou mit klienti možná rádi.

* Proč nepovolovat připojení k mysql z localhost?
- připojení probíha přes socket a je nepřesměrovatelné na jiný server a pokud nemáte pod kontrolou aplikaci je to problém.

No Comments | Tags: Hosting a housing

5 November 2007 - 13:52Too many open files

(24)Too many open files : cannot read directory for multi: /var/www/squirrelmail/

Pokud máte problémy s výše uvedenou chybou, tak problém je v počtu současně otevřených souborů.
Jejich počet zjistíte přes příkaz lsof

bluedot:~# lsof | wc -l
58880

Zkuste přes příkaz ulimit -a zkontrolovat maximální počet otevřených souborů

bluedot:~# ulimit -a
core file size (blocks, -c) 0
data seg size (kbytes, -d) unlimited
file size (blocks, -f) unlimited
max locked memory (kbytes, -l) unlimited
max memory size (kbytes, -m) unlimited
open files (-n) 1024
pipe size (512 bytes, -p) 8
stack size (kbytes, -s) unlimited
cpu time (seconds, -t) unlimited
max user processes (-u) unlimited
virtual memory (kbytes, -v) unlimited

Pokud Vám nestačí 1024 otevřených souborů pro jeden proces, nastavte větší hodnotu pomocí

bluedot:~# ulimit -n 2048

Tím by se mělo vše vyřešit, důležité je nastavit ulimit po každém restartu služby, typicky apache – ideální je vložit tento příkaz někam na začátek startovacího scriptu v /etc/init.d

No Comments | Tags: Hosting a housing, PHP

12 September 2007 - 20:33Online replikace dat

Pokud používáte větší diskové pole a chcete se vyhnout problémům jako dnes postihli vshosting a musí obnovovat vše ze zálohy. A místo toho aby klientům běžel web, vidí jen takovouhle zprávu.

vshosting31.png

A jak tomu předejít ?

Snadno, používejte diskové pole z kvalitních disků a raidem5 + mějte vždy v serveru připravený hotspare disk. Při výpadku některého disku z pole dojde k jeho automatickému odpojení a připojení hotspare disku, pak stačí jen zajet fyzicky k serveru a vadný disk vyměnit.

Tohle řešení je dobré, ale stejně není neprůstřelné. Může se stát že Vám odejdou dva disky zároveň a celé je to k ničemu, proto je dobré ještě tyhle data přes gigabitovou síť v reálném čase replikovat na další pole v jiném serveru. Při dnešní ceně disků je to již celkem zanedbatelná investice. Vše umí řesit projekt drdb a implementace není složitá.

Došlo k výpadku celého hlavního pole, co teď ?

Tohle už záleží na tom jak máte postaven systém celého webhostingu. Můžete například celé pole přes NFS připojit do produkčního serveru a výpadek bude v řádu minut. Nebo zajedete do serverovny, prohodíte fyzicky disky a výpadek bude tak hodinu.

2 Comments | Tags: Hosting a housing

4 September 2007 - 1:21Problémy s výkonem při provozu serveru.

Nainstalovat a spravovat linuxový server zvládne každé béčko, kvalita administrátora se ukáže až ve chvíli kdy přijdou problémy s výkonem neb případnými výpadky. Obecně lze každý tento problém řešit dvěmi cestami :

Cesta první, na první pohled jednodušší = Peníze.
Nestíhá Vám server, no co koupíte nový, přemigrujete data a můžete se vrátit ke své oblíbené činnosti.Ano, momentální problém to pravděpodobně vyřeší. Pokud ale budete po šéfovi chtít peníze na nový server každé dva měsíce, tak Vás asi brzo vykopne.

Cesta druhá, složitější = Optimalizace
Jako první je potřeba zjistit, kde je problém. Modelová situace, máte webový server na kterém beží následující služby :
apache 2.x, php5.2.x, mysql5.x, mailserver s uživateli v mysql,ftp s ssl.

Přehled otevřených portů

21/tcp open ftp
22/tcp open ssh
25/tcp open smtp
80/tcp open http
110/tcp open pop3
143/tcp open imap
993/tcp open imaps
995/tcp open pop3s
3306/tcp open mysql

Všechny data jsou uložena na sw raid1 poli, postaveném ze dvou 250gb sata disků wd-re.
Uživatelé si stežují že jim některé weby jedou pomalu, hlavně ty co používají mysql.

Vyhledejte co dělá problémy,
1 – zkontrolujte jestli Vám jeden disk nevypadl z pole
2 – zapněte logování špatně napsaných dotazů v my.cnf
3 – v apache2.conf zapněte server-status a kontrolujte requesty
4 – přes iostat -x 1 monitorujte stav disků
5 – zkontrolujte výkyvy v návštěvnosti webů, umístěných na serveru.
Co může zbůsobit takovýhle náhlý pokles výkonu ?

Například jedno phpbb fórum v defaultní instalaci bez antispamové ochrany.

Pokud jste na nic nepřišli aplikujte první cestu, kupte nové disky(nebo nový server, to je na Vás.) a přesuňte na ně mysql databáze.

No Comments | Tags: Hosting a housing, How to

17 July 2007 - 13:47Email blacklist check

Pokud provozujete nějaký server, určite se Vám stalo že přes Vaše smtp někdo odeslal
větší množství spamu přes nějaký děravý php skript a došlo k zařazení Vaší IP adresy
na blacklist. I když se tomu snažím různě předcházet (omezování počtu přijemců,
maximalní počet odeslaných emailů za hodinu,logování kam se emaily posílají) občas se
nevyhnu tomu, že je nějaká IP adresa v blacklistu zařazena.

Ruční kontrola všech blacklistů nepřipadá v úvahu, proto doporučuji používání téhle utilitky.

http://www.mxtoolbox.com/blacklists.aspx 

No Comments | Tags: Hosting a housing

1 July 2007 - 4:19PHP allow_url_fopen patch

Provozujete hosting s php4 a chcete dát svým uživatelům volnost v možnosti otvírat vzdálené soubory přes funkci fopen, tak máte v zásadě čtyři možnosti.

- povolíte allow_url_fopen pro všechny v php.ini
- naučíte uživatele používat CURL
- budete používat PHP4.3.5 a starší
- použijete patch a uživatelé si allow_url_fopen povoli přes .htaccess

Bod jedna je špatně, protože php4 nezná rozdíl mezi otvíráním url a includováním url( vývojáři tohle přidali až ve verzi 5.2.0) a tak ohrozíte něčí špatně napsanou aplikaci a potenciálně i server.

CURL se zdá jako dobrá cesta, uživatele není také velký problém přeučit, ale pokud budou používat nějaký open source systém, který s tímto nepočítá, tak máte zase smůlu.

Používat verzi PHP 4.3.5 nebo starší je asi nejhorší řešení.

Když použijete patch tak jediné co se změní je, že direktiva allow_url_fopen bude nastavitelná jak v php.ini, tak i přes .htaccess jako tomu bylo v PHP4.3.5 a nižších verzích.

Patch si můžete stáhnout tady.
http://baz.bluedot.cz/patches/

Patch pro php5.1.2 je k dispozici zde, ale myslím že lepší je přechod na php 5.2.x
http://wiki.ohgaki.net/index.php?PHP%2Fpatch%2Fallow_url_include

3 Comments | Tags: Hosting a housing, PHP