7 ms·
NGINX Open Source: Reflecting Back and Looking Ahead
- MichaelGG 12y agoNginx 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.
- xfalcox 12y ago> I thought the work with Lua was going well The lua support is GREAT, and make a lot of complex stuff (standard outside authentication on multiple apps) simple as using a 20 lines lua script. Let's hope LUA doesn't fall to second class citizen.
- justincormack 12y agoWell 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.
- ufo 12y agojust to nitpick: Lua is not an acronym. It means Moon in Portuguese.
- astrodust 12y agoLua 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.
- pygy_ 12y agoJS is definitely more popular, but you can run Lua inside PosgreSQL as well, and I fail to see the point of asm.js on the server. You can pick up Lua in a day if you can already program, by reading Roberto Ierusalimschi's Programming in Lua.
- fweespeech 12y agoMany 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.
- astrodust 12y agoI'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.
- fweespeech 12y ago> 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!] You've got Cassandra lua implementations that try to boilerplate an API for you: https://github.com/jbochi/lua-resty-cassandra https://github.com/jbochi/lua-resty-cassandra You've got a NPM style installer in the form of luarocks: https://rocks.moonscript.org/ https://rocks.moonscript.org/ 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.
- justizin 12y ago> 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. :)
- toomuchtodo 12y ago> 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. Disclaimer: From an ops team.
- hobarrera 12y ago> Nothing wrong with that 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.
- rjzzleep 12y agoi guess tengine is getting more and more relevant then: https://github.com/alibaba/tengine https://github.com/alibaba/tengine (though to be fair most work on new protocols seems to be from nginx itself)
- myared 12y agoI'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.
- sarahnovotny 12y agoWow, 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.
- Apofis 12y agoIt's annoying that they took SPDY support out of Community and put it into Plus. Want updates? Too bad, you gotta recompile.
- elementai 12y agoBut isn't SPDY kind of deprecated already in favor of HTTP/2 ?
- 0x0 12y agoWhere does it say that? The HTTP2 blogpost says they will bring an Open Source version in 2015 that supports HTTP/2 ?
- MichaelGG 12y agoCitation? I just installed nginx 1.7 on Ubunutu using a PPA and nginx -V says "--with-http_spdy_module".
- Apofis 12y agoThis is very strange... 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/configuration 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;
- dchest 12y agoWhich JavaScript VM are they going to use?
- krilnon 12y agoFrom the article: > 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.
- pmalynin 12y agoI am a bit surprised it isn't V8, considering its high performance and relative success in Node and IO.js
- gregham 12y agohttps://news.ycombinator.com/item?id=2519674 https://news.ycombinator.com/item?id=2519674
- dchest 12y agoThat's why I asked: it's unclear to me if they wrote their own or used something like Duktape.
- aioprisan 12y agotd;rd: interesting things will move to the premium version, JS VM to power future versions, pluggable module API coming
- justizin 12y agoThat's not really accurate, and you kind of conflict with yourself. The JS VM will be part of Nginx Open-Source, as will the Pluggable Module API. Nginx Plus is a platform, not just a special version of Nginx open-source, where Nginx is a core component.
- Syrup-tan 12y agoThat's not how I read his comment, though re-reading his comment I see how you read it that way. I read it as a list of hi-lights from the article, and I assume that's how he meant it to be read; - interesting things will move to the premium version - JS VM to power future versions - pluggable module API coming
- justizin 12y agoWhat 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. :)
- xorcist 12y agoThe 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.
- cgh 12y agoJust a guess, but past experience with a different project tells me they won't accept contributions that will conflict with their proprietary solution.
- fideloper 12y ago> we’re beginning the implementation of a pluggable module API This is the most exciting for me, as I'd much rather install from a package than have to re-compile from source. I've figured out how to make that easier in Debian/Ubuntu: https://serversforhackers.com/compiling-third-party-modules-into-nginx https://serversforhackers.com/compiling-third-party-modules-..., but having a command similar to Apache to enable/disable a module will be really nice.
- farawayea 12y agoNo longer using nginx after plus became a product.