fcgipoold
This package is a fcgi-multiplexer that maintains a pool of fcgi worker processes while exposing a single fcgi interface. This kinda similar to apache's fcgid module or php-fpm and can be used e.g. with nginx. This is the missing link between a webserver and processes that implement the fcgi protocol.
Getting started
While being in the root dir of this repository run go build cmd/pool/poold.go and go build cmd/client/client.go to have the binaries in this directory and then run the poold process with ./poold -c ./client -n 10 -s 8000 -r 50. You should have a webserver running that forwards the incoming http requests via fcgi to a different process. See below for a nginx configuration. The next step assumes that you have nginx setup with the configuration below.
To test that everything is setup properly and runs fine run curl http://localhost and curl -X POST http://localhost. That should output Hello from FCGI child and Hello from FCGI child via POST respectively.
example nginx configuration
server {
listen 80;
server_name localhost;
location / {
fastcgi_param SERVER_PROTOCOL $server_protocol;
fastcgi_param REQUEST_METHOD $request_method;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_pass 127.0.0.1:9000;
}
}
Limitiations & Status
This is a experimental POC and at this point in time only simple HTTP GET and POST Requests are supported. Feel free to contribute.

Formed in 2009, the Archive Team (not to be confused with the archive.org Archive-It Team) is a rogue archivist collective dedicated to saving copies of rapidly dying or deleted websites for the sake of history and digital heritage. The group is 100% composed of volunteers and interested parties, and has expanded into a large amount of related projects for saving online and digital history.
