Is there a "known good" path to move good old webapps from apache to nginx?

hejsan asked:

Originally my question was supposed to be more specific: “Can nconf (configuration webapp for nagios) be run on nginx”?

Being a developer I’m in love with nginx for it’s low resource usage, customized builds, and simple and readable configuration, but part of my job is also system administration/setup so repeatability and ease of setup become much more important.

I’ve been finding myself jumping through hoops to get things to run properly under nginx as there is no standard “just add the mod-something module” solution, plus most of the good old administration apps we’ve become accustomed to, such as nagios, nconf etc. often list apache as a requirement which seems silly to me, because from a development standpoint the webserver serving your generated html/whatever output shouldn’t dictate how you write your apps.

Serving nagios was not that terribly painful, I had to learn about fcgiwrap and php-fpm, but now I’ve hit a stumbling block with nconf as it depends on some perl modules and after installing those everything is hunky-dory in apache2 but still resulting in an un-logged 501 error in nginx.
To run Redmine I had to make a custom build of nginx and because I wanted to use enterprise ruby I had to jump through some more hoops.

Should I just stop trying to use nginx for internal services and spend more time on gardening, or is there some awesome way to keep track of all these setup terrors so I can let my successor take over without a guilt ridden conscience?

My answer:

I too love nginx. But…

If the web application doesn’t advertise support for nginx, don’t use it in production, until you can convince them to support nginx, or you’re willing and able to support it yourself.

And yes, there’s a way to keep track of all these setup terrors. You should be writing documentation for everything you do with these servers.

View the full question and answer on Server Fault.

Creative Commons License
This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 Unported License.