Apache and Tomcat Training Course

Course Summary

Apache and Tomcat Administration Bootcamp combines two of our most popular courses into one week long workshop.

Apache Web Server Administration will cover the details of the httpd.conf configuration file, using .htaccess files, virtual hosts, MIME and file types, URL mapping, directory indexing, performance tuning, handlers, filters, server-side includes, managing scripts, security and Apache modules.

Tomcat Administration covers the details of the server.xml configuration file, an overview of Servlet and JavaServer Pages, a comparison of Tomcat to J2EE application servers, the Tomcat installation directories, deploying Java Web applications, the web.xml file, valves, logging, security realms, connecting Tomcat to Apache Web Server, hosting multiple Web sites, performance and scalability issues, load testing, clustering, monitoring, the Tomcat Manager and the Tomcat Administration tool.

Please note that both Apache Web Server Administration and Tomcat Administration classes can also be taken separately. Visit the individual course pages for pricing and registration information.

 

Duration [top]

5 days.

Apache and Tomcat is composed of the following:

Objectives [top]

Upon completion of this course, you will be able to:

  • Compile and install Apache on both Windows and UNIX-type environments
  • Explain the difference between Apache httpd/web server and Apache Software Foundation
  • Deploy, support, and troubleshoot applications on Apache
  • Navigate Apache's directory structure
  • Understand Apache configuration files: httpd.conf
  • Secure Apache and applications running on it
  • Set up Apache for SSL
  • Tune Apache's performance
  • Manipulate URLs through Apache's mod_rewrite module
  • Explain how Tomcat relates to Java EE (J2EE) and compares to other application servers (e.g. JBoss)
  • Install and setup Tomcat on both Windows and UNIX-type environments
  • Deploy, support, and troubleshoot applications on Tomcat
  • Navigate Tomcat's directory structure
  • Understand Tomcat architecture and configuration files: server.xml, context.xml, .properties, etc.
  • Understand web application structure and configuration: web.xml
  • Secure Tomcat and applications running on it
  • Set up Tomcat for SSL
  • Tune Tomcat's performance
  • Explore different load-balancing and high-availability strategies with Tomcat 

Audience [top]

Web/application server administrators who need to be able to install, configure, run, and tune the Apache Web server and Tomcat Application Server.

Prerequisites [top]

To benefit most from the Tomcat Training course, you should be familiar with the basic principles of web/application server administration.

Additionally, prior exposure to any of these concepts can be helpful:

  • Basic rules of XML (i.e., being able to edit XML files)
  • HTTP protocol (i.e., the stateless nature of HTTP, the need for sessions, HTTP methods, SSL, etc.)
  • Java environments (e.g., memory settings, automatic garbage collection, JDBC)
  • Other Java EE (J2EE) application servers and basic concepts behind Java Web Applications

Please note that all these concepts are covered in the class.

Instructors [top]

Photo

Gordon Force has 25 years of product development experience as a developer, architect, director and instructor. Previously, he led development and application support for the ConnectPay and Encompass products at First Data. Agile development, with a heavy emphasis on testing, contributed to an effective strategy for consistently delivering new features on time, with high quality and industry compliance. Gordon now leads NewCircle as CEO.

More about Gordon Force...

Outline [top]

Apache Web Server Administration   (2 days)

The Apache Web Server Training Course covers the details of installing and configuring the most popular Web server on the planet: Apache's httpd server.

Students learn the details of the httpd.conf configuration file, using .htaccess files, virtual hosts, MIME and file types, URL mapping, directory indexing, performance tuning, handlers, filters, server-side includes, managing scripts, security and Apache modules.



The time-estimates in this outline are just that - estimates. The actual time dedicated to each section depends on the background and objectives of the students.

Introduction to Apache (15-30 mins)

  • Background
  • Overview of Apache HTTP server's features
  • Usage of Apache HTTP server in the real world
  • Overview of Apache Software Foundation
  • Apache License
  • Versions of Apache HTTP Server
  • Apache Server requirements and deployment options

Installation of Apache (30-60 mins)

  • Getting Apache HTTP Server
  • Apache features as modules
  • Downloading Apache
  • Using vendor-supplied version of Apache
  • Building Apache from source
    • The configure script
    • Static vs. shared modules
    • Directory/file layouts
    • Upgrading Apache from source
  • Installing Apache on Unix/Linux and Windows
  • Testing Apache installation
  • Managing Apache server life-cycle
    • Starting
    • Stopping (graceful vs. hard)
    • Restarting (graceful vs. hard)
    • Command-line options (e.g. httpd vs. apachectl script)
  • Running Apache as a service on Unix/Linux and Windows
  • Querying Apache for feature support

Configuration (~ 120 mins)

  • Apache directory structure
    • Overview of files that come with apache
  • Apache .conf files
    • Syntax (directives, sections, comments, white-space)
    • Testing for correctness
    • Understanding Includes
  • Directive contexts
  • Sections
    • <Directory> and <DirectoryMatch>
      • Overview of regular expressions
    • <Files> and <FilesMatch>
    • <Location> and <LocationMatch>
    • <Proxy>
    • <Limit> and <LimitExcept>
    • <VirtualHost> (overview-only, more on this later)
    • <IfModule>
    • <IfDefine>
    • <IfVersion>
  • Apache .htaccess Files
    • Discussion of why, what, when, and how?
    • Understanding performance and security implications
  • Directive processing order
  • Directory and file paths
  • Listening on ports
  • Apache modules
    • Loading
  • Understanding DocumentRoot-s
  • Basic Security (more on this later)
  • Running multiple instances of Apache off the same installation

Logging on Apache (30-60 mins)

  • Server logging (i.e. ErrorLog)
  • Access logging
    • Formatting access logs
  • Conditional logging
    • Based on response status
    • Based on request/response parameters (env)
  • User tracking
  • Forensic logging
  • Debug logging
  • Log rotation

URL Handling on Apache (60-75 mins)

  • Training slash redirect
  • Redirecting URLs to other URLs
  • Redirecting with regular expressions
  • Redirecting misspelled URLs
  • Aliasing URLs to files/directories
  • Aliasing with regular expressions
  • Aliasing scripts
  • Aliasing user directories
  • Re-examaning DocumentRoot
  • Handling errors (creating ErrorDocument-s)

Handlers and Filters on Apache (60-90 mins)

  • Understanding Apache handlers
  • Configuring handlers
  • The defaut handler
  • MIME types (i.e. Content-Type)
    • MIME types in Apache
    • Configuring MIME types manually
    • Auto-magically determaning MIME types
  • Content encoding
  • Content languages and character sets
  • Multiple file extensions
  • Content negotiation
    • The TypeMap handler
    • MultiViews
  • The As-Is handler
  • The CGI Script handler
  • The Image Map handler
  • The Server Info handler
  • The Server Status handler
  • Monitoring Apache
  • Apache Filters
    • Configuring filters
    • Smart filters
    • Compressing data on the fly (mod_deflate)
    • On the fly search-and-replace
    • External filters

Virtual Hosting on Apache (45-60 mins)

  • Overview of virtual hosting
  • Defining virtual hosts on Apache
  • IP-based virtual hosting
  • Port-based virtual hosting
  • Name-based virtual hosting
  • Mix-and-match virtual hosting
  • Bulk-virtual hosting
  • Issues with virtual hosting (e.g. SSL)

Directory Indexing on Apache (5-15 mins)

  • Directory requests
  • Basic directory indexing
  • Fancy directory indexing
  • Configuring directory indexing
  • Customizing header and footer
  • Ignoring files to index
  • Customizing icons and descriptions
  • Dynamic filtering and sorting

Apache Performance Tuning (45-60 mins)

  • Understanding performance objectives
  • Apache Bench (ab)
    • Overview
    • Using
  • Hardware and OS tuning
    • Serving files from network attached file systems
  • Multi-processing modules (MPMs)
    • Prefork MPM
    • WinNT MPM
    • Worker MPM
    • Event MPM
    • Implications of MPM selection and tuning
      • Security
      • Stability
      • Performance
      • Memory-footprint
  • Impact of modules
  • Impact of hostname lookups
  • Impact of symbolic links
  • Impact of AllowOverride-s (i.e. .htaccess files)
  • Impact of content negotiation
  • File caching

Dynamic Content on Apache (15-45 mins)

  • Server Side Includes (SSI)
    • Overview
    • Simple HOWTO
  • CGI
    • Overview
    • Implications
    • Debugging
  • Perl with mod_perl
    • Overview
    • Installation
    • Configuration
    • Performance impact
  • PHP with mod_php
    • Overview
    • Installation
    • Basic configuration

Apache Security (60-90 mins)

  • Keeping Apache up-to-date
  • Limiting the modules
  • Apache user and file system permissions
  • Securing/limiting dynamic content
  • Security implications of AllowOverride (i.e. .htaccess files)
  • Authentication and authorization
    • Access control (revisited)
    • IP/Host based access control
    • Basic authentication
    • Group-based authorization
    • Authn/Authz providers
    • Mixing access control
  • SSL/TLS on Apache
    • Overview of SSL
    • SSL Certificates
    • Configuring mod_ssl
    • Requiring SSL

Advanced URL manipulation on Apache (mod_rewrite) (10-120 mins)

  • Overview of mod_rewrite
  • Enabling mod_rewrite
  • Understanding API Phases
  • Ruleset processing
  • RewriteRule directive
    • Syntax
    • Uses
    • Flags
  • RewriteCond directive
    • Syntax
    • Uses (combining)
    • Flags
  • RewriteOptions directive
  • RewriteBase directive
  • RewriteMaps directive
  • RewriteLock directive
  • mod_rewrite in practice

Apache Tomcat Administration   (3 days)

Our Apache Tomcat Administration Training Course covers the details of installing and configuring for the Tomcat Web Server.

Students will learn the details of the server.xml configuration file, an overview of Servlet and JavaServer Pages, a comparison of Tomcat to J2EE application servers, the Tomcat installation directories, deploying Java Web applications, the web.xml file, valves, logging, security realms, connecting Tomcat to Apache Web Server, hosting multiple Web sites, performance and scalability issues, load testing, clustering, monitoring, the Tomcat Manager, and the Tomcat Administration tool.

The time-estimates in this outline are just that - estimates. The actual time dedicated to each section depends on the background and objectives of the students.

Intro to JavaEE (15-45 mins)

  • Overview
  • Relationship to Tomcat
  • Standards vs implementation
  • Servlets/JSPs
    • Overview
    • Life-cycle
    • Advantages
    • Role of the application server (i.e. servlet container)
    • Comparison to other web technologies
  • Model-view-controller (MVC) design pattern
    • Quick overview
    • Impact on application design and troubleshooting

Apache Tomcat Overview (15-45 mins)

  • Background of Tomcat
  • Apache Software Foundation
  • Tomcat project
  • Tomcat licensing
  • Uses of Tomcat in the real world
  • Versions of Tomcat
  • Future direction for Tomcat
  • Alternative distributions of Tomcat

Installing Apache Tomcat (~ 60 mins)

  • Installing Java
    • Getting Java
    • Java SE vs. Java EE
    • JDK vs. JRE
    • Installing on Unix/Linux/Windows
  • Getting Tomcat
    • Pre-built binary release
    • Using vendor-supplied pre-compiled release
    • What do download?
  • Life-cycle management
    • Which scripts to run?
    • Running in background vs. foreground
    • Understanding the shutdown process
  • Running Tomcat as a system service
    • Installing Tomcat as a NT sevice on Windows
    • Running Tomcat with jsvc on Unix/Linux
    • Using SysV framework to manage auto-start/shutdown

Tomcat Directory Structure (45-60 mins)

  • The bin/ directory
  • The lib/ directory (libraries on Tomcat pre-v6: shared/, common/, server/)
  • Class loading on Tomcat
  • The conf/ directory
  • The context directories
  • The webapps/ directory
  • The temp/ directory
  • The logs/ directory
  • The work/ directory
  • Running multiple Tomcat instances off the single installation
    • CATALINA_HOME vs. CATALINA_BASE

Tomcat Architecture and Configuration (90-120 mins)

  • Tomcat architecture: the big-picture
  • Overview of XML
  • Overview of Tomcat conf/server.xml file
  • Walk through the Tomcat component hierarchy
    • The <Server> element
      • Configuring the shutdown port
    • The <Service> element
    • The <Connector> element
      • Overview of connectors
      • Configuration
      • Tuning
    • The <Executor> element
      • Understanding thread pooling
    • The <Engine> element
      • Overview
      • Understanding background threads
    • The <Host> element
      • Overview
      • Configuration
      • Virtual hosting on Tomcat
        • The <Alias> element
    • The <Context> element
      • Overview
      • Configuration
    • The <Valve> element (more on this later)
    • The <Realm> element (more on this later)
    • The <Loader> element
      • Overview
    • The <Manager> element (more on this later)
    • The <Resource> element (more on this later)
    • The <Listener> element
      • Overview
      • Extending Tomcat
    • The <Cluster> element (more on this later)

Logging on Tomcat (30 mins)

  • Defaut system logging
  • Using Log4J
  • Access Log Valve
  • Request Dumper Valve

Deployments and Web Apps on Tomcat (~ 90 mins)

  • Directory structure of web apps
    • Class-loading revisited
  • The WEB-INF/web.xml deployment descriptor
    • Common elements
    • Defining and mapping Servlets and Filters
    • Initializing web apps
    • Session configuration
    • Welcome file list
    • Error pages
    • Resources
    • JNDI entries
  • Web Archives (i.e. .war files)
    • Overview
    • Creating
    • Deploying
    • Pros/cons
  • Tomcat's conf/web.xml file
    • Static file handling
      • Performance implications
    • JSP handling
      • Overview
      • Memory/performance implications
      • Tuning
      • Pre-compiling JSPs
    • Default MIME-types
    • Default session config
    • Default welcome file list

Monitoring and Management on Tomcat (90-120 mins)

  • Tomcat Manager application
    • Overview
    • Accessing
    • Features
    • Starting and stopping applications
    • Deployments and undeployments
    • Automation with non-HTML mode
      • Using wget (i.e. command-line)
      • Ant Integration
    • Monitoring
  • Java Management Extensions (JMX) on Tomcat
    • Overview
    • Architecture
    • Tomcat MBeans
    • JMX Proxy Servlet
    • Run-time monitoring and management of the entire server
    • Automation with Ant
    • JConsole
      • Overview
      • Connecting to Tomcat
      • JVM Monitoring
      • MBeans support

Managing Resources on Tomcat (60-90 mins)

  • Overview of JNDI
  • Resources and JNDI on Tomcat
    • The <Environment> Element
    • The <Resource> Element
    • The <ResourceLink> Element
    • Global vs. local resources
    • The role of deployment descriptors
  • JavaMail on Tomcat
    • Overview
    • Adding support to Tomcat
    • Configuring JavaMail as a Tomcat resource
  • Database Integration on Tomcat
    • Overview of JDBC: API vs. drivers
    • Overview of Database Connection Pools (DBCP)
    • Configuring DBCP resources on Tomcat with MySQL
    • Handling connection pool leaks

Tomcat Security (90-120 mins)

  • Security of Tomcat
    • The shutdown command
    • Running on privileged ports
      • jsvc
      • TCP Port Relaying
    • User and directory permissions
    • Running with the Security Manager
      • Overview
      • Java Permissions and grants
      • Tomcat's policy file
      • Customizing policies
      • Pros and cons of the security manager
  • Securing applications running on Tomcat
    • Using valves for access control
      • Address vs Host valve
    • Authentication and Authorization
      • Overview of container-managed security
      • When to use?
      • A look at Manager app secrity
      • Requiring authorized users
      • Authentication options
      • Basic vs. form authentication
      • Realms
        • Overview
        • Types of realms
        • Using DataSource realm
        • Overview of JNDI realm
        • Protecting privacy of passwords
        • Combining realms
        • Lock-out realms
  • SSL/TLS on Tomcat
    • Overview
    • SSL Certificates
    • Configuring SSL connector
    • Requiring the use of SSL in applications

Tomcat Performance Tuning (15-60 minutes)

  • Java/JVM tuning
    • Heap sizing
    • Garbage collection policies
    • HotSpot JIT compilers
    • Scaling
    • Approaches
  • Tomcat tuning
    • Connectors
    • JSPs
    • Sessions
    • Scaling

High Availability (HA) and Scalability of Tomcat (90-120 mins)

  • Fronting Tomcat with Apache
    • Overview
    • Pros/cons
    • AJP vs. HTTP
    • mod_jk vs. mod_proxy_ajp
    • Using mod_jk
      • Compiling/Installing
      • Configuring
      • Monitoring
  • Load Balancing
    • Benefits and issues
    • Server-affinity (sticky sessions)
      • Pros/cons
    • Sharing sessions via persistent manager
      • Pros/cons
    • Session-replication
      • Clustering on Tomcat
      • Architecture
      • Configuration
      • Monitoring
      • Pros/cons
      • Massive-scaling with cluster groups

Load Testing with JMeter - Appendix (15-45 mins)

  • Overview of JMeter
  • Installation
  • Running
  • Creating a Test Plan
  • Configuring Thread Groups
  • Adding Tasks to Thread Groups
  • Configuring HTTP Requester
  • Managing Report Listeners
  • Running Test Plans

Additional Notes [top]

 

About The Platform

Our Apache and Tomcat Administration Bootcamp can be taught on both Windows and UNIX/Linux-type environments. The instructor covers both options during the training.

Apache™ and Tomcat™ are a trademark of The Apache Software Foundation and are used with permission.


Student Testimonials [top]

Although I have limited experience, I have learned a lot. Great class, highly recommended.

Lynn - UCLA

I really enjoyed the class and believe I will take away a lot from it. Martin did a great job teaching the class.

Blake - Red Mountain Technologies

Neven is an outstanding instructor! I only wish he could return to work with me and help us improve our java application environment. His breadth and depth of professional experience, combined with his boundless energy for teaching and his passion for web technology, will make this one of the most memorable experiences of my own computing career. I hope I can take another course from him some day. :)

Amy - Binghamton University, Administrative Computing

Good class and I learned alot... some labs were fast and furious but other than that everything was well paced and it was a good course!

Chris - State University of NY

Neven did an outstanding job balancing the material between the various skill levels of the attendees. His approach of covering the material was extremely effective- He first covered the overall concepts in a general way, then tied in the labs and focused training to drive the subject home. For me this was a highly successful training program.

Mike - UCLA

Neven is a great instructor, full of knowledge, very friendly. I have learned a lot from him. Give him a raise! Excellent course. Recommend taking it.

Francesco - Buffalo State College Computing Services

I really enjoy the course. The instructor is excellent. The class is fun and way exceed my expectation. I learn a lot about Apache and Tomcat.

Stephanie - DLA Transaction Services

I love the course and the instructor was very helpful and friendly. Highly recommended to my coworkers.

John - Northrop Grumman

Neven is a great instructor. He clearly explains every step during the training class.

Rich - DLA Transaction Services

Instructor was very well prepared; and easy to work with.

Jon - ITEC

Excellent course. Sasa is an outstanding instructor. Extremely knowledgable and an excellent teacher.

Scott - DISA DECC Mechanicsburg

The instructor was very knowledgeable. We asked some very difficult questions, and even though he didn't always have an answer ready, he could always come back with a proper answer later. The pace was amazing considering we crammed two three-day courses into five days. I have nothing but respect for our instructor. I would like to see him come back in the future.

Bob - Heartland Community College

There were a lot of typos in Apache Web Server book... Neven is an excellent instructor. He made the class enjoyable and is very animated. His patience is incredible... Dawn Gordon

Dawn - DLA

Neven is an excellent instructor. He is extremely knowledgeable, polite, funny, exciting, etc..etc... great guy and great class.

Joe - ITEC