>>140,140-144
Finally, another cheap optimization to make up for the fact that SchemeBBS isn't a ``highly scalable concurrent webapp'' and that it is a running on a $3.99/month VPS: posting and processing the markup shouldn't block readers, so why not launching two images of SchemeBBS? Some more Nginx ninjutsu to the rescue:
http {
upstream http_backend_GET {
keepalive 20;
server 127.0.0.1:8080;
}
upstream http_backend_POST {
keepalive 20;
server 127.0.0.1:8081;
}
server {
location @schemebbs {
[...]
#backend for POST and GET
proxy_pass http://http_backend_$request_method;
}
}
}
Then you simply run two instances of SchemeBBS one listening on port 8080 and the other one on port 8081. As an added benefit you get a basic admin interface with a DEFCON kill switch enabling the sysop to turn the board in read only mode! You just have to kill the POST backend and quickly implement BOPM blacklist, bayesian spam filtering and ban management. I've heard Lisp is good for this kind of things!