
NGINX Open Source: Reflecting Back and Looking Ahead - SkyRocknRoll
http://nginx.com/blog/nginx-open-source-reflecting-back-and-looking-ahead/
======
MichaelGG
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.

~~~
astrodust
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.

~~~
billyhoffman
> Is there a C++ to Lua compiler that produces performance code... ?

This statement makes zero sense. It's like someone saying Forth is silly
because it doesn't have an asm.js-like layer.

Clearly you don't understand the use cases of Lua.

[https://sites.google.com/site/marbux/home/where-lua-is-
used](https://sites.google.com/site/marbux/home/where-lua-is-used)

~~~
astrodust
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.

~~~
MichaelGG
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.

~~~
astrodust
It's a glue language. I don't expect people to transpile things, but it's an
option on the table.

JavaScript might be "weak", but it's strong enough for that sort of task.

There's a lot to hate about JavaScript, but ubiquity and support is not one of
those things.

------
rjzzleep
i 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
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.

~~~
sarahnovotny
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.

------
xorcist
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.

~~~
cgh
Just a guess, but past experience with a different project tells me they won't
accept contributions that will conflict with their proprietary solution.

------
aioprisan
td;rd: interesting things will move to the premium version, JS VM to power
future versions, pluggable module API coming

~~~
justizin
That'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
That'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
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. :)

------
fideloper
> 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-...](https://serversforhackers.com/compiling-third-party-modules-into-
nginx), but having a command similar to Apache to enable/disable a module will
be _really_ nice.

------
Apofis
It's annoying that they took SPDY support out of Community and put it into
Plus. Want updates? Too bad, you gotta recompile.

~~~
MichaelGG
Citation? I just installed nginx 1.7 on Ubunutu using a PPA and nginx -V says
"\--with-http_spdy_module".

~~~
Apofis
This 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/configu...](https://developers.google.com/speed/pagespeed/module/configuration)
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
Which JavaScript VM are they going to use?

~~~
krilnon
From 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
I am a bit surprised it isn't V8, considering its high performance and
relative success in Node and IO.js

~~~
gregham
[https://news.ycombinator.com/item?id=2519674](https://news.ycombinator.com/item?id=2519674)

------
farawayea
No longer using nginx after plus became a product.

