Apache Web Server Training Course
Course Summary
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.
[top] Duration
2 days.
[top] Objectives
Upon completion of Marakana Apache Training 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
[top] Audience
Marakana Apache Training course is for web server administrators who need to be able to install, configure, tune, and secure Apache httpd Web Server.
[top] Prerequisites
To get the most benefit from Marakana Apache Training course, you should be familiar with the basic principles of server/system administration.
Additionally, prior exposure to any of these concepts can be helpful:
- Compilation of native programs (e.g. configuring and compiling C/C++ applications on UNIX/Linux)
- HTTP protocol (i.e., the stateless nature of HTTP, the need for sessions, HTTP methods, SSL, etc.)
- Regular expressions
[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
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
[top] Additional Notes
About the Platform
Marakana Tomcat Training course can be taught on both Windows and UNIX/Linux-type environments. The instructor covers both options during the training.
Marakana.com Runs on Tomcat

Marakana.com is written in Java using Spring and Hibernate frameworks. We deploy it on Apache Tomcat Application Server. Both Marakana Spark and Apache Tomcat are Java applications and thus run on Java Virtual Machine. Spark uses MySQL database for persistence. Our operating system of choice is Ubuntu Linux, for security and reliability reasons. So we practice what we teach. You will learn from real developers.
Trademarks
Apache™ and Tomcat™ are a trademark of The Apache Software Foundation. All other marks are the properties of their respective owners.
Java Meetup Organized by Marakana
Marakana team organizes and runs the San Francisco Java Meetup - an interactive group of Java developers. In our monthly meetings, we discuss Java landscape from both technology and business angles. We often have great presentations by industry experts, group discussions, as well as hands-on sessions. If you are in San Francisco Bay Area, we encourage you to join the group and meet other Java developers.
[top] Student Testimonials
Very well structured and very comprehensive.
Excellent!!! I would consider taking other classes in the future!!!
Instructor knew his stuff and was very clear about everything.
The instructor is very knowledgable & precise in providing the required information.
Indispensible . Absolutely fabulous course. Learned so much even after using apache for 10+ years.
This training was fantastic. It exceeded my expectations in almost every way. As an experienced administrator it was valuable to review foundational information and build a deep understanding of concepts I might use everyday but self-taught and were always a bit of a black box. Advanced topics were clearly explained and placed in the context of the application as a whole. This course had lots of theory, but was consistently considered in a practical setting. The instructor was a rock-star who is clearly an accomplished expert. This training delivered in terms of content, experience and value for dollar. The next time I need technical training I will definitely go to Marakana first.
I am new to Apache, a lot to learn more than expected and I enjoyed it.
Great class, very fast paced and relevant. Since we have already started working with the product, we were able to see and ask some relevant questions and get some excellent information.
Great course. It gave me the necessary background and foundation that I needed to use apache the way I need it.
This class changed my life. I will never be the same again.
Great pace, great content, great instructor. You have enough knowledge to go further explore with a good understanding.
I enjoyed this class very much and learned a great deal. This gave me the opportunity to have full instructor focus and made the experience that much more valuable. Thank you Marakana!
Really fantastic course. Helped with my understanding of the topic as well as unrelated topics as the instructor shared his experience in the real world as well.
Sasa was great! Outstanding instructor...really knows is craft.
Wide range of experience with students in class but material was well paced.
Great experience overall....
I really enjoyed this class!
Excellent Class. Exactly what I was looking for. Thanks!
Overall this was an excellent class and I would highly recommend it to my peers and anyone else who asked...
Excellent Format of Training... Excellent trainer... Its nice learning from somebody that actually uses the software, not just read it from a book... Thank You
Without exaggeration, I can wholeheartedly say that this was the best training class I've ever taken. Sasa was an outstanding instructor and demonstrated time and time again how well he knows Apache. I was truly blown away by how useful and informative it was. Highly recommended!
Sasa was great instructor and demonstrated mastery of material and was enjoyable to have as an instructor. Would highly recommend.
Great Class!
