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