Nginx és a virtualhostok

Átálltam és megtértem Nginx -re. A találós kérdés a következő: Az alábbi grafikon alapján melyik volt az az óra amikor átálltam Nginx -re? 🙂

Apache vs Nginx

Apache vs Nginx

Apache vs Nginx - week

Apache vs Nginx - week

Az átállásban a legtöbb időt a különböző általam hostolt oldalak rewritejainak átírása vette igénybe, de most már határozottan állíthatom hogy az Nginx rewrite logikája jó és szép és jobban átlátható mint az Apache -é. A virtual hostok beállítása hasonló, kicsit szószátyárabb, de lássuk is a részleteket:

Az előző cikkben beállítottuk az nginx -et, most lássuk a finomhangolást. Az /etc/nginx/nginx.conf nálam most így néz ki (az extra gzip sorok jelentősen növelik a sebességet!):

user www-data;
worker_processes  1;
error_log  /var/log/nginx/error.log;
pid        /var/run/nginx.pid;

events {
    worker_connections  1024;
}

http {
    include       /etc/nginx/mime.types;
    default_type  application/octet-stream;
    access_log  /var/log/nginx/access.log;
    sendfile        on;
    #tcp_nopush     on;
    #keepalive_timeout  0;
    keepalive_timeout  65;
    tcp_nodelay        on;
    gzip  on;
    gzip_http_version 1.1;
    gzip_vary on;
    gzip_comp_level 6;
    gzip_proxied any;
    gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript;
    gzip_buffers 16 8k;
    gzip_disable msie6;
    include /etc/nginx/conf.d/*.conf;
    include /etc/nginx/sites-enabled/*;
}

Látható hogy az apache -hoz hasonlóan itt is felépíthetünk egy hasonló sites-available, sites-enabled struktúrát, és az egyes virtualhostokat külön fileokba pakolhatjuk.

Szükségünk lesz még egy közös, includeolható (de szép magyar szó) filera, amit tegyünk mondjuk az /etc/nginx/fastscgi_params helyre, a tartalma meg legyen ez:

fastcgi_param  QUERY_STRING       $query_string;
fastcgi_param  REQUEST_METHOD     $request_method;
fastcgi_param  CONTENT_TYPE       $content_type;
fastcgi_param  CONTENT_LENGTH     $content_length;

fastcgi_param  SCRIPT_NAME        $fastcgi_script_name;
fastcgi_param  REQUEST_URI        $request_uri;
fastcgi_param  DOCUMENT_URI       $document_uri;
fastcgi_param  DOCUMENT_ROOT      $document_root;
fastcgi_param  SERVER_PROTOCOL    $server_protocol;

fastcgi_param  GATEWAY_INTERFACE  CGI/1.1;
fastcgi_param  SERVER_SOFTWARE    nginx/$nginx_version;

fastcgi_param  REMOTE_ADDR        $remote_addr;
fastcgi_param  REMOTE_PORT        $remote_port;
fastcgi_param  SERVER_ADDR        $server_addr;
fastcgi_param  SERVER_PORT        $server_port;
fastcgi_param  SERVER_NAME        $server_name;

# PHP only, required if PHP was built with --enable-force-cgi-redirect
fastcgi_param  REDIRECT_STATUS    200;

A fentiekből látszik, hogy a webszerver változóinak átadásáról van itt szó, tehát tetszőlegesen bővíthető a lista…

Egy alap virtualhost beállítás kb így néz ki:

server {
        listen   80;
        server_name virtualhostneve.com www.virtualhostneve.com;

        access_log  /var/log/nginx/vhostneve-access.log;
        error_log  /var/log/nginx/vhostneve-error.log;

        location / {
                root   /www/virtualhostneve.com/;
                index  index.php index.html;
        }

        location ~ \.php$ {
                fastcgi_pass  127.0.0.1:9000;
                fastcgi_index index.php;
                fastcgi_param  SCRIPT_FILENAME  /www/virtualhostneve.com$fastcgi_script_name;
                include /etc/nginx/fastcgi_params;
        }
}

A fenti felállás már működőképes PHP -ket teljes mértékben kiszolgáló virtualhostot eredményez. A következő cikkben a rewrite -okat, wordpress specifikus beállításokat vesszük górcső alá.

Ja, és köszi Joci!

Törött ablak elmélet

deviantart.com

deviantart.com

Nap mint nap szembesülök azzal a problémával, hogy ha valakitől elveszik a felelősséget, a motivációja és a munkájának minősége a töredékére csökken. Ugyanezt tapasztalom a gyereknevelésben is, ha nagyon figyelsz egy kölyökre sokkal nagyobb eséllyel szenved balesetet, mintha rábíznád az önfenntartás felelősségét és a tettei következményének viselését.

Andy Hunt és Dave Thomas a Pragmatikus Programozók, akik a minőségi szoftver létrehozásának elismert nemzetközi szakértői. A szoftverfejlesztés során követendő gyakorlatról szóló sikerkönyvük, A Pragmatikus Programozó: szakmunkásból mester, a fejlesztés közben felmerülő kérdések széles körét érintő jótanácsokkal van tele.

Az alábbi interview forrása: http://www.artima.com/intv/fixitP.html

Magyar fordítására pedig a HUP -on találtam rá: http://hup.hu/node/66456 Tovább »

NGINX vs. Apache

deviantart.com

Ezek a postok és még számos más oldal jelenleg a Slicehost -nál egy virtuális gépben (Ubuntu 9.04)  honolnak. A virtuális gépek havidíját általában a felhasználható memória és sávszélesség határozza meg, az én VPS -emnek momentán 500 MB RAM jut. Ez a mennyiség általában elegendő szokott lenni (Apache+PHP, Mysql, Postgres, SVN), de hetente 1x – 2x előfordul, hogy elfogy a memória, és nem válaszol a szerver. Virtuális újraindítás után már megint szép és jó, de hát akkor is. Akárhogy is figyeltem, a legéhesebb mindegyik daemon közül az apache2

Kerestem beállításokat kevés RAM esetére, kicsit javult is a helyzet, de a Apachenak nem nagyon akar elég lenni ez a kevéske memória. Legjobb esetben is 25 – 50MB -ot eszik egy egy forkja, és hát fut 2-4 fork folyamatosan. A második helyezett Mysql összesen eszik 25 MB -ot. A megoldás keresése közben egyre gyakrabban merültek fel az alternatív webkiszolgálók nevei, leggyakrabban az nginx illetve a lighthttpd. E kettőt megversenyeztetve, úgy tűnt megabiztosan az nginxet támogatom, és neki is álltam feltelepíteni.

A poént lelövöm előre, az nginx egy egy forkja 2M RAM -ot eszik csak… Igaz PHP -t fastCGI módban futtat, de így is jóval gyorsabb mint az Apache. A fastCGI forkok megesznek még 20M -t.

A telepítést a sok fellelhető leírás közül én ezzel kezdtem: Howtoforge

Tovább »

Második nap az Androiddal

Kezdjük kiismerni egymást. Kezdenek előtűnni az előnyei, de beszámolok néhány további hátrányról is.

Az Android telefonokat nem szükséges számítógéppel szinkronizálni. Sőt, nem is találtam még meg ennek módját. A megadott google accounttal automatikusan szinkronban tartja mind a közel 1000 kontaktomat és a sok sok naptárbejegyzést. Két hiba a kontakt kezelés kapcsán: nem képes last name – first name megjelenítésre, és a kontaktok között nem lehet keresni…

A telefont a gép USB -jén keresztül töltöm. Eddig úgy tűnt, hogy az iMac nem látja, csak árammal eteti. Kicsit utánajárás után egy fórumon találtam a tippet, hogy amikor csatlakozik egy Android USB -n, a notificationben megjelenik egy kis USB ikon, erre kattintva lehet engedélyezni a csatolást. A notificationt úgy kell elképzelni, hogy egy vékony fejlécben bal oldalt meg meg jelennek fura szürke ikonok. Jobb oldalt az akksi töltöttség illetve a használt net kapcsolat típus látható. A notik részletezését úgy csalhatjuk elő, ha lehúzzuk ezt a részt.

Mindenestre, ez a mountolás dolog nagyon kényelmes, lehet pendriveként használni a telefont, viszont az adatkapcsolat kicsit lassú (kb 1MB/s). Fel is töltöttem gyorsan néhány FlashForward részt (divx) konvertálás nélkül.

Fura, hogy amíg mountolva van a telefon (SDCARD mappája), akkor a telefon nem látja. Még furább, hogy nincs még rá normális videó lejátszó (a WinMo -s HTC -mel sok sorozatot néztem meg konvertálás nélkül divx -ben a Core playerrel). Találtam egy yxflash nevű lejátszót, ami a WinMo -s underground YouTube lejátszókra emlékeztet UI -ban, nem megy 2.0 -s Androidon, és kb 5 FPS -el játsza le a 640×480 videót. Szóval ez a rész egyelőre felejtős.

A Samsung Galaxynak sokkal jobb a kamerája mint az iPhone 3Gs -nek! Sötétben is egész használható képeket és videót készít és van ilyen vakuszerüsége is, ami kb 1m -t világít be…

Ismerkedés az Androiddal

Samsung Galaxy

Samsung Galaxy

Az elmúlt 3 hónapban egy iPhone 3Gs -el játszottam, azt megelőzően pedig egy nagyfelbontású Windows mobile 6 -os HTC Universal volt a telefonom. Elérkezett az idő, hogy belemerítkezzem az Androidok világába.

Ez a világ néhány éve még nagyon tetszett volna. Olyan kis lezser, mindentlehet és mindentszabad típusú. Linuxos utánérzés. Az a helyzet, hogy én viszont már nem szeretnék órákat vacakolni egy telefon beállítgatásával.

Mielőtt belekezdenék meg kell említenem, hogy ez a telefon messze nem a legpöpecebb Android. A Samsung első ilyen telefonja, és még az 1.5 -ös oprendszert használja, több mint fél éves. De akkor is…

Kiderült pl. hogy nem lehet ám csak úgy ráköltözni egy már használt Androidra, mivel nem lehet lecsatlakozni a már beállított Google accról. Hardresetet kell művelni, szűzesíteni a telefont! Ez legalább gyorsan megy, egy ilyen művelet az itelefonon rettentő sokáig tart (igaz az biztonsági törlést is végez, a sok random irkálás meg macerás ugyebár.

Az összes költöztetés művelet iPhone után rettentő nyűgös volt. A telefon alapból nem szól hogy van ismerős wifi a láthatáron. A 3G beállításánál visszaköszönt a WinMo időszak, amikor Access Pointot kellett még szerkeszteni. A legmeglepőbb azonban az volt talán, hogy az email accok beállításánál nem jött rá az oktondi, hogy ezek gmailes, hazai fiókok. Összehasonlításképpen iPhoneon kiválasztom hogy gmail, bepötyögöm a mailcímet és jelszót és már megy is. Itt minden egyes szervernevet – imap, smtp, portok miegymást be kellett gépelni!

Ja a gépelés. A bill. hasonló az i -hez, de kicsit keskenyebb. Mivel nem annyira érzékeny a felület, sokszor kellett ismételnem a leütéseket. Bosszantó. Az viszont már rettentő zavaró, hogy egy input mező megjelenik, bele kell külön kattintani hogy írni lehessen bele.

Programok elérhetősége és telepítése jó. A Marketplace vetekedhet az Appstore -al bátran. Facebook appot kapásból nem találtam (pedig létezik), Twitter appként a Tweetdroidot tettem fel. Még a legcsiszoltabb appokra is azt mondanám hogy fapad az iPhone után. Az egész miliő valami kínai utánzatra emlékeztet. A multitasknak annyi értelme van csupán, hogy az im üzenetek megérkezhetnek a háttérben is, az más kérdés, hogy elég macerás a notificationoket folyton törölgetni.

A böngészés jobb mint más oprendszereken, de messze van kezelhetőségben – sebességben az iPhonetól. Az animációk, gui elemek vegyes minőségűek, láttam már jót is 🙂 Viszont még igen messze vannak ETTŐL a szinttől.

Az Android telefonoknak van néhány fix hardware gombja, ezeket először furcsa volt használni, de szerintem megszokhatóak. Sötétben probléma, hogy nem világítanak ezek a gombok, így egy kezdőnek eléggé megnehezíthetik az ismerkedést. A telefon lock módszere rettenetes. Az oldalán kell nyomvatartani egy gombot 3 másodpercig. Akármennyire is sietnél 3 s. Ha nem vártad ki, kezdheted előlről. Nincs olyan hogy majd idővel gyorsabb leszel és unlockolhatsz tizedmásodpercek alatt…

A Samsung aksija rekordsebességgel merült le. Mivel késő van már, szép csendesen kikaptam a SIM -et, és átböktem egy régi jó Nokia 6230 -ba (bootolás villámgyors, dátum és idő beállítása után már használható is, sötétben világító, de odanézés nélkül is villámgyorsan használható gombok, stb :)…

Ezek persze csak az első benyomások, és egy korai droid telefonról szóltak (tapogattam már meg legújabb Droidot is, engem nem vett meg. Még).

WordPress és iPhone

Találtam egy nagyon csinos plugint, ami beülve a wordpressbe, telefonon kiválóan kezelhető felületeket hoz létre. A neve WPtouch, és két kattintással telepíthető wordpress alatt. A postok listázása, lapozása a mostanában divatos Load more… módon történik, az oldalaknak egyedi ikonokat állíthatunk be, szó mi szó remekül állítgatható eszközöcske.

WPtouch

WPtouch

WPtouch

WPtouch

WPtouch

WPtouch