Ubuntu puts Nginx Web server on equal footing with Apache

Ubuntu follows Fedora in giving "full security updates" to Nginx.

The next version of Ubuntu Server is expected to include Nginx in the main archive, meaning it will "sit alongside Apache in 14.04 with full security updates over the life of the release," Canonical employee Jorge Castro wrote today.

Further Reading

Sometimes Apache can be overkill. Here's one man's tale of replacing his …

The open source Nginx has become one of the most popular Web servers after Apache, noted by Ars Reviews Editor Lee Hutchinson for being a "lightweight speed demon." Nginx's upgrade to the main archive comes at a good time because the 14.04 release in April 2014 will be Ubuntu's Long Term Support edition and will thus receive five years of support."This is excellent news for those of you using stacks that tend to use nginx; increasing our support of nginx has been something many Ubuntu Server users have been telling me they’d like to see and it’s good to see us make some progress in this area," Castro wrote.

Castro credited developer Thomas Ward for getting Nginx ready for the upgrade, having maintained the Nginx packages "for every Ubuntu release since 10.04" in April 2010. Castro also noted that features in Ubuntu's Juju automation software can help users "dynamically swap between Apache and nginx."

"Having NGINX packages added to any distribution is a great benefit to both our users and the broader web consumer community," Nginx technical evangelist and community manager Sarah Novotny told Ars. "Ubuntu is particularly exciting as it has such a tremendous position as the operating system on the cloud. We are looking forward to working with the Ubuntu community to support their packaging."

For a detailed tutorial on setting up Nginx on Ubuntu, check out the first part of our Web Served series.

Ubuntu won't be the first Linux distribution to add this higher level of support for Nginx. Red Hat spokesperson John Terrill told Ars that "Fedora has included Nginx for some time and it receives updates at the same level as Apache and other packages that are included in Fedora."

Nice! I've been playing with Ubuntu Server + Nginx since I read the Web Served series, and I'm now on the way to implement all that on a company app (add Django as framework), so this is great news as we can have more security updates.

Nginx follows the UNIX philosophy much closer than Apache. It only does a few things and it does them well. It would be fantastic for no other reason than its configuration files being super straightforward.

Juju on the other hand I can't recommend. I used it before they started the Go rewrite, but it was opaque and difficult to debug. Configuration errors failed silently by default, forcing you to grep through the chatty global debug log. It also ran like three agents on each node, and if one of them crashed it was easy for the system to wander into a wonky state.

The one thing Juju has going for it is that charms can be written in any language. Still, that makes it hard to access data and configurations in Juju. I think most charms are still a horrible conglomeration of shell and Python, with each charm maintaining its own copy of a "utility" library for accessing Juju data.

Some of these issues might have been resolved by now. I heard they were trying to remove the Zookeeper dependency. Still I have to say go with Chef, Ansible, or Salt.

The go rewrite of Juju fixes nearly all of the problems you mention (we've been working on it for about two years now) and will be ready for 14.04; we dropped Zookeeper for mongodb. The only major feature it's missing right now is HA for the orchestration nodes. The charm tools are now a separate project so we're going back and cleaning up those charms with embedded charm helpers, etc.

If you're using Chef or Ansible already then you can add Juju as an orchestration piece on top of that. In fact the Rails charm reuses a bunch of chef cookbooks.

Juju as it is today is much much nicer than what we had in the python prototype; if you've got time to give it another go I'd love to hear any feedback you can provide.

The go rewrite of Juju fixes nearly all of the problems you mention (we've been working on it for about two years now) and will be ready for 14.04; we dropped Zookeeper for mongodb. The only major feature it's missing right now is HA for the orchestration nodes. The charm tools are now a separate project so we're going back and cleaning up those charms with embedded charm helpers, etc.

If you're using Chef or Ansible already then you can add Juju as an orchestration piece on top of that. In fact the Rails charm reuses a bunch of chef cookbooks.

Juju as it is today is much much nicer than what we had in the python prototype; if you've got time to give it another go I'd love to hear any feedback you can provide.

(Disclaimer: I am the author of the linked blog post)

I would love to know more about the reasoning behind the move from Zookeeper to MongoDB, I thought Zookeeper was pretty solid (as an external observer, will be looking at these systems more for HA over the next year).

Beautiful! Not only does Nginx smoke Apache in most benchmarks, it requires far fewer resources to do so. I have it running reverse proxies for exposing our RESTful services as well as full-blown web apps using PHP and Python/Django. Even though I'm not an Ubuntu user (Debian, FTW!) the more widespread Nginx becomes, the better.

I would love to know more about the reasoning behind the move from Zookeeper to MongoDB, I thought Zookeeper was pretty solid (as an external observer, will be looking at these systems more for HA over the next year).

Yeah, there's certain features being dropped in the main inclusion, like the Lua module because of the build dependency issues which would block the main inclusion, but the PPA's will have it, they're remaining true to Debian, so all the modules that Debian has will be included in the PPAs.

Yeah, there's certain features being dropped in the main inclusion, like the Lua module because of the build dependency issues which would block the main inclusion, but the PPA's will have it, they're remaining true to Debian, so all the modules that Debian has will be included in the PPAs.

Any chance you can add to the documentation which features will never go past a certain point? Like at https://launchpad.net/ubuntu/trusty/+so ... 4-2ubuntu1 for the 14.04 release I see you added spdy to stable. Is there any chance of that happening for 12.04 as well, or is it only going to be in the 14.04+ releases?

Yeah, there's certain features being dropped in the main inclusion, like the Lua module because of the build dependency issues which would block the main inclusion, but the PPA's will have it, they're remaining true to Debian, so all the modules that Debian has will be included in the PPAs.

Any chance you can add to the documentation which features will never go past a certain point? Like at https://launchpad.net/ubuntu/trusty/+so ... 4-2ubuntu1 for the 14.04 release I see you added spdy to stable. Is there any chance of that happening for 12.04 as well, or is it only going to be in the 14.04+ releases?

PS Keep up the amazing work!

Thanks for the compliment!

But, I hate to say it, the PPAs are different than the actual Ubuntu repos, daneren.

The Ubuntu repositories get whatever Debian has directly, for Trusty, before Feature Freeze in the dev cycle. I can't retroactively change features on a whim in earlier versions of Ubuntu, and especially not with 1.1.19 (which Ubuntu will never go past for 12.04 in their repos), because of the very large differences between 1.1.19 and 1.4.4's spdy. That, and unless there's a BIG reason for a version bump in 12.04, nobody will approve that.

The PPAs have 12.04 packages, though, those will have the spdy plugin like Debian has, which means it'll also be in `nginx-full` once I resync the PPA with Debian in a few days, as I have other things I need to work on for the packages in Ubuntu before I can spend time nursing the PPAs.

I also can't change the documentation for the same reasons. Partly because I'm not on nginx's upstream developers team (the people who actually develop the NGINX software), and partly because of the reasons I specified.

So basically, whatever a given release of Ubuntu has for nginx at the time of it actually being released is what that release version of Ubuntu will have until it reaches End of Life, unless you use the stable or mainline PPAs for nginx.

Yeah, there's certain features being dropped in the main inclusion, like the Lua module because of the build dependency issues which would block the main inclusion, but the PPA's will have it, they're remaining true to Debian, so all the modules that Debian has will be included in the PPAs.

Any chance you can add to the documentation which features will never go past a certain point? Like at https://launchpad.net/ubuntu/trusty/+so ... 4-2ubuntu1 for the 14.04 release I see you added spdy to stable. Is there any chance of that happening for 12.04 as well, or is it only going to be in the 14.04+ releases?

PS Keep up the amazing work!

Thanks for the compliment!

But, I hate to say it, the PPAs are different than the actual Ubuntu repos, daneren.

The Ubuntu repositories get whatever Debian has directly, for Trusty, before Feature Freeze in the dev cycle. I can't retroactively change features on a whim in earlier versions of Ubuntu, and especially not with 1.1.19 (which Ubuntu will never go past for 12.04 in their repos), because of the very large differences between 1.1.19 and 1.4.4's spdy. That, and unless there's a BIG reason for a version bump in 12.04, nobody will approve that.

The PPAs have 12.04 packages, though, those will have the spdy plugin like Debian has, which means it'll also be in `nginx-full` once I resync the PPA with Debian in a few days, as I have other things I need to work on for the packages in Ubuntu before I can spend time nursing the PPAs.

I also can't change the documentation for the same reasons. Partly because I'm not on nginx's upstream developers team (the people who actually develop the NGINX software), and partly because of the reasons I specified.

So basically, whatever a given release of Ubuntu has for nginx at the time of it actually being released is what that release version of Ubuntu will have until it reaches End of Life, unless you use the stable or mainline PPAs for nginx.

Ah, I see my mistake. On the ppa it said newer version available, and clicking on it went to the link I posted. I wasn't realizing that it went to the main Ubuntu packages. And yes that makes perfect sense that they would not update the main packages, especially when a separate PPA already exists for those of us that want to stay up to date on the latest releases. But sweet, you did answer my question that spdy will go to 12.04 on your PPA, which is what I meant

Yeah, there's certain features being dropped in the main inclusion, like the Lua module because of the build dependency issues which would block the main inclusion, but the PPA's will have it, they're remaining true to Debian, so all the modules that Debian has will be included in the PPAs.

Any chance you can add to the documentation which features will never go past a certain point? Like at https://launchpad.net/ubuntu/trusty/+so ... 4-2ubuntu1 for the 14.04 release I see you added spdy to stable. Is there any chance of that happening for 12.04 as well, or is it only going to be in the 14.04+ releases?

PS Keep up the amazing work!

Thanks for the compliment!

But, I hate to say it, the PPAs are different than the actual Ubuntu repos, daneren.

The Ubuntu repositories get whatever Debian has directly, for Trusty, before Feature Freeze in the dev cycle. I can't retroactively change features on a whim in earlier versions of Ubuntu, and especially not with 1.1.19 (which Ubuntu will never go past for 12.04 in their repos), because of the very large differences between 1.1.19 and 1.4.4's spdy. That, and unless there's a BIG reason for a version bump in 12.04, nobody will approve that.

The PPAs have 12.04 packages, though, those will have the spdy plugin like Debian has, which means it'll also be in `nginx-full` once I resync the PPA with Debian in a few days, as I have other things I need to work on for the packages in Ubuntu before I can spend time nursing the PPAs.

I also can't change the documentation for the same reasons. Partly because I'm not on nginx's upstream developers team (the people who actually develop the NGINX software), and partly because of the reasons I specified.

So basically, whatever a given release of Ubuntu has for nginx at the time of it actually being released is what that release version of Ubuntu will have until it reaches End of Life, unless you use the stable or mainline PPAs for nginx.

Ah, I see my mistake. On the ppa it said newer version available, and clicking on it went to the link I posted. I wasn't realizing that it went to the main Ubuntu packages. And yes that makes perfect sense that they would not update the main packages, especially when a separate PPA already exists for those of us that want to stay up to date on the latest releases. But sweet, you did answer my question that spdy will go to 12.04 on your PPA, which is what I meant

Yeah you can ignore when it says "Newer Version Available" for Trusty on the PPA. That's because Trusty is slightly ahead of the PPAs, with the recent merge requests I've filed. If you have the PPA, and use it after Trusty actually is released, the PPA will be newer than Trusty once there's more versions ahead of it in Debian.

Glad to see your question was answered, though. (although, spdy is already in the PPA, but not in `nginx-full`, it's still in `nginx-extras`, because the PPA is slightly behind Debian)