Så här konfigurerar du Apache – webbservern på en Ubuntu eller Debian VPS

Vad är Apache?

Apache är den mest populära webbservern på internet. Det används för att tjäna mer än hälften av alla aktiva webbplatser.

Även om det finns många livskraftiga webbservrar som kommer att tjäna ditt innehåll, är det bra att förstå hur Apache fungerar på grund av dess ubiquity.

i den här artikeln kommer vi att undersöka några allmänna konfigurationsfiler och alternativ som kan styras inom dem., Denna artikel kommer att följa Ubuntu / Debian-layouten av Apache-filer, vilket skiljer sig från hur andra distributioner bygger konfigurationshierarkin.

så här installerar du Apache på Ubuntu och Debian

Om du inte redan har Apache installerat kan du göra det nu genom att utfärda följande kommandon:

sudo apt-get updatesudo apt-get install apache2

det här är allt som är nödvändigt för att ha en fungerande webbserver., Om du besöker din VPS IP-adress i en webbläsare får du standardsidan för Apache-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-Filhierarkin i Ubuntu och Debian

På Ubuntu och Debian håller Apache sina huvudkonfigurationsfiler i mappen ”/etc/apache2”:

cd /etc/apache2ls -F
apache2.conf envvars magic mods-enabled/ sites-available/conf.d/ httpd.conf mods-available/ ports.conf sites-enabled/

det finns ett antal oformaterade textfiler och vissa underkataloger i den här katalogen. Det här är några av de mer användbara platserna att känna till:

  • apache2.,conf: detta är den huvudsakliga konfigurationsfilen för servern. Nästan all konfiguration kan göras inifrån den här filen, även om det rekommenderas att använda separata, utsedda filer för enkelhet. Den här filen kommer att konfigurera standardvärden och vara den centrala åtkomstpunkten för servern för att läsa konfigurationsdetaljer.
  • portar.conf: den här filen används för att ange de portar som virtuella värdar ska lyssna på. Var noga med att kontrollera att den här filen är korrekt om du konfigurerar SSL.
  • conf.D/: denna katalog används för att styra specifika aspekter av Apache-konfigurationen., Det används till exempel ofta för att definiera SSL-konfiguration och standard säkerhetsval.
  • sites-available/: den här katalogen innehåller alla virtuella värdfiler som definierar olika webbplatser. Dessa kommer att fastställa vilket innehåll som serveras för vilka förfrågningar. Det här är tillgängliga konfigurationer, inte aktiva konfigurationer.
  • sites-enabled/: denna katalog fastställer vilka virtuella värddefinitioner som faktiskt används. Vanligtvis består denna katalog av symboliska länkar till filer som definieras i katalogen ”sites-available”.,
  • mods -/: dessa kataloger är liknande i funktion till webbplatser kataloger, men de definierar moduler som kan eventuellt laddas istället.

som du kan se sker Apache-konfigurationen inte i en enda monolitisk fil, utan sker istället genom en modulär design där nya filer kan läggas till och ändras efter behov.

tittar på Apache2.conf-fil

huvudkonfigurationsinformationen för din Apache-server hålls i ”/etc/apache2/apache2.conf-filen.,

den här filen är indelad i tre huvuddelar: konfiguration för den globala Apache-serverprocessen, konfiguration för standardservern och konfiguration av virtuella värdar.

i Ubuntu och Debian är majoriteten av filen för globala definitioner, och konfigurationen av standardservern och virtuella värdar hanteras i slutet, genom att använda ”inkludera …” direktiv.

Include-direktivet tillåter Apache att läsa andra konfigurationsfiler i den aktuella filen på den plats där uttalandet visas., Resultatet är att Apache dynamiskt genererar en övergripande konfigurationsfil vid start.

om du bläddrar till botten av filen finns det ett antal olika ”inkludera” – satser. Dessa lastmoduldefinitioner, portarna.conf-dokument, de specifika konfigurationsfilerna i ” conf.d / ” – katalogen, och slutligen, de virtuella Värddefinitionerna i katalogen ”sites-enabled/”.

Vi kommer att fokusera på den första delen av filen för att lära oss hur Apache definierar sina globala inställningar.,

Global Konfigurationssektion

det här avsnittet används för att konfigurera vissa alternativ som styr hur Apache fungerar som helhet.

det finns några intressanta alternativ som du kanske vill ändra i det här avsnittet:

Timeout

som standard är denna parameter inställd på ”300”, vilket innebär att servern har högst 300 sekunder för att uppfylla varje förfrågan.

det här är förmodligen för högt för de flesta uppställningar och kan säkert släppas till något mellan 30 och 60 sekunder.,

KeepAlive

det här alternativet, om det är inställt på ”On”, tillåter att varje anslutning förblir öppen för att hantera flera förfrågningar från samma klient.

om detta är inställt på ”Off”, måste varje förfrågan upprätta en ny anslutning, vilket kan leda till betydande omkostnader beroende på din inställning och trafiksituation.

MaxKeepAliveRequests

detta styr hur många separata begäran varje anslutning kommer att hantera innan de dör. Att hålla detta nummer högt gör det möjligt för Apache att servera innehåll till varje klient mer effektivt.,

Om du ställer in det här värdet till 0 kommer Apache att kunna tillhandahålla ett obegränsat antal förfrågningar för varje anslutning.

KeepAliveTimeout

den här inställningen anger hur länge du ska vänta på nästa begäran efter att du har avslutat den sista. Om tidsgränsen nås kommer anslutningen att dö.

det betyder bara att nästa gång innehåll begärs, kommer servern att upprätta en ny anslutning för att hantera begäran om innehållet som utgör sidan klienten besöker.,

MPM-konfiguration

nästa avsnitt anger konfigurationen av MPM-alternativen (multi-Processing Module). Du kan korsreferens vilken sektion din Apache-installation sammanställdes med genom att gå in i terminalen och skriva:

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 den här servern, ”prefork.c ” är en modul som sammanställdes i och finns också i ”apache2.conf-filen. Din installation kan ha flera att välja mellan, men endast en kan väljas.

Du kan justera konfigurationen av prefork MPM i lämplig sektion.,

utforska standardfilen för virtuell värd

standarddeklarationen för virtuell värd finns i en fil som heter ”default” i katalogen ”sites-available”.

Vi kan lära oss om det allmänna formatet för en virtuell värdfil genom att undersöka den här filen. Öppna filen med följande kommando:

sudo nano /etc/apache2/sites-available/default

standard Virtual Host är konfigurerad för att hantera alla förfrågningar på port 80, standard http-porten. Detta definieras i deklarationshuvudet där det står ”*:80”, vilket betyder port 80 på vilket gränssnitt som helst.,

detta betyder inte att det nödvändigtvis kommer att hantera varje begäran till servern på denna port dock. Apache använder den mest specifika virtuella Värddefinitionen som matchar begäran. Detta innebär att om det fanns en mer specifik definition, det kan ersätta denna definition.

konfiguration av Virtual Host Top Level

dessa alternativ är inställda i Virtual Host-definitionen utanför någon annan underdeklaration på lägre nivå. De gäller för hela den virtuella värden.

alternativet ”ServerAdmin” anger ett kontaktmeddelande som ska användas när det finns serverproblem.,

detta kan infogas på en felsida om du har ”ServerSignature” inställt på ”Email” i ”/etc/apache2/conf.d / säkerhet” fil, så se till att du är villig att ta emot e-post om du justerar den inställningen.

om vi använde detta som en mall för andra virtuella Värddefinitioner skulle vi vilja lägga till en” ServerName ” – definition som anger det domännamn eller IP-adress som denna begäran ska hantera. Det här är det alternativ som skulle lägga till specificitet till den virtuella värden, så att den kan trumma standarddefinitionen om den matchar Servernamnsvärdet.,

Du kan också få den virtuella värden att gälla för mer än ett namn genom att använda definitionen ”ServerAlias”. Detta ger alternativa vägar för att komma till samma innehåll. Ett bra användningsfall för detta lägger till samma domän, föregås av ”www”.

alternativet ”DocumentRoot” anger var innehållet som begärs för den här virtuella värden kommer att finnas. Standard Virtual Host är inställd för att visa innehåll ur katalogen” /var/www ” på Ubuntu.,

Katalogdefinitioner

inom den virtuella Värddefinitionen finns definitioner för hur servern hanterar olika kataloger i filsystemet. Apache kommer att tillämpa alla dessa riktningar i ordning från kortast till längsta, så det finns återigen en chans att åsidosätta tidigare alternativ.

den första katalogdefinitionen tillämpar regler för katalogen ” / ” eller root. Detta kommer att ge baslinjekonfigurationen för din virtuella värd, eftersom det gäller alla filer som serveras på filsystemet.

som standard ställer Ubuntu inte in några åtkomstbegränsningar till filsystemet., Apache rekommenderar att du lägger till några standardåtkomstbegränsningar. Du kan ändra det så här:

<Directory />Options FollowSymLinksAllowOverride NoneOrder Deny,AllowDeny from All</Directory>

detta kommer att neka åtkomst till allt innehåll om inte annat anges i efterföljande katalogdefinitioner.

nästa katalogdefinition är för dokumentroten, så det anger alternativet ”Tillåt från alla” som åsidosätter alternativet ”/” för den här katalogen.

alternativet ”AllowOverride” används för att avgöra om ett ”.htaccess ” fil kan åsidosätta inställningar om den placeras i innehållskatalogen., Detta är inte tillåtet som standard, men kan vara användbart för att möjliggöra i en mängd olika omständigheter.

Alias och Scriptalias uttalanden

Katalogdefinitioner föregås ibland av ”Alias” eller ”ScriptAlias” uttalanden. Alias kartlägger en url-sökväg till en katalogväg.

ScriptAlias fungerar på samma sätt, men används för att definiera kataloger som kommer att ha körbara komponenter i dem.

Alias /content/ /path/to/content/

Efter aliaset bör du komma ihåg att definiera katalogen med åtkomstbehörighet som diskuterats i föregående avsnitt.,

aktivera webbplatser och moduler i Apache

När du har en virtuell värdfil som uppfyller dina krav kan du använda verktygen som medföljer Apache för att överföra dem till levande webbplatser.,

för att automatiskt skapa en symbolisk länk i katalogen ”sites-enabled” till en befintlig fil i katalogen ”sites-available” utfärdar du följande kommando:

sudo a2ensite virtual_host_file_name

När du har aktiverat en webbplats utfärdar du följande kommando för att be Apache att läsa om konfigurationsfilerna, så att ändringen kan föröka sig:

sudo service apache2 reload

det finns också ett kompanjonskommando för att inaktivera en virtuell värd., Det fungerar genom att ta bort den symboliska länken från katalogen ”sites-enabled”:

sudo a2dissite virtual_host_file_name

igen, ladda om konfigurationen för att göra ändringen hända:

sudo service apache2 reload

moduler kan aktiveras eller inaktiveras genom att använda kommandona ”a2enmod” respektive ”a2dismus”. De fungerar på samma sätt som ”site” – versionerna av dessa kommandon.

Kom ihåg att ladda om dina konfigurationsändringar efter att moduler har aktiverats eller inaktiverats.

slutsats

Vi har gått igenom några grundläggande Apache konfigurationsfiler., Apache är mångsidig och mycket modulär, så konfigurationsbehov kommer att vara olika beroende på din inställning.

Du bör ha en god förståelse för vad de viktigaste konfigurationsfilerna används för och hur de interagerar med varandra. Om du behöver veta om specifika konfigurationsalternativ, de medföljande filerna är väl kommenterade och Apache ger utmärkt dokumentation.

Förhoppningsvis kommer konfigurationsfilerna inte att vara så skrämmande nu, och du känner dig mer bekväm att experimentera och modifiera för att passa dina behov.

av Justin Ellingwood

Share

Lämna ett svar

Din e-postadress kommer inte publiceras. Obligatoriska fält är märkta *