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
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.
Instructors
Aleksandar (Saša) Gargenta is the technology brains at Marakana. Always on top of the 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 training 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 and the San Francisco Android User Groups with over a thousand members between the two.
More about Aleksandar Gargenta...
Additionally Martin has been producing electronic music for the last few years using Ableton Live. He has released two albums and has been playing his music live around the US and at festivals such as the Coachella, Shambhala and Burning Man festivals. Martin is currently working on a revolutionary open source music standard, to produce a platform for musicians to share and contribute to their art using the principals of open source software. Martin also teaches digital music production with tools such as Ableton Live and Cubase.
Martin has several real estate projects in progress in the Nicoya Peninsula in Costa Rica where he purchased large tracts of land several years ago and has begun developing infrastructure and reselling subdivisions. The ultimate goal in this project is to develop a 50 acre nature preservation around a man made reservoir, for the protection and preservation of indigenous animal and bird species that live in these coastal regions. More about Martin Folb...
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.
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
This was a excellent course that covers the Tomcat Server thoroughly.
Excellent course. Sasa is an outstanding instructor. Extremely knowledgeable and an excellent teacher.
Great class that met the expectations we had set forward. Very flexible to customizing to meet our special requirements.
