Training > All Courses > Apache > Apache and Tomcat

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.

Duration

5 days.

2 course(s)

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 

Audience

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

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.

Additional Notes

About Your Instructor

Aleksandar (Sasa) Gargenta is the technology brains at Marakana. Always on top of latest in software, Aleksandar is company's radar for technology that matters.

Aleksandar is the author of Marakana's Java, Advanced Java, Spring/Hibernate, JBoss, Apache, XML/XSL, and JUnit/TestNG 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 courses for everyone from Apple to Disney, from NASA to the Department of Defense. His instructor ratings are consistently between Great and Outstanding.

Aleksandar also runs the San Francisco Java and San Francisco Android User Groups with over a thousand members between the two.

Sasa is also a father, photographer, hiker, and a race-car driver.

 

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.

Outline

Apache Web Server Administration   (2 days)

Introduction to Apache

  • History of Apache
  • Overview of Apache Software Foundation
  • Downloading Apache
  • Installing Apache on Windows using a pre-built binary
  • Installing Apache on Unix/Linux from source
    • Compilation options
    • Dynamic vs. static compilation of modules
    • Re-compiling
  • Testing Installation

Starting and Stopping Apache

  • Starting/Stopping Apache on Windows
    • Apache Monitor
    • Apache Executable
    • Windows Service
  • Starting/Stopping Apache on Unix/Linux
    • Apache Executable
    • apachectl script
  • Install Apache as a Service

Modules

  • Overview of Apache Modules
  • Installing Modules

The Apache Configuration Files

  • The contents of the /conf directory
  • The httpd.conf file
  • Directives
  • Sections
  • The Include Directive
  • The Options Directive
  • The Installed Directories

The htaccess File

  • Overview of .htacces files
  • Configuring .htaccess
  • The AllowOverride directive
  • Setting directory authentication
  • Allowing CGI scripts
  • Performance Issues

Virtual Hosts

  • Overview of Virtual Hosting
  • IP-Based Virtual Hosts
  • Name-based Virtual Hosts
  • Port-based Virtual Hosts
  • Bulk Virtual Hosting

MIME and File Types

  • Overview of MIME Types
  • Configuring MIME Types
  • Encoding Files
  • Character Sets
  • Languages

URL Mapping

  • Configuring Aliases
  • Configuring Redirects
  • The DocumentRoot Directive
  • Error Documents
  • Overview of mod_rewrite

Directory Indexing

  • The DirectoryIndex Directive
  • Fancy Indexing
  • Headers and Footers
  • Ignoring Files
  • Searching and Sorting

Performance Tuning

  • The ApacheBench Utility Program
  • Tweaking the Apache Configuration
  • Configuring Apache MPMs (prefork, worker, winnt)

Handlers and Filters

  • Overview of Handlers
  • The Section
  • Configuring Handlers
  • The server-status Handler
  • Overview of Filters
  • Configuring Filters

SSI

  • Overview of SSI
  • Configuring SSI
  • Using SSI Directives

Managing Scripts

  • Overview of scripting options
  • The mod_perl Module
  • Configuring mod_perl
  • Installing PHP on Windows
  • Configuring PHP

Security

  • Common Security Issues with Apache
  • Dynamic Content Issues
  • Authentication
  • Authorization
  • Access Control
  • Unix File Permissions
  • Configuring Apache for SSL
    • Overview of SSL
    • Installing mod_ssl
    • Generating SSL certificates
    • Configuring mod_ssl

Apache Tomcat Administration   (3 days)

Apache Tomcat Training Overview

  • Brief history of Apache
  • The Apache Software Foundation
  • The Jakarta Project
  • Tomcat Licensing
  • The J2EE Technologies
  • Java Web Development
  • Servlet/JSP Containers

Java Web Applications

  • Overview of Servlets
  • Advantages of Servlets
  • Lifecycle of a Servlet
  • Overview of JavaServer Pages
  • A Simple JavaServer Page
  • JSP and JavaBeans
  • JSP Tag Libraries
  • The MVC frameworks (e.g. Struts)

Installing Tomcat

  • Downloading and Installing Apache Tomcat
  • Overview of Installing Tomcat
  • Download and install a JVM
  • Download Tomcat
  • Using the Windows installer
  • Understanding Java memory managemenet and tweaking the JVM for performance
  • Download and install Ant

Tomcat Directories

  • Examining the Tomcat Installation Directories
  • Tomcat Directory Structure
  • The bin Directory
  • common and shared Directories
  • The conf Directory
  • The logs Directory
  • The server directory
  • The work Directory
  • The temp Directory
  • The webapps Directory
  • Web Application Directory Structure
  • Deploying HTML and JSP Pages
  • Deploying a Web Context
  • Viewing the JSP Page
  • Viewing the Generated Code
  • Lab 1: Deploying a Web App

Configuring Tomcat

  • Tomcat Configuration Techniques
  • Tomcat’s Component Architecture
  • The <Server> Element
  • The <Service> Element
  • The <Connector> Element
  • The <Engine> Element
  • The <Host> Element
  • The <Context> Element
  • The <Realm> Element
  • The <Valve> Element
  • The <Listener> Element
  • The <Loader> Element
  • The <Manager> Element
  • The server.xml File
  • Lab 2: Modifying server.xml

Deploying Web Applications

  • Web Application Administration
  • Deploying Web Applications
  • The Directory Structure of a Web App
  • web.xml configuration file
  • Deployment Descriptors
  • The <web-app></web-app> Element
  • Mapping a Servlet to a URL
  • The <resource-ref></resource-ref> Element
  • The <env-entry></env-entry> Element
  • The <ejb-ref></ejb-ref> Element
  • A Sample web.xml file
  • Lab 3: Deploying a Web Application
  • Tomcat's default conf/web.xml file
  • Tuning default JSP and Static-content servlets

The Tomcat Manager

  • Deploying and Managing Web Application using the Tomcat Manager
  • Starting the Tomcat Manager
  • Tomcat Manager
  • The Manager Section
  • Applications
  • Deploy
  • Server Information
  • Creating a WAR File
  • Lab 4: Deploying a WAR File
  • Java Management Extensions (JMX) on Tomcat
  • Tomcat integration with Ant

Advanced Features

  • Using Some of the Advanced Features of Tomcat
  • Valves
  • Access Log Valve
  • Single Sign-on Valve
  • Remote Address Filter
  • Remote Host Filter
  • Request Dumper Valve
  • Configuring JNDI Resources
  • JNDI: Java Naming and Directory Interface
  • Defining a JNDI Resource
  • The <environment></environment>Element
  • The <resource></resource>Element
  • Configuring a JavaMail Session
  • Global Resources
  • Lab 5: Using Valves

JDBC Connectivity

  • Configuring Tomcat to Connect to a Database
  • Overview of JDBC
  • JDBC Drivers
  • Connecting to a Database
  • Connection Pools
  • Download and Install MySQL
  • Configure MySQL for Tomcat
  • Create a Database in MySQL
  • Download and Deploy a JDBC Driver
  • Defining a DataSource in Tomcat
  • Defining a Data Source Manually
  • Modifying the Deployment Descriptor
  • Detecting and closing leaked database connections
  • Lab 6: JDBC Connections

Tomcat Security

  • Configuring Security on Tomcat
  • Security Considerations
  • File System Security
  • Filesystem Recommendations
  • The Java Security Manager
  • Granting Permissions to Java Apps
  • Java Permissions
  • Adding Your Own Policies
  • Enabling the Java Security Manager
  • Security Manager Tips
  • Security Realms
  • Different Types of Realms
  • Configuring a Realm
  • Users and Roles (authentication and authorization)
  • Creating a Data Source Realm
  • Protecting passwords
  • FORM-based authentication
  • Configuring Tomcat for SSL
  • Requiring SSL in applications
  • Lab 7: Create a Data Source Realm

Connectors

  • Connecting Tomcat to Apache
  • Overview of Connectors
  • HTTP Connectors
  • Advantages of Using a Web Server
  • Connector Protocols
  • Step 1: Configure an AJP Connector
  • Step 2: Download mod_jk
  • Step 3: Create the mod_jk.conf file
  • Step 4: Start Tomcat
  • Step 5: Create a Worker
  • Step 6: Configure httpd.conf
  • Test the Setup
  • Load balancing applications across multiple Tomcat instances
  • Issues with load balancing
  • Server affinity via sticky sessions
  • Shared session storage
  • Replicated sessions via Tomcat clustering
  • Lab: Clustering

Shared Hosting

  • Overview of Shared Hosting
  • Tomcat Virtual Hosting
  • Configure Tomcat to enable virtual hosting as a stand-alone server
  • Configure Tomcat to enable virtual hosting using jk2 or webapp.
  • Configure Tomcat as Stand-alone
  • Configure Tomcat with AJP
  • Separate JVM for Each Host
  • Lab: virtual hosting

Load Testing

  • Using the JMeter Application
  • Load Testing with JMeter
  • Install JMeter
  • Running JMeter
  • Creating a Test Plan
  • Configure the Thread Group
  • Add a Task to the Thread Group
  • Configure the HTTP Request
  • Add a Report Listener
  • Run the Test Plan
  • Viewing the Results

Course Testimonials

Great class that met the expectations we had set forward. Very flexible to customizing to meet our special requirements.

- AutoTec

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

- DISA DECC Mechanicsburg