Lucruri pe care nu le știam despre Apache 2.2.x

Până de curând (și sunt convins că nu sunt singurul în situația asta) știam despre Apache 2.2 că merge… și că merge foarte bine, dar, nu am avut nici timpul, nici cheful să sap în el, să văd ce noutăți au fost introduse în cel mai server dintre servere cum îl numesc unii :). Așa că am adunat aici câteva din lucrurile pe care până de curând chiar nu le știam….

SNI

De câns am început eu să butonez printre servere și siteuri, am știut că protocolul SSL are o bubă fundamentală, astfel încât nu poți avea mai multe certificate, pentru mai multe domenii pe același server, fără să aloci mai multe ip-uri. Alocarea de ip-uri pentru fiecare site este cea mai decentă rezolvare ok, dar, ce te faci când un client își alege un hosting unde nu poți adăuga ip-uri dar are 2 siteuri pe care vrea SSL? Ei bine, am aflat că Apache a trecut de asemenea în secolul 21 și acum permite configurarea mai multor hosturi virtuale, cu SSL activat pe aceeași adresă ip. Și că face asta folosind ceea ce se numește SNI (Server Name Idication)

Ideea cu SSL-ul e că nu știi numele cărui domeniu este cerut după ce certificatul (iar acesta poate să nu fie cel corect) a fost supus schimbului între client și server. Cu SNI numele este parte din negocierea inițială, astfel încât întotdeauna serverul va ști ce certificat să servească.

Încă de la versiunea 2.2.12, Apache are acum suport pentru SNI, așa că poate servi multiple site-uri cu SSL la aceeași adresă ip. Partea bună e că au început și programele de navigare să suporte SNI, acum, rămâne să vedem cât mai multe implementări… Cine dorește mai multe detalii despre SNI: http://wiki.apache.org/httpd/NameBasedSSLVHostsWithSNI.

Graceful Stop

La prima vedere, asta nu e mar lucru, dar, trebuie să recunosc că și eu am plâns după asta de multe ori. De câte ori nu ați stat să vă gândiți de mai multe ori înainte de a restarta serverul, iar în primele secunde după ce s-a oprit a sunat telefonul, cineva reclamând că “a picat rețeaua” ? De felul lui, atunci când se restartează, Apache omoară toate conexiunile existente…. iar această funcție de graceful stop păstrează conexiunile până ce acestea expiră. De asemenea, acum ceva timp, în același scop apăruse graceful restart, tot pe post de pastilă împotriva durerilor de cap cauzate de șefi.

$ httpd -k graceful-restart

Dar ce avem de făcut când trebuie să omorâm cu totul un server, dar nu vrem ca acest lucru să fie vizibil clenților? (normal, asta când vorbim de configurații cu mai multe servere și cu balansare a încărcării). Păi, Apache 2.2.x are această minunată opțiune, graceful stop. Așa că, toate conexiunile deja prezente vor fi păstrate în celălalt server, în timp ce pe serverul pe care lucrăm Apache se va opri.

$ httpd -k graceful-stop

Astfel, opririle de mentenanță devin transparente, iar utilizatorii și șefii’s fericitți.

mod_proxy_balancer

S-a scris mult despre mod_proxy_balancer cum se instalează, configurează cât mai eficient, dar până nu ajungi să ai nevoie, nu afli că este deja inclus în Apache.

Apache 2.2 vine cu o interfață foarte puternică care poate balansa un număr indefinit de servere în spate fără a avea mari probleme. De asemenea, știe să țină minte unde a redirectat un client, astfel că toate cererile acelui client se vor duce spre același server spre care a fost trimis de prima dată, sesiunile sale nefiind astfel întrerupte.Face așadar ceea ce se numește balansare orientată spre trafic. Altă facilitate este că știe să predea altui server conexiunile atunci când serverul inițial pică. Și nu în ultimul rând, are și o consolă web de administrare, de unde se pot scoate serverele din procesul de rotație, sau modifica prioritatea lor.

Este un server de proxy adevărat, gratuit și inclus în serverul Apache 2.2

Pentru a iniția mod_proxy_balancer, trebuie definit pachetul de servere sau “clusterul” care vor face balansarea


BalancerMember http://192.168.1.50:80
BalancerMember http://192.168.1.51:80
BalancerMember http://192.168.1.51:80

Apoi trebuie să spunem serverului să folosească:

ProxyPass /test balancer://mycluster/

Pare simplu nu? Chiar este. Și de asemenea sunt multe alte opțiuni care pot fi configurate.

Să nu uit… documentația completă, împreună cu exemple etc o puteți găsi la: http://httpd.apache.org/docs/2.2/mod/mod_proxy_balancer.html

Ar mai fi poate de zis despre httxt2dbm sau flagul -M…. dar despre astea poate apuc să mai scriu în altă zi.


Posted

in

by

Comments

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.

© Alex. Burlacu