Age | Commit message (Collapse) | Author | |
---|---|---|---|
2021-09-26 | fastcgi completely asynchronous | Omar Polo | |
This changes the fastcgi implementation from a blocking I/O to an async implementation on top of libevent' bufferevents. Should improve the responsiveness of gmid especially when using remote fastcgi applications. | |||
2021-07-06 | fmt | Omar Polo | |
2021-07-06 | gracefully shut down fastcgi backends | Omar Polo | |
we need to delete the events associated with the backends, otherwise the server process won't ever quit. Here, we add a pending counter to every backend and shut down immediately if they aren't handling any client; otherwise we try to close them as soon as possible (i.e. when they close the connection to the last connected client.) | |||
2021-06-12 | indentation | Omar Polo | |
2021-06-11 | more params from and send a custom list | Omar Polo | |
2021-05-15 | define and use GMID_VERSION | Omar Polo | |
2021-05-15 | define some more fcgi param | Omar Polo | |
2021-05-09 | fastcgi: a first implementation | Omar Polo | |
Not production-ready yet, but it's a start. This adds a third ``backend'' for gmid: until now there it served local files or CGI scripts, now FastCGI applications too. FastCGI is meant to be an improvement over CGI: instead of exec'ing a script for every request, it allows to open a single connection to an ``application'' and send the requests/receive the responses over that socket using a simple binary protocol. At the moment gmid supports three different methods of opening a fastcgi connection: - local unix sockets, with: fastcgi "/path/to/sock" - network sockets, with: fastcgi tcp "host" [port] port defaults to 9000 and can be either a string or a number - subprocess, with: fastcgi spawn "/path/to/program" the fastcgi protocol is done over the executed program stdin of these, the last is only for testing and may be removed in the future. P.S.: the fastcgi rule is per-location of course :) |