Documente online.
Zona de administrare documente. Fisierele tale
Am uitat parola x Creaza cont nou
 HomeExploreaza
upload
Upload




Serverul HTTP

linux


Serverul HTTP

Un server HTTP este un daemon care accepta conexiuni conforme protocolului HTTP, raspunzând cererilor receptionate de la clienti. Protocolul HTTP (HyperText Transfer Protocol) este un protocol de tip cerere-raspuns, bazat pe TCP/IP, destinat pentru transferurile informatiilor hipermedia. Serverul cel mai utilizat în sistemele de operare UNIX este Apache.



Conform ultimelor statistici realizate de Netcraft Inc. (https:// www.netcraft.com/survey), din luna februarie 2002, efectuate asupra a circa 38 milioane de site-uri, serverul Web cel mai folosit este Apache, ocupând 58,43% din piata.

Pentru a furniza servicii HTTP, trebuie ca pachetul apache sa fie instalat, iar daemonul httpd pornit.

Apache este un sistem modular, alcatuit dintr-un server de baza si mai multe module, care sunt încarcate dinamic într-un mod similar cu functionarea modulelor din nucleul Linux.

Serverul Apache poate fi configurat cu ajutorul interfetei grafice apacheconf (meniul System :: Apache Configuration Tool).

Fisierul de configurare principal este httpd.conf si este localizat de obicei în directorul /etc/httpd. Mai exista doua fisiere de configurare, access.conf si srm. conf, care au fost însa înlaturate începând cu versiunea 1.3.4.

Fisierul de configurare contine câte o directiva pe fiecare linie, acestea putând fi continuate pe linia urmatoare adaugând la sfârsitul acesteia caracterul "\". Comentariile încep cu "#". Directivele d 151l112b in fisierul de configurare principal se refera la configurarile globale ale serverului. Pentru a aplica anumite aspecte ale serverului doar unei zone din server, directivele trebuie incluse în cadrul sectiunilor: <Directory>, <DirectoryMatch>, <Files>, <FilesMatch>, <Location> sau <LocationMatch>. Acest lucru poate fi realizat si prin plasarea unui fisier denumit .htaccess în directorul în care se doreste modificarea comportamentului serverului, continând directivele dorite.

De asemenea, Apache are posibilitatea de a servi mai multe site-uri simultan, altfel spus, gazduire virtuala (virtual hosting). Directivele pot fi specificate în cadrul sectiunii <virtualHost>, caz în care se vor referi doar la un anumit site.

Principalele directive care pot fi utilizate în fisierele de configurare sunt:

Administrarea si configurarea sistemelor Linux

Identificarea serverului

ServerName Stabileste numele serverului, utilizat pentru a crea URL-urile. Daca nu este specificat, se stabileste în mod automat din numele oficial al masinii (care nu este întotdeauna numele dorit; de exemplu, numele oficial al masinii poate fi peak.biosfarm.ro, dar se doreste a fi www.biosfarm.ro).

UseCanonicaJName Daca este setat pe Yes, Apache va utiliza ServerName si Port pentru a construi un nume autorizat pentru server. Daca este setat pe No, va fi utilizat numele si portul furnizate de catre client (daca serverul se afla într-un intranet, spre exemplu, si utilizatorul apeleaza www/dir, acesta va fi directional catre www.biosfarm.ro/dir/ daca acest parametru este Yes. Daca este No, el va fi directionat corect catre www/dir/).

ServerAdmin Stabileste adresa de e-mail pe care serverul o introduce în mesajele de eroare trimise clientului.

ServerSignature Adauga la sfârsitul documentelor generate de server (mesaje de eroare etc.) un mesaj de identificare. Poate fi On (activare), Off (dezactivare) sau Email (include si continutul ServerAdmin în mesaj), implicit: Off.

Locatiile fisierelor

ServerRoot Specifica directorul în care se gasesc fisierele de configurare si jurnalizare ale serverului, în general: /etc/httpd.

DocumentRoot Specifica directorul în care se gasesc documentele HTML. Serverul va adauga calea specificata de client la acest director, în general: /var/www/htmi.

UserDir Stabileste numele directorului în care se afla paginile HTML ale

utilizatorilor. Daca numele începe cu "/", se considera ca este o specificatie de director (spre exemplu, daca UserDir este public html, Cererea URL-ului https://www.biosfarm.ro/ -dragos va corespunde directorului ~dragos/public_html. Daca UserDir este /usr/htmi, URL-ul de mai sus va corespunde directorului /usr/html/dragos/public_html). Implicit: public Jttml.

Setari avansate ale sistemului


Crearea proceselor

User Specifica utilizatorul sub care ruleaza serverul. Acesta nu

trebuie sa poata accesa fisiere care nu trebuie sa fie vizibile si nu trebuie sa poata executa cod care nu are legatura cu serverul httpd. Poate fi un nume de utilizator sau un identificator de utilizator. In general este apache.

Group Specifica grupul sub care ruleaza serverul. Similar cu User.

ServerType Stabileste modul de executie al serverului. Are în general valoarea standalone, semnificând ca serverul ruleaza ca daemon. Valoarea inetd semnifica faptul ca serverul va porni atunci când sistemul primeste o cerere HTTP. Implicit: standalone.

MaxClients Stabileste numarul maxim de cereri simultane acceptate. Implicit: 256.

MaxSpareServers Specifica numarul maxim de servere libere (care nu gestioneaza momentan nici o cerere). Implicit: 10.

MinSpareServers Specifica numarul minim de servere libere. Implicit: 5.

StartServers Specifica numarul de servere ce vor fi lansate la pornirea daemonului. Implicit: 5.

Configurarea retelei

BindAddress Stabileste de pe ce adresa vor fi acceptate cereri. Poate fi o

Port Listen

adresa IP, un domeniu sau caracterul "*", specificând toate adresele IP ale masinii. Implicit: "*".

Specifica portul pe care vor fi acceptate conexiuni. Implicit: 80. Permite acceptarea cererilor pe mai multe adrese IP si porturi. Valoarea este de forma [ adresa ip : ] port.

Configurarea jurnalelor

Serverul Apache genereaza doua jurnale: primul, localizat în genere în /var/iog/httpd/access_iog, înregistreaza cererile de accesare primite de catre server, iar al doilea, localizat de obicei în /var/iog/httpd/error_iog, memoreaza erorile aparute în decursul rezolvarii cererilor (pagini inexistente, erori de conexiune etc.).


Administrarea si configurarea sistemelor Linux

LogLevel          Stabileste nivelul de jurnalizare. Sunt disponibile urmatoarele

niveluri:

emerg: serverul nu este functional;

alert: trebuie luata imediat o decizie;

crit: conditie critica;

error. erori;

warn: atentionari;

notice: conditii normale dar semnificative;

info: nivel informational;

debug: mesaje de depanare.

CustomLog Stabileste parametrii jurnalizarii cererilor receptionate de catre server. Are formatul CustomLog fisier format. Fisier reprezinta numele fisierului în care va fi scris jurnalul (relativ la ServerRooi), iar format reprezinta fie un format de jurnalizare definit cu directiva LogFormat (vezi infra), fie explicit formatul, încadrat între ghilimele.

LogFormat Are formatul LogFormat descriere [ nume ]. Daca nume nu este specificat, aceasta directiva stabileste formatul jurnalului care va fi aplicat în directivele TransferLog care urmeaza. Daca nume este specificat, defineste formatul ca descriere. Câmpul descriere poate contine caractere, caracterele de control stil C, "\n" (linie noua) si "\t" (tab), si directive de tip "%". Directivele principale recunoscute sunt urmatoarele:

%a: adresa IP a clientului;

%A: adresa IP locala;

%B: datele trimise, mai putin header-e\e HTTP;

%b: similar cu %B, cu exceptia faptului ca genereaza
caracterul "-" în loc de "O" când nu sunt trimise date;

%c: starea conexiunii dupa ce s-a primit raspunsul: "X" -
conexiunea a fost întrerupta înainte ca raspunsul sa fie
complet; "-" - conexiunea poate ramâne deschisa dupa
trimiterea raspunsului; "+" - conexiunea va fi închisa dupa
trimiterea raspunsului;


%e: continutul variabilei de mediu var;

%f. numele fisierului accesat;

%h: numele masinii-client;

%H: protocolul folosit în cerere;

%i: continutul liniei câmp din cadrul header-u\u'\ din
cerere;

%m\ metoda folosita în cerere;

%o: continutul liniei câmp din cadrul header-u\u\
din raspuns;

Setari avansate ale sistemului


%p: portul la care raspunde serverul;

%P\ identificatorul procesului copil care a raspuns cererii;

%q: sirul de întrebare (începând cu "?");

%r: prima linie a cererii;

%s: starea;

%t: timpul sistemului, în formatul standard;

%t: timpul sistemului, în formatul specificat (vezi
mân 3 strftime);

%T\ durata de raspuns la cerere, în secunde;

%u: utilizatorul de pe masina-client;

%U: URL-uI solicitat, mai putin sirul de întrebari;

%v: numele autorizat al serverului (ServerName);

%V: numele serverului (UseCanonicalName).

Astfel, formatul standard, CLF (Common Log Format), este: "%h %1 %u %t \"%r\" %>s %b".

TransferLog Stabileste fisierul în care va fi scris jurnalul, relativ la ServerRoot. în mod uzual: /var/iog/httpd/access_iog.

ErrorLog Specifica numele fisierului în care vor fi jurnalizate erorile

aparute. Daca numele nu începe cu "/", va fi considerat ca fiind relativ la DocumentRoot. Daca numele are forma syslog:clasa, jurnalizarea se va face prin intermediul serviciului syslog, utilizând clasa specificata. In mod uzual: /var/iog/httpd/ error_log.

HostNameLookups Jurnalizeaza numele masinilor (daca pot fi determinate) în loc de adresele IP. Va conduce la cresterea traficului. Implicit: Off.

Directiva <Directory>

Directivele <Directory> si </Directory> se utilizeaza pentru a grupa mai multe directive care se aplica doar pentru un anumit director, în cadrul numelui directorului specificat pot fi utilizate si caracterele wildcard "?" si "*".

Directiva <DirectoryMatch>

Este similara cu <Directory>, cu exceptia faptului ca accepta expresii regulate.

Administrarea si configurarea sistemelor Linux

Directiva <Files>

Directivele <Fiies> si </Files> se utilizeaza pentru a grupa mai multe directive care se aplica doar pentru un anumit fisier, în cadrul numelui fisierului specificat pot fi utilizate si caracterele wildcard "?" si "*".

Directiva <FilesMatch>

Este similara cu <Fiies>, însa accepta si expresii regulate.

Directiva <Location>

Aceasta directiva ofera posibilitatea controlului accesului dupa URL. Este similara cu <Fiies>. Pot fi utilizate si caractere wildcard.

Directiva <LocationMatch>

Este similara cu <Location>, însa accepta si expresii regulate.

Controlul accesului

Allow frorn Specifica masinile carora li se permite accesarea unei anumite zone din server. Poate fi un nume de masina, un sfârsit de nume de masina (de exemplu, infoiasi.ro), o adresa IP sau un început de adresa (spre exemplu, 192.71.30), sau o pereche adresa IP / masca de retea. Poate fi si all, adica toate masinile.

Deny Specifica masinile care nu au acces la o anumita zona din

server. Valoarea all semnifica "nici o masina".

Order Stabileste ordinea în care directivele Allow si Deny sunt evaluate.

AuthUserFile Specifica numele unui fisier care contine lista de utilizatori si parole utilizata pentru autentificare (de exemplu, /etc/httpd/users). Daca nu începe cu "/", este considerat relativ la ServerRoot. Fiecare linie contine un nume de utilizator urmat de caracterul ":", apoi parola criptata. Parolele pot fi modificate cu ajutorul programului htpasswd.

Setari avansate ale sistemului

AuthGroupFile Specifica numele unui fisier care contine lista de grupuri. Fiecare linie contine un nume de grup urmat de caracterul ":", apoi lista de utilizatori care fac parte din grup, separati prin spatiu.

AuthName        Descrierea zonei supuse autentificarii.

AuthType Specifica tipul autentificarii, în implementarea actuala este

valid doar Basic.

Require Selecteaza ce utilizatori pot accesa o anumita zona. Sunt

posibile trei sintaxe:

Require user listajutilizatori: doar utilizatorii specificati pot
accesa zona;

Require group lista_grupuri\ doar utilizatorii care sunt
membri ai grupurilor specificate pot accesa zona;

Require valid-users: toti utilizatorii prezenti în fisierul
specificat de directiva AuthUserFile sau toti utilizatorii
membri ai grupurilor din fisierul specificat de
AuthGroupFile pot accesa zona.

Gazduire virtuala

Exista doua metode de implementare a gazduirii virtuale: prima bazata pe nume si a doua bazata pe adrese IP. Masinile virtuale bazate pe adresa utilizeaza adresa 1P a conexiunii pentru a determina masina virtuala corecta. Astfel, pentru fiecare masina trebuie alocata o adresa separata IP. In cazul gazduirii virtuale bazate pe nume, determinarea masinii virtuale se face pe baza numelui acesteia. Astfel, mai multe masini pot utiliza aceeasi adresa IP.

Gazduirea virtuala bazata pe nume este mai simplu de implementat si este recomandata utilizarea acesteia. Gazduirea bazata pe adresa trebuie utilizata doar în una din situatiile:

- trebuie suportati clienti HTTP vechi, care nu recunosc masinile virtuale;

sunt necesare conexiuni sigure de tip SSL;

sunt utilizate sisteme de operare care nu pot diferentia masinile decât daca

au adrese IP diferite.

Gazduirea virtuala bazata pe nume

Pentru a utiliza serviciul de gazduire virtuala, trebuie mai întâi stabilite adresa IP si portul pentru serverul care va accepta cereri pentru respectiva masina virtuala, cu ajutorul directivei NameVirtualHost. în mod normal se utilizeaza toate adresele IP pe care le utilizeaza httpd (vezi directivele BindAddress si Listeri), precum si toate porturile pe care serverul asteapta cereri (vezi directiva Port), folosind valoarea "*". Se stabileste apoi un bloc <virtuaiHost> ... </virtualHost>. Ca parametru, directiva <virtuaiHost> trebuie sa primeasca aceeasi valoare utilizata la directiva

Administrarea si configurarea sistemelor Linux

NameVirtualHost. Blocul astfel declarat trebuie sa contina cel putin directivele ServerName, care sa primeasca drept parametru numele masinii virtuale, si DocumentRoot, care sa specifice în ce director se afla continutul respectivei masini. Iata un exemplu:

NameVirtualHost *

<VirtualHost *> ServerName www.dragos.ro DocumentRoot /usr/web/dragos </VirtualHost>

De asemenea, pentru fiecare masina virtuala pot fi stabilite mai multe nume, utilizând directiva ServerAlias. Astfel, daca se introduce declaratia:

| ServerAlias dragos.ro dragos.ro

cererile pentru masinile din domeniul dragos. ro vor fi rezolvate de masina virtuala www.dragos.ro. Pot fi folosite caracterele wildcard "*" si "?". Evident, si înregistrarile DNS pentru serviciul named trebuie sa fie corect configurate pentru ca adresele *. dragos. ro sa poata fi rezolvate.

Gazduirea virtuala bazata pe adresa IP

Pentru utilizarea acestui tip de gazduire, masina trebuie configurata fie pentru a avea mai multe conexiuni fizice la retea, fie pentru a avea mai multe interfete virtuale, având adrese IP diferite.

Serverul Apache poate fi configurat în doua moduri:

sa execute câte un daemon pentru fiecare masina virtuala. Pentru aceasta,
se utilizeaza directiva Listen pentru a stabili ce adresa IP va fi asociata
daemonului;

sa execute un singur daemon pentru toate masinile virtuale. Pentru aceasta,
se utilizeaza directiva VirtualHost descrisa mai sus.

Prezentam în cele ce urmeaza un fragment dintr-un fisier de configurare Apache:

localizarea fisierelor de configurare si a jurnalelor Apache
ServerRoot /etc/httpd

admite conexiuni persistente
KeepAlive On

numarul maxim de cereri în timpul unei conexiuni persistente

O = infinit
MaxKeepAliveRequests 100

Setari avansate ale sistemului

numarul minim de servere libere
MinSpareServers 3

numarul maxim de servere libere
MaxSpareServers 10

numarul de servere lansate la pornirea daemonului
StartServers 5

numarul maxim de clienti conectati simultani
MaxClients 150

portul pe care serverul accepta conexiuni
Listen 80

t utilizatorul respectiv grupul sub care va rula daemonul User apache Group apache

adresa e-mail a administratorului Web
ServerAdmin [email protected]

l numele oficial al serverului ServerName www.biosfarm.ro

locatia în care se afla paginile Web
DocumentRoot /var/www/html

t numele directorului în care se afla paginile Web ale

utilizatorilor
UserDir public_html

numele fisierului continând informatiile privind controlul

accesului
AccessFileName .htaccess

determina numele masinilor de pe care provin cererile
HostnameLookups On


locatia fisierului jurnal pentru erori
ErrorLog /var/log/httpd/error_log

nivelul jurnalizarii
LogLevel warn

tt formatul mesajelor

LogFormat "%h %1 %u %t \"%r\" %>s %b \"%(Referer}i\" \"%i\"" combined

l locatia fisierului jurnal

CustomLog /var/log/httpd/access_log combined

locatia scripturilor CGI
ScriptAlias /cgi-bin/ "/var/www/cgi-bin/"
<Directory "/var/www/cgi-bin">

AllowOverride None Options ExecCGI Order allow,deny Allow from all </Directory>



Document Info


Accesari: 1605
Apreciat: hand-up

Comenteaza documentul:

Nu esti inregistrat
Trebuie sa fii utilizator inregistrat pentru a putea comenta


Creaza cont nou

A fost util?

Daca documentul a fost util si crezi ca merita
sa adaugi un link catre el la tine in site


in pagina web a site-ului tau.




eCoduri.com - coduri postale, contabile, CAEN sau bancare

Politica de confidentialitate | Termenii si conditii de utilizare




Copyright © Contact (SCRIGROUP Int. 2024 )