Apache vs nginx: de verschillen en hoe u config vertaalt

Apache vs nginx

Apache vs nginx: processen, .htaccess en config vertalen | We.Inc

Apache en nginx vergeleken op hoe ze verbindingen afhandelen, .htaccess per map tegenover centrale config, herladen en proxying, met een vertaler voor gangbare rewrite-regels.

Beide zijn volwassen open source webservers. Apache laadt modules in een keuze uit procesmodellen (prefork, worker of event) en laat elke map instellingen overschrijven met .htaccess-bestanden. nginx draait één masterproces en een paar event-gedreven workers, leest alleen zijn centrale config en wordt vaak als reverse proxy voor applicatieservers geplaatst.

Apache en nginx naast elkaar

De keuze tussen beide gaat vooral over waar de configuratie staat en wie die mag wijzigen. Deze pagina slaat benchmarkclaims over, die volledig afhangen van de workload en de tuning, en richt zich op de verschillen die u tegenkomt bij het draaien van een site: hoe elke server verbindingen afhandelt, waarom .htaccess bestaat en hoe de rewrite-regels die u al hebt zich vertalen. Gebruik de vertaler om de nginx-versie van een bekende Apache-regel te zien.

Veelgestelde vragen

Is nginx sneller dan Apache?

Dat hangt af van de taak en de tuning, dus wees voorzichtig met één enkel getal. De event-gedreven workers van nginx zijn ontworpen om veel inactieve verbindingen goedkoop open te houden. De event-MPM van Apache heeft dat verschil verkleind door ook thread-safe polling te gebruiken. Meet uw eigen workload voordat u alleen voor snelheid overstapt.

Ondersteunt nginx .htaccess-bestanden?

Nee. nginx heeft geen override-bestanden per map, dus regels uit een .htaccess moeten naar de serverconfiguratie worden verplaatst, waarna nginx wordt herladen. Dat is een bewuste afweging: geen bestandscontroles bij elk verzoek, maar alleen mensen met toegang tot de hoofdconfig kunnen regels wijzigen.

Kan ik .htaccess automatisch omzetten naar nginx?

Eenvoudige redirects en fallbacks vertalen netjes, zoals de vertaler op deze pagina laat zien. Lange ketens van RewriteCond met flags zoals [P] of omgevingsvariabelen moeten door een mens worden gelezen, omdat nginx dezelfde bedoeling met andere bouwstenen uitdrukt.

Welke kies ik voor een WordPress- of PHP-site?

Als uw host u alleen bestandstoegang geeft, is Apache met .htaccess de enige manier om regels te wijzigen. Op een server die u beheert, werken beide met PHP-FPM; in nginx schrijft u de fallback voor nette URL's één keer met try_files in het server-blok.

Hoe herlaad ik de config zonder verbindingen te verbreken?

Voor nginx voert u nginx -s reload uit: de master controleert de nieuwe config, start nieuwe workers en vraagt de oude om netjes af te ronden. Voor Apache doet apachectl graceful hetzelfde voor zijn childprocessen.

Procesmodellen in gewone taal

Waarom .htaccess ertoe doet

Dezelfde site in beide servers

Apache virtual host

Statische bestanden uit één map plus een SPA-fallback, ingesteld in de vhost zodat er geen .htaccess nodig is.

nginx server-blok

Hetzelfde gedrag: rootmap, try_files-fallback en een eigen foutpagina.

HTTPS afdwingen

Apache test de HTTPS-flag; nginx gebruikt een aparte server op poort 80 die alleen doorstuurt.

Kaal domein naar www sturen

De nginx-documentatie raadt een apart server-blok met return aan in plaats van een if op de host.

Fallback voor single-page apps

Serveer echte bestanden als ze bestaan en index.html voor elk ander pad.

Eén oude pagina doorsturen

Redirect van mod_alias heeft geen rewrite-engine nodig; nginx matcht het exacte pad met location =.

Eigen 404-pagina

Beide wijzen de fout naar een pagina op dezelfde site.

/api doorsturen naar een app-server

Apache heeft mod_proxy en mod_proxy_http geladen nodig, met overeenkomende afsluitende slashes in beide argumenten; proxying is in nginx ingebouwd.

Verborgen bestanden zoals .git blokkeren

Voorkomt dat bestanden waarvan de naam met een punt begint, worden geserveerd.

Een beveiligingsheader toevoegen

Met always voegen beide servers de header ook toe aan foutresponses, niet alleen aan geslaagde.

Taken filteren

https, proxy, 404...

Apache (.htaccess of virtual host)

nginx (server-blok)

Geen taak komt overeen met dit filter.

Gratis beginnen · Geen creditcard nodig

Gerelateerd: Gidsen

Product

Voor wie

Functies

Bronnen

Bedrijf

Sitemap