cancel
Showing results for 
Search instead for 
Did you mean: 

app server for port 80 also, or separate web server?

qali
Champ in-the-making
Champ in-the-making
Hi,
  I'm wondering how people are deploying Alfresco for "public" use. Are people using their app server/servlet container to also handle http requests (i.e. listen on port 80) or are people using a web server (like Apache) to listen on 80, and using mod_proxy or something similar to pass over alfresco calls to the app server, so only requests that actually require the app server get handled by the app server.

I'm wondering in terms of performance. I don't know too much about the internals of JBoss or Tomcat, and how they handle http requests, but I would think letting Apache handle "static" requests and letting Tomcat handle only URLs that require "dynamic' content would make the most sense. I plan on using the WCM version, and will have a decent amount of images/Flash content that does not require Tomcat access.


Any thoughts?
3 REPLIES 3

rivetlogic
Champ on-the-rise
Champ on-the-rise
Hi,

The points you make are correct. There are many advantages to fronting your Tomcat web application(s) with one or more web servers.

Handling SSL handshaking for instance is one common example where you wouldn't want your web container to be busy dealing with that so you would typically want to delegate this to your web servers (or hardware load balancers if that suits you best).

Using something like mod_jk is useful when you're running in a clustered/load-balanced environment. But if you're only running one instance of your web container then mod_jk might be overkill.

The other advantage to fronting web containers with one or more web servers (you should use more than one web server to avoid having a single point of failure), is that you can then create a DMZ containing your web servers. That way you can keep your app servers and databases protected inside your private network.

As far as servicing static content goes, it used to be true that Apache web server was better at that task than Tomcat. But I have heard that the latest JBoss Tomcat has proven to handle static content more efficiently than Apache web server. This information was given to me by a top JBoss engineer but I must say that I haven't personally verified it.

Cheers,

–Aladdin

qali
Champ in-the-making
Champ in-the-making
thanks for the reply.

2 quick follow up questions:
1. when you say JBoss Tomcat, do you mean JBoss (standalone) and Tomcat (standalone) both handle static content better (independently), or do you mean the Tomcat container within JBoss handles it better? Or, are they one in the same?
2. is mod_jk still the de-facto standard for Apache/Tomcat communications? I thought I remember there was going to be another protocol/module coming out that was suppose to be better? I could be wrong though.

rivetlogic
Champ on-the-rise
Champ on-the-rise
Hi,

1. The Tomcat container within JBoss. That Tomcat is not the same as the Apache standalone Tomcat. They are two different branches. The JBoss Tomcat will become cluster aware as well.

2. Are you talking about mod_proxy_ajp? A good link to see the differences between connectors is http://tomcat.apache.org/faq/connectors.html

Hope this helps,

–Aladdin