Wat is Apache?
Apache is de populairste webserver op het internet. Het wordt gebruikt om meer dan de helft van alle actieve websites te bedienen.
hoewel er veel levensvatbare webservers zijn die uw inhoud zullen bedienen, is het nuttig om te begrijpen hoe Apache werkt vanwege de alomtegenwoordigheid.
in dit artikel zullen we enkele algemene configuratiebestanden en opties bekijken die erin kunnen worden beheerd., Dit artikel volgt de Ubuntu/Debian lay-out van Apache-bestanden, die verschilt van hoe andere distributies de configuratiehiërarchie bouwen.
Apache installeren op Ubuntu en Debian
als Apache nog niet geïnstalleerd is, kunt u dit nu doen door de volgende commando ‘ s uit te voeren:
sudo apt-get updatesudo apt-get install apache2
Dit is alles wat nodig is om een werkende webserver te hebben., Als u het IP-adres van uw VPS in een webbrowser bezoekt, krijgt u de standaard Apache-indexpagina:
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.
de Apache-Bestandshiërarchie in Ubuntu en Debian
Op Ubuntu en Debian bewaart Apache zijn belangrijkste configuratiebestanden in de map “/etc/apache2”:
cd /etc/apache2ls -F
apache2.conf envvars magic mods-enabled/ sites-available/conf.d/ httpd.conf mods-available/ ports.conf sites-enabled/
Er zijn een aantal platte tekstbestanden en enkele submappen in deze map. Dit zijn enkele van de meer nuttige locaties om bekend mee te zijn:
- apache2.,conf: dit is het belangrijkste configuratiebestand voor de server. Bijna alle configuratie kan worden gedaan vanuit dit bestand, hoewel het wordt aanbevolen om aparte, aangewezen bestanden te gebruiken voor eenvoud. Dit bestand zal standaardwaarden configureren en het centrale toegangspunt zijn voor de server om configuratiedetails te lezen.
- poorten.conf: dit bestand wordt gebruikt om de poorten aan te geven waarop virtuele hosts moeten luisteren. Controleer of dit bestand correct is als u SSL configureert.
- conf.d/: deze directory wordt gebruikt voor het controleren van specifieke aspecten van de Apache configuratie., Het wordt bijvoorbeeld vaak gebruikt om SSL-configuratie en standaard beveiligingskeuzes te definiëren.
- sites-available/: deze map bevat alle virtuele hostbestanden die verschillende websites definiëren. Deze zullen bepalen welke inhoud wordt aangeboden voor welke verzoeken. Dit zijn beschikbare configuraties, geen actieve configuraties.
- sites-enabled/: deze map bepaalt welke virtuele hostdefinities daadwerkelijk worden gebruikt. Gewoonlijk bestaat deze map uit symbolische links naar bestanden die zijn gedefinieerd in de map “sites-available”.,
- mods -/: deze mappen zijn in functie vergelijkbaar met de sites mappen, maar ze definiëren modules die in plaats daarvan optioneel kunnen worden geladen.
zoals u kunt zien, vindt Apache-configuratie niet plaats in een enkel monolithisch bestand, maar in plaats daarvan gebeurt dit door middel van een modulair ontwerp waar nieuwe bestanden kunnen worden toegevoegd en gewijzigd indien nodig.
kijkend naar de Apache2.conf bestand
de belangrijkste configuratiedetails voor uw Apache server staan in het bestand ” / etc/apache2 / apache2.conf ‘ file.,
dit bestand is verdeeld in drie hoofdsecties: configuratie voor het globale Apache-serverproces, configuratie voor de standaardserver en configuratie van virtuele Hosts.
In Ubuntu en Debian is het merendeel van het bestand bedoeld voor globale definities, en de configuratie van de standaardserver en virtuele hosts wordt aan het einde afgehandeld met behulp van de “Include”…” richtlijn.
De” Include ” richtlijn staat Apache toe om andere configuratiebestanden in het huidige bestand te lezen op de locatie waar het statement verschijnt., Het resultaat is dat Apache dynamisch een overkoepelend configuratiebestand genereert bij het opstarten.
Als u naar de onderkant van het bestand scrolt, zijn er een aantal verschillende “Include” statements. Deze load module definities, de poorten.conf document, de specifieke configuratie bestanden in de ” conf.d / “directory, en tenslotte de virtuele host definities in de” sites-enabled/ ” directory.
We zullen ons richten op het eerste deel van het bestand om te leren hoe Apache zijn globale instellingen definieert.,
globale configuratie sectie
Deze sectie wordt gebruikt om enkele opties te configureren die bepalen hoe Apache als geheel werkt.
Er zijn enkele interessante opties die u mogelijk wilt wijzigen in deze sectie:
Timeout
standaard is deze parameter ingesteld op “300”, wat betekent dat de server maximaal 300 seconden heeft om aan elk verzoek te voldoen.
Dit is waarschijnlijk te hoog voor de meeste instellingen en kan veilig worden gedropt tot iets tussen de 30 en 60 seconden.,
KeepAlive
Deze optie, indien ingesteld op “On”, zal toestaan dat elke verbinding open blijft om meerdere verzoeken van dezelfde client af te handelen.
als dit is ingesteld op “Off”, moet elk verzoek een nieuwe verbinding tot stand brengen, wat kan resulteren in aanzienlijke overhead, afhankelijk van uw installatie en verkeerssituatie.
MaxKeepAliveRequests
Dit bepaalt hoeveel afzonderlijke Verzoeken elke verbinding zal afhandelen voordat deze afgaat. Het hoog houden van dit aantal zal Apache in staat stellen om content aan elke client effectiever te leveren.,
Als u deze waarde op 0 zet, kan Apache een onbeperkt aantal aanvragen voor elke verbinding indienen.
KeepAliveTimeout
Deze instelling geeft aan hoe lang u moet wachten op de volgende aanvraag nadat u de laatste hebt voltooid. Als de timeoutdrempel is bereikt, zal de verbinding verdwijnen.
Dit betekent alleen dat de server bij de volgende keer dat inhoud wordt opgevraagd een nieuwe verbinding tot stand zal brengen om de aanvraag af te handelen voor de inhoud van de pagina die de client bezoekt.,
MPM configuratie
de volgende sectie specificeert de configuratie van de opties voor MPM (Multi-Processing Module). U kunt vergelijken met welke sectie Uw Apache installatie gecompileerd is door af te sluiten in de terminal en te typen:
apache2 -l
Compiled in modules: core.c mod_log_config.c mod_logio.c prefork.c http_core.c mod_so.c
zoals u kunt zien, op deze server, “prefork.c ” is een module die is gecompileerd in en is ook in de “apache2.conf ‘ file. Uw installatie kan meerdere om uit te kiezen, maar slechts één kan worden geselecteerd.
u kunt de configuratie van de prefork MPM aanpassen in de betreffende sectie.,
verkenning van het standaard virtuele Hostbestand
De standaard virtuele host-declaratie kan worden gevonden in een bestand met de naam “default” in de map “sites-available”.
we kunnen meer te weten komen over het algemene formaat van een virtueel Hostbestand door dit bestand te onderzoeken. Open het bestand met de volgende opdracht:
sudo nano /etc/apache2/sites-available/default
De standaard virtuele Host is geconfigureerd om elke aanvraag op poort 80, de standaard http-poort, af te handelen. Dit wordt gedefinieerd in de declaratie header waar het zegt “*:80”, wat betekent poort 80 op elke interface.,
Dit betekent echter niet dat het per se elke aanvraag aan de server op deze poort zal afhandelen. Apache gebruikt de meest specifieke virtuele host definitie die overeenkomt met het verzoek. Dit betekent dat als er een meer specifieke definitie was, deze deze definitie zou kunnen vervangen.
Virtual Host Top Level Configuration
Deze opties zijn ingesteld binnen de definitie van virtuele Host buiten elke andere subdeclaratie van een lager niveau. Ze gelden voor de hele virtuele Host.
de optie “ServerAdmin” specificeert een contact-e-mail die gebruikt moet worden als er serverproblemen zijn.,
dit kan worden ingevoegd in een foutpagina als u ” ServerSignature “hebt ingesteld op” Email “in de” /etc/apache2/conf.d / security ” bestand, dus zorg ervoor dat u bereid bent om de e-mail te ontvangen als u deze instelling aan te passen.
als we dit gebruiken als een sjabloon voor andere virtuele hostdefinities, zouden we een “ServerName” – definitie willen toevoegen die de domeinnaam of het IP-adres specificeert dat deze aanvraag moet behandelen. Dit is de optie die specificiteit toevoegt aan de virtuele Host, waardoor deze de standaarddefinitie kan overtroeven als deze overeenkomt met de Servernaamwaarde.,
U kunt de virtuele Host ook op meer dan één naam toepassen door de definitie “ServerAlias” te gebruiken. Dit biedt alternatieve paden om naar dezelfde inhoud te komen. Een goed gebruik hiervoor is het toevoegen van hetzelfde domein, voorafgegaan door “www”.
de optie “DocumentRoot” geeft aan waar de inhoud die voor deze virtuele Host wordt gevraagd zich zal bevinden. De standaard virtuele Host is ingesteld om inhoud uit de map “/var/www” op Ubuntu te presenteren.,
Mapdefinities
binnen de virtuele Hostdefinitie zijn er definities voor hoe de server verschillende mappen binnen het bestandssysteem verwerkt. Apache zal al deze richtingen toepassen in volgorde van Kortste naar langste, dus er is weer een kans om eerdere opties te overschrijven.
de eerste mapdefinitie past regels toe voor de”/”, of root, map. Dit zal de basislijn configuratie voor uw virtuele Host bieden, omdat dit van toepassing is op alle bestanden die op het bestandssysteem worden geserveerd.
standaard stelt Ubuntu geen toegangsbeperkingen in voor het bestandssysteem., Apache raadt je aan om wat standaard toegangsbeperkingen toe te voegen. U kunt dit als volgt wijzigen:
<Directory />Options FollowSymLinksAllowOverride NoneOrder Deny,AllowDeny from All</Directory>
Dit zal toegang tot alle inhoud weigeren, tenzij anders aangegeven in volgende directory definities.
de volgende directory definitie is voor het document root, dus het specificeert de” allow from all “optie die de” / ” optie voor deze map overschrijft.
de optie ” AllowOverride “wordt gebruikt om te beslissen of een”.htaccess ” bestand kan de instellingen overschrijven als het wordt geplaatst in de inhoud directory., Dit is standaard niet toegestaan, maar kan nuttig zijn om in te schakelen in een verscheidenheid van omstandigheden.
Alias en ScriptAlias Statements
Directorydefinities worden soms voorafgegaan door” Alias “of” ScriptAlias ” statements. Alias wijst een url-pad toe aan een directorypad.
ScriptAlias werkt op dezelfde manier, maar wordt gebruikt om mappen te definiëren die uitvoerbare componenten bevatten.
Alias /content/ /path/to/content/
na de alias moet u onthouden om de map met toegangsrechten te definiëren zoals besproken in de vorige paragraaf.,
Sites en Modules in Apache
Als u eenmaal een virtueel Hostbestand hebt dat aan uw vereisten voldoet, kunt u de gereedschappen die bij Apache zijn meegeleverd gebruiken om ze over te zetten naar live sites.,
Om het automatisch creëren van een symbolische koppeling aan in de “sites-enabled” directory naar een bestaand bestand in de “sites-available” map, geeft u het volgende commando:
sudo a2ensite virtual_host_file_name
Na het inschakelen van een site, geeft u het volgende commando te vertellen Apache om de instellingen opnieuw moet lezen-bestanden, zodat de wijziging doorgevoerd:
sudo service apache2 reload
Er is ook een metgezel opdracht voor het uitschakelen van een Virtuele Host., Het werkt door de symbolische link uit de map “sites-enabled” te verwijderen:
sudo a2dissite virtual_host_file_name
opnieuw laden van de configuratie om de verandering te laten gebeuren:
sudo service apache2 reload
Modules kunnen worden ingeschakeld of uitgeschakeld met behulp van respectievelijk de “a2enmod” en “a2dismod” commando ‘ s. Ze werken op dezelfde manier als de “site” versies van deze commando ‘ s.
vergeet niet om uw configuratie wijzigingen opnieuw te laden nadat modules zijn ingeschakeld of uitgeschakeld.
conclusie
we hebben een aantal basis Apache configuratiebestanden bekeken., Apache is veelzijdig en zeer modulair, dus de configuratie behoeften zullen verschillen afhankelijk van uw setup.
u moet goed begrijpen waarvoor de belangrijkste configuratiebestanden worden gebruikt en hoe ze met elkaar omgaan. Als je meer wilt weten over specifieke configuratieopties, zijn de meegeleverde bestanden goed becommentarieerd en biedt Apache uitstekende documentatie.
hopelijk zullen de configuratiebestanden nu niet zo intimiderend zijn, en voelt u zich meer op uw gemak bij het experimenteren en aanpassen aan uw behoeften.