ATTENTION: You are viewing a page formatted for mobile devices; to view the full web page, click HERE.

Main Area and Open Discussion > General Software Discussion

Linux webserver du jour?

<< < (4/5) > >>

f0dder:
If memory serves me right, I believe that 40Hz many moons ago mentioned bitnami that will get you completely configured development environments in the shape of a simple installation file. And guess what, Ruby is among them.-Shades (November 22, 2010, 04:22 PM)
--- End quote ---
Thanks for the link, but I dunno if a package like that is for me - probably a decent thing for getting a development environment up and running quickly, but for the VPS we're deploying to I'm "stuck" with debian - it's not that bad installing stuff (and configuring it) once you have a clue what you're supposed to installed & configure :)

nginx is not documented well, it seems. Is there any comprehensive list of available modules?-Tuxman (November 22, 2010, 12:20 PM)
--- End quote ---
The website definitely lacks a lot - one of the reasons I checkout out Cherokee before nginx. We'll see how bad it is once I get it installed :)

f0dder:
There, nginx+passenger installed. There isn't any ready-made Debian package for nginx with passenger support, and nginx modules have to be built at compile-time... so no sweet auto-binary-install option, instead you use passenger's "build nginx with passenger support" auto buildscript. I generally don't like building from source (except on gentoo, where build-from-source is part of the package management system) - simply because it makes upgrading a bit of a hassle. But the procedure was painless, and after adding six lines of config to nginx.conf, our Rails app is up-and-running.

I still need to fix the /etc/init.d/nginx script and make sure it's added to system startup, something that'd have been pretty automagic if using a normal Debian package install, but I'll live.

Observations so far:

* The "bad gateway" and "missing port" bugs I experienced with Cherokee are gone.
* nginx seems more capable at caching - for some reason, Rails (or whatever part of the stack) inserts "?number" for javascript URLs, which kept Cherokee (at least with default conf) from caching.
* Things fly now, probably thanks to both the caching mentioned above, and Passenger's optimizations.
Next up might be adding Ruby Enterprise Edition to the mix, and I've been recommended looking at Capistrano - that's probably overkill for our app since it's not distributed across multiple machines and probably never will need to be... but I'll check it out nonetheless :)

40hz:
Just a note in passing...

Anytime I'm stumped, or frustrated, or in a rush to do something with Linux when it doesn't want to cooperate, I'll pay a visit to www.howtoforge.com and do a little digging. More often than not I'll find my answer there.

Sometimes you need to abstract information from more than one article to get a full solution. But I haven't found much I needed that these folks haven't covered.

Note: HowtoForge isn't ideal if you like a lot of theory. Or if you want in-depth answers to "why" questions. They're long on "nuts & bolts" and short on discussion. But that's not a bad thing when you consider how many places are the exact opposite.  :)

Good resource! Bookmark it.  :Thmbsup:

f0dder:
Thanks for the link, 40hz, I'll be sure to check it out next time I'm frustrated :)

Getting nginx+passenger running was super smooth. I then proceeded spending the rest of the day doing a few benchmarks (it's good; the major bottleneck now is our Google Maps calls, which we probably can't do much about), fixing up some of my webclient code, bugfixing a bit of my mates' RoR code after hunting ghosts in my code, and then cursing and being close to smash my head in the wall because normal requests went GZIP'ed just fine, while my webservice requests didn't.

Long story short: nginx peculiarity combined with a bug in .NET HttpWebRequest when using HTTP authentication - yummy. Workaround, which also removes an unnecessary server roundtrip: don't use HttpWebRequest.Credentials, but add the HTTP Request "Authorization:" field manually.

40hz:
@fodder: ever think of writing up what you're doing and submitting it to HTF?

You've definitely got the technical know-how and language skills to show others the way if you don't mind sharing.

Just a thought...  :)

Navigation

[0] Message Index

[#] Next page

[*] Previous page

Go to full version