Wat is Apache en hoe werkt deze webserver?
Auteur: Redactie Domeny.ForSale Gepubliceerd
In het kort: Apache HTTP Server is gratis webserversoftware die verzoeken van de browser ontvangt en pagina-inhoud, bestanden of antwoorden van applicaties terugstuurt. Apache kan eenvoudige pagina’s in HTML aanbieden, samen met PHP websites op basis van WordPress bedienen en verkeer doorsturen naar andere applicaties. Apache is geen domeinnaam of hostingdienst, maar een van de programma’s die op een hostingserver kunnen draaien.
Waarvoor dient Apache en hoe werkt het?
Een webserver is een programma dat de communicatie via HTTP of HTTPS afhandelt: de protocollen waarmee webpagina’s worden verstuurd. Het woord ‘server’ kan ook een computer aanduiden, maar Apache is software, geen apparaat. Het project Apache HTTP Server wordt ontwikkeld binnen de Apache Software Foundation en heeft een open broncode.
Wanneer je een webadres in je browser invoert, helpt het DNS-systeem het serveradres voor die domeinnaam te vinden. Vervolgens maakt de browser verbinding met de server en verstuurt een verzoek, bijvoorbeeld om de homepage op te halen. Apache herkent de website en het pad, past de configuratieregels toe en stuurt daarna een antwoord terug.
Hoe dat antwoord tot stand komt, hangt af van wat er wordt opgevraagd:
- Een statisch bestand, zoals een afbeelding of een document in HTML, kan Apache van de schijf lezen en rechtstreeks versturen.
- Een dynamische pagina, zoals een bericht in WordPress, vereist dat applicatiecode wordt uitgevoerd. Apache werkt dan samen met het systeem dat PHP uitvoert, waarna het resultaat naar de browser wordt gestuurd.
- Een verzoek aan een afzonderlijke applicatie kan worden doorgestuurd. Apache werkt dan als reverse proxy: een tussenstation tussen de bezoeker en een andere applicatieserver.
Apache stuurt ook statuscodes voor HTTP terug, zoals 404 wanneer de opgevraagde inhoud niet is gevonden. De foutcode op zichzelf zegt echter niet wat de oorzaak is: het antwoord kan ook afkomstig zijn van de applicatie die achter Apache draait.
Apache, domeinnaam, hosting en PHP — verschillende taken
Een domeinnaam is de naam die in het adres van een website wordt gebruikt. Hosting levert de middelen die nodig zijn om die website te laten draaien. Apache handelt het webverkeer op die infrastructuur af. PHP is een programmeertaal en een omgeving die code uitvoert, terwijl een database de informatie bewaart die de applicatie gebruikt.
Een webshop op basis van WordPress kan bijvoorbeeld gebruikmaken van de domeinnaam winkel.example, een hostingaccount, Apache, PHP en een MariaDB-database. De browser vraagt een productpagina op, Apache stuurt het verzoek door voor verwerking door PHP en WordPress haalt de productgegevens uit de database. De browser ontvangt de gegenereerde HTML, niet de code in PHP of de rechtstreekse inhoud van de database.
Deze onderdelen zijn niet onlosmakelijk met elkaar verbonden. WordPress kan ook met een andere webserver werken, en Apache kan een gewone pagina in HTML aanbieden zonder PHP of database. De mededeling ‘de hosting ondersteunt Apache’ beschrijft dus nog niet de volledige omgeving die een bepaalde website nodig heeft.
De belangrijkste mogelijkheden van Apache
Apache kan meerdere websites op één machine bedienen dankzij de configuratie VirtualHost. Die legt de instellingen voor een specifieke website vast, waaronder de domeinnaam, de map met bestanden en de locatie van de logbestanden. Alleen een domeinnaam registreren levert die configuratie niet op. Bij hosting maakt het beheerpaneel die meestal aan zodra je de domeinnaam toevoegt.
Modules breiden de functies van de server uit. Zo kun je met mod_rewrite adressen herschrijven en verzoeken volgens regels doorsturen. mod_ssl biedt ondersteuning voor TLS, de versleuteling die HTTPS gebruikt. Om HTTPS in te schakelen, zijn ook een correcte configuratie en een certificaat voor de domeinnaam nodig.
Apache schrijft logbestanden. Het toegangslog registreert afgehandelde verzoeken, terwijl het foutenlog helpt om problemen met de configuratie en de werking van de server op te sporen. Bij een storing op de website zijn logbestanden meestal nuttiger dan alleen de melding die in de browser verschijnt.
Wat is het bestand .htaccess en wanneer gebruik je het?
.htaccess is een bestand waarmee je een deel van de Apache-instellingen voor een bepaalde map en de bijbehorende submappen kunt wijzigen. Dat werkt alleen voor zover de serverbeheerder dit toestaat. Bij gedeelde hosting kun je hiermee soms doorverwijzingen, adresregels of toegangsbeperkingen instellen zonder de hoofdconfiguratie te bewerken.
Een voorbeeld zijn de regels van WordPress die verzoeken voor leesbare berichtadressen doorsturen naar het bestand dat de applicatie afhandelt. Als je die regels verwijdert of verkeerd wijzigt, kan de homepage nog werken terwijl onderliggende pagina’s 404-fouten teruggeven.
Maak vóór het bewerken van .htaccess een kopie van het bestand, voer wijzigingen één voor één door en test verschillende adressen van de website. Een niet-toegestane directive of een syntaxisfout kan een 500-antwoord veroorzaken: een interne serverfout. Als je de hele server beheert, kun je de instellingen meestal beter in de hoofdconfiguratie opnemen. Dat maakt het beheer eenvoudiger en voorkomt dat de server daarnaast bestanden met de naam .htaccess moet uitlezen.
Heb je Apache nodig voor je website?
Bij gedeelde of beheerde hosting installeer je Apache meestal niet zelf. De aanbieder kiest en onderhoudt de webserver; jij configureert de domeinnaam en de applicatie. In de documentatie van de hostingdienst moet staan welke software wordt gebruikt, of die .htaccess ondersteunt en welke directives zijn toegestaan.
Bij een eigen VPS, een virtuele server, kun je zelf verantwoordelijk zijn voor de keuze en het onderhoud van de software. Apache is een logische keuze wanneer je applicatie of je manier van beheer gebruikmaakt van de modules en regels van Apache. Een alternatief is onder meer Nginx, dat bestanden met de naam .htaccess niet uitleest. Bij een migratie moet je de bijbehorende regels daarom overzetten naar de configuratie van Nginx.
Er is geen algemene regel dat een van deze servers altijd sneller is. De configuratie, de applicatie, de cache en de beschikbare middelen spelen allemaal een rol. Controleer voordat je hosting kiest vooral de vereisten van je applicatie en wie verantwoordelijk is voor updates en de configuratie van de webserver.
Zie ook: Wat is 2FA?
