BIG UPDATE: Das Rätsel vom störrischen Apache und dem zickigen NGINX ist tatsächlich gelöst. Nach dem umstellen des Error.logs bei Apache auf Debug flüssterte er mir, das er den Zielcomputer net erreicht. Ich habe es dann mal mit der IP unter ProxyPass statt localhost getestet. Und weder der Apache noch NGINX zicken jetzt rum. In beiden Fällen bei allen Request laut FF-Netzwerkanalyse 0-1 ms. Damit kann man also dann doch arbeiten.
Startschwierigkeiten mit FastCgi
- TroaX
- Beiträge: 699
- Registriert: 08.03.2013 14:27
- Computerausstattung: PC: Ryzen 9 3950X, 96 GB RAM, RX6800XT, 2.5 TB SSD, 21:9 Display, Linux Mint | Lappi: Ryzen 7 5800H, 16 GB RAM, 1 TB SSD, Linux Mint
- Wohnort: NRW
- Kontaktdaten:
Re: Startschwierigkeiten mit FastCgi
Sooo ich habe eben mal einen Test mit NGINX gemacht und die FastCGI-Geschichte hat noch echt penetrante Bugs. Aber erst einmal zur Beruhigung. Das Delay von einer Sekunde gibt es bei NGINX nicht. Wenn der Request durchgeht, zeigt mir die Netzwerkanalyse zwischen 1 und 4 ms an. Das nenne ich mal einen Unterschied. Blöd nur, das über NGINX leider nur genau jeder zweite Request durchgeht. Bei den anderen Request bekommt der Browser keine Antwort von NGINX. Im Accesslog von NGINX steht der Statuscode 499, weil man die Requests abbrechen muss. Die laden nämlich ewig. Das ganze FastCGI-Gedöhns ist aktuell also nicht brauchbar. Es bleibt also abzuwarten, ob bis zur Releaseversion das ganze vernünftig läuft.
BIG UPDATE: Das Rätsel vom störrischen Apache und dem zickigen NGINX ist tatsächlich gelöst. Nach dem umstellen des Error.logs bei Apache auf Debug flüssterte er mir, das er den Zielcomputer net erreicht. Ich habe es dann mal mit der IP unter ProxyPass statt localhost getestet. Und weder der Apache noch NGINX zicken jetzt rum. In beiden Fällen bei allen Request laut FF-Netzwerkanalyse 0-1 ms. Damit kann man also dann doch arbeiten.
BIG UPDATE: Das Rätsel vom störrischen Apache und dem zickigen NGINX ist tatsächlich gelöst. Nach dem umstellen des Error.logs bei Apache auf Debug flüssterte er mir, das er den Zielcomputer net erreicht. Ich habe es dann mal mit der IP unter ProxyPass statt localhost getestet. Und weder der Apache noch NGINX zicken jetzt rum. In beiden Fällen bei allen Request laut FF-Netzwerkanalyse 0-1 ms. Damit kann man also dann doch arbeiten.
PC: Ryzen 9 3950X | 96 GB RAM | RX6800XT | 2,5 TB NVMe | Linux Mint
Notebook: 16" 3:2 | Ryzen 7 5800H | 16 GB RAM | Radeon Vega | 1TB NVMe | Linux Mint
NAS: N150 Mini-PC | 16 GB RAM | Debian 13+CasaOS
Coding: Purebasic, Spiderbasic, GDevelop, PHP
Blog: https://techtroax.de
Repos: https://codeberg.org/TroaX
Notebook: 16" 3:2 | Ryzen 7 5800H | 16 GB RAM | Radeon Vega | 1TB NVMe | Linux Mint
NAS: N150 Mini-PC | 16 GB RAM | Debian 13+CasaOS
Coding: Purebasic, Spiderbasic, GDevelop, PHP
Blog: https://techtroax.de
Repos: https://codeberg.org/TroaX
Re: Startschwierigkeiten mit FastCgi
finde ich auch.TroaX hat geschrieben:Damit kann man also dann doch arbeiten.
Meine Ergebnisse:
CGI: ~ 14ms
FastCGI: ~ 2ms
Gute Arbeit, Sherlock!
Danke & Grüße ... Peter
a²+b²=mc²
- TroaX
- Beiträge: 699
- Registriert: 08.03.2013 14:27
- Computerausstattung: PC: Ryzen 9 3950X, 96 GB RAM, RX6800XT, 2.5 TB SSD, 21:9 Display, Linux Mint | Lappi: Ryzen 7 5800H, 16 GB RAM, 1 TB SSD, Linux Mint
- Wohnort: NRW
- Kontaktdaten:
Re: Startschwierigkeiten mit FastCgi
Das mit den POST und GET-Daten muss ich jetzt nur noch herausfummeln. Das sollte aber kein Thema sein. Bleibt aber noch die Frage nach dem Multithreading. Und tatsächlich ist auch das kein Problem. Man kann mehrere Threads erstellen und alle können die gleiche Art von Schleife abarbeiten. Und dadurch, das die Prozeduren ja private sind, sollte es auch da keine Probleme mit dem ganzen geben. Einzig für z.B. globale Datenbankverbindung müsste man etwas tricksen, da man die durchaus auch global definieren kann. Aber vom einfachen Grundsatz her kann man es so machen:
Eine weitere Möglichkeit wäre es auch, das ganze einfach den Webserver machen zu lassen. Und zwar durch den Loadbalancer. Man kann den Server ja mit unterschiedlichen Netzwerkports laufen lassen und die dem Webserver als target für das Loadbalancing angeben. Der Webserver verteilt dann die Request auf die einzelnen Instanzen.
Code: Alles auswählen
OpenConsole()
Procedure WriteCGIConstant(Constant$)
WriteCGIString(Constant$ + ": " + CGIVariable(Constant$)+"<br>")
EndProcedure
If Not InitCGI()
End
EndIf
If Not InitFastCGI(5600) ; Create the FastCGI program on port 5600
End
EndIf
Procedure goon()
While WaitFastCGIRequest()
PrintN("Incomming Request!")
If ReadCGI()
WriteCGIHeader(#PB_CGI_HeaderContentType, "text/html", #PB_CGI_LastHeader) ; Write the headers to inform the browser of the content format
WriteCGIString("<html><title>PureBasic CGI</title><body>")
WriteCGIConstant(#PB_CGI_AuthType)
WriteCGIConstant(#PB_CGI_ContentLength)
WriteCGIConstant(#PB_CGI_HeaderContentType)
WriteCGIConstant(#PB_CGI_DocumentRoot)
WriteCGIConstant(#PB_CGI_GatewayInterface)
WriteCGIConstant(#PB_CGI_PathInfo)
WriteCGIConstant(#PB_CGI_PathTranslated)
WriteCGIConstant(#PB_CGI_QueryString)
WriteCGIConstant(#PB_CGI_RemoteAddr)
WriteCGIConstant(#PB_CGI_RemoteHost)
WriteCGIConstant(#PB_CGI_RemoteIdent)
WriteCGIConstant(#PB_CGI_RemotePort)
WriteCGIConstant(#PB_CGI_RemoteUser)
WriteCGIConstant(#PB_CGI_RequestURI)
WriteCGIConstant(#PB_CGI_RequestMethod)
WriteCGIConstant(#PB_CGI_ScriptName)
WriteCGIConstant(#PB_CGI_ScriptFilename)
WriteCGIConstant(#PB_CGI_ServerAdmin)
WriteCGIConstant(#PB_CGI_ServerName)
WriteCGIConstant(#PB_CGI_ServerPort)
WriteCGIConstant(#PB_CGI_ServerProtocol)
WriteCGIConstant(#PB_CGI_ServerSignature)
WriteCGIConstant(#PB_CGI_ServerSoftware)
WriteCGIConstant(#PB_CGI_HttpAccept)
WriteCGIConstant(#PB_CGI_HttpAcceptEncoding)
WriteCGIConstant(#PB_CGI_HttpAcceptLanguage)
WriteCGIConstant(#PB_CGI_HttpCookie)
WriteCGIConstant(#PB_CGI_HttpForwarded)
WriteCGIConstant(#PB_CGI_HttpHost)
WriteCGIConstant(#PB_CGI_HttpPragma)
WriteCGIConstant(#PB_CGI_HttpReferer)
WriteCGIConstant(#PB_CGI_HttpUserAgent)
WriteCGIString("</body></html>")
EndIf
FinishFastCGIRequest()
PrintN("Request Finished!")
Wend
EndProcedure
th1 = CreateThread(@goon(),0)
th2 = CreateThread(@goon(),0)
th3 = CreateThread(@goon(),0)
th4 = CreateThread(@goon(),0)
WaitThread(th4)PC: Ryzen 9 3950X | 96 GB RAM | RX6800XT | 2,5 TB NVMe | Linux Mint
Notebook: 16" 3:2 | Ryzen 7 5800H | 16 GB RAM | Radeon Vega | 1TB NVMe | Linux Mint
NAS: N150 Mini-PC | 16 GB RAM | Debian 13+CasaOS
Coding: Purebasic, Spiderbasic, GDevelop, PHP
Blog: https://techtroax.de
Repos: https://codeberg.org/TroaX
Notebook: 16" 3:2 | Ryzen 7 5800H | 16 GB RAM | Radeon Vega | 1TB NVMe | Linux Mint
NAS: N150 Mini-PC | 16 GB RAM | Debian 13+CasaOS
Coding: Purebasic, Spiderbasic, GDevelop, PHP
Blog: https://techtroax.de
Repos: https://codeberg.org/TroaX
- HeX0R
- Beiträge: 3056
- Registriert: 10.09.2004 09:59
- Computerausstattung: AMD Ryzen 7 5800X
96Gig Ram
NVIDIA GEFORCE RTX 3060TI/8Gig
Win11 64Bit
G19 Tastatur
2x 24" + 1x27" Monitore
Glorious O Wireless Maus
PB 3.x-PB 6.x
Oculus Quest 2 + 3 - Kontaktdaten:
Re: Startschwierigkeiten mit FastCgi
Vergiss nie einer Thread-Prozedur noch den obligatorischen Parameter mitzugeben.
Sonst verknisknaddelst Du Dir über kurz oder lang den Stack und es kracht.
Sonst verknisknaddelst Du Dir über kurz oder lang den Stack und es kracht.
{Home}.:|:.{Codes}.:|:.{Downloads}.:|:.{History Viewer Online}.:|:.{Bier spendieren}
Re: Startschwierigkeiten mit FastCgi
Noch ein Verständnisproblem:
Kann man einen laufenden FastCGI-Server auch direkt ansprechen? Oder bedarf es immer eines Webservers über den dann die Anfrage an FastCGI weitergeleitet wird?
Danke & Grüße ... Peter
Kann man einen laufenden FastCGI-Server auch direkt ansprechen? Oder bedarf es immer eines Webservers über den dann die Anfrage an FastCGI weitergeleitet wird?
Danke & Grüße ... Peter
a²+b²=mc²
- TroaX
- Beiträge: 699
- Registriert: 08.03.2013 14:27
- Computerausstattung: PC: Ryzen 9 3950X, 96 GB RAM, RX6800XT, 2.5 TB SSD, 21:9 Display, Linux Mint | Lappi: Ryzen 7 5800H, 16 GB RAM, 1 TB SSD, Linux Mint
- Wohnort: NRW
- Kontaktdaten:
Re: Startschwierigkeiten mit FastCgi
Wenn die anfragende Anwendung das fastCGI Protokoll implementiert hat, geht das. PureBasic hingegen hat allerdings keine Libs für einen FastCGI Client, soweit ich das gesehen habe.
PC: Ryzen 9 3950X | 96 GB RAM | RX6800XT | 2,5 TB NVMe | Linux Mint
Notebook: 16" 3:2 | Ryzen 7 5800H | 16 GB RAM | Radeon Vega | 1TB NVMe | Linux Mint
NAS: N150 Mini-PC | 16 GB RAM | Debian 13+CasaOS
Coding: Purebasic, Spiderbasic, GDevelop, PHP
Blog: https://techtroax.de
Repos: https://codeberg.org/TroaX
Notebook: 16" 3:2 | Ryzen 7 5800H | 16 GB RAM | Radeon Vega | 1TB NVMe | Linux Mint
NAS: N150 Mini-PC | 16 GB RAM | Debian 13+CasaOS
Coding: Purebasic, Spiderbasic, GDevelop, PHP
Blog: https://techtroax.de
Repos: https://codeberg.org/TroaX
Re: Startschwierigkeiten mit FastCgi
Hat schon jemand fastCGI mit einem Microsoft IIS Server zum laufen bekommen?
Hab zumindest schon herausgefunden, dass man als erstes die Programm Parameter
auswerten muss, über die man den Port mitgeteilt bekommt.
Leider passiert dann bei WaitFastCGIRequest() nix... Ist das nicht IIS kompatibel?
Hab zumindest schon herausgefunden, dass man als erstes die Programm Parameter
auswerten muss, über die man den Port mitgeteilt bekommt.
Leider passiert dann bei WaitFastCGIRequest() nix... Ist das nicht IIS kompatibel?
"Papa, ich laufe schneller - dann ist es nicht so weit."
- TroaX
- Beiträge: 699
- Registriert: 08.03.2013 14:27
- Computerausstattung: PC: Ryzen 9 3950X, 96 GB RAM, RX6800XT, 2.5 TB SSD, 21:9 Display, Linux Mint | Lappi: Ryzen 7 5800H, 16 GB RAM, 1 TB SSD, Linux Mint
- Wohnort: NRW
- Kontaktdaten:
Re: Startschwierigkeiten mit FastCgi
Hmmm gute Frage. Ich persönlich ziehe auf Windows Nginx vor. Gibt es Fehler in den Logs?
PC: Ryzen 9 3950X | 96 GB RAM | RX6800XT | 2,5 TB NVMe | Linux Mint
Notebook: 16" 3:2 | Ryzen 7 5800H | 16 GB RAM | Radeon Vega | 1TB NVMe | Linux Mint
NAS: N150 Mini-PC | 16 GB RAM | Debian 13+CasaOS
Coding: Purebasic, Spiderbasic, GDevelop, PHP
Blog: https://techtroax.de
Repos: https://codeberg.org/TroaX
Notebook: 16" 3:2 | Ryzen 7 5800H | 16 GB RAM | Radeon Vega | 1TB NVMe | Linux Mint
NAS: N150 Mini-PC | 16 GB RAM | Debian 13+CasaOS
Coding: Purebasic, Spiderbasic, GDevelop, PHP
Blog: https://techtroax.de
Repos: https://codeberg.org/TroaX
Re: Startschwierigkeiten mit FastCgi
Danke für die Info! Dachte schon, ich hätte da was übersehen.TroaX hat geschrieben:Wenn die anfragende Anwendung das fastCGI Protokoll implementiert hat, geht das. PureBasic hingegen hat allerdings keine Libs für einen FastCGI Client, soweit ich das gesehen habe.
nee, da stehe ich wie'n Ochs vorm Berg.dige hat geschrieben:Hat schon jemand fastCGI mit einem Microsoft IIS Server zum laufen bekommen?
Grüße ... Peter
a²+b²=mc²