On Mar 9, 2014, at 11:05 AM, Neven Cvetkovic <neven.cvetko...@gmail.com> wrote:

> Ahmed,
> 
> On Sun, Mar 9, 2014 at 10:14 AM, Ahmed Dalatony 
> <ahmed.dalat...@gmail.com>wrote:
> 
>> hello,
>> 
> can you help me little more with example or simpler doc
>> i'm new to tomcat config
>> and i don't understand virtual host
>> 
>> thank you
>> 
> 
> Ultimately, if you don't want to show the port number to the end user, the
> serving process needs to bind to port 80.
> 
> You mentioned few Tomcat processes, bound to ports 7777, 8888, 9999, each
> serving few applications.
> 
> So, here are few alternatives to achieve what you want:
> 
> ALTERNATIVE_0
> - Don't do anything. Each Tomcat instance runs on it's own port number.
> - Doesn't achieve what you want :)
> 
> ALTERNATIVE_1
> - Host all applications on a single Tomcat instance. Bind Tomcat to port 80
> (if linux environment remember port 80 is privileged port, so you have to
> configure your Tomcat accordingly.) Register all domains to the same IP
> address.
> - You can use Tomcat virtual hosting to register different domains to
> specific applications.
> - Downside of this approach is that all applications are sharing the same
> JVM (Tomcat) instance. Spike in one application can bring all other
> applications down.
> 
> ALTERNATIVE_2
> - Have multiple network interfaces (IP addresses) available. Bind each
> Tomcat instance to one of the IP addresses. Register each domain to its own
> IP address.
> - This approach is better than ALTERNATIVE_1 when it comes to isolation of
> the processes in their own execution environments.
> - This approach utilizes many IP addresses, that are usually scarce and not
> easily justified for numerous applications.
> 
> ALTERNATIVE_3
> - Most common approach I've seen around.
> - Similar to approach you are currently taking (ALTERNATIVE_0), with a help
> of external web server that will act as a (reverse) proxy. Typically, I
> would use Apache Httpd server, but you can use other web servers, e.g. IIS
> on Windows platform, or nginx.
> - In this case Apache (or other webserver) would bind to port 80, and based
> on the requested URL (or host) would point to a specific application
> (hosted on specific Tomcat on certain port, e.g. 7777, 8888, 9999, etc...)
> - If you would like to achieve that different hosts point to different
> applications, register all domains with the same IP address in DNS, and
> configure virtual hosting on the web server.

+1 Good explanation

> Thus, if you run multiple instances of Tomcat - alone, virtual hosting will
> not help you , since only one process can bind to a single IP address to
> one port (e.g. port 80). So, either put everything to the same Tomcat
> ("yuck”),

Just wanted to point out that there is nothing wrong with this approach.  There 
are cases where it is a good idea.  One example would be when running lots of 
small sites.  There is overhead for running an each JVM and Tomcat instance.  
If you have a large number of small sites, it might makes sense to combine them 
into one or a few Tomcat instances to reduce that overhead.

Dan


> or bind each tomcat to port 80 on separate IP addresses, or have
> an external web server routing requests to your multiple Tomcat instances.
> My preference is the later approach.
> 
> Here are some questions you want to answer before choosing the alternative:
> - What is the environment that you run on (windows, linux, etc.)?
> - What are you requirements?
> - How many applications do you have? How many instances do you plan to run,
> on the same machine, on the entire platform?
> - What are the application usage patterns? (how many users do you plan to
> serve, spikes, etc..)
> - What are the service level agreements you have with your customers?
> - etc...
> 
> 
> Configuring webserver to route requests to Tomcat instances is pretty
> straight forward, and you have a choice of HTTP or AJP protocols and
> depends on the choice of your webserver (Apache HTTPD, IIS, nginx, etc.)
> 
> Hope that helps.
> 
> Cheers!
> Neven


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org
For additional commands, e-mail: users-h...@tomcat.apache.org

Reply via email to