I learned some web server Kung Fu this weekend. I now know how to set up both Nginx and Varnish, and I’ve been messing around off and on with optimizations of Apache, Nginx, and Varnish–using Apache Bench to test from another Linode system I own.
It’s pretty fun, and I came up with some fun ways to do testing. For example, I have Apache listening on 81, Nginx listening on 82, and Varnish listening on 80. Then I can run Apache Bench against Varnish pointing to either 81 or 82–depending on configuration–to see which is faster. Or, if I take my firewall down, I can just point Apache Bench right at 81 or 82 directly.
With my initial testing I haven’t found much difference between Nginx’s speed vs. Apache’s, which I found surprising. I’m looking for a hardcore web server optimization guru to pay to learn from. I can learn it all myself, but it’ll take four times as long as if an expert shows me. I have a feeling I’ll end up doing it myself, though…seems pretty standard.
Anyway, I can’t host completely from Nginx yet because it can’t handle my permalink structure from WordPress yet. Finding out how to do that rewriting in Nginx is another task on my list.
Then it’s going to be straight Varnish/Nginx optimization for me. Oh, that’s the other thing–PHP caching with Nginx–I’m not sure what to use for that.
Once I get these things figured out I’m going to have a brutally sick WordPress web server config…then I’m going to do a full write-up including a Visio of the config I’ve been using for testing.
Anyway, that’s what I worked on this weekend in addition to some stuff for work. Oh, and if you know anyone who’s sick with Nginx/Varnish, do let me know. ::
[06.02.11] For those who are interested, I’m currently running off of Varnish with Apache as a backend, with no mods to Apache.