ce este Apache?
Apache este cel mai popular server web de pe internet. Este folosit pentru a servi mai mult de jumătate din toate site-urile active.deși există multe servere web viabile care vă vor servi conținutul, este util să înțelegeți cum funcționează Apache din cauza ubicuității sale.în acest articol, vom examina câteva fișiere generale de configurare și opțiuni care pot fi controlate în cadrul acestora., Acest articol va urma aspectul Ubuntu / Debian al fișierelor Apache, care este diferit de modul în care alte distribuții construiesc ierarhia de configurare.
Cum pentru a Instala Apache pe Ubuntu și Debian
Dacă nu aveți deja Apache instalat, puteți face acest lucru acum prin emiterea următoarele comenzi:
sudo apt-get updatesudo apt-get install apache2
Acest lucru este tot ce este necesar pentru un server web., Dacă vizitați VPS-ul este adresa IP intr-un browser web, veți obține default Apache pagina de index:
your_domain_name_or_ip_address
It works!This is the default web page for this server.The web server software is running but no content has been added, yet.
Apache Ierarhie de Fișiere în Ubuntu și Debian
Pe Ubuntu și Debian Apache păstrează principalele sale fișiere de configurare în „/etc/apache2” folder:
cd /etc/apache2ls -F
apache2.conf envvars magic mods-enabled/ sites-available/conf.d/ httpd.conf mods-available/ ports.conf sites-enabled/
Există un număr de fișiere text simplu și unele sub-directoare în acest director. Acestea sunt câteva dintre locațiile mai utile pentru a fi familiarizați cu:
- apache2.,conf: acesta este fișierul principal de configurare pentru server. Aproape toată configurația se poate face din acest fișier, deși se recomandă utilizarea fișierelor separate, desemnate pentru simplitate. Acest fișier va configura valorile implicite și va fi punctul central de acces pentru ca serverul să citească detaliile de configurare.
- porturi.conf: acest fișier este utilizat pentru a specifica porturile pe care gazdele virtuale ar trebui să le asculte. Asigurați-vă că verificați dacă acest fișier este corect dacă configurați SSL.
- conf.d/: acest director este utilizat pentru controlul anumitor aspecte ale configurației Apache., De exemplu, este adesea folosit pentru a defini configurația SSL și opțiunile de securitate implicite.
- sites-available/: acest director conține toate fișierele gazdă virtuale care definesc diferite site-uri web. Acestea vor stabili ce conținut este servit pentru ce solicitări. Acestea sunt configurații disponibile, nu configurații active.
- sites-enabled/: acest director stabilește care definiții gazdă virtuale sunt de fapt utilizate. De obicei, acest director constă din legături simbolice către fișierele definite în directorul „site-uri disponibile”.,
- mods -/: aceste directoare sunt similare în funcție de directoare site-uri, dar ele definesc module care pot fi încărcate opțional în loc.după cum puteți vedea, configurația Apache nu are loc într-un singur fișier monolit, ci se întâmplă printr-un design modular în care fișierele noi pot fi adăugate și modificate după cum este necesar.
Privind la Apache2.conf File
principalele detalii de configurare pentru serverul Apache sunt păstrate în ” / etc/apache2 / apache2.conf ” fișier.,
acest fișier este împărțit în trei secțiuni principale: configurare pentru procesul global al serverului Apache, configurare pentru serverul implicit și configurare a gazdelor virtuale.
în Ubuntu și Debian, majoritatea fișierului este pentru definiții globale, iar configurația serverului implicit și a gazdelor virtuale este gestionată la sfârșit, folosind „Include …”Directiva.
directiva „Include” permite Apache să citească alte fișiere de configurare în fișierul curent în locația în care apare instrucțiunea., Rezultatul este că Apache generează dinamic un fișier de configurare general la pornire.
dacă derulați în partea de jos a fișierului, există o serie de declarații diferite „Include”. Aceste definiții modul de încărcare, porturile.documentul conf, fișierele de configurare specifice din ” conf.d / ” director, și în cele din urmă, definițiile gazdă virtuală în directorul „site-uri-enabled/”.ne vom concentra pe prima parte a fișierului pentru a afla cum definește Apache setările sale globale.,
Global Configuration Section
această secțiune este utilizată pentru a configura unele opțiuni care controlează modul în care funcționează Apache ca un întreg.există câteva opțiuni interesante pe care poate doriți să le modificați în această secțiune:
Timeout
în mod implicit, acest parametru este setat la „300”, ceea ce înseamnă că serverul are maximum 300 de secunde pentru a îndeplini fiecare solicitare.acest lucru este, probabil, prea mare pentru cele mai multe set up-uri și poate fi scăzut în condiții de siguranță la ceva între 30 și 60 de secunde.,
KeepAlive
această opțiune, dacă este setată pe „On”, va permite fiecărei conexiuni să rămână deschisă pentru a gestiona mai multe solicitări de la același client.
dacă acest lucru este setat la „Off”, fiecare solicitare va trebui să stabilească o nouă conexiune, care poate duce la cheltuieli semnificative în funcție de configurarea și situația traficului.
MaxKeepAliveRequests
aceasta controlează câte cereri separate vor gestiona fiecare conexiune înainte de a muri. Menținerea acestui număr ridicat va permite Apache să servească conținut fiecărui client mai eficient.,
Setarea acestei valori la 0 va permite Apache pentru a servi o cantitate nelimitată de cerere pentru fiecare conexiune.
KeepAliveTimeout
această setare specifică cât timp trebuie să așteptați următoarea solicitare după terminarea ultimei. Dacă se atinge pragul de expirare, conexiunea va muri.
Acest lucru înseamnă doar că data viitoare când conținutul este solicitat, serverul va stabili o nouă conexiune pentru a gestiona cererea pentru conținutul care alcătuiesc pagina pe care clientul o vizitează.,
configurare MPM
următoarea secțiune specifică configurația opțiunilor MPM (Multi-Processing Module). Apache prin ieșirea în terminal și tastând:
apache2 -l
Compiled in modules: core.c mod_log_config.c mod_logio.c prefork.c http_core.c mod_so.c
după cum puteți vedea, în acest server, ” prefork.c ” este un modul care a fost compilat și este, de asemenea, în „apache2.conf ” fișier. Instalarea dvs. poate avea mai multe de ales, dar numai una poate fi selectată.
puteți ajusta configurația MPM prefork în secțiunea corespunzătoare.,
explorarea fișierului gazdă virtuală implicit
declarația gazdă virtuală implicită poate fi găsită într-un fișier numit „implicit” în directorul „site-uri disponibile”.putem afla despre formatul general al unui fișier gazdă virtuală examinând acest fișier. Deschideți fișierul cu următoarea comandă:
sudo nano /etc/apache2/sites-available/default
gazda virtuală implicită este configurată să gestioneze orice solicitare pe portul 80, portul http standard. Acest lucru este definit în antetul declarației unde scrie „*:80”, adică portul 80 pe orice interfață.,acest lucru nu înseamnă că se va ocupa în mod necesar fiecare cerere către serverul de pe acest port cu toate acestea. Apache folosește cea mai specifică definiție a gazdei virtuale care se potrivește cu cererea. Aceasta înseamnă că, dacă ar exista o definiție mai specifică, ar putea înlocui această definiție.aceste opțiuni sunt setate în definiția gazdei virtuale în afara oricărei alte subdeclarații de nivel inferior. Acestea se aplică întregii gazde virtuale.
opțiunea „ServerAdmin” specifică un e-mail de contact care ar trebui utilizat atunci când există probleme de server.,acest lucru poate fi inserat într-o pagină de eroare dacă aveți „ServerSignature” setat la „Email” în „/etc/apache2/conf.d / securitate”, deci asigurați-vă că sunteți dispus să primiți e-mailul dacă ajustați acea setare.
dacă am folosi acest lucru ca șablon pentru alte definiții ale gazdei virtuale, am dori să adăugăm o definiție „ServerName” care specifică numele de domeniu sau adresa IP pe care această solicitare ar trebui să o gestioneze. Aceasta este opțiunea care ar adăuga specificitate gazdei virtuale, permițându-i să depășească definiția implicită dacă se potrivește cu valoarea ServerName.,de asemenea, puteți face ca gazda virtuală să se aplice mai multor nume utilizând definiția „ServerAlias”. Aceasta oferă căi alternative pentru a ajunge la același conținut. Un bun caz de utilizare pentru aceasta este adăugarea aceluiași domeniu, precedat de”www”.
opțiunea „DocumentRoot” specifică unde va fi localizat conținutul solicitat pentru această gazdă virtuală. Gazda virtuală implicită este configurată pentru a servi conținut din directorul „/var/www” De Pe Ubuntu.,
definiții Director
în definiția gazdă virtuală, Există definiții pentru modul în care serverul se ocupă de directoare diferite în sistemul de fișiere. Apache va aplica toate aceste directii in ordinea de la cea mai scurta la cea mai lunga, deci exista din nou sansa de a trece peste optiunile anterioare.
prima definiție a directorului aplică reguli pentru directorul ” / ” sau rădăcină. Aceasta va oferi configurația de bază pentru gazda dvs. virtuală, deoarece se aplică tuturor fișierelor servite în sistemul de fișiere.
în mod implicit, Ubuntu nu configurează nicio restricție de acces la sistemul de fișiere., Apache vă recomandă să adăugați unele restricții de acces implicite. Puteți modifica acest lucru astfel:
<Directory />Options FollowSymLinksAllowOverride NoneOrder Deny,AllowDeny from All</Directory>
Acesta va refuza accesul la tot conținutul dacă nu se specifică altfel în anii director definiții.
următoarea definiție a directorului este pentru rădăcina documentului, deci specifică opțiunea „permite de la toți” care înlocuiește opțiunea ” / ” pentru acest director.
opțiunea „AllowOverride „este utilizată pentru a decide dacă un”.fișierul „htaccess” poate înlocui setările dacă este plasat în directorul de conținut., Acest lucru nu este permis în mod implicit, dar poate fi util pentru a permite într-o varietate de circumstanțe.
declarații Alias și ScriptAlias
definițiile directorului sunt uneori precedate de declarații” Alias „sau” ScriptAlias”. Alias mapează o cale url către o cale de director.ScriptAlias funcționează în același mod, dar este folosit pentru a defini directoare care vor avea componente executabile în ele.
Alias /content/ /path/to/content/
după alias, trebuie să vă amintiți să definiți Directorul cu privilegii de acces așa cum s-a discutat în secțiunea anterioară.,
activarea site-urilor și modulelor în Apache
odată ce aveți un fișier gazdă virtuală care îndeplinește cerințele dvs., puteți utiliza instrumentele incluse în Apache pentru a le trece în site-uri live.,
Pentru a crea automat o legătură simbolică în „site-ului” directorul de la un fișier existent în „sites-available” director, emite următoarea comandă:
sudo a2ensite virtual_host_file_name
După activarea unui site, emite următoarea comandă pentru a spune Apache pentru a re-citit fișierele sale de configurare, care permite schimbarea să se propage:
sudo service apache2 reload
Există, de asemenea, un companion de comandă pentru dezactivarea o Gazdă Virtuală., Acesta funcționează prin eliminarea simbolic link-ul de la „site-ului” director:
sudo a2dissite virtual_host_file_name
din Nou, reîncărcați de configurare pentru a face ca schimbarea să se producă:
sudo service apache2 reload
Module poate fi activat sau dezactivat cu ajutorul „a2enmod” și „a2dismod” comenzi respectiv. Ele funcționează în același mod ca versiunile” site ” ale acestor comenzi.nu uitați să reîncărcați modificările de configurare după ce modulele au fost activate sau dezactivate.
concluzie
am trecut peste câteva fișiere de configurare de bază Apache., Apache este versatil și foarte modular, astfel încât nevoile de configurare vor fi diferite în funcție de configurația dvs.ar trebui să aveți o bună înțelegere a ceea ce principalele fișiere de configurare sunt utilizate pentru și modul în care acestea interacționează unele cu altele. Dacă trebuie să știți despre opțiunile de configurare specifice, fișierele furnizate sunt bine comentate și Apache oferă o documentație excelentă.sperăm că fișierele de configurare nu vor fi la fel de intimidante acum și vă simțiți mai confortabil experimentând și modificând pentru a se potrivi nevoilor dvs.de ce nu ne-am gandit la asta?