Hvad er Apache?
Apache er den mest populære webebserver på internettet. Det bruges til at betjene mere end halvdelen af alle aktive websebsteder.
selvom der er mange levedygtige .ebservere, der tjener dit indhold, er det nyttigt at forstå, hvordan Apache fungerer på grund af dets allestedsnærværende.
i denne artikel vil vi undersøge nogle generelle konfigurationsfiler og indstillinger, der kan styres inden for dem., Denne artikel vil følge Ubuntu / Debian-layoutet af Apache-filer, hvilket er forskelligt fra, hvordan andre distributioner bygger konfigurationshierarkiet.
Hvordan at Installere Apache på Ubuntu og Debian
Hvis du ikke allerede har Apache installeret, kan du gøre det nu ved at udstede følgende kommandoer:
sudo apt-get updatesudo apt-get install apache2
Dette er alt, der er nødvendigt for at have en fungerende web-server., Hvis du besøger din VPS ‘ s IP-adressen i en web browser, vil du få den standard Apache-indeks side:
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-Fil-Hierarki i Ubuntu og Debian
Om Ubuntu og Debian, Apache holder sine vigtigste konfigurationsfiler i “/etc/apache2” mappe:
cd /etc/apache2ls -F
apache2.conf envvars magic mods-enabled/ sites-available/conf.d/ httpd.conf mods-available/ ports.conf sites-enabled/
Der er en række almindelige tekstfiler, og nogle sub-mapper i denne mappe. Disse er nogle af de mere nyttige steder at være bekendt med:
- apache2.,conf: dette er den vigtigste konfigurationsfil for serveren. Næsten al konfiguration kan udføres inden for denne fil, selvom det anbefales at bruge separate, udpegede filer for enkelhed. Denne fil konfigurerer standardindstillinger og er det centrale adgangspunkt for serveren til at læse konfigurationsoplysninger.
- porte.conf: denne fil bruges til at angive de porte, som virtuelle værter skal lytte til. Sørg for at kontrollere, at denne fil er korrekt, hvis du konfigurerer SSL.
- conf.d/ : denne mappe bruges til at kontrollere specifikke aspekter af Apache-konfigurationen., For eksempel bruges det ofte til at definere SSL-konfiguration og standardsikkerhedsvalg.
- sites-available/: denne mappe indeholder alle de virtuelle værtsfiler, der definerer forskellige webebsteder. Disse vil fastslå, hvilket indhold bliver serveret for hvilke anmodninger. Disse er tilgængelige konfigurationer, ikke aktive konfigurationer.
- sites-enabled/: denne mappe fastlægger, hvilke virtuelle værtsdefinitioner der faktisk bruges. Normalt består denne mappe af symbolske links til filer defineret i mappen “sites-available”.,
- mods -/: disse mapper er ens i funktion til sites mapper, men de definerer moduler, der kan eventuelt indlæses i stedet.som du kan se, finder Apache-konfiguration ikke sted i en enkelt monolitisk fil, men sker i stedet gennem et modulært design, hvor nye filer kan tilføjes og ændres efter behov.
ser på Apache2.conf-fil
de vigtigste konfigurationsoplysninger for din Apache-server holdes i “/etc/apache2/apache2.conf ” fil.,
denne fil er opdelt i tre hovedafsnit: konfiguration for den globale Apache-serverproces, konfiguration for standardserveren og konfiguration af virtuelle værter.
i Ubuntu og Debian er størstedelen af filen til globale definitioner, og konfigurationen af standardserveren og virtuelle værter håndteres i slutningen ved at bruge “Inkluder …” direktiv.
direktivet “Include” giver Apache mulighed for at læse andre konfigurationsfiler i den aktuelle fil på det sted, hvor sætningen vises., Resultatet er, at Apache dynamisk genererer en overordnet konfigurationsfil ved opstart.
Hvis du ruller til bunden af filen, er der en række forskellige “Inkluder” udsagn. Disse belastning modul definitioner, portene.conf dokument, de specifikke konfigurationsfiler i “conf.d / “directory, og endelig de virtuelle værtsdefinitioner i mappen” sites-enabled/”.
Vi vil fokusere på den første del af filen for at lære, hvordan Apache definerer dens globale indstillinger.,
Global konfiguration sektion
dette afsnit bruges til at konfigurere nogle indstillinger, der styrer, hvordan Apache fungerer som en helhed.
Der er nogle interessante muligheder, du måske vil ændre i dette afsnit:
Timeout
som standard er denne parameter indstillet til “300”, hvilket betyder, at serveren har maksimalt 300 sekunder til at opfylde hver anmodning.
Dette er sandsynligvis for højt til de fleste opsætninger og kan sikkert tabes til noget mellem 30 og 60 sekunder.,
KeepAlive
denne indstilling, hvis den er indstillet til “On”, tillader, at hver forbindelse forbliver åben for at håndtere flere anmodninger fra den samme klient.
Hvis dette er indstillet til “Off”, skal hver anmodning oprette en ny forbindelse, hvilket kan resultere i betydelig overhead afhængigt af din opsætning og trafiksituation.
Ma .keepalivere .uests
dette styrer, hvor mange separate anmodninger hver forbindelse vil håndtere, før den dør. At holde dette tal højt vil give Apache mulighed for at tjene indhold til hver klient mere effektivt.,
Indstilling af denne værdi til 0 giver Apache mulighed for at betjene en ubegrænset mængde anmodning for hver forbindelse.
KeepAliveTimeout
denne indstilling angiver, hvor længe du skal vente på den næste anmodning, når du har afsluttet den sidste. Hvis timeout-tærsklen er nået, vil forbindelsen dø.
dette betyder blot, at næste gang der anmodes om indhold, opretter serveren en ny forbindelse til at håndtere anmodningen om det indhold, der udgør den side, klienten besøger.,
MPM-konfiguration
det næste afsnit specificerer konfigurationen af indstillingerne for MPM (Multi-Processing Module). Du kan cross-reference, som afsnittet din Apache installation blev udarbejdet med ud i terminalen og skrive:
apache2 -l
Compiled in modules: core.c mod_log_config.c mod_logio.c prefork.c http_core.c mod_so.c
Som du kan se i denne server, “prefork.c”er et modul, der blev udarbejdet i og er også i “apache2.conf ” fil. Din installation kan have flere at vælge imellem, men kun Cann kan vælges.
Du kan justere konfigurationen af prefork MPM i det relevante afsnit.,
udforskning af standard virtuel værtsfil
standard virtuel vært erklæring kan findes i en fil kaldet “standard” i “sites-available” mappe.
Vi kan lære om det generelle format for en virtuel værtsfil ved at undersøge denne fil. Åbn filen med følgende kommando:
sudo nano /etc/apache2/sites-available/default
den virtuelle standardvært er konfigureret til at håndtere enhver anmodning på port 80, standard HTTP-porten. Dette er defineret i erklæringen header, hvor der står “*:80”, hvilket betyder port 80 på enhver grænseflade.,
dette betyder ikke, at det nødvendigvis vil håndtere hver anmodning til serveren på denne port dog. Apache bruger den mest specifikke virtuelle Værtsdefinition, der matcher anmodningen. Dette betyder, at hvis der var en mere specifik definition, kunne den erstatte denne definition.
Virtual Host top Level Configuration
disse indstillinger er angivet i virtual Host-definitionen uden for enhver anden undererklæring på lavere niveau. De gælder for hele den virtuelle vært.
indstillingen “ServerAdmin” angiver en kontakt-E-mail, der skal bruges, når der er serverproblemer.,
dette kan indsættes i en fejlside, hvis du har “ServerSignature” indstillet til “Email” i “/etc/apache2 / conf.d / sikkerhed” fil, så sørg for at du er villig til at modtage mailen, hvis du justerer denne indstilling.
Hvis vi brugte dette som en skabelon til andre virtuelle Værtsdefinitioner, vil vi gerne tilføje en “ServerName” – definition, der angiver det domænenavn eller IP-adresse, som denne anmodning skal håndtere. Dette er den mulighed, der vil tilføje specificitet til den virtuelle vært, så den kan trumfe standarddefinitionen, hvis den matcher ServerName-værdien.,
Du kan også få den virtuelle vært til at gælde for mere end et navn ved at bruge definitionen “ServerAlias”. Dette giver alternative stier for at komme til det samme indhold. En god brugssag til dette er at tilføje det samme domæne, forud for “W..”.
indstillingen “DocumentRoot” angiver, hvor det indhold, der anmodes om til denne virtuelle vært, vil blive placeret. Standard virtuel vært er sat op til at tjene indhold ud af “/var/var..” mappe på Ubuntu.,
Directory definitioner
inden for den virtuelle Host definition, der er definitioner for, hvordan serveren håndterer forskellige mapper i filsystemet. Apache vil anvende alle disse retninger i rækkefølge fra korteste til længste, så der er igen en chance for at tilsidesætte tidligere indstillinger.
den første directory definition gælder regler for”/”, eller root, mappe. Dette vil give baseline konfiguration for din virtuelle vært, som det gælder for alle filer serveret på filsystemet.som standard opretter Ubuntu ingen adgangsbegrænsninger til filsystemet., Apache anbefaler, at du tilføjer nogle standard adgangsbegrænsninger. Du kan ændre dette på følgende måde:
<Directory />Options FollowSymLinksAllowOverride NoneOrder Deny,AllowDeny from All</Directory>
Dette vil nægte adgang til alt indhold, medmindre andet er angivet i efterfølgende mappedefinitioner.
den næste mappedefinition er for dokumentets rod, så den angiver indstillingen “Tillad fra alle”, der tilsidesætter indstillingen ” / ” for denne mappe.
indstillingen “Allo .override” bruges til at afgøre, om en “.htaccess ” – filen kan tilsidesætte indstillinger, hvis den er placeret i indholdsmappen., Dette er ikke tilladt som standard, men kan være nyttigt at aktivere under forskellige omstændigheder.
Alias og ScriptAlias udsagn
Directory definitioner er undertiden forud for “Alias” eller “ScriptAlias” udsagn. Alias kortlægger en url-sti til en katalogsti.ScriptAlias fungerer på samme måde, men bruges til at definere mapper, der vil have eksekverbare komponenter i dem.
Alias /content/ /path/to/content/
efter aliaset skal du huske at definere mappen med adgangsrettigheder som beskrevet i det foregående afsnit.,
Aktivering af Websteder og Moduler til Apache
Når du har en Virtuel Host fil, der opfylder dine krav, kan du bruge de værktøjer, der følger med Apache til at skifte dem i live sites.,
til automatisk At oprette et symbolsk link til i “sites-enabled” mappe til en eksisterende fil i “sites-available” bibliotek, udføre følgende kommando:
sudo a2ensite virtual_host_file_name
Efter aktivering af et websted, følgende kommando til at fortælle Apache til at genlæse sine konfigurationsfiler, så den ændres til at udbrede:
sudo service apache2 reload
Der er også en følgesvend kommando til at deaktivere en Virtuel Vært., Det fungerer ved at fjerne de symbolsk link fra den “sites-enabled” bibliotek:
sudo a2dissite virtual_host_file_name
Igen, genindlæse den konfiguration for at foretage ændringen ske:
sudo service apache2 reload
Moduler kan aktiveres eller deaktiveres ved hjælp af “a2enmod” og “a2dismod” kommandoer, henholdsvis. De fungerer på samme måde som “site” versionerne af disse kommandoer.
Husk at genindlæse dine konfigurationsændringer, når moduler også er aktiveret eller deaktiveret.
konklusion
Vi har gennemgået nogle grundlæggende Apache-konfigurationsfiler., Apache er alsidig og meget modulær, så konfigurationsbehov vil være forskellige afhængigt af din opsætning.
Du skal have en god forståelse af, hvad de vigtigste konfigurationsfiler bruges til, og hvordan de interagerer med hinanden. Hvis du har brug for at vide om specifikke konfigurationsindstillinger, kommenteres de medfølgende filer godt, og Apache leverer fremragende dokumentation.forhåbentlig vil konfigurationsfilerne ikke være så skræmmende nu, og du føler dig mere komfortabel med at eksperimentere og ændre, så de passer til dine behov.
af Justin Elling >ood