Hoofdindex » Servers » » Een eigen webserver » » Hard- en software » » Software
Webservers en meer
Nodige software om een server te runnen
Een eigen webserver?
Je hebt een webserver nodig om bestanden beschikbaar te maken voor het internet. Het helpt niet dat je bepaalde mappen 'gedeeld' maakt, dit is een windows aangelegenheid. Een web applikatie is totaal gescheiden van windows en gebruikt eigenlijk niets van de instellingen van windows zelf.
-

-

Webservers

Eenvoudige servers zijn: analog-X, Xitami, Sambar (verdwenen), Abyss. Deze servers zijn eenvoudig in te stellen (analog-X en Xitami werken zonder extra configuratie).
  • Apache wordt aangezien als een van de beste servers, maar de configuratie is niet eenvoudig. De instellingen zijn afgeleid van de Unix wereld en dus niet altijd even duidelijk voor iemand die enkel de GUI van Windows kent.

  • Xitami Voor een gewone gebruiker raad ik Xitami aan. Hier zal je informatie aantreffen in verband met het programeren met Powerbasic en Xitami. Dit is de volledige installer van Xitami. Deze server is heel gemakkelijk te configureren en heeft tal van mogelijkheden (helaas geen gzip). De verdere ontwikkeling van de server is helaas gestopt. Er zijn pogingen ondernomen om deze krachtige server nieuw leven in te blazen, het resultaat is echter onvoldoende.

  • De Abyss webserver wordt gerekend tot een van de beste servers van het ogenblik. De multi-hosted versie (X2) ondersteunt virtuele hosts, maar is niet gratis. CGI wordt hier uitgelegd.

  • Sambar was een heel goede server, maar is tegenwoordig uitgegroeid tot een mastodont met enorme mogelijkheden, maar ook met enorme requirements (memory footprint en processor speed). De mogelijkheden van deze webserver zijn nagenoeg onbeperkt, maar daarom is de configuratie niet zo eenvoudig. Sambar bestaat tegenwoordig niet meer, het wordt niet meer bijgewerkt en de website van de maker bestaat niet meer.

  • Analog-X heeft geen configuratiemogelijkheden, en kan dus enkel gebruikt worden in een test-omgeving. Wat ik vooral mis is de mogelijkheid om de webserver op een andere poort te laten luisteren en de virtuele hosts. Als je deze server zou gebruiken met een dynamisch IP, dan moet je meestal je router configureren om de inkomende poort om te zetten naar poort 80.

  • Keyfocus webserver heeft ingebouwde gzip compressie (dit is zijn enige pluspunt, samen met de eenvoudige configuratie). Dit kan heel handig zijn als je een beperkte uploadsnelheid hebt: html bestanden worden gecomprimeerd doorgestuurd, wat een snelheidswinst van 300% kan opleveren. Jpeg en gif bestanden zijn reeds gecomprimeerd, dus deze kunnen niet verder gecomprimeerd worden. De support van KFWS is nihil, het bedrijf heeft gewoon een eenvoudige webserver in elkaar geflanst, de bedoeling is namelijk dat je de andere produkten van de firma zou kopen (en ondertussen wat geld zou verspelen aan de talrijke advertenties op de downloadpagina's). Het heeft mij wel 30 minuten gekost om door de advertenties te waden om aan het programma te geraken. U bent gewaarschuwd.

All-in-one: WAMP

Tegenwoordig werkt men meer met complete pakketten, namelijk:
  • een webserver Apache
  • een database MySQL
  • een scripting-taal PHP
Dit pakket draagt de naam WAMP (Windows, Apache, MySQL, PHP) naar analogie met de in de unix-wereld zeer bekende LAMP (Linux,...). Wat het pakket doet is gewoon de verschillende delen downloaden, meer moet je niet verwachten. Op windows na zijn het allemaal stabiele open-source projecten. (Windows is geen open source en ook niet erg stabiel in vergelijking met linux). Eenmaal de installatie achter de rug blijft er enkel een controlepaneel over waarmee je de verschillende delen kan bijstellen. WAMP wordt vaak gebruikt in een professionele omgeving met gestandardiseerde componenten en is een welkome alternatief op de gesloten systemen van windows (ASP dot NET).

Ik heb een tijdje geëxperimenteerd met WAMP, maar is nu weer afgevoerd. Het voordeel van de WAMP-oplossing is dat je met een relatief gestandardiseerd pakket werkt, waardoor je gemakkelijk een forum kan laten draaien door enkel de benodigde PHP scripts te installeren. De meeste forumsoftwarepakketten zijn in PHP geschreven en gebruiken MySQL als database (uit veiligheidsoverwegingen kan PHP niet direkt gegevens op de harde schijf lezen of schrijven).

Huidige systemen

De software is van Aprelium (Abyss webserver versie X2). Ik ben overgestapt van Xitami omdat het niet meer wordt bijgewerkt. In vergelijking met Abyss heeft Xitami echter talrijke voordelen die het opstarten gemakkelijker maken. Configuratiewijzigingen gebeuren snellerer met Xitami en zelfs scripts kunnen gemakkelijker geschreven worden als ze onder Xitami moeten draaien.

Xitami

Werkt met default-configuraties: Bij het installeren creert Xitami een basisconfiguratie met een default-file. Nadien maak je een configuratiefile aan, die enkel de verschillen bevat ten opzichte van de default (via de web-interface of door de configuratiefile te wijzigen). Dezelfde procedure geldt dan voor de virtuele hosts: opnieuw een configuratiefile voor iedere VHOST file (bevat meestal enkel een andere root-directory, log-file en error message file). De hele struktuur is heel overzichtelijk. Meestal zal je eerst werken met de web-interface om de basisparameters van iedere host in te stellen, dan kan je de configuratiefile manueel bijwerken als dat nodig is. Je hebt altijd een veiligheidsnet: schrap je een parameter, dan val je automatisch terug op de default-waarde.

Xitami laat veel meer mogelijkheden toe wat betreft het runnen van scripts. Input/output kan via gewone bestanden gebeuren, waardoor je een dump kan bekijken mocht er iets mislopen. Omdat de bestanden op een ramdisk opgeslagen kunnen worden (werkgeheugen dat als harde schijf aangesproken wordt) is het tijdsverlies minimaal. Xitami ondersteunt NPH (non parsed headers), zodat je heel creatief te werk kan gaan. Xitami ondersteunt geen GZIP-compressie, maar je kan dit omzeilen door een script te gebruiken dat de output on-the-fly comprimeert. Vergeet niet dat de vetragende faktor van je internet-server de beperkte upload bandbreedte is, niet de snelheid van je server.

De software is volledig gratis en ondersteunt virtuele hosts, is stabiel en bevat weinig bugs. Meer heb je niet nodig om snel en gemakkelijk een volwaardig server op te starten. Een paar van mijn sites draaien trouwens nog altijd onder Xitami.


Abyss

Abyss werkt met één enkele configuratiefile in XML-formaat. Er zijn geen defaults die automatisch overgeërfd worden van de "parent", dus als je iets niet expliciet definieert, dan bestaat het ook niet. Dit maakt het configureren lastiger. Omdat alles in een enkele XML-file zit is het manueel wijzigen van parameters niet gemakkelijk: je bent aangewezen op de web configurator (web interface).

Abyss werkt enkel met pipes. Een pipe kan je aantreffen in het dos environment: dir |sort |more. De output van het DIR-commando dat normaal naar het scherm gaat wordt omgeleid naar het SORT commando (die de output sorteert), en de output van het SORT-commando gaat naar het MORE-commando, dat de output scherm per scherm toont. Pipes zijn echt ingeburgerd in het Unix systeem, maar Windows heeft ze er maar bijgenomen, en het werkt niet altijd perfekt (talrijke features van Unix, MacOS en anderen zijn overgenomen door windows, zonder dat ze altijd goed werken). Het mengen van STDOUT-opdrachten (schrijven naar de pipe) en PRINT (schrijven naar bestanden) loopt faliekant af.

Maar het voordeel van pipes is dat de server de output reeds naar de client kan streamen terwijl de script nog aan het lopen is. Zo krijgt de bezoeker sneller output te zien. De tranfer-encoding is "chunked": in stukjes verstuurd. Van zodra er voldoende data verwerkt is om een data-pakket te vullen, wordt die verstuurd. Dit gebeurt niet enkel bij het verwerken van scripts, maar ook bij normale pagina's omdat die gecomprimeerd (gzip) verstuurd worden. Bij het versturen van normale data die niet on-the-fly gecomprimeerd moet worden (afbeeldingen zijn reeds vooraf gecomprimeerd) is chunked niet nodig.

Enkel de basisversie is gratis, maar van zodra je met vhosts wilt werken ben je aangewezen op de te betalen versie. Deze versie heeft native gzip (ingebakken in de software).

Negatieve punten het versturen van bestanden via pipes (site-bezoekers uploaden hun files) is vrij omslachtig en maakt de server onstabiel. Ofwel ligt de fout aan Abyss die de stream aanmaakt, ofwel aan Windows die de data doorgeeft, ofwel aan de gebruikte programmeertaal (Powerbasic) dat niet overweg kan met pipes. Het programma loopt gewoon vast. Nieuwere versies (zowel Abyss als windows) vertonen dit probleem minder, maar ik kan niet achterhalen wat de oorzaak is.

Abyss is niet in staat een script dat vastgelopen is te killen, het gevolg is dat alle vastgelopen programma's in het geheugen blijven zitten en een reboot noodzakelijk wordt. Dit is echter opgelost in de laatste versie, samen met een paar andere bugs.

Bij de parameters (server configuratie) moet je spelen met de parameters tot je een vlot systeem hebt:

  • Ik heb voor een lage timeout gekozen (10 seconden) zodat afgesloten verbindingen niet onnodig blijven bestaan,
  • een hoge aantal keep-alive requests (50) zodat meerdere pagina's achter elkaar snel gelezen kunnen worden (de verbindingen blijven namelijk 10 seconden bestaan) en
  • 20 simultaneous requests
Heb je een krachtige server met voldoende werkgeheugen, dan kan de timeout verhogen tot 4 minuten en de simultaneous requests tot 50 verhogen. Kies geen te lage simultaneous requests, want dit kan het laden van een deel van de inhoud van een pagina tegenwerken.

Verschillen tussen Xitami en Abyss wat het programmeren betreft (CGI) zal je hier aantreffen.

Publicités - Reklame

-