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 08:43:10)
Associated topics are indexed under
A607 - Web Application Deployment - Apache httpd mod_rewrite [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 [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 [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 [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)
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