Results 1 to 4 of 4

Thread: FastCGI applicatie maken in Delphi

  1. #1
    Stijn Sanders develyoy's Avatar
    Join Date
    Jun 2008
    Location
    GentBrugge, Belgi?
    Posts
    1,003

    FastCGI applicatie maken in Delphi

    Ik had hier en daar gelezen dat FastCGI werd gebruikt om websites te draaien die best wel veel te verwerken krijgen, om de performantie te verhogen.

    Als ik het goed begrijp, gaat het vooral over een nieuwe manier om met de HTTP server te binden. (Nu ja nieuw, het is in 1996 opgestart dacht ik). Als vroeger bijna iedereen PHP.EXE over CGI gebruikte, kan ik er in komen dat dat daar een verbetering is.

    Te meer omdat ik al een ISAPI extension en Apache module heb draaien, lijkt het me zeker dat het stukje performantie die je kan winnen door een dun laagje over CGI te bouwen, klein moet zijn en maar opvalt als je heel veel werk over de server stuurt.

    Toch ben ik gewonnen omdat het een open, onafhankelijke en straight-forward interface is met gelijk welke HTTP server (IIS, Apache, lighttpd en er zijn er nog andere die het aankunnen). En dan nog eens omdat ik al op zoek was naar een manier om toch een CGI handler te kunnen maken, maar dan toch vanuit een lang draaiend proces (om de session-data in memory te kunnen houden), maar da's een ander verhaal.

    Nu, ik heb Apache 2.2 draaien, met mod_fastcgi.dll van de website en dit in de httpd.conf:

    Code:
    LoadModule fastcgi_module modules/mod_fastcgi.dll
    FastCgiExternalServer C:\\test\\FastCGI\\dfctest.exe -socket dfctest
    <Location /dftest>
    	SetHandler fastcgi-script
    </Location>
    Maar op alles wat met "http://localhost:8080/dftest/" begint krijg ik een 404. En ook zie ik met ProcessExplorer dat httpd.exe de Named Pipe "\\.\pipe\FastCGI\dftest" heeft staan! Moet mijn proces die niet definieren en op luisteren?

  2. #2
    Stijn Sanders develyoy's Avatar
    Join Date
    Jun 2008
    Location
    GentBrugge, Belgi?
    Posts
    1,003
    Ik dacht, als hier staat dat je moet koppelen met php-cgi.exe, en dt is open source, moet ik het daar toch kunnen opzoeken?
    Ik ken mijn weg niet goed in de sourcecode van PHP, dus na wat zoeken lijkt het dat php-cgi.exe het pipe-pad binnenkrijgt via een "--bindpath" of een "-b" command line parameter, kan dat kloppen?
    https://github.com/php/php-src/blob/...i_main.c#L1949

  3. #3
    mov rax,marcov; push rax marcov's Avatar
    Join Date
    Apr 2004
    Location
    Ehv, Nl
    Posts
    10,234
    Vziw fastcgi is alleen fast tov oude CGI. Standaard/oude cgi start iedere keer de CGI (script/exe) op voor iedere request.

    Fastcgi laat het CGI permanent "aan" staan en piped de nieuwe requests erin.

    Als je alle een oplossing hebt die de services permanent "aan" laat, is daar denk ik niet veel te winnen.

  4. #4
    Stijn Sanders develyoy's Avatar
    Join Date
    Jun 2008
    Location
    GentBrugge, Belgi?
    Posts
    1,003
    Ha, ja dat weet ik. Dat heb ik met xxmCGI opgelost met een named pipe, xxmCGI.exe is iets van 90KB (met de juiste compiler settings), dus die starten gaat super snel, en xxmHost die aan de andere kant van de named pipe zit, blijft lekker warm draaien en kan normaal snel antwoorden.

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •