Apache Web Server Training Course
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.
Upon completion of our 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
The Apache Training course is for web server administrators who need to be able to install, configure, tune, and secure Apache httpd Web Server.
To get the most benefit from the 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
Please note that all these concepts are covered in the class.
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...
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)
- 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
- 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
- <Directory> and <DirectoryMatch>
- Overview of regular expressions
- <Files> and <FilesMatch>
- <Location> and <LocationMatch>
- <Limit> and <LimitExcept>
- <VirtualHost> (overview-only, more on this later)
- <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
- 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
- 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)
- 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
- 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)
- Simple HOWTO
- Perl with mod_perl
- Performance impact
- PHP with mod_php
- 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
- RewriteCond directive
- Uses (combining)
- RewriteOptions directive
- RewriteBase directive
- RewriteMaps directive
- RewriteLock directive
- mod_rewrite in practice
Additional Notes [top]
About the Platform
The Tomcat Training course can be taught on both Windows and UNIX/Linux-type environments. The instructor covers both options during the training.
NewCircle.com Runs on Tomcat
NewCircle.com is written in Java using Spring and Hibernate frameworks. We deploy it on Apache Tomcat Application Server. Both NewCircle 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.
Apache™ and Tomcat™ are a trademark of The Apache Software Foundation. All other marks are the properties of their respective owners.
Student Testimonials [top]
Great course. It gave me the necessary background and foundation that I needed to use apache the way I need it.
Excellent Class. Exactly what I was looking for. Thanks!
Great pace, great content, great instructor. You have enough knowledge to go further explore with a good understanding.
Overall this was an excellent class and I would highly recommend it to my peers and anyone else who asked...
Sasa was great! Outstanding instructor...really knows is craft.
Very well structured and very comprehensive.
This class changed my life. I will never be the same again.
Excellent!!! I would consider taking other classes in the future!!!
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.
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
Wide range of experience with students in class but material was well paced.
Instructor knew his stuff and was very clear about everything.
Sasa was great instructor and demonstrated mastery of material and was enjoyable to have as an instructor. Would highly recommend.
Great experience overall....
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.
Indispensible . Absolutely fabulous course. Learned so much even after using apache for 10+ years.
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!
I really enjoyed this class!
The instructor is very knowledgable & precise in providing the required information.