There was a lively discussion a couple of weeks ago on the Resin interest mailing list about why people are using Apache with Resin and whether it’s actually necessary. Of course, we recommend that our users use Resin as both the HTTP server and the app server, but sometimes that’s not possible because of other legacy apps, non-Java apps on the same host, or simply internal politics. The trend in the non-Java world lately has been to move away from Apache to nginx because of its simple configuration and raw speed. For backend applications, it uses simple proxying or FastCGI instead of the mod_* model of Apache. I decided to check out nginx this morning and see how to hook up Resin. Turns out that it’s pretty easy!
Posts Tagged ‘apache’
I’ve been working on the section in the training course dealing with mod_caucho, Resin’s Apache plugin. This is one of the last things I’m working on and for good reason. Dealing with Apache is a pain and usually unnecessary. If you can avoid using Apache with Resin, we recommend it. There are lots of good reasons not to use Apache:
- Apache isn’t any faster than Resin for serving static files (unless they’re really big)
- Resin has had rewrite-rules which obviate the need for Apache as a rewrite engine
- Resin Professional has a much better load balancer which takes into account number of connections, CPU load, and other factors in assigning new connections
I think a lot people who upgrade from Tomcat to Resin are used to using Apache with their Java Servlet engine because Tomcat had a reputation of operating better with Apache. I’m not sure if that’s even true in Tomcat’s case, but it’s certainly not in Resin’s.
So should you ever use Apache? Maybe. If you’ve got a highly heterogeneous site with lots of different applications using a variety of modules like mod_perl or mod_python, you might be better off with Apache on the front end.
Finally, one quick note: We just had a support request come in about using Apache 1.3. We have deprecated support for Apache 1.3 and I just verified that Resin 3.1.7a doesn’t work with it. Resin 3.2.0 does, but don’t rely on this in the future. Either upgrade to Apache 2 or get off of Apache entirely. You’ll thank yourself later.