Nginx Plus seems like they took a lot of the obvious feature upgrades, some which look fairly easy (remove cached item) and put them in a pay wall. Nothing wrong with that, just feels weird. And the pricing is enough to pay for a Windows license, not that IIS is even close to nginx (it's reverse proxy capability is terrible).
I'm sad to hear about JS; I thought the work with Lua was going well and would be a better candidate. Maybe I misunderstand the situation.
Nginx is one of those great tech that just makes so much more easy in my life.
> Nginx Plus seems like they took a lot of the obvious feature upgrades, some which look fairly easy (remove cached item) and put them in a pay wall.
I had a chat during an interview with folks from the Nginx team recently and definitely got the impression they are putting a lot more thought into the separation of Plus than this. One of the key features is the ability to add/remove backends at runtime, as well as, IIRC, some failover capability that makes Nginx Plus a potential competitor for things like F5.
Disclaimer: I am not associated with Nginx, except that I shook some folks hands, and I might have remembered something wrong. They went out of their way to illustrate to me, and I think they did, that Nginx Plus is more than just 'open core'.
If you read the prior article, linked in this one, the original author of Nginx is allowed to expound on this himself. An experienced Ops team can assemble a number of open-source components and custom code to accomplish some of the more advanced functionality in Nginx Plus, but I think it's saving more than a couple hours of customization. :)
> If you read the prior article, linked in this one, the original author of Nginx is allowed to expound on this himself. An experienced Ops team can assemble a number of open-source components and custom code to accomplish some of the more advanced functionality in Nginx Plus, but I think it's saving more than a couple hours of customization. :)
Can you elaborate? I'm able to do almost everything with haproxy, including hot reloads, client-based SOA, frontend/backend traffic. I'm not sure what Nginx Plus gets me on top of that.
Lua is a great scripting language in its own right, but the trouble is it's not JavaScript which at this time has an extraordinary amount of momentum behind it.
You can use JavaScript inside Postgres, for example, which makes it extremely versatile as a glue language for back-end services.
Lua has nowhere near the traction or support. Is there a C++ to Lua compiler that produces performant code when using an asm.js-like layer? Is Lua Rocks anywhere near the breadth and depth of NPM?
I don't know a single Lua programmer, but I can't throw a rock without hitting someone who knows JavaScript. It's something you'll pick up eventually even if you don't want to.
I didn't know a single Lua programmer, and then one of our software developers wanted to write some code to run in Nginx, and two hours later I knew a Lua programmer, and his solution works great in heavy production use. Seems pretty easy.
Lua is an overall higher quality language than JS. It feels like one of those "the world would be a slightly better place if..." situations, if Lua and JS were one language, more like Lua than JS.
What I'm trying to show here is that JavaScript is also a JVM-like runtime, so it's possible to "cross-compile" things to JavaScript and get a lot of functionality that way.
Lua is a convenient, easily embeddable scripting language, but that alone does not make it the best choice given how complicated the world is.
So now people are going to "transpile" their nginx configs? (And still not be as fast as Lua?)
In nginx there are two places for scripting that I know of. One, to replace the somewhat awkward config stuff, like the "if" statement. Two, to enhance HTTP requests/routing a bit. I doubt people are writing long applications and I hope nginx isn't trying to become an application server.
I just can't see how a weak language like JS makes any sense for such an environment. Maybe that's why the nginx guy says he's making his own JS VM, to get it working well enough for nginx.
Many applications (e.g. Redis) are designed to work with Lua scripts out of the box. If you label yourself a "javascript" or "lua" programmer, that is a bigger problem imo than which scripting language you need to use.
I'm not going after labels here, I think programmers should be able to tackle new languages, however libraries don't magically switch from one language to another.
If you've got a lot of JavaScript code, or you want to use NPM, you can't use Lua.
> I'm not going after labels here, I think programmers should be able to tackle new languages, however libraries don't magically switch from one language to another.
What does javascript have in NPM that is so awesome it isn't easily replicated and/or already existing in a lua implementation?
I honestly don't know a single NPM library I'd use that I don't know the Lua equivalent or Python equivalent or PHP equivalent. :/
> If you've got a lot of JavaScript code, or you want to use NPM, you can't use Lua.
Well, yes, if you have an existing Node.js codebase you want to port its great.
However, you made the original claim that:
"Lua has nowhere near the traction or support."
Lua is in Postgres, Redis, Nginx [already supported!]
I really just don't understand the claim that Lua has "nowhere near the transaction or support". Is there even one cache [e.g. Redis] that supports Javascript? I can't name any.
> I honestly don't know a single NPM library I'd use that I don't know the Lua equivalent or Python equivalent or PHP equivalent. :/
This requires learning the new library, porting code you've already written over to the new library, testing the new code using a totally different test framework. Non-trivial.
Lua has a lot of support, don't get me wrong, but it has way, way less support than JavaScript. To say otherwise is seriously dishonest.
I am not in any way equating "support" with "superior".
Lua is already stupid fast, without needing super complicated runtimes. The language is easy and sane. I'm not a Lua programmer but I use it (even in a E9-1-1 related application) just fine.
This sounds like using JS just for ... technically unacquainted people to get their buzzword hit. Like XML was a while ago.
Well it kind of is from the corporate point of view, as it is not "theirs", it is developed externally. In an open way, and has an open ecosystem of people who are probably not going to become Nginx customers.
Quite arguable. Creating a paywalled version of a FLOSS product like this has never been seen well by the FLOSS community (especial when there's been so many contributors) and has actually been subject to a lot of controversy.
I've been digging the last few months of blog posts that nginx has been putting out, especially the articles around microservices. They're very well written and have inspired our company to think differently about a few of our applications. When we were offered the opportunity to talk with nginx directly for a private webinar, we were left with a very underwhelming feeling. It may have been the specific sales person, but they couldn't explain how nginx's paid services could help our company.
Wow, that's disappointing. I'm happy to facilitate another conversation (including a technical staff member to walk through your architecture) and see if we can articulate this better. If you're interested, please reach out on twitter and we can exchange email addresses @sarahnovotny.
The question that you should always ask before going down an proprietary-add-ons business model is, what are you going to do the day someone develops the same functionality for the open source product, in a fundamentally different way? Are you going to rip out those parts every time you release your proprietary version? Because your customers are paying for those parts to be very stable.
Just a guess, but past experience with a different project tells me they won't accept contributions that will conflict with their proprietary solution.
What I meant is, aren't those other features interesting things? I just think that saying "interesting things will move to the premium version" is a bit reductive. Rather than a TL;DR, it directly contradicts what is put forth in the article, and replaces it with what a lot of us might assume is the case if we hadn't read the article.
It may not have been meant to come across the way I objected. :)
Just tried it with Nginx 1.7.11 from release and then mainline Nginx 1.7.12 and on both I got nginx -V to output --with-http_spdy_module
But when I put in "pagespeed on (and the rest of the settings) into http { in /etc/nginx/nginx.conf
I get in /var/log/nginx/error.log:
unknown directive "pagespeed" in /etc/nginx/nginx.conf:56
How is this possible?
Edit: I finally figured it out... the Nginx configuration on https://developers.google.com/speed/pagespeed/module/configu... it out of date. It's much simpler to setup spdy now. Simply add "spdy" to the nginx server config like this: listen 127.0.0.1:8082 spdy;
> I have a working prototype of a JavaScript VM that is highly optimized for NGINX’s unique requirements and we’ve begun the task of embedding it within NGINX Open Source.
I'm sad to hear about JS; I thought the work with Lua was going well and would be a better candidate. Maybe I misunderstand the situation.
Nginx is one of those great tech that just makes so much more easy in my life.