News for hackers. Stuff that matters.
Re:The Architecture of Open Source Applications: Nginx by deathanatos on Monday November 23, 2015 @10:34PM (#10618995)
It's not just that Lua makes a good config file format, it's that serving HTTP requests is a complicated enough business with enough edge cases and corner cases that it merits a turning complete language.

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/?")

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]

[1] http://openresty.org/

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.