Argumento de Apache Práctico
Apache es el servidor Web más utilizado en todo el mundo, y a ello contribuye sin duda el paquete básico distribuido por Apache Software Foundation , que se p como un producto realmente completo y muy potente. Buena muestra de ello es una característica concreta de este paquete, su extensibilidad, que permite en el caso de que Apache no cubra en su totalidad las necesidades del usuario, extenderlo para que las satisfaga plenamente. Apache Práctico es una recopilación de problemas, soluciones y ejemplos que conforman una excelente obra de referencia para webmasters, administradores, programadores, o para cualquiera que trabaje con Apache, y que sin duda garantiza un gran ahorro de tiempo. En el libro se presta especial atención a los problemas reales de los usuarios en función de la frecuencia en que se producen, agrupándolos por temas tanto en la tabla de contenidos como en el índice, lo que facilita notablemente su consulta. Las soluciones que ofrece esta obra van en definitiva desde tareas sencillas, como la de instalar el servidor, hasta tareas complejas, como la de asegurar y gestionar un servidor proxy, mejorar el rendimiento, así como tareas de protección a través de contraseñas.0Sobre los autores Agradecimientos Prólogo Contenido del manual Plataformas Otros manuales Otros recursos Organización del libro Capítulo 1. Instalación 1.1. Instalación desde los paquetes Red Hat Linux 1.2. Instalación de Apache para Windows 1.3. Cómo descargar el código fuente de Apache 1.4. Cómo construir Apache a partir del código fuente 1.5. Instalación mediante ApacheToolbox 1.6. Cómo iniciar, detener y reiniciar Apache 1.7. Cómo desinstalar Apache Capítulo 2. Adición de módulos comunes 2.1. Instalación de un módulo genérico de terceros 2.2. Instalación del módulo mod_dav en un sistema Unix 2.3. Instalación del módulo mod_dav en Windows 2.4. Instalación del módulo mod_perl en un sistema Unix 2.5. Instalación del módulo mod_php en un sistema Unix 2.6. Instalación del módulo mod_php en Windows 2.7. Instalación del módulo Python mod_snake 2.8. Instalación del módulo mod_ssl Capítulo 3. Registro 3.1. Entradas de registro más detalladas 3.2. Mensajes de error más detallados 3.3. Registro de contenidos POST 3.4. Registro de una dirección IP de cliente Proxy 3.5. Registro de direcciones de cliente MAC 3.6. Registro de Cookies 3.7. Evitar el registro de solicitud de imágenes desde páginas locales 3.8. Registro de solicitudes por día u hora 3.9. Rotación de registros el primer día del mes 3.10. Registro de nombres de Anfitriones en lugar de direcciones IP 3.11. Mantenimiento de registros separados para cada Host virtual 3.12. Registro de solicitudes Proxy 3.13. Registro de errores para Anfitriones virtuales en archivos múltiples 3.14. Registro de direcciones IP 3.15. Registro de la página referida 3.16. Registro del nombre del buscador 3.17. Registro de campos de encabezamiento de solicitudes arbitrarias 3.18. Registro de campos de encabezamiento de respuesta arbitrarias 3.19. Registro de actividad en la base de datos MySQL 3.20. Registro en syslog 3.21. Registro de directorios de usuarios Capítulo 4. Anfitriones virtuales 4.1. Configuración de un anfitrión virtual basado en nombres 4.2. Designación de un anfitrión virtual basado en nombres como anfitrión predefinido 4.3. Configuración de un anfitrión virtual basado en direcciones IP 4.4. Creación de un anfitrión virtual predefinido basado en direcciones IP 4.5. Combinación de anfitriones virtuales basados en nombres y en direcciones 4.6. Conexión de varios anfitriones virtuales mediante mod_vhost_alias 4.7. Conexión de varios anfitriones virtuales mediante RewriteRule 4.8. Anfitriones virtuales SSL y basados en nombres 4.9. Registro para cada anfitrión virtual 4.10. Cómo dividir un archivo de registro 4.11. Anfitriones virtuales basados en puertos 4.12. Cómo mostrar el mismo contenido en varias direcciones Capítulo 5. Alias, redireccionamiento y reescritura 5.1. Cómo resaltar el código de una página personal (PHP) sin crear un "vínculo simbólico" 5.2. Conexión de una URL con un directorio 5.3. Creación de una nueva dirección URL para contenido ya existente 5.4. Cómo asignar a un usuario su propia dirección URL 5.5. Utilización de Alias para varias URL con un único directivo 5.6. Conexión de varias direcciones URL al mismo directorio CGI 5.7. Cómo crear un directorio CGI para cada usuario 5.8. Redireccionamiento a una ubicación distinta 5.9. Redireccionamiento de varias direcciones URL al mismo destino 5.10. Direcciones URL insensibles al uso de mayúsculas 5.11. Sustitución de texto en direcciones URL solicitadas 5.12. Reescritura de información sobre rutas en argumentos CGI 5.13. Cómo denegar acceso a solicitudes de otros ámbitos 5.14. Reescritura basada en la cadena de consulta 5.15. Redireccionamiento de todo o parte del servidor al protocolo SSL 5.16. Cómo convertir directorios en nombres de anfitrión 5.17. Redireccionamiento de todas las solicitudes a un único anfitrión 5.18. Cómo convertir nombres de documentos en argumentos Capítulo 6. Seguridad 6.1. Uso de la información de cuenta del sistema para identificar una Web 6.2. Cómo crear contraseñas para un solo uso 6.3. Cómo determinar la validez de una contraseña 6.4. Cómo limitar el tamaño de la página 6.5. Cómo restringir el uso de imágenes fuera del sitio 6.6. Cómo requerir identificación sencilla y severa 6.7. Gestión de archivos .htpasswd 6.8. Creación de archivos de contraseña para identificación Digest 6.9. Cómo bajar el nivel de seguridad de un subdirectorio 6.10. Eliminación de restricciones de manera selectiva 6.11. Autorización mediante propiedad de archivo 6.12. Almacenamiento de las credenciales del usuario en la base de datos MySQL 6.13. Obtención del nombre de usuario empleado para la identificación 6.14. Obtención de la contraseña empleada para la identificación 6.15. Cómo evitar accesos no legítimos 6.16. Uso de Digest en lugar de la identificación básica 6.17. Acceso a credenciales que forman parte de direcciones URL 6.18. Seguridad WebDAV 6.19. Cómo habilitar WebDAV sin que el usuario pueda modificar los archivos 6.20. Restricción de acceso proxy a direcciones URL determinadas 6.21. Protección de archivos mediante un wrapper o envoltura 6.22. Cómo proteger todos los archivos, menos un subgrupo 6.23. Protección de archivos contra scripts maliciosos 6.24. Cómo definir permisos de archivo correctos 6.25. Cómo ejecutar el servidor con un número limitado de módulos 6.26. Restricción de acceso a archivos fuera del directorio raíz 6.27. Limitación de métodos según el usuario 6.28. Restricción de solicitudes parciales Capítulo 7. SSL 7.1. Instalación de SSL 7.2. Cómo generar certificados SSL 7.3. Cómo generar un certificado legítimo 7.4. Cómo mostrar parte del sitio mediante SSL 7.5. Identificación mediante certificados de clientes Capítulo 8. Contenido dinámico 8.1. Cómo habilitar un directorio CGI 8.2. Cómo habilitar scripts CGI en directorios que no son ScriptAlias 8.3. Cómo utilizar extensiones de Windows para ejecutar programas CGI 8.4. Cómo utilizar extensiones para identificar scripts CGI 8.5. Cómo comprobar que la configuración de CGI es correcta 8.6. Parámetros de lectura 8.7. Invocación de un programa CGI para tipos de contenido concreto 8.8. Cómo hacer que el sistema SSI funcione 8.9. Cómo mostrar la fecha de la última modificación 8.10. Cómo incluir un encabezamiento estándar 8.11. Cómo incluir el resultado de un programa CGI 8.12. Ejecución de scripts CGI como un usuario distinto mediante suexec 8.13. Instalación de un módulo mod_perl desde CPAN 8.14. Cómo crear un administrador mod_perl 8.15. Activación de scripts PHP 8.16. Cómo verificar la instalación de PHP Capítulo 9. Tratamiento de errores 9.1. Campo Host inexistente 9.2. Cómo modificar el mensaje de estado para scripts CGI 9.3. Mensajes de error personalizados 9.4. Cómo proporcionar documentos de error en diferentes idiomas 9.5. Cómo redireccionar direcciones incorrectas a páginas válidas 9.6. Cómo conseguir que Internet Explorer muestre páginas de error personalizadas 9.7. Notificación de condiciones de error Capítulo 10. Proxies 10.1. Cómo asegurar un servidor Proxy 10.2. Cómo evitar que se utilice el servidor Proxy como un programa de correo abierto 10.3. Cómo enviar solicitudes a otro servidor 10.4. Cómo bloquear solicitudes Proxy a direcciones concretas 10.5. Cómo enviar contenido gestionado a través de mod_perl a otro servidor 10.6. Cómo configurar un servidor Proxy de memoria caché RAM 10.7. Cómo filtrar contenido Proxy 10.8. Cómo requerir autentificación para acceder al servidor Proxy Capítulo 11. Rendimiento 11.1. Cómo determinar cuánta memoria se requiere 11.2. Cómo evaluar el rendimiento de Apache con ab 11.3. Cómo habilitar los ajustes de Keepalive 11.4. Cómo conocer la actividad del sitio 11.5. Cómo evitar búsquedas DNS 11.6. Optimización de vínculos simbólicos 11.7. Cómo reducir el impacto en el rendimiento de los archivos .htaccess 11.8. Cómo deshabilitar la negociación de contenido 11.9. Optimización del proceso de creación 11.10. Cómo mejorar la creación de tareas 11.11. Cómo almacenar en caché los archivos más visitados 11.12. Cómo repartir la carga entre servidores mediante mod_proxy 11.13. Cómo distribuir la carga uniformemente 11.14. Cómo enviar a memoria caché los listados de directorios 11.15. Cómo incrementar la velocidad de programas Perl CGI con mod_perl Capítulo 12. Temas variados 12.1. Ubicación adecuada de los directivos 12.2. Cómo cambiar el nombre de archivos .htaccess 12.3. Cómo generar listas de directorios 12.4. Cómo solucionar el problema de la barra inclinada 12.5. Cómo configurar el tipo de contenido según las capacidades del buscador 12.6. Cómo actuar cuando no existe un campo de encabezamiento Host: 12.7. Cómo cambiar un documento predeterminado 12.8. Cómo configurar un icon A. Uso de expresiones regulares en Apache ¿Qué directivos utilizan expresiones regulares? Elementos básicos de las expresiones regulares Ejemplos Para más información B. Solución de problemas Metodología para solucionar problemas Solución de problemas en la configuración Cómo solucionar la finalización prematura de encabezamientos de script Problemas más comunes en Windows Cómo solucionar errores de construcción Cómo activar Includes en todo el servidor Cómo solucionar errores "Not Found" ocasionados por cambios en las direcciones Archivos .htaccess inválidos Direcciones ya en alfabético