Re:The Architecture of Open Source Applications: Nginx
by SomeCallMeTim on Tuesday November 24, 2015 @02:04PM
(#10622780)
In Nginx, you can use Lua for complex routing and responses, with the right extensions. [1]
Re:The Architecture of Open Source Applications: Nginx
by deathanatos on Tuesday November 24, 2015 @09:35PM
(#10625047)
And we do. We don't use openresty (at least at the moment), we use a custom-built nginx that includes — among other things — the lua module. It's a great boon, but something things are still hard or impossible[1], and we don't use it for every request, opting for the location syntax, and all its flaws, for most.
[1]. Conditionally streaming an upload to a backend (i.e., if auth fails, don't stream) is impossible; nginx will buffer the entire request body, either in memory or on disk, and there is no way to change this behavior.
I actually have some special corner case API endpoints that nginx just simply can not handle in the manner I would prefer. Further, the regex based location syntax, and even the prefix based ones, are not really what you want; you want a "Path" object that's aware of what / in a URL means, and does the right thing if you do/don't add it to the URL. (And it's not as easy as "/foo/bar/baz/?")