WORDS
Navigera i webbdjungeln: Servrar
Ordet "server" har många betydelser. I det här inlägget tittar vi på förmedlare, den applikation som lyssnar på en port och vidarebefordrar förfrågningar och svar genom att skicka dom vidare till andra applikationer. Det har funnits många sådana servrar genom tiderna, men år 2019 är det tre som dominerar. Idag har dessa både god prestanda och säkerhet.
Apache
Den öppen källkods-server som gav namn åt Apache Software Foundation.
- Konfiguration. Apache har ett ganska komplext konfigurationsformat, och många moduler som kan aktiveras eller avaktiveras. En stor fördel kan vara
.htaccess
-filerna, som låter en ställa in en del av konfigurationen per mapp. Detta är en funktion som gör att Apache ofta används vid delad webbhosting. - Plattformar. Används oftast på Linux, men fungerar också på både Windows och Mac.
- Serverspråk. Statiska webbplatser och PHP stöds särskilt smidigt. Övriga språk kan stödjas genom en reverse proxy.
Nginx
Nginx, en annan öppen källkods-server, skapades då Apache fortfarande var mycket långsam. Sedan dess har Apache kommit ikapp.
- Konfiguration. Har ett förhållandevis enkelt filformat för konfiguration. Nginx gör det också lite lättare att testa konfigurationen i förväg, då kommandot
sudo nginx -s reload
vägrar ladda om konfigurationen om något fel hittas. Detta i kontrast till både Apache och IIS, där konfigurationsändringar (normalt) slår igenom utan någon extra möjlighet till kontroll. - Plattformar. Används oftast på Linux, men fungerar också på både Windows och Mac.
- Serverspråk. Statiska webbplatser och PHP stöds särskilt smidigt. Övriga språk stöds ganska lätt genom en reverse proxy.
IIS
Microsoft har skapat en server som funkar bra med Microsofts egna plattformar och tekniker.
- Konfiguration. IIS har ett ganska komplext system med bl.a.
Web.config
-filer som kan ställas in på ett otal sätt. Däremot finns ett administrationsgränssnitt (IIS Manager), där man kan sätta många av inställningar. - Plattformar. Endast Windows.
- Serverspråk. Statiska webbplatser och C# stöds särskilt smidigt. PHP stöds via plugin. Övriga språk kan stödjas genom en reverse proxy.
Slutsatser
För C# är IIS på Windows ett bra alternativ, men för alla andra serverspråk rekommenderar jag Nginx på Linux.
Att välja rätt säkerhetsinställningar och ställa in HTTPS kan ofta vara krångligt. Mozilla har skapat en konfigurationsgenerator för Apache, Nginx och några andra servrar.
En nykomling som försöker göra säkerhet enklare är Caddy, en server med HTTPS aktiverat som standard.