Apache and Tomcat Training Course
Course Summary
Apache and Tomcat Administration Bootcamp combines two of Marakana's most popular courses into one week long workshop.
Apache Web Server Administration part of the course 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 part 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.
[top] Duration
5 days.
Apache and Tomcat is composed of the following:- Apache Web Server Administration (2 days)
- Apache Tomcat Administration (3 days)
[top] Objectives
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
[top] Audience
[top] Prerequisites
To get the most benefit from the Marakana 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.
[top] Instructors
Aleksandar Gargenta is the technology brains at Marakana. Always on top of the latest in software, Aleksandar is the company's radar for technology that matters. His latest ventures are perfecting Marakana's Android Internals and Security courses.
Phew. And if that's not enough, he's also the chief architect of Marakana Spark, the on-demand software platform that powers marakana.com and a number of other training companies. As an instructor he's taught hundreds of classes for everyone from Apple to Disney, from NASA to the Department of Defense.
In his spare time Aleksandar runs the San Francisco Java, Android, and HTML5 User Groups with over three thousand members across the three groups.
Aleksandar holds a bachelor’s degree in Mathematics and Computer Science from the University of Waterloo. He is also a father, photographer, hiker, and a race-car driver :-)
[top] Outline
Apache Web Server Administration (2 days)
Marakana Apache Training course covers the details of installing and configuring the most popular Web server on the planet: Apache's httpd server.
Students will 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>
- <Directory> and <DirectoryMatch>
- 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)
Administering Apache Tomcat training course covers the details of installing and configuring 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)
- The <Server> element
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
- Static file handling
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
- Using valves for access control
- 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
[top] Additional Notes
About The Platform
Marakana 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.
[top] Student Testimonials
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.
Neven is a great instructor. He clearly explains every step during the training class.
I would recommend the course and the instructor to others. I really learned a lot. Neven is very knowledgeable on the subject matter, and was able to effectively teach apache on linux to students who had little or no linux experience. Looking forward to more training with Marakana ...Thanks
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!
I love the course and the instructor was very helpful and friendly. Highly recommended to my coworkers.
I really enjoyed the class and believe I will take away a lot from it. Martin did a great job teaching the class.
Instructor was very well prepared; and easy to work with.
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.
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.
Neven is an excellent instructor. He is extremely knowledgeable, polite, funny, exciting, etc..etc... great guy and great class.
Excellent course. Sasa is an outstanding instructor. Extremely knowledgable and an excellent teacher.
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. :)
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
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.
Although I have limited experience, I have learned a lot. Great class, highly recommended.
