> I need to be able to serve static content as well as dynamic content
> generated through PicoLisp.
I have tried several different configurations.
You can serve everything with picolisp, either the way Alex suggested or
you can have a look at http://logand.com/picoWiki/rewriteUrl how to
completely control the format of your urls inside your picolisp app.
Only a small 'patch'-ing is necessary. Even though I do not serve all
content by picolisp in the end, I still use variations on the rewriteUrl
in my apps running behind nginx.
> I saw that Tomas had managed to separate the concerns here:
> through the use of Nginx for static content and the pico server for
> the rest.
> How did you go about setting it up? That post is not exactly chock
> full of details :)
I end up having nginx on port 80 with static content served directly by
nginx and dynamic content proxied to picolisp. You can specify rewrite
rules in nginx to match urls depending on static or dynamic content.
You can configure proxies to your picolisp servers and then you don't
really need httpGate if your trafic goes through nginx on port 80. The
only thing to keep in mind is that nginx does not keep connections open
(http1.1 only, used by Alex to speed up widget responses over SSL if I
remember well). It wasn't an issue for me. Also, I did not like the
default picolisp behaviour where the users get connection error when the
picolisp session expires. First I made a small change to httpGate but
Alex didn't like it and I didn't want to maintain my own version so I
took advantage of an nginx features where your server generating dynamic
content can return an "internal" redirect for nginx and also default
fallback url when connection to your server fails. This way users
always get some screen; if not from their session process, then at least
from the main/parent app process.