Multithreaded Webserver Modul HTTP & HTTPS

Hier könnt Ihr gute, von Euch geschriebene Codes posten. Sie müssen auf jeden Fall funktionieren und sollten möglichst effizient, elegant und beispielhaft oder einfach nur cool sein.
Benutzeravatar
Ground0
Beiträge: 318
Registriert: 05.02.2005 02:09
Wohnort: Stilli, Schweiz
Kontaktdaten:

Multithreaded Webserver Modul HTTP & HTTPS

Beitrag von Ground0 »

Hallo zusammen.

Das ist ein Webserver der in jedes Programm Inkludiert werden kann um z.B. als Servermodul für eine SpiderBasic App zu fungieren.

Um die HTTPS funktionen (ltls.pbi) nutzen zu können wird das libressl libtls.so Library benötigt im Verzeichnis. Oder Pfad anpassen für die im System vorhandene library.
Ich habe die libressl v3.2.2 verwendet zum Testen.

Habe jetzt einfach mal eine Riesenfreude gehabt dass die beispiele funktionieren.

Derzeit wird es in einem Konfigurationsportal für Servercluster verwendet. (Wird wohl ebenfalls Öffentlich vorgestellt wenn Kunden hinweise aus dem Code entfernt wurden)
Das Monitoring Tool setzt auf einer sehr frühen Variante davon auf, resp. es wurde aus diesem Programm herausgelöst und als Modul "lweb" umgewandelt.

Die Dokumentation der Öffentlichen Prozeduren sind im README.md. Fehler und Schreibfehler nur zu Korrigieren :-)

Lizenz ist derzeit LGPL (Kann gerne derzeit noch angepasst werden da nur ich Mitgewirkt habe ...)
Einfach schreiben oder Pullrequest oder Issue verfassen mit Begründung usw. kann Natürlich auch eine Mehrfachlizenzierung sein.

Der Code, Beschreibung und Beispiel ist hier zu finden:

https://gitea.lihaso.com/PB_Includes/lweb

Funktionsvielfalt bisher:
  • * Multithreaded
    * Dynamische Subverzeichnishandler, (Rest Schnittstelle o.ä. /:-> )
    * lsocket.pbi Linux Socket funktionen.
    * ltls.pbi Linux libtls.so funktionen.
    * Ein verbugter Filecache zereist so spätestens nach dem 2ten Aufruf das Memory... >_< ... wenn da jemand ideen hat ... nur zu
Mal einen einfachen PHP Filehandle eingebaut (Sicher ist nur eins dass es so nicht sicher ist, aber funktioniert... )

Ist bei einer SpiderBasic App Schneller wie mein Lokaler Apache-event Server (450 - 500ms lweb, 670-980ms Apache-Event ... :lurk: )

Getestet wurde es bisher nur auf Linux kann aber mit ein paar kleinen anpassungen sicher auch auf Windows und oder MacOS Portiert werden.

Endlich das Teil in der Signatur mal weitergebaut und für Veröffentlicht. Da ist noch viel zu tun aber ... ich möchte auch mal etwas Feedback hören :mrgreen:

Gruss Ground0
lmon Monitoring Service inkl. Clients
lweb Multi-Threaded Webserver
lbup-server Backup Server applikation
lmanager ERP Applikation.
Benubi
Beiträge: 186
Registriert: 22.10.2004 17:51
Wohnort: Berlin, Wedding

Re: Multithreaded Webserver Modul HTTP & HTTPS

Beitrag von Benubi »

Cool!

Habe zwar nicht Linux aber ich schaue gerade durch deinen Source. Für mein eigenes Projekt auch sehr inspirierend! :allright:

Oh, und meine Bugs sind Legion. Selbstverständlich auch manchmal beim Cache :lol:
Benutzeravatar
Ground0
Beiträge: 318
Registriert: 05.02.2005 02:09
Wohnort: Stilli, Schweiz
Kontaktdaten:

Re: Multithreaded Webserver Modul HTTP & HTTPS

Beitrag von Ground0 »

So hat wieder einiges an Updates gegeben.

Unter anderem werden nun die Zugriffe geloggt sowie vieeeeles mehr.

Das Cache Problem ist immer noch vorhanden :-( für Tipps und Tricks/ Fehlersuche dahingehend bin ich dankbar :-)

Nächste Ziele ist das ganze endgültig als Service verfügbar zu machen (lhttp.pb) quasi lhttp webserver :-)

Gruss Ground0
lmon Monitoring Service inkl. Clients
lweb Multi-Threaded Webserver
lbup-server Backup Server applikation
lmanager ERP Applikation.
Benutzeravatar
Ground0
Beiträge: 318
Registriert: 05.02.2005 02:09
Wohnort: Stilli, Schweiz
Kontaktdaten:

Re: Multithreaded Webserver Modul HTTP & HTTPS

Beitrag von Ground0 »

Der Dedizierte Webserver (lhttpd) funktioniert nun soweit.

https://gitea.lihaso.com/PB_Includes/lweb/releases

Einiges wurde mehr konfigurierbar gemacht und die createini.pb angepasst dass man es ausführen könnte mit manueller Kopie des Kompilates nach /opt/lhttpd/lhttpd

Zertifikate können standard genommen werden (Bei mir nutze ich Letsencrypt Zertifikate.)
lmon Monitoring Service inkl. Clients
lweb Multi-Threaded Webserver
lbup-server Backup Server applikation
lmanager ERP Applikation.
Antworten