IntroductionChapter 1 Apache Basics Discovering Apache Determining Whether Apache Is Already Installed Installing Apache 1.3 on Linux and Unix Installing Apache 2.0 on Linux and Unix Installing Apache on Windows Configuration File Basics Using Multiple Configuration Files Starting, Stopping, and Restarting Apache Changing the Address and Port Apache Uses Changing the User Apache Runs As Specifying a Server Name Providing an Icon for my Web Page Discovering the Modules Available on the Server Enabling and Disabling Individual Modules Adding Modules after Compiling Apache Without Recompiling Publishing Content Default Apache Directive Containers Directive Containers for Conditional EvaluationChapter 2 Troubleshooting Help! My Apache Server Does Not Work! The Error Log Logging to the System Log Daemon Controlling the Amount of Information Logged Testing the Apache Configuration for Problems Testing Apache from the Command Line Checking That Apache Is Running Alternate Ways of Stopping Apache Using Apache to Debug Apache Startup Errors Syntax Error Address Already in Use Could Not Bind to Port Module Not Compatible Name Resolution Cannot Open Log or Configuration File Access Denied Errors Internal Server Errors Segmentation Faults Premature End of Script Headers Malformed Headers Additional Error Log Files Redirections Do Not Work Troubleshooting Checklist Starting the Server Connecting to the Server Document Not Found Access Forbidden Internal Server Errors If All Else FailsChapter 3 Logs and Monitoring Introduction to Logging in Apache Default Apache Log Files Creating Log Formats Creating a Custom Log File Redirecting Logs to an External Program Logging Requests Conditionally Monitoring Who Is Linking to Your Website Monitoring Apache with mod_status Monitoring Apache with SNMP Analyzing Your Logs with Open-source Tools Monitoring Your Logs in Real Time Logging Requests to a Database Rotating and Archiving Logs Controlling IP Address Resolution Processing Logged IP Addresses Restarting Apache Automatically If It Fails Merging and Splitting Log Files Keeping Separate Logs for Each Virtual Host Common Log EntriesChapter 4 URL Mapping and Dynamic Content URL Mapping Mapping URLs to Files with Alias Mapping URL Patterns to Files with AliasMatch Redirecting a Page to Another Location Redirecting to the Latest Version of a File Redirecting Failed or Unauthorized Requests Defining Content Handlers Understanding MIME Types Configuring MIME Types Basics of Running CGI Scripts Marking Resources As Executable CGIs Associating Scripts with HTTP Methods and MIME Types Troubleshooting the Execution of CGI Scripts Improving CGI Script Performance Understanding Server Side Includes Configuring Server Side Includes Setting Environment Variables Setting Environment Variables Dynamically Special Environment Variables Understanding Content Negotiation Configuring Content Negotiation Assigning Default Charsets and Language Priorities Advanced URL Mapping with mod_rewrite Understanding the "Trailing Slash" Problem Fixing Spelling Mistakes Fixing Capitalization Problems Validating Your Pages with TidyChapter 5 Virtual Hosting What Is Virtual Hosting? What Is IP-based Virtual Hosting? Configuring IP-based Virtual Hosting What Is Name-based Virtual Hosting? Configuring Name-based Virtual Hosting What Happens If a Request Does Not Match Any Virtual Host? Configuring a Default Name-based Virtual Host Configuring a Default IP-based Virtual Host Mixing Name-based and IP-based Virtual Hosts Debugging Virtual Host Setups Using SSL with Name-based Virtual Hosts Alternate Virtual Hosting Alternate Virtual Hosting Modules Per-directory Configuration Files Controlling the Scope of Per-directory Configuration Files Disabling Per-directory Configuration FilesChapter 6 Security and Access Control Understanding the Need for Access Control Differences Between Apache Versions Understanding Basic and Digest Authentication Introducing Apache Access Control Introducing Apache Authorization and Authentication Configuration Creating a User Database Using Require to Authorize Users and Groups Handling a Large Number of Users Allowing Access Only to Specific IP Addresses Denying Access to Specific IP Addresses Combining Access Control Methods Customizing Your Access Denied Page Putting Users in Control Denying Access to System and Sensitive Files Restricting Program Execution Preventing Abuse Disabling Directory Listings Changing the Server: Header Preventing Hotlinking to Your Images Restricting Specific HTTP Methods Restricting Access Based on the Browser Type Using Location and Directory Sections Additional Authentication Modules mod_security Apache 2.2 Keeping Up to Date with Apache Security Security Checklist Disable Unneeded Modules Remove Sample Scripts Limit or Disable CGI Execution and SSI Check File Permissions Limit or Disable Proxy Functionality Restrict Access to Your Server by DefaultChapter 7 SSL/TLS What Is SSL? How Does SSL Work? Compiling OpenSSL Encryption Keys Creating a Key Pair Creating a Password-protected Key Pair Remove the Password from a Key Certificates Creating a Certificate Signing Request Showing the Contents of a Certificate Signing Request Creating a Self-signed Certificate Compiling SSL Support in Apache 1.3 Compiling SSL Support in Apache 2.x Minimal Apache Configuration Starting Apache with SSL Support SSLPassPhraseDialog Improving SSL Performance Forcing All Content to Be Served Using SSL SSL and Name-based SSL Virtual Hosts Using Apache Auth Modules with SSL Warning Messages When Accessing an SSL-enabled Website Creating Client Certificates Authentication Using Client Certificates Alternatives to mod_ssl Testing SSL-enabled Websites from the Command Line Working Around Buggy SSL Implementations Complex Access Control with mod_ssl Related ChaptersChapter 8 Content Publishing with DAV Content Publishing and Apache Introducing WebDAV Advantages of Using mod_dav WebDAV and the HTTP Protocol Installing mod_dav on Apache 2.0 Installing mod_dav on Apache 1.3 Basic WebDAV Configuration Securing Your WebDAV Configuration Accessing DAV Resources from Microsoft Office Accessing DAV from Microsoft Windows Accessing DAV Resources from Firefox Accessing DAV from the Command Line Dealing with Buggy Clients mod_speling and DAV Dynamic Content and DAV Enabling Per-user Pages Alternate User Directories Fixing Problems with DAVLockDBChapter 9 Performance and Scalability Tuning Apache Understanding Performance and Scalability Tuning Your Hardware Increasing OS Limits Increasing OS Limits on Processes Increasing OS File Descriptors Controlling External Processes Improving File System Performance Mounting File Systems with noatime Option Handling Symbolic Links Disabling Per-directory Configuration Files Configuring Content Negotiation Disabling or Minimizing Logging Tuning Network and Status Settings HostnameLookups Request Accept Mechanism mod_status AcceptFilter KeepAlives Preventing Abuse Limiting Connections and Bandwidth Dealing with Robots Reverse Proxies and Load Balancers Caching and Compression Module-specific Optimizations Alternatives to ApacheChapter 10 Apache Proxy and Caching Support Understanding the Need for Caching and Proxies Understanding Forward and Reverse Proxies Differences Between Apache 1.3, 2.0, and 2.2 Enabling mod_proxy Support Enabling Forward Proxy Support Using a Reverse Proxy to Unify Your URL Space Hiding the Backend Servers Preventing URLs from Being Reverse Proxied Improving Performance Offloading SSL Processing Passing Proxy Information in Headers Manipulating Headers Implementing a Caching Proxy Caching in Apache 2 Load Balancing Connecting to Tomcat Alternate Proxies Transparent HTTP ProxiesChapter 11 Multi Processing and Protocol Modules The Evolution of Apache's Architecture Selecting a Multi Processing Module Understanding Process-Based MPMs Configuring the Prefork MPM Understanding Threaded and Hybrid MPMs Configuring the Worker MPM Using Alternate MPMs Understanding Apache 2 Filters Using Apache As an FTP Server Using Apache As a POP3 Server Compressing Content on the Fly0672328364, TOC, 5/24/06
Because Apache is the most-used web server running today, many Apache administrators are novices or don't complete the same tasks on a weekly basis. These readers are hungry for a concise, easy-to-use reference that puts essential code "phrases" at their fingertips. While there are many Apache books on the market, none of them answer essential questions quickly and efficiently. Administrators may want to fix a small problem that doesn't require pages of confusing explanation. Today's problem will likely not be tomorrow's problem, and the non-guru administrator wants answers each day to keep his server up-and-running. Apache Phrasebook is the guide to Apache that people will seek first to get the job done. Skipping the usual tutorial on Apache, the Apache Phrasebook goes straight to practical Apache tools, providing immediately applicable solutions for frequent tasks and code so flexible that it is easily adapted to the administrator's needs.
Daniel Lopez is President and CTO of BitRock, a company building multiplatform installation and management tools with a focus on open source. He is the original author of the mod_mono Apache module, the Comanche configuration tool and is a member of the Apache Software Foundation and speaks regularly at a number of open source related conferences. Jesus Blanco is a Project Manager at BitRock, a company building multiplatform installation and management tools with a focus on open source. He is the author of the official Spanish translation of the Apache documentation. Jesus has a degree in Business Administration from University of Seville and a BS in Computer Engineering from UNED.