Many sites run two web servers - Apache httpd is ideal for plain HTML documents and scripts / programs that are single pages, run rarely, not all linked in together. Whereas Tomcat is an application container that suits applications that are run by tens of people all at the same time - great for banking, student record handling systems, big document and data portals ....
Do you choose one
or the other? Not usually - you can run them both and then connect them - see
the connector story for details.
During the last course I gave before Christmas, we connected the two servers using mod_proxy, using mod_jk, and even using mod_rewrite to share out the Tomcat load between multiple Tomcat servers. Links -
description and
link to sample configuration files.
Here's a handful of extra tips.
1. Why not point both httpd AND Tomcat's Document Root at
the same directory? That way, you can keep your application in one place and configure your connector to forward ONLY servlets and .jsp-s. The result is an application that's easy to maintain, but at the same time is efficiently using the most efficient server for each element.
2. In early testing and at time you've been reconfiguring, it's worth
turning your Tomcat off to test the httpd element rather than starting your tests with everything switched on. The uncommon httpd response codes that you'll get tell you heaps about what's going on.
502 - Bad Gateway. httpd is trying to forward to an non-running Tomcat
503 - Application not available. httpd has forwarded to Tomcat, but Tomcat can't provide the application - typically it's not running.
500 - Internal server error. Your httpd forwarding isn't configured right?
3. When doing a fresh restart of Tomcat with a major upgrade of applications, or after a series of tests that have generated a confusing array of intermediate files that could get carried over to the live application, you can
delete the work and temp subdirectories in Tomcat. But, please, only do this when Tomcat is stopped!
(written 2006-12-24, updated 2008-12-21)
24e5
Associated topics are indexed under
A607 - Web Application Deployment - Apache httpd mod_rewrite [3862] Forwarding a whole domain, except for a few directories - Apache http server - (2012-09-17)
[3753] Adding a passcode to a directory - (2012-06-05)
[3568] Telling which ServerAlias your visitor used - useful during merging domains - (2012-01-04)
[3339] Simplest ever proxy configuration? - (2011-06-28)
[3197] Finding and diverting image requests from rogue domains - (2011-03-08)
[2981] How to set up short and meaningfull alternative URLs - (2010-10-02)
[2900] Redirecting a page - silent, temporary or permanent? - (2010-08-03)
[2773] Dynamically watching your web site via a PHP wrapper - (2010-05-21)
[2768] Carrying a long URL around - looking for memorable shorts - (2010-05-17)
[2728] Redirecting a home page using mod_rewrite - (2010-04-17)
[2555] Bookkeeping - (2009-12-29)
[2094] If you have a spelling mistake in your URL / page name - (2009-03-21)
[1954] mod_rewrite for newcomers - (2008-12-20)
[1778] Pointing all the web pages in a directory at a database - (2008-08-30)
[1771] More HowTo diagrams - MySQL, Tomcat and Java - (2008-08-24)
[1731] Apache httpd, MySQL, PHP - installation procedure - (2008-08-01)
[1636] What to do if the Home Page is missing - (2008-05-08)
[1381] Using a MySQL database to control mod_rewrite via PHP - (2007-10-06)
[1376] Choosing between mod_proxy and mod_rewrite - (2007-10-02)
[1207] Simple but effective use of mod_rewrite (Apache httpd) - (2007-05-27)
[1009] Passing GET parameters through Apache mod_rewrite - (2006-12-27)
[934] Clustering, load balancing, mod_rewrite and mod_proxy - (2006-11-21)
[755] Using different URLs to navigate around a single script - (2006-06-11)
[631] Apache httpd to Tomcat - jk v proxy - (2006-03-03)
A608 - Web Application Deployment - Apache httpd mod_proxy [3892] Distributed, Balanced and Clustered Load Sharing - the difference - (2012-10-13)
[3680] How can I run multiple web servers behind a single IP address? - (2012-04-02)
[3293] Distributing the server load - yet ensuring that each user return to the same system (Apache httpd and Tomcat) - (2011-05-18)
[2482] Load balancing with sticky sessions (httpd / Tomcat) - (2009-10-29)
[2325] Apache, Tomcat, mod_proxy - (2009-08-06)
[2273] Three recent questions on Tomcat Convertors - (2009-07-07)
[2062] Virtual hosting and mod_proxy forwarding of different domains (httpd) - (2009-03-01)
[1944] Forwarding session and cookie requests from httpd to Tomcat - (2008-12-14)
[1939] mod_proxy_ajp and mod_proxy_balancer examples - (2008-12-13)
[1767] mod_proxy and mod_proxy_ajp - httpd - (2008-08-22)
[1566] Strange behaviour of web directory requests without a trailing slash - (2008-03-06)
[1121] Sharing the load with Apache httpd and perhaps Tomcat - (2007-03-29)
A653 - Web Application Deployment - Tomcat - Configuring Web Applications [3996] Tips on Tomcat - moving applications around - (2013-02-05)
[3044] Changing a Servlet - more that just editing and compiling - (2010-11-12)
[2088] Changing the 404 - file not found - page in Tomcat - (2009-03-18)
[1909] javax.servlet cannot be resolved - how to solve - (2008-11-26)
[1564] Default file (MiMe types) for Apache httpd and Apache Tomcat - (2008-03-04)
[1552] Extra public classes in deploying Apache httpd and Tomcat - (2008-02-24)
[1192] What are WEB-INF and META-INF directories? - (2007-05-18)
[1082] Straight from the .jar - (2007-02-16)
[1074] Java beans and classes, .war and .jar files - (2007-02-10)
[754] tar, jar, war, ear, sar files - (2006-06-10)
[479] New servlet from old - (2005-10-28)
[465] Changing Tomcat's web.xml and reloading a web application - (2005-10-15)
A900 - Web Application Deployment - Tomcat - Extra Features [3018] Tuning Apache httpd and Tomcat to work well together - (2010-10-27)
[1899] Virtual Hosting under Tomcat - an example - (2008-11-22)
[1896] Virtual Hosts and Virtual Servers - (2008-11-20)
[1383] Monitoring mod_jk and how it is load balancing - (2007-10-07)
[1377] Load Balancing with Apache mod_jk (httpd/Tomcat) - (2007-10-02)
[1370] Apache Tomcat Performance Tuning - (2007-09-29)
4f8a
Some other Articles
Dates, times, clickable diarys in PHPDate conversion - PHPFriends and familyApache httpd and Apache Tomcat together tipsStirling at nightOld dog, old tricksRoom at the Inn, Guy at the stationMeet the neighbours.pdf files - upload via PHP, store in MySQL, retrieve