virtual host

Click here to load reader

Post on 17-Jul-2016

230 views

Category:

Documents

0 download

Embed Size (px)

DESCRIPTION

yuytutyu

TRANSCRIPT

VirtualHost Site-uri multiple pe un server web

VirtualHost Site-uri multiple pe un server web Daca avem nevoie de un server web care sa serveasca paginile unui site il putem pune repede pe picioare dupa ce am instalat sistemul de operare urmand un tutorial creat pentru sistemul de operare sau distributia care ne intereseaza ex. FreeBSD, Ubuntu sau CentOS. Dupa instalare treaba e destul de directa. Accesam http://localhost/ si putem vedea pagina care ne intereseaza sau modificam adresa IP la care serverul Apache asculta cereri pentru a accesa siteul folosind un IP routabil.

In majoritatea cazurilor, avand in vedere ca orice sistem desktop poate fi transformat intr-un server web decent, ne intereseaza sa gazduim mai multe siteuri pe acelasi calculator. Pentru a face asta serverul Apache ne pune la dispozitie posibilitatea de a crea hosturi virtuale, VirtualHosts, o metoda prin care ii spunem serverului web ce pagina sa serveasca in functie de cerere. VirtualHosts se poate face pe baza de adresa IP sau pe baza de nume. IP Based VirtualHosts, adica hosturile virtuale bazate pe adresa IP, nu sunt folosite decat foarte rar datorita risipei de adrese IP. E nevoie de cate o adresa IP diferite pentru fiecare domeniu sau subdomeniu gazduit pe server. De obicei se foloseste NameBased VirtualHosts, adica hosturi virtuale bazate pe nume. Cu NameBased VirtualHosts putem gazdui pe aceeasi adresa IP mai multe domenii sau subdomenii fara ca vizitatorul sa stie asta si implicit fara a exista posibilitatea ca ceva sa il deranjeze in timpul navigarii.

Pentru adaugarea unui VirtualHosts care sa raspunda la un alt nume de host decat cel asociat masinii pe care ruleaza serverul web trebuie sa modificam fisierul httpd.conf si sa adaugam urmatoarele linii:

ServerName exemplu.ro

ServerAlias www.exemplu.ro

DocumentRoot /home/exemplu/public_html

ErrorLog /var/log/apache/exemplu.ro_error_log

In cazul de fata am adaugat domeniul exemplu.ro. Acum serverul web, care am presupus ca asculta conexiuni pe adresa IP 1.2.3.4, va afisa continutul din directorul /home/exemplu/public_html cand va primi o cerere pentru o resursa din cadrul siteului exemplu.ro si asta pentru ca browserele, conform protocolului HTTP, atunci cand trimit o cerere trimit si un header cu numele Host cu ajutorul caruia serverul web identifica resursa ceruta.

Bazandu-ne pe codul introdus mai sus putem deduce ca resursa va fi valabila doar daca cererea de conexiune vine pe adresa IP specificata in cadrul directivei VirtualHost. Trebuie sa fiti atenti cand adaugati un VirtualHost sa adaugati o adresa IP care este asociata serverului curent si care e specificata in zona DNS a domeniului pentru ca pointarea DNS sa se faca corect.

Tot din codul de mai sus putem deduce ca serverul va oferi resursa ceruta doar daca in cererea care o face vizitatorul e mentionat domeniul exemplu.ro (valoarea pentru ServerName) sau subdomeniul www.exemplu.ro care va oferi acelasi continut ca exemplu.ro pentru ca l-am definit ca adresa secundara pentru aceeasi resursa (ServerAlias).

Cu DocumentRoot ii spunem serverului web de unde sa ia informatia cand cererea vine pe IP-ul specificat in directiva VirtualHost pentru domeniul specificat in ServerName sau unul din subdomeniile sau domeniile secundare specificate in ServerAlias. In cazul nostru stim ca atunci cand vizitatorul intra pe http://exemplu.ro sau pe http://www.exemplu.ro el va primi informatia stocata pe server in directorul /home/exemplu/public_html, director specificat de directiva DocumentRoot.

Directiva ErrorLog nu e necesara pentru ca un VirtualHost sa functioneze corect dar e foarte utila cand facem debuging pentru ca toate erorile hostului mentionat in VirtualHost vor fi salvate in fisierul mentionat in directiva ErrorLog.

E important ca dupa orice modificare a fisierului httpd.conf sa rulati comanda apachectl restart pentru ca modificarile sa fie luate in considerare de serverul web. Optional, daca e vorba de un server in productie, puteti rula comanda apachectl configtest inainte de restart pentru a verifica sintaxa corecta a modificarilor facute evitand astfel downtimeul sau erorile care pot aparea.

De asemenea e bine sa creati anumite restrictii sau reguli generale pentru directorul public_html din cadrul directoarelor utilizatorilor pentru a nu fi necesara mentionarea restrictiilor in cadrul fiecarui VirtualHost. De exemplu, puteti adauga urmatoarele reguli inainte de definirea oricarui VirtualHost pentru a va asigura ca fiecare site are posibilitatea sa functioneze in parametri normali:

Options -Indexes -Includes -ExecCGI FollowSymLinks UseCanonicalName Off Allow from all AllowOverride All

Tutorial instalare Virtualmin, Webmin, Ubuntu pe VPS

itc

HYPERLINK "http://blog.valentinvaleanu.ro/despre/webmin" \o "Despre webmin - Blog Valentin VLEANU" webmin

HYPERLINK "http://blog.valentinvaleanu.ro/despre/virtualmin" \o "Despre virtualmin - Blog Valentin VLEANU" virtualmin

HYPERLINK "http://blog.valentinvaleanu.ro/despre/ubuntu" \o "Despre ubuntu - Blog Valentin VLEANU" ubuntu

HYPERLINK "http://blog.valentinvaleanu.ro/despre/vps" \o "Despre vps - Blog Valentin VLEANU" vps nca nu s-a comentat, e liniste. 12:20, Smbt, 4 Aprilie 2015

Material realizat cu susinerea SmartVPS, un serviciu Teen Telecom. Cei care opteaz pentru un plan VPS de la ei au 10% discount folosind codul:10SMARTSTANDARDAcesta este un material care prezint pas cu pas instalarea Webmin, Virtualmin pe un VPS (Virtual Private Server).

Se adreseaz celor care doresc s experimenteze administrarea unui server Linux, hosting, sau celor care doresc s-i administreze propriile domenii cu o flexibilitate mai mare dect cea pe care le-o ofer o soluie de shared hosting.

Chestiuni teoretice, prezentare soft

1. Ubuntu: Este un sistem de operare Linux, derivat din Debian. Este dezvoltat de ctre Canonical i este oferit gratuit, monetizarea venind din vnzarea suportului tehnic. Ubuntu ofer sisteme de operare pentru servere, desktop-uri ct i pentru terminale mobile. Ne vom axa aici pe sistemul de operare pentru servere, n special suitele LTS, Long Term Support. Mai multe detalii aici:http://www.ubuntu.com/server2. Webmin / Virtualmin: Webmin este o unealt web pentru configurarea sistemelor Unix. Virtualmin este un panou de control care ofer posibilitatea de a configura domenii pentru hosting. Este bazat pe Webmin i este o foarte bun alternativ, gratuit, la CPanel.

3. VPS: Virtual Private Server sau Virtual Dedicated Server. Este o main virtual, independent, izolat. Pe un server fizic pot rula mai multe astfel de maini virtuale permind astfel partajarea resurselor. Fiecare masina virtual poate rula propriul ei sistem de operare, poate fi oprit, restartat funcionnd ca un server fizic, diferena fiind c restart-ul, boot-ul i alte operaiuni se fac la nivel software fiind astfel mult mai rapide. Management-ul unei maini virtuale se face dintr-un panou de control, oferit de cei la care avei VPS-ul.

Cei de laTeen, care mi asigur acestVPS, ofer OpenVZ ca soluie de virtualizare pentru abonamentele de tip standard. Este o soluie de virtualizare bazat pe kernel-ul Linux cu impact minim asupraperformantei. Detalii i panoul de control oferit de SmartVPS vor fi detaliate mai jos.

4. PuTTY: este un emulator de terminal, gratuit. l putei downloada de aici:http://www.putty.org/. V permite s v conectai prin SSH la VPS i putei gestiona server-ul folosind comenzi ntr-o consol. Presupune cunotine mai avansate dect folosirea Webmin, dar v poate salva n momentul n care apar probleme i Webmin refuz s porneasc.

Achiziionarea VPS-ului:

Pehttp://smartvps.ro/putei vedea toate planurile oferite. Voi vorbi strict despre planul Standard S care ofer pentru 10 euro lunar:Intel(R) Xeon(R) CPU L5639 @ 2.13GHz, 1 cores, 1GB RAM i 20GB stocare SSD. Din pagina de comand v putei configura hostname-ul i parola de root. Apoi alegei imaginea pe care o dorii instalat i finalizai comanda. n cazul de fa vom selecta Ubuntu 14.04 64bit. Dup finalizare i confirmare vei primi o serie de emailuri inclusiv datele de acces la VPS Control - panoul de administrare al VPS-ului.

Management VPS:

V autentificai aici:http://admin.smartvps.ro/cu datele primite pe email. Dup autentificare vi se prezint o list cu VPS-ul achiziionat. n cazul n care avei mai multe VPS-uri i/sau mai multe planuri vor aprea toate aici.

Click pe butonul de Manage sau direct pe hostname i putei administra respectivul VPS.

Vi se prezint statusul VPS-ului, spaiul liber i starea RAM-ului. Tot aici avei opiuni pentru Reboot, Shutdown sau Boot. Reboot-ul sau Boot-ul sunt rapide, datorit faptului c este un restart al unei maini virtuale, de ordinul a 5-10 secunde.

Avei i opiunea de reinstalare a sistemului de operare cu meniunea c prin aceast reinstalare se pierd toate informaiile de pe VPS.

n partea de jos avei opiunile pentru TUN/TAP si PPP utile pentru VPN-uri. Tab-urile de Hostname i Root password sunt de la sine nelese. La Network avei un buton pentru Reverse DNS care momentan se poate schimba doar printr-un ticket tehnic. Reverse DNS-ul este foarte util pentru a nu fi clasificai ca SPAM de unele servere de email.

Mai multe despre Reverse DNS i configurare aici.

Instalare Webmin si Virtualmin:

Pornim PuTTY, selectm SSH, port 22 i la Hostname / IP trecem IP-ul din VPS Control.

Dac suntei la prima conectare, PuTTY va afia un Security Alert referitor la o cheie ssh-rsa. i dai Yes i va afia ecranul de login:

Aici v autentificai cu utilizatorul root i parola aleas la comanda pachetului de VPS sau parola pe care ai setat-o n VPS Control.

Dup conectarea cu succes, putem trece la instalarea Webmin i Virtualmin. nti ve

View more