Upload
pisistrato
View
227
Download
0
Embed Size (px)
Citation preview
7/21/2019 La Biblia de Servidor Apache 2
1/843
7/21/2019 La Biblia de Servidor Apache 2
2/843
La biblia de
Servidor Apache 2
7/21/2019 La Biblia de Servidor Apache 2
3/843
LA BIBLIA DE
TTULO DE LA OBRA ORIGINAL:
Apache Server 2 Bible
RESPONSABLE EDITORIAL:
Vctor Manuel Ruz CaldernSusana Krahe Prez-Rubn
TRADUCTOR :
Seven Servicios Integrales
AUTOEDICIN:
Seven Servicios Integrales
7/21/2019 La Biblia de Servidor Apache 2
4/843
La biblia de
Servidor Apache 2
Mohammed J. Kabir
ANAYAI MULTIMEDIA I
7/21/2019 La Biblia de Servidor Apache 2
5/843
Todos los nombres propios de programas, sistemas operativos, equipos hardware,etc. que aparecen en este libro son marcas registradas de sus respectivascompaas u organizaciones.
Reservados todos los derechos. El contenidode esta obra est protegido por la ley, queestablece penas de prisin y/o multas, ademsde las correspondientes indemnizaciones pordaos y perjuicios, para quienes reprodujeren,plagiaren, distribuyeren o comunicasen pblicamente, en todo o en parte, una obra literaria,artstica o cientfica, o su transformacin,interpretacin o ejecucin artstica fijada encualquier tipo de soporte o comunicada atravs de cualquier medio, sin la preceptivaautorizacin.
Copyright 2002 by Anaya Multimedia.Original English language edition copyright 2002 by HungryMinds, Inc.
All rights reserved including the right of reproduction in whole or inpart in any form. This edition published by arrangement with theoriginal publisher, Hungry Minds, Inc.
Edicin espaola:
EDICIONES ANAYA MULTIMEDIA (GRUPO ANAYA, S.A.), 2003Juan Ignacio Luca de Tena, 15. 28027 MadridDepsito legal: M. 51.355-2002ISBN: 84-415-1468-2Printed in SpainImprime: Lavel, S. A.
7/21/2019 La Biblia de Servidor Apache 2
6/843
A la memoria de mi madre,
Nazma Bathen.
7/21/2019 La Biblia de Servidor Apache 2
7/843
Agradecimientos
Me gustara dar las gracias al grupo Apache por haber creado el servidor Webms poderoso, ampliable y modular del mundo. Quiero darle especialmente lasgracias a Ralf S. Engelschall. Ralf, es el autor del mdulo mod r e w r i t e , y
proporcion un gran soporte al desarrollo del captulo 9 sobre las reglas parareescribir las URL. Los ejemplos prcticos de ese captulo pertenecen a su coleccin personal, que mantiene en aumento su sitio Web www. e n g e l s c h a l l .c o m / p w / a p a c h e / r e w r i t e g u i d e .
Quiero dar las gracias tambin al equipo de Hungry Minds, el cual hizo de estelibro una realidad. Es imposible realizar una lista con todos los implicados perodebo mencionar a las siguientes personas:
James Russell, el Director de desarrollo del proyecto, el cual empuj este
proyecto. No s cmo hubiese podido hacer este libro sin su generosa ayuda y sussugerencias a cada paso del camino. Gracias James.Terri Varveris, el Director de adquisiciones, que me ofreci esta oportunidad y
que asegur su final. Gracias Terri.Sheila Kabir, mi esposa, que tuvo que cargar con muchas horas de trabajo
duro durante los meses que tard en escribir este libro. Gracias cielo.
Acerca del autorMohammed Kabir es el fundador y el director general de Evoknow, Inc. Esta
compaa est especializada en el desarrollo de software CRM. Kabir disfrutaviajando, siempre y cuando no est ocupado gestionando proyectos o escribiendolibros. Estudia ingeniera de sistemas computacionales en la Universidad estatalde California, en Sacramento. Se puede contactar con l en [email protected].
^^E^ l
mailto:[email protected]:[email protected]7/21/2019 La Biblia de Servidor Apache 2
8/843
ndice
Agradecimientos 6
Acerca del autor 6Introduccin 3 3
Cmo est organizado este libro 34Parte I. Comenzar 34Parte II. Administrar sitios Web 34Parte III. Ejecutar aplicaciones Web 34Parte IV. Asegurar su sitio Web 34
Parte V. Ejecutar Apache en Win32 34Parte VI. Mejorar la escalabilidad 35Parte VIL Apndices 35
Convenios utilizados en este libro 35
Parte I. Comenzar 3 7
1. Apache: el servidor nmero uno 3 9
En este captulo 39
Popularidad de Apache 40Apache: el comienzo 41La lista de caractersticas de Apache 41Entender la arquitectura de Apache 2.0 44
Mdulos multiproceso 44El MPM prefork 44
7/21/2019 La Biblia de Servidor Apache 2
9/843
El MPM threaded 44El MPM perchild 45El MPM winnt 45
Filtrado I/O 45El nuevo demonio CGI 46Apache es portable en tiempo de ejecucin 46
Entender la licencia de Apache 47
2. Obtener e instalar Apache 5 1
En este captulo 51La fuente oficial de Apache 52Requisitos del sistema 52
Requisitos para construir Apache desde la distribucin de la fuente 53Requisitos para ejecutar un servidor Web Apache 54
Bajar el software 56Instalar Apache desde el cdigo fuente 57
Configurar la fuente de Apache 58Opciones avanzadas de configuracin para sitios con mucho trfico 63Compilar e instalar Apache 65
Instalar Apache desde los paquetes binarios RPM 69Mantenerse al da en el desarrollo de Apache 69
3. Preparar y ejecutar Apache 73En este captulo 73Configurar Apache 73
Configurar el entorno global para Apache 78PidFile 79ScoreBoardFile 80Timeout, KeepAlive, MaxKeepA liveRequests y KeepAliveTimeout 80Contenedores IfModule 80Directivas para el comportamiento MPM threaded (comportamiento
MPM por defecto) 81StartServers 81MaxClients 81MinSpareThreads 82MaxSpareThreads 82ThreadsPerChild 82MaxRequestPerChild 82
Configurar el servidor principal 83Puerto 83Directivas de usuarios y grupos 83ServerAdmin 84DocumentRoot 84
7/21/2019 La Biblia de Servidor Apache 2
10/843
Directivas en contenedores de directorios 86UserDir 88Directorylndex 89AccessFileName 91Contenedor de archivos 91UseCanonicalName 91TypesConfig 91DefaultType 91Contenedor IfModule 91HostnameLookups 92ErrorLog 92LogLevel 92CustomLog 92
ServerSignature 93Alias 93ScriptAlias 93El resto de directivas 94LanguagePriority 94AddDefaultCharset 94
Iniciar y parar Apache 94Iniciar Apache 95
Reiniciar Apache 97Parar Apache 97
Parar Apache automticamente 97Parar el servidor Apache manualmente 97
Comprobar Apache 98
4. Configurar Apache con directivas MPM Winnt 101
En este captulo 101
Contextos de las directivas Apache 102Contexto de configuracin del servidor 103Contexto de contenedor 103Contexto en el mbito de directorio 105
Directivas de configuracin general 106AccessFileName 106AddDefaultCharset 107ContentDigest 107
DefaultType 108DocumentRoot 108ErrorDocument 109 111 111Include 112
7/21/2019 La Biblia de Servidor Apache 2
11/843
Options 113Port 115ServerAdmin 115ServerName 116ServerRoot 117ServerSignature 117
ServerTokens 117SetlnputFilter 118SetOutputFilter 118
Directivas de rendimiento y de configuracin de recursos 118Controlar los procesos de Apache 119
ListenBacklog 119MaxClients 119MaxRequestsPerChild 119
MaxSpareServers 119MinSpareServers 120SendBufferSize 120StartServers 120TimeOut 120
Realizar conexiones persistentes 120KeepAlive 121KeepAliveTimeout 121
MaxKeepAliveRequests 122Controlar los recursos del sistema 122
RLimitCPU 122RLimitMEM 123RLimitNPROC 123UseCanonicalName 124
Utilizar mdulos dinmicos 124AddModule 124
ClearModuleList 125Directivas de contenedores estndar 125
125 127 127 128 128 129
Directivas especficas de host virtuales 129NameVirtualHost 129ServerAlias 130ServerPath 131 131
ro
7/21/2019 La Biblia de Servidor Apache 2
12/843
Directivas de registro 132LogLevel 133PidFile 134ScoreBoardFile 134
Directivas de autentificacin y de seguridad 135AllowOverride 135AuthName 136AuthType 137HostNameLookups 137IdentityCheck 138 138 139LimitRequestBody 139
LimitRequestFields 140LimitRequestFieldsize 140LimitRequestLine 140Require 140Satisfy 141ScriptlnterpreterSource 142
Directivas especficas de MPM threaded 142CoreDumpDirectory 143
Group 143Listen 143ListenBacklog 144LockFile 144MaxClients 145MaxRequestsPerChild 145MaxSpareThreads 146MinSpareThreads 146
SendBufferSize 147StartServers 147ThreadsPerChild 148User '. 148
Directiva especficas de MPM perchild 149AssignUserID 149ChildPerUserID 150
ConnectionStatus 150
CoreDumpDirectory 151Group 151Listen 151ListenBacklog 151LockFile 151MaxRequestsPerChild 151
7/21/2019 La Biblia de Servidor Apache 2
13/843
MaxSpareThreads 151MaxThreadsPerChild 151MinSpareThreads 152NumServers 152PidFile 152ScoreBoardFile 152
SendBufferSize 152StartThreads 153User 153
Directivas especficas de MPM 153CoreDumpDirectory 153Listen 153ListenBacklog 153MaxRequestsPerChild 153
PidFile 154SendBufferSize 154ThreadsPerChild 154
Directivas especficas de MPM prefork 154CoreDumpDirectory 154Group 154Listen 154ListenBacklog 154
LockFile 155MaxClients 155MaxRequestsPerChild 155MaxSpareServers 155MinSpareServers 155PidFile 156ScoreBoardFile 156SendBufferSize 156
StartServers 156User 156
5. Mdulos Apache 159
En este captulo 159Un vistazo a los mdulos 160Mdulos relacionados con el entorno 160
modenv 161
PassEnv 161SetEnv 161UnsetEnv 162
modsetenvif 162BrowserMatch 162
a
7/21/2019 La Biblia de Servidor Apache 2
14/843
BrowserMatchNoCase 163SetEnvIf 163SetEnvIfNoCase 163
moduniqueid 164Mdulos de control de acceso y autentifcacin 164
modauthanon 165Anonymous 165AnonymousAuthoritative 165AnonymousLogEmail 166AnonymousMustGiveEmail 166AnonymousNoUserID 166Anonymous VerifyEmail 167
modauthdbm 167
AuthDBMUserFile 170AuthDbmGroupFile 170AuthDBMAuthoritative 171
modauthdb 172AuthDBUserFe 173AuthDBGroupFile 173AuthDBAuthoritative 174
Mdulos de generacin de contenido dinmico 174
modactions 175Action 175Script 178
modextfilter 179ExtFilterDefine 179ExtFilterOptions 180
Mdulos de configuracin de tipo de contenido 181modmime 181
AddCharset 181AddEncoding 182AddHandler 182AddLanguage 182AddType 183DefaultLanguage 183ForceType 184SetHandler 184
RemoveHandler 184TypesConfig 185modmimemagic 185modnegotiation 186
CacheNegotiatedDocs 186LanguagePriority 187
El
7/21/2019 La Biblia de Servidor Apache 2
15/843
Mdulos de listas de directorios 187moddir 188modautoindex 188
AddAlt 189AddAltByEncoding 189AddAltByType 190
AddDescrip.tion 190Addlcon 190AddlconByEncoding 191AddlconByType 191Defaultlcon 192Fancylndexing 192HeaderName 192Indexlgnore 193
IndexOptions 193IndexOrderDefault 195ReadmeName 195
Response Header Modules 195modasis 196modheaders 197mod_expires 197
ExpiresActive 198
ExpiresByType 198ExpiresDefault 199
modcernmeta 200MetaFiles 200MetaDir 200MetaSuffx 201
Mdulos de informacin de servidores y de registro 201modlogconfig 202
modstatus 202modinfo 202modusertrack 202
Mdulos de integracin UR L 202moduserdir 203modalias 204
Alias 204AliasMatch 205
Redirect 205RedirectMatch 206RedirectTemp 207RedirectPermanent 207ScriptAlias 207
7/21/2019 La Biblia de Servidor Apache 2
16/843
ScriptAliasMatch 207modspeling 208
modvhostalias 208VirtualDocumentRoot 208VirtualDocumentRootlP 209
VirtualScriptAlias 210VirtualScriptAliasIP 210
Otros mdulos 210modso 211
LoadFile 211LoadModule 211
modimap 212ImapMenu 213
ImapDefault 214ImapBase 215
modfilecache 215MMapFile 215
CacheFile 216moddav 216
Dav 216DavLockDB 216
DavMinTimeout 216DavDepthlnfinity 217
Parte II. Administrar sitios Web 219
6. Alojar sitios Web virtuales 221
En este captulo 221
Entender las capacidades del hospedaje virtual en Apache 222Establecer un host virtual 223Host virtuales basados en nombre 224Host virtuales basados en IP 225Varios servidores principales como host virtuales 226
Configurar DN S para un host virtual 229Entender los archivos de zona 229Establecer las DNS para host virtuales nuevos 231Ofrecer servicios de correo virtual 231
Asignar usuario y grupo a cada host virtual 232Gestionar un gran nmero de host virtuales 234Configuracin automtica de host virtuales utilizando mod_perl 235Generar la configuracin de host virtuales utilizando el script makesite 238Gestionar host virtuales utilizando MySQL con el mdulo mod_v2h 242
a
7/21/2019 La Biblia de Servidor Apache 2
17/843
7. Autentificacin y autorizacin de visitantes al sitio Web 245
En este captulo 245Autentificacin vs. autorizacin 246Entender cmo funciona la autentificacin 246Autentificar usuarios mediante el mdulo m odauth 248
Entender las directivas m oda u th 249Directiva AuthUserFile 249Directiva AuthGroupFile 249Directiva AuthAuthoritative 250
Crear una seccin slo de miembros en su sitio Web 251Crear una seccin slo de miembros utilizando un archivo .htaccess 252Agrupar usuarios para accesos restringidos a distintas secciones Web 254
Autorizar el acceso mediante el nombre del host o las direcciones IP 256Directiva allow 256Directiva deny 257Directiva order 258
Directiva allow from env=variable 258deny from env=variable 259
Combinar autentificacin y autorizacin 260Autentificacin con bases de datos relacinales 261
Utilizar un servidor con una base de datos MySQL para laautentificacin 262
Crear la base de datos de autentificacin de usuarios en el servidorMySQL 262
Conceder acceso al servidor Apache a la base de datosde autentificacin de usuarios en MySQL 265
Compilar e instalar el mdulo m o d a u t h m y s q l 266Autentificar usuarios utilizando el mdulo m o d a u th m y s q l 267
Utilizar otras bases de datos para autentificacin de usuarios 269Gestionar usuarios y grupos en una RD BM 271Utilizar cookies para autentificar sesiones 276
8. Monitorizacin del acceso a Apache 283
En este captulo 283Monitorizar Apache 284
Acceder a la informacin de configuracin con modinfo 284Permitir pginas de estado con with modsta tus 287
Ver pginas de estado 288Simplificar el despliegue de estado 290Almacenar informacin del estado del servidor 291
Crear archivos de registro 292Directiva TransferLog 293Directiva LogFormat 294
7/21/2019 La Biblia de Servidor Apache 2
18/843
Directiva CustomL og 295Directiva CookieLog 296
Personali7ar sus archivos de registro 2%Crear varios archivos de registro 299Registrar cookies 300
Directiva CookieExpires 301Directiva CookicTracking 302
Utilizar registros de error 302Analizar sus archivos de registro 304Mantenimiento de registros 306
Utilizar rotatelog 306Utilizar Iogrotate 307Utilizar logresolve 308
9. Reescrbir las URL 313
En este captulo 313El motor de reescritura de URL de Apache 314
RewriteFngine 3 16RewriteOptions 317RewriteRule 318
RewriteCond 321RewriteMap 323RcwriteBase 325RcwriteLog 325RewriteLogLcvel 325RewriteLoek 326
Distribucin de las URL 326Ampliar una URL a la forma cannica de las URL 326
Redirigir un directorio home de usuario a un nuevo servidor Web 328Buscar una pgina en varios directorios 329Asignar una variable de entorno basndose en una URI 332Crear sitios www.username.domain.com 333Redirceeionar una URL fallida a otro servidor Web 335Crear un acceso rnultiplexor 335Crear URL dependientes del tiempo 337
Manejar contenido 338
Aadir compatibilidad retroactiva en las URL 338Crear las URL con contenido especifico para el navegador 338Crear HTML para un puente CGI 339
Restriccin de acceso 339Robots de bloqueo 340Crear deflector URL basado en una referencia HTTP 340
http://www.username.domain.com/http://www.username.domain.com/7/21/2019 La Biblia de Servidor Apache 2
19/843
10. Establecer un servidor Proxy 343
En este captulo 343Quin debera utilizar un servidor proxy? 344Anlisis de los tipos de servidores proxy 344
Proxy forward 345Proxy reverse 346
Directivas mod pr ox y 347ProxyRequests 347ProxyRemote 347ProxyPass 348ProxyBlock 349NoProxy 349ProxyDomain 350CacheRoot 350CacheSize 351CacheGclnterval 351CacheMaxExpire 351CacheLastModifiedFactor 352CacheDirLength 352CacheDirLevels 353CacheDefaultExpire 353NoCache 353
Configurar un servidor proxy Apache 354Escenario 1: conectar una IP privada a Internet 355Escenario 2: caching sitios web remotos 355Escenario 3: crear una copia local de un sitio Web 357
Preparar un navegador Web para utilizar un proxy 357Configuracin manual del proxy 358
Configurar Netscape manualmente 358Configurar Internet Explorer manualmente 359
Configuracin automtica del proxy 360Asignar valores de retorno para FindProxyForU RL 362Utilizar funciones predefinidas en FindProxyForURL 363
Escenario 1: utilizar un proxy nicamente para solicitudesURL remotas 365
Escenario 2: utilizar varios servidores proxy 367Escenario 3: generar FindProxyForURL dinmicamente utilizando
un script CGI 36911. Ejecutar sitios Web perfectos 373
En este captulo 373Ciclo de desarrollo Web 374Poner en marcha el ciclo Web 376
7/21/2019 La Biblia de Servidor Apache 2
20/843
Establecer el ciclo Web 377Crear un host virtual para cada fase 378Utilizar varios procesos (principales) del servidor Apache 379Utilizar varios ordenadores servidores Apache para el ciclo
Web 381Implementar el ciclo Web 381
Probar el ciclo Web 382Mover el sitio nuevo al servidor de produccin 382
Construir un sitio Web utilizando plantillas y el makepage 384Utilizar HTT P PUT para publicaciones Web en una Intranet 387
Las directivas del mdulo m o dp ut 387EnablePut 387EnableDelete 387
umask 387Compilar e instalar m o d p u t 388Establecer un directorio Web que permita el mtodo PUT 388Establecer un host virtual para utilizar el mdulo m o d p u t 390
Mantenimiento de su sitio Web 392Backup online 392Backup offline 393
Estandarizar estndar 393
Poltica de desarrollo de documentos HTML 394Utilice siempre etiquetas HTML estndar 394Guarde imgenes in-line junto con los documentos 394Desplegar mensajes copyright en cada documento 396
Poltica de desarrollo de aplicaciones dinmicas 396Utilice siempre un control de la versin 396No utilice nombres de rutas absolutos en los scripts
ni en las aplicaciones CGI 397
Proporcionar documentacin de usuario y de cdigo 397Evitar las etiquetas HTML embebidas en scripts
o en aplicaciones 397No confiar en los datos introducidos por el cliente 397Evitar las variables globales en los scripts CGI basados en Perl 397
Proporcionar a su sitio Web una interfaz intuitiva 398Facilite la navegacin en su sitio 398
Crear un diseo atractivo 399
Colores apropiados 399Tamao apropiado de texto 399Mnima utilizacin de imgenes y animaciones 399
Elimine los mensajes de error en clave 400Pruebe su GUI Web 400Promocionar su sitio Web 401
El
7/21/2019 La Biblia de Servidor Apache 2
21/843
Parte III. Ejecutar aplicaciones Web 403
12. Ejecutar scripts CGI 405
En este captulo 405Qu es CGI? 406Input y Output CGI 407
Solicitudes GET 407Solicitudes POST 410Comparar GET y POST 411Decodifcacin de los datos introducidos 412
Variables CGI Apache 413Variables del servidor 413
SERVERSOFTWARE 414SERVER AD MIN 414DO CUMEN T ROOT 414
Variables para las solicitudes del cliente 414SERVER AME 415HTTP HOST 415HTTP ACCEPT 415H T T P A C C E P T C H A R S E T 4 1 5H T T P A C C E P T E N C O D I N G 4 1 5H T T P A C C E P T L A N G U A G E 4 1 6HT T PU SE R AGENT 416HTTPREFERER 416HTTP CON NE CTIO N 417SERVER PORT 417REMOTEHOST 417REMOTEPORT 417REMO TE AD DR 417REMOTEUSER 418SERVERPROTOCOL 418REQUESTMETHOD 418REQUESTURI 418REMOTEIDENT 418AUTHTYPE 419CONTENTTYPE 419CONTENTLENGTH 419
SCRIPTNAME 419SCRIPTFILENAME 419QUERYSTRING 419PATHJNFO 420PATHTRANSLATED 420
Configurar Apache para CGI 420
WrbW
7/21/2019 La Biblia de Servidor Apache 2
22/843
Anlisis del directorio de programas CGI 421Elegir extensiones especficas de archivos CGI 422Permitir el acceso cgi-bin a sus usuarios 424
Contenedores Directory o DirectoryMatch 424ScriptAliasMatch 425
Crear nuevas extensiones CGI utilizando AddType 427Ejecutar programas CGI 427
Escribir scripts CGI en Perl 428Anlisis de un script CGI sencillo 430Crear un procesador bsico de formularios Web 435
Permitir soporte de depuracin de errores CGI en Apache 457ScriptLog 457ScriptLogLength 458ScriptLogBuffer 458
Depurar errores en sus scripts basados en Perl 458Depuracin de errores desde la lnea de comandos 458Depuracin utilizando la impresin de registros y de depuracin 460Depurar con CGI::D ebug 462
13. Server Side Includes (SSI) 467
En este captulo 467Server Side Include 468Configurar Apache para SSI 469
Activar SSI para un directorio completo 469Activar SSI para un tipo especfico de archivo 470Utilizar XBitHack para archivos .htm o .html 471Utilizar comandos SSI 472
confg 473echo 476exec 476fsize 481flastmod 481include 482printenv 483set 483
Variables SSI 483Control de flujo de los comandos 484
14. Configurar Apache para FastCGI 489
En este captulo 489FastCGI 489
Alcanzar alto rendimiento utilizando caching 491Escalabilidad a travs de aplicaciones distribuidas 492
El
7/21/2019 La Biblia de Servidor Apache 2
23/843
Entender cmo funciona FastCGI 494Arquitectura bsica de una aplicacin FastCGI 497Distintos tipos de aplicaciones FastCGI 498
Migracin desde CGI a FastCGI 499Puntos que hay que recordar sobre la migracin 500Un ejemplo de un script de migracin 501
Establecer FastCGI en Apache 504Directivas FastCGI para Apache 504
Directiva AppClass 505Directiva ExternalA ppClass 506Directiva FastCgilpcD ir 507
Configurar httpd.conf para FastCGI 507
15. PHP y Apache 513
En este captulo 513Entender cmo funciona PHP 514PHP en su compaa 515Requisitos previos para PHP 517Compilar e instalar PHP 517
Construir PHP como una solucin CGI 518Construir PHP como un mdulo Apache 518
Construir PHP como un mdulo esttico de Apache 518
Construir PHP como un mdulo Dynamic Shared Object(DSO) 519
Configurar Apache para PHP 520ConfigurarPHPutilizandophp.ini 521
Directivas PHP en httpd.conf 521phpadminflag 521php_admin_value 521phpflag 522phpvalue 522
Directivas PHP en php.ini 522autoappendfile 522autoprependfile 522default_charset 523disablefunctions 523displayerrors 523enabledl 523error_append_string 524error_log 524errorprependstring 524errorreporting 524extensin 525
7/21/2019 La Biblia de Servidor Apache 2
24/843
extensiondir 526implicitflush 526includepath 526logerrors 527
magicquotesgpc 527magic_quotes_runtime 527maxexecutiontime 527memorylimit 527outputbuffering 528safemode 528s a f e m o d e a l l o w e d e n v v a r s 5 2 8s a f e m o d e p r o t e c t e d e n v v a r s 5 2 9trackerrors 529upload rnaxfi lesize 529uploadtmpdir 529
Trabajar con PHP 530Crear un script PHP sencillo desde la lnea de comandos 530Crear pginas Web PHP 530Utilizar un script PHP como un Server-Side Include 531Utilizar una pgina PHP para un directorio index 532
Utilizar archivos include 533Mejorar el manejo de errores con PHP 535Procesar formularios Web con PHP 535Crear sesiones con PHP 538
Utilizar cookies HTTP para crear sesiones de usuario 538Utilizar codificacin de UR L para crear sesiones de usuario 540Finalizar una sesin de usuario 541
Utilizar MySQL con PHP 542Crear una pgina PHP sencilla para acceder a la base de datos
MySQL 542Asegurar archivos include PHP 545Autentifcacin de usuarios con PHP y MySQL 546
16. Utilizar Perl con Apache 551
En este captulo 551Compilare instalar m odperl 552Ejecutar scripts CGI utilizando m odperl 553
No realice ms trabajo del necesario 554Crear un mdulo m odperl utilizando el API de Perl para Apache 555Utilizar CGI.pm para escribir mdulos mod_perl 560Precargar mdulos Perl para ahorrar memoria 561Seguir la pista de los mdulos m odpe rl en la memoria : 562Implementar ASP utilizando el mdulo Apache::ASP 563
7/21/2019 La Biblia de Servidor Apache 2
25/843
17. Ejecutar servlets de Java y pginas JSP con Tomcat 567
En este captulo 567Utilizar servlets 568Instalar Tomcat 569
Instalar el ltimo JDK para Tomcat 569Instalar Tomcat y el mdulo m o d jk 571
Configurar Tomcat 572Configurar Tomcat para Apache 572Configurar Tomcat para utilizar el Java Security Manager 577
Configurar Apache para Servlets y JSP 579Trabajar con Tomcat 583
Desactivar el servicio HTTP por defecto de Tomcat 583Iniciar y parar Tomcat 584Iniciar Tomcat con un empaquetador de scripts de shell 584Ejecutar servlets de Java 585
Ejecutar un ejemplo de servlets de Java mediante Tomcat 585Ejecutar sus propios servlets o JSP 590
Parte IV. Asegurar su sitio Web 593
18. Seguridad Web 595
En este captulo 595
Entender el concepto de seguridad Web 595Los puntos de control 596
Punto de control 1: su red 598Punto de control 2: el sistema operativo 599Punto de control 3: software del servidor Web 600
Elegir una configuracin segura 601Consideraciones de poltica de seguridad 601Una configuracin de seguridad prctica para Apache 603
Utilizar un usuario y un grupo especializado para Apache 603Utilice una estructura de directorios segura 604Permisos de archivos y directorios apropiados 605Archivo index del directorio 607Desactivar el acceso por defecto 609Desactivar invalidacin de usuarios 610
La configuracin "El cordero del sacrificio" 610La configuracin paranoica 611
Proteger su contenido Web 613Guas de publicacin de contenido 613Proteger su contenido de robots 614
Excluir todos los robots 615Permitir acceso completo a todos los robots 616
7/21/2019 La Biblia de Servidor Apache 2
26/843
Excluir un solo robot 616Activar un solo robot 616Desactivar un solo archivo 616
Registro y seguridad 616CustomL og y ErrorLog 617Qu hacer si observa un acceso inusual en sus archivos de registro 618
Asegurar su implementacin CGI 619Evadir los riesgos CGI con un programa inteligente 619
Filtracin de informacin 620Consumo de los recursos del sistema 620Burlarse de los comandos del sistema mediante scripts CGI 620Las entradas del usuario realizan determinadas llamadas inseguras
al sistema 621El usuario puede modificar datos ocultos en pginas HTML 623
Entradas del usuario seguras 630Empaquetar scripts CGI 634
suEXEC 634CGIWrap 638
Ocultar pistas sobre sus scripts CGI 639Utilice un alias de script que no sea estndar 640Utilice nombres sin extensin para sus scripts CGI 640
Utilizar escneres CGI 640cgichk.pl 641Whisker 643
Reducir riesgos SSI 644
19. Asegurar Apache con SSL 647
En este captulo 647Introduccin a SSL 648
Cmo funciona SSL 649Entender la encriptacin 649Entender los certificados 651
Transacciones basadas en certificados 652Definir una Autoridad certificadora 654
Establecer SSL para Apache 655Opciones SSL 656Establecer OpenSSL 656
Requisitos previos de OpenSSL 656Obtener OpenSSL 656Com pilare instalar OpenSSL 657
Elegir el mdulo m o d s s l para soporte SSL 660Compilare instalar m o ds s l 660Configurar Apache para SSI basado en m o d s s l 661
http://cgichk.pl/http://cgichk.pl/7/21/2019 La Biblia de Servidor Apache 2
27/843
Elegir Apache-SSL en lugar de m o d ss l para soporte SSL 664Compilar e instalar parches Apache-SSL para Apache 664Crear un certificado para el servidor Apache-SSL 665Configurar Apache con Apache-SSL 666Probar su conexin SSL 667
Obtener un certificado 668
Obtener un certificado para el servidor desde una CA comercial 668Generar una clave privada 668Generar un CSR 669Crear una autoridad de certificacin privada 670
Acceder a pginas SSL 671
Parte V. Ejecutar Apache en Win32 673
20. Instalar y ejecutar Apache para Windows 675
En este captulo 675Requisitos del sistema 676Cargar Apache para Windows 676Instalar binarios de Apache 677Ejecutar Apache 681
Ejecutar Apache automticamente como un servicio Windows 681
Ejecutar Apache desde el men Start 684Gestionar Apache desde la lnea de comandos 685Ejecutar varios servicios Apache 685
21. Configurar Apache para Windows 689
En este captulo 689Sintaxis httpd.conf en Windows 690Ajustar Apache para su funcionamiento 690Probar la configuracin de Apache 691Gestionar Apache con Comanche 691Configurar Apache para contenido dinmico 694
Ejecutar scripts CGI basados en Perl 695Ejecutar scripts mod_perl 695Ejecutar scripts PHP 697Ejecutar extensiones ISAPI con m odisapi 698
ISAPIReadAheadBuffer 698ISAPI LogNotSupported 699ISAPIAppendLogToErrors 699ISAPIAppendLogToQuery 699
UserDir en Windows 699
M AM
7/21/2019 La Biblia de Servidor Apache 2
28/843
Parte VI. Mejorar la escalabilidad 701
22. Apurando Apache 703
En este captulo 703Utilizar hardware de alto rendimiento 704
CPU 704RAM 704Disco duro 705
Entender losacrnimos 707Trucos en la eleccin de un disco duro 709Poner a punto sus discos duros EIDE/IDE (Electrnica de dispositivos
integrados o Electrnica de unidades inteligentes) en Linux 709Comprobar las opciones de su disco duro con hdparam 711Poner a punto el modo multisector para su disco duro 712Activar acceso directo a memoria (Direct Memory Access, DMA)
en su disco duro 713Tarjeta ethernet 714
Poner a punto el sistema de archivos ext2 de Linux 714Cambiar el tamao del bloque del sistema de archivos ext2 715Poner a punto el sistema de archivos ext2 con e2fsprogs 716
Instalar e2fsprogs 716Poner a punto su sistema de archivos con tune2fs 717Comprobar y reparar un sistema de archivos ext2 con e2fsck 719
Poner a punto su sistema operativo 719Compilar e instalar un kernel personalizado 719Ajustar su sistema para aplicaciones Web en demanda 720
Controlar el nmero mximo de manejadores de archivos abiertos 720Convertir el software de su servidor Apache de competitividad global 721
Poner a punto su red 723
Utilizar fast Ethernet 724Entender y controlar el flujo de trfico de red 724Equilibrio de carga utilizando el servidor DNS 727Utilizar hardware de equilibrio de carga 727
Poner a punto la configuracin de Apache 729Minimizar las bsquedas DN S 729Apurar el servicio de archivos estticos 729
Reducir el manejo de I/O para entregar pginas estticas
rpidamente 729Reducir las llamadas al sistema y los manejos I/O para los archivos
simblicos 730Poner a punto su configuracin utilizando ApacheBench 732
Utilizar el caching para aumentar la velocidad 734Meter los archivos muy utilizados en la memoria cach con modfcache . 734
El
7/21/2019 La Biblia de Servidor Apache 2
29/843
Adquirir habilidad con el servidor proxy-cach Squid 736Compilar e instalar el servidor proxy-cach Squid 736Configurar Squid 737Iniciar su Squid 738Personalizar Squid para satisfacer sus necesidades 739
Utilizar mod ba ck ha nd para una estancia de servidores Web 742
Poner a punto aplicaciones Web 743Apurar los scripts mod_perl 743Precargar sus mdulos m odper l 744Caching conexiones de bases de datos 744Ejecutar aplicaciones modperl en un conjunto parcial de hijos
Apache 747Utilizar FastCGI en lugar de m odperl 749
23. Crear una red de alta disponibilidad 753
En este captulo 753Caractersticas de una red de alto nivel 754Aumentar la seguridad DN S 754Equilibrio de carga en su red 755
Distribuir solicitudes HTTP con Round-R obin DNS 755Distribuir solicitudes HTTP con equilibradores de carga basados
en hardware 756
Gestionar almacenamiento Web 758RA ID, SAN o dispositivos de almacenamiento 759RA ID de hardware 759Las redes de almacenamiento (SAN ) 759Dispositivos de almacenamiento 760
Poner a punto sus discos duros 760Obtener hdparam 761Estimar el rendimiento de su unidad de disco 761
Mejorar el rendimiento de su unidad de disco 763Ajustar el sistema de archivos ext2 765Cambiar el tamao del bloque del sistema de archivos ext2 765Instalar e2fsprogs para ajustar el sistema de archivos ext2 766Comprobar y reparar un sistema de archivos ext2 con e2fsck 769
Aumentar la seguridad con un sistema de archivos journalingpara Linux 769
Compilare instalar ReiserFS 771
Montar el sistema de archivos ReiserFS 772Utilizar un benchmark para ReiserFS 772Compartir espacio de disco con el servidor NFS 775
Establecer un servidor NFS 775Aspectos de seguridad del servidor 777
E9
7/21/2019 La Biblia de Servidor Apache 2
30/843
Establecer un cliente NFS 778Optimizar el tamao del bloque de caracteres de lectura / escritura 779Establecer la unidad de transmisin mxima apropiada 782Ejecuta el nmero ptimo de demonios NFS 783Monitorizar los fragmentos de paquetes 783
Replicar contenido entre servidores Web 784Utilizar rdist para distribuir archivos 784Crear un sistema de archivos basado en RAM 788
Activar un sistema de archivos basado en RAM 788Utilizar el sistema de archivos basado en RAM 790
Crear una red back-end segura 792Fortificar su red Web 793
Utilizar Tripwire para proteger el contenido Web 794Obtener Tripwire 795Compilar Tripwire 795Configurar la poltica Tripwire 799Crear la base de datos Tripwire 803Proteger el propio Tripwire 803Ejecutar Tripwire para detectar integridad en el modo interactivo 804Ejecutar Tripwire para detectar integridad de forma automtica 806
Actualizar la base de datos Tripwire 807Obtener un informe tripwire por correo electrnico 807
Asegurar Apache utilizando el Intrusin Detection System (LIDS)de Linux 809
Parchear, compilar e instalar el kernel con LIDS 810Compilar, instalar y configurar LIDS 813Administrar LID S 815Proteger archivos y directorios 816
Proteger su sistema utilizando las capacidades de Linux gestionadaspor LID S 823
Responder a un intruso 826
Parte VII. Apndices 827
Apndice A. Cdigos de estado HTTP 1.1 829
Cdigos de estado de informacin (100-199) 829
xito en la solicitud del cliente (200-299) 830Redireccin de solicitudes (300-399) 831Solicitud del cliente incompleta (400-499) 831Errores del servidor (500-599) 833
Apndice B. Entender las expresiones regulares 835
MrlM
7/21/2019 La Biblia de Servidor Apache 2
31/843
Apndice C. Recursos Apache online 839
Recursos gratuitos 839Sitios Web 839Grupos de noticias Usenet 840
Grupos de noticias relacionados con servidores Web 840
Grupos de noticias relacionados con lenguajes de autor 841Grupos de noticias relacionados con navegadores Web 842Grupos de noticias de anuncios 842Otros grupos de noticias WWW 842Grupos de noticias Perl 843
Listas de correo 843Recursos comerciales 843Otros recursos relacionados 844
Apndice D. Contenido del CD-ROM 847
Distribucin del servidor Apache 847Scripts de ejemplo en formato de texto 848MySQL 848OpenSSL 848PHP 848Perl y mdulos relacionados 849
Tomcat 849Solucionar errores 849
MhM
7/21/2019 La Biblia de Servidor Apache 2
32/843
7/21/2019 La Biblia de Servidor Apache 2
33/843
7/21/2019 La Biblia de Servidor Apache 2
34/843
Introduccin
Bienvenido a Apache Server 2.0. Seguramente habr odo hablar de ApacheServer. De hecho, ms del 60 por 100 de los administradores de toda la Webutilizan Apache. Apache es la plataforma de servidores Web de cdigo fuenteabierto ms poderosa del mundo.
Como desarrollador Web profesional, investigador y administrador, considero
que Apache es la solucin perfecta para la mayor parte de los sitios Web. Apache2.0 es una profunda revisin del servidor Apache. El grupo Apache cre originalmente una primera versin de un servidor Web altamente configurable, el cual sehizo popular rpidamente; en la versin 2, el grupo Apache se ha concentrado enla escalabilidad, en la seguridad y en el rendimiento. Las principales revisiones decdigo se han llevado a cabo para crear una arquitectura Apache realmenteescalable.
Hoy en da, Apache es considerada la plataforma Web ms utilizada. Aumentan da a da el nmero de corporaciones que aceptan este maravilloso cdigofuente abierto en su infraestructura IT. Son muchas las grandes compaas, comoIBM, que ofrecen Apache entre sus productos. El futuro de Apache parece muyprometedor. Tanto si usted es nuevo en la utilizacin de Apache como si se tratade un administrador profesional del mismo, ahora es el momento de comenzar conApache 2.0. Este libro le ayudar a hacerlo.
7/21/2019 La Biblia de Servidor Apache 2
35/843
Cmo est organizado este libro
El libro se compone de siete partes. A continuacin le presentamos una brevedescripcin de las mismas.
Parte I. Comenzando
En esta primera parte introducir el servidor Web nmero uno en el mundo y leguiar a travs del proceso de obtencin y compilacin de Apache. Le mostrarcmo preparar y ejecutar Apache con el menor nmero de cambios posibles conrespecto a la configuracin de los archivos por defecto para que pueda preparar yejecutar Apache lo ms rpido posible. Esta parte finaliza con referencias completas a las directivas principales de Apache y a los mdulos estndar para que,de este modo, pueda estar preparado para las tareas de administracin de Apache.
Parte II. Administrar sitios WebEsta parte se centra en la administracin de las tareas habituales de adminis
tracin en la Web como son la creacin de sitios web virtuales, la autentificaciny autorizacin de usuarios para las distintas tareas, la monitorizacin, el registro,el redireccionamiento y la reescritura y este tipo de tareas en general. Aprendera crear y a administrar sitios Web virtuales. Dominar varios mtodos de autenti-ficacin, de autorizacin y de control de acceso de usuarios. Aprender a
monitorizar servidores Web y a adaptar archivos de registro para anlisis.Parte III. Ejecutar aplicaciones Web
Esta parte se centra en las distintas posibilidades que existen para servir contenidos dinmicos utilizando Apache. Esta parte cubre los conceptos de CommonGateway Interface (CGI), Server-Side Includes (SSI), FastCGI, PHP, mod perl,y servlets de Java. Aprender a utilizar estas tecnologas rpidamente.
Parte IV. Asegurar su sitio WebCualquier ordenador en Internet puede ser objeto de abuso o de intentos de
manejo indebido. Siempre es una buena idea ser prudente y tomar las medidas deprecaucin adecuadas. En esta parte, aprender a hacer sus sitios Web ms seguros y resistentes al ataque de hackers. Adems, se le introducir en los riesgospotenciales de la ejecucin de programas SSI y CGI y en cmo tomar medidaspreventivas para evitar estos riesgos. Tambin aprender a activar el servicioSecure Socket Layer (SSL) utilizando mdulos Apache para posibilitar el comer
cio electrnico
Parte V. Ejecutar Apache en Win32
El servidor Apache est comenzando a ser muy popular en la plataformaWindows (Win32); cada vez ms personas estn probando Apache en platafor-
E3
7/21/2019 La Biblia de Servidor Apache 2
36/843
mas Windows. Con Apache 2.0, el rendimiento del servidor Web en esta plataforma se est haciendo cada vez ms prometedor. En esta parte, aprender a instalary a configurar Apache en la plataforma Win32.
Parte VI. Mejorar la escalabilidad
En esta parte, discutir cmo podemos aumentar la velocidad de Apache ajus-tando el sistema del servidor Web y optimizando varias configuraciones de servidores Apache. El captulo ofrece gran cantidad de informacin sobre cmo sacarpartido de un hardware de alto rendimiento y cmo ajustar discos duros y sistemas de archivos en Linux, para aumentar el rendimiento del sistema. Adems,cubre los aspectos de caching y de ajuste relacionados con aplicaciones Webbasadas en Perl.
Parte Vil. ApndicesEn esta parte, podemos encontrar cuatro apndices que continenen los cdigos
de estado HTTP 1.1, informacin sobre las expresiones regulares, recursos on-line y sobre el contenido del CD-ROM que acompaa al libro.
Convenios utilizados en este libro
No tiene que aprender ningn nuevo convenio para leer este libro, sino simplemente recordar que, cuando le piden que introduzca un comando, tiene que presionar la tecla Enter o Intro tras escribir la instruccin en el prompt de comandos. Seutiliza una fuente C o u r i e r para indicar un segmento de cdigo.
Adems podr encontrar los siguientes elementos:
NOTA:El icono Nota indica que es necesaria una mayor explicacin.
TRUCO:El icono Truco le ofrece algn modo de ahorrar algo de tiempo yesfuerzo.
ADVERTENCIA:El icono Aviso le previene de un peligro potencial.
CD-ROM: El icono CD-ROM le informa sobre archivos, programas yotras facilidades que puede encontrar en el CD-ROM.
BcU
7/21/2019 La Biblia de Servidor Apache 2
37/843
7/21/2019 La Biblia de Servidor Apache 2
38/843
Parte I
Comenzar
wm
7/21/2019 La Biblia de Servidor Apache 2
39/843
7/21/2019 La Biblia de Servidor Apache 2
40/843
Q Apache:el servidor
nmero uno
En este captulo1. Entendemos por qu Apache es tan popular.
2. Estudiamos la historia de Apache.
3. Echamos un vistazo al conjunto de caractersticas.4. Examinamos la arquitectura Apache.
5. Revisamos las opciones de licencia.
Bienvenido a Apache, el servidor nmero uno del mundo. Si est acariciandola idea de ejecutar Apache, se encuentra en el lugar adecuado. Este captulointroduce el modo en que Apache ejecuta un servidor Web.
Ms del 60 por 100 de los servidores Web del mundo utilizan Apache, deacuerdo con un eminente servidor Web de una compaa dedicada a encuestasllamada Netcraft (www . n e t c r a f t. co . u k / S u r v e y / ) . Esta compaa publica peridicamente las estadsticas de los servidores ms utilizados. La tabla1.1 muestra las estadsticas publicadas en el momento en el que se escribi estecaptulo. Si quiere conocer a los miembros de Apache, puede visitarw w w . a p a c h e . o r g / i n f o / a p a c h e u s e r s . h t m l .
http://www.apache.org/info/apachehttp://www.apache.org/info/apache7/21/2019 La Biblia de Servidor Apache 2
41/843
Tabla 1.1. Estadstica de Netcraft que muestra los servidores ms utilizados
Servidor
Apache
Microsoft US
IPIanet
Zeus
Nov 2001
7750275
3307207
431935
174052
Porcentaje
61.88
26.40
3.45
3.45
Dic2001
8588323
3609428
383078
172352
Porcentaje
63.34
26.62
2.83
1.27
Popularidad de Apache
Lo conseguido por Apache es simplemente asombroso. Quin hubiese dicho
que ese servidor de cdigo fuente abierto podra vencer a sus dos mayores competidores comerciales, Microsoft y Netscape, como plataforma de servidores Web.Cada persona tiene sus razones para justificar la popularidad de Apache. Aquestn las mas:
Apache es un servidor altamente configurable de diseo modular. Esmuy sencillo ampliar las capacidades del servidor Web Apache. Cualquiera que posea una experiencia decente en la programacin de C o Perl puedeescribir un mdulo para realizar una funcin determinada. Esto significaque hay una gran cantidad de mdulos Apache disponibles para su utilizacin.
Apache es una tecnologa gratuita de cdigo fuente abierto.El hecho deser gratuita es importante pero no tanto como que se trate de cdigo fuenteabierto.
Apache trabaja con gran cantidad de Perl, PHP y otros lenguajes descript. Perl destaca en el mundo del script y Apache utiliza su parte delpastel de Perl tanto con soporte CGI como con soporte mod_perl.
Apache funciona en Linux y en otros sistemas de Unix.Linux, acostumbrado a ser un sistema de operacin desvalido, se encuentra ahora en losruedos de las empresas de ordenadores. Linux y Apache van de la mano enel mundo empresarial de hoy en da. Considero que la aceptacin de Linuxen el mundo de los negocios ha hecho sencilla la entrada de Apache en eseterritorio. Sin embargo, hay personas que argumentaran que fue la fama
de Apache la que hizo que Linux encontrase su camino en ese mundo de unmodo ms sencillo. De cualquier modo, Apache y Linux constituyen unapoderosa combinacin. Otros sistemas de Unix como FreeBSD y Solaris, yel nuevo Mac OS X juegan tambin un papel importante en la ampliacinde las perspectivas de los usuarios de Apache.
mm
7/21/2019 La Biblia de Servidor Apache 2
42/843
Apache tambin funciona en Windows. Aunque Apache va a funcionarmucho mejor en Windows con la versin 2.0, ya se encontraba en el mercado de Windows con la versin 1.3.x. Veremos multitud de sistemas Windowsconectados a Apache en vez de a Microsoft Internet Information Server
(US) porque la arquitectura de Apache 2.0 le da el poder que necesita paracompetir.
Apache: el comienzo
A continuacin tenemos un poco de historia de Apache. Al principio, el NCSA(National Center for Super Computing Applications) cre un servidor Web que se
convirti en el nmero uno en 1995. Sin embargo, el principal desarrollador deservidores Web del NCSA abandon el NCSA casi en ese mismo momento y elproyecto del servidor empez a bloquearse. Entretanto, la gente que estaba utilizando el servidor Web de NCSA, empez a intercambiar sus propios paquetespara el servidor y pronto pensaron que era necesario un foro para gestionarlos.Naci el grupo Apache.
El grupo utilizaba el cdigo del servidor Web de NCSA y dio nacimiento a unnuevo servidor Web llamado Apache. Originariamente derivado del cdigo cen
tral del servidor Web de NCSA y de un manojo de paquetes, hoy en da el servidorWeb Apache es el lenguaje de la comunidad de los servidores Web. En los siguientes tres aos, adquiri el papel de servidor lder del mercado. La primeraversin (0.6.2) de Apache que fue distribuida al pblico se estren en abril de1995. La versin 1.0 se estren el 1 de diciembre de 1995. El grupo Apache seampli y se convirti en un grupo sin nimo de lucro. El grupo trabaja exclusivamente va Internet. Sin embargo, el desarrollo del servidor Apache no est limitado en ningn sentido por el grupo.
Cualquiera que tenga el conocimiento para participar en el desarrollo del servidor o de sus mdulos componentes, es bienvenido para hacerlo, aunque el grupoes la autoridad que finalmente decide qu se incluye en la distribucin estndar delo que se conoce como el servidor Apache. Esto permite que, literalmente, milesde desarrolladores de todo el mundo aporten nuevas caractersticas, localicenfallos, puertos para nuevas plataformas, etc. Cuando se enva cdigo nuevo algrupo Apache, los miembros del grupo investigan los detalles, realizan las pruebas y las revisiones del control de calidad. Si estn satisfechos, el cdigo seintegra en la distribucin de Apache.
La lista de caractersticas de Apache
Una de las principales caractersticas que presenta Apache es que funciona enplataformas virtuales muy utilizadas. Al principio, Apache se utilizaba para ser
7/21/2019 La Biblia de Servidor Apache 2
43/843
el primer servidor Web basado en Unix, pero esto ya no es verdad. Apache noslo funciona en la mayora (prcticamente en todas) las versiones de Unix sinoque, adems, funciona en Windows 2000/NT/9x y en muchos otros sistemasoperativos de escritorio y de tipo servidor como son Amiga OS 3.x y OS/2.
Apache presenta muchas otras caractersticas, entre ellas un elaborado ndicede directorios; un directorio de alias; negociacin de contenidos; informe de erro
res HTTP configurable; ejecucin SetUID de programas CGl; gestin de recursospara procesos hijos; integracin de imgenes del lado del servidor; reescritura delas URL; comprobacin de la ortografa de las URL; y manuales online.
El resto de caractersticas importantes de Apache son:
Soporte del ltimo protocolo HTTP 1.1:Apache es uno de los primerosservidores Web en integrar el protocolo HTTP 1.1. Es totalmente compatible con el nuevo estndar HTTP 1.1 y al mismo tiempo sigue siendo com
patible con HTTP 1.0. Apache est preparado para todas las novedadesdel nuevo protocolo. Por ejemplo, antes de HTTP 1.1, un navegador Webtena que esperar una respuesta del servidor Web antes de poder emitir otrapeticin. Con el surgimiento de HTTP 1.1, esto ha dejado de ser as. Unnavegador Web puede enviar solicitudes en paralelo, las cuales ahorranancho de banda dejando de trasmitir las cabeceras HTTP en cada solicitud.De algn modo estamos ofreciendo un estmulo del lado del usuario finalporque los archivos solicitados en paralelo aparecern antes en el nave
gador. Sencillo, con la configuracin basada en un poderoso archivo:el servi
dor Apache no posee una interfaz de usuario grfica para su administracin. Se trata de un sencillo archivo de configuracin llamado h t t p d . c onfque se puede utilizar para configurar Apache. nicamente necesita su editor de texto favorito. Sin embargo, es lo suficientemente flexible para permitirle repartir la configuracin de su host virtual en mltiples archivospara no sobrecargar un nico archivo h t t p d . c o n f con toda la gestinde las mltiples configuraciones de servidores virtuales.
Soporte para CGl (Common Gateway Interface): Apache soporta CGlutilizando los mdulos m o d _ c g i y m o d _ c g i d . E s compatible con CGl yaporta caractersticas extendidas como personalizacin de las variables deentorno y soporte de reparacin de errores o debugging, que son difcilesde encontrar en otros servidores Web. Ver captulo 12 para obtener msdetalles.
Soporte de FastCGI: no todo el mundo escribe sus CGl en Perl, cmopueden hacer sus aplicaciones CGl ms rpidas? Apache tambin tieneuna solucin para esto. Utilice el mdulo mod_f cgi para implementar unentorno FastCGI dentro de Apache y haga que sus aplicaciones FastCGIarranquen rpidamente. Ver el captulo 14 para obtener los detalles.
7/21/2019 La Biblia de Servidor Apache 2
44/843
Soporte de host virtuales:Apache es adems uno de los primeros servidores Web en soportar tanto host basados en IP como host virtuales. Ver elcaptulo 6 para obtener los detalles.
Soporte de autentificacin HTTP: Apache soporta autentificacin bsi
ca basada en la Web. Est tambin preparado para autentificacin basadaen la digestin de mensajes, que es algo que los navegadores Web populares ya han implementado. Apache puede implementar autentificacin bsica utilizando tanto archivos estndar de contrasea como los DBM, llamadasa SQL o llamadas a programas externos de autentificacin. Ver el captulo7 para obtener los detalles.
Perl integrado:Perl se ha convertido en el estndar para la programacinde scripts CG1. Apache es seguramente uno de los factores que hacen de
Perl un lenguaje de programacin CGI tan popular. Apache se encuentrams cerca de Perl que nunca. Puede bajar un script CGI basado en Perl a lamemoria utilizando su m dulo m od_perl, y reutilizarlo tantas veces comonecesite. Este proceso elimina las desventajas del arranque que se encuentran asociadas a menudo con los lenguajes de interpretacin como Perl.Ver el captulo 16 para obtener los detalles.
Soporte de scripts PHP: este lenguaje de script ha comenzado a ser muy
utilizado y Apache ofrece un amplio soporte de PHP utilizando el mdulomodphp. Ver el captulo 15 para obtener los detalles.
Soporte de servlets de Java: los servlets de Java y las Java Server Pages(JSP) se estn convirtiendo en algo muy comn en los sitios Web dinmicos. Puede ejecutar servlets de Java utilizando el premiado entorno Tomcatcon Apache. Ver el captulo 17 para obtener los detalles.
Servidor proxy integrado:puede convertir Apache en un servidor proxycach. Sin embargo, la implementacin actual del mdulo opcional de proxy
no soporta HTTP proxy o el ltimo protocolo HTTP 1.1. Se est planeando actualizar este mdulo muy pronto. Ver el captulo 10.
Estado del servidor y adaptacin de registros: Apache le da una grancantidad de flexibilidad en el registro y la monitorizacin del estado delservidor. El estado del servidor puede monitorizarse mediante un navegadorWeb. Adems, puede adaptar sus archivos de registro a su gusto. Ver elcaptulo 8 para obtener los detalles.
Soporte de Server Side Includes (SSI): Apache ofrece un conjunto deServer Side Includes que aaden una gran cantidad de flexibilidad para eldesarrollador del sitio Web. Ver el captulo 13 para obtener los detalles.
Soporte de Secured Sockect Layer (SSL): puede crear fcilmente unsitio Web SSL utilizando OpenSSL y el mdulo m o d _ s s l de Apache.Ver el captulo 19 para obtener los detalles.
wm
7/21/2019 La Biblia de Servidor Apache 2
45/843
7/21/2019 La Biblia de Servidor Apache 2
46/843
todas las solicitudes que han servido los hilos dentro del proceso hijo. Sin embargo, como las solicitudes estn distribuidas en procesos hijo separados, la muertede un proceso hijo afecta como mximo a 1/n del total de las conexiones, donde nrepresenta el nmero de conexiones simultneas.
Los procesos se aaden o se eliminan monitorizando su conteo de hilos derepuesto. Por ejemplo, si un proceso tiene menos de un nmero mnimo de hilos derepuesto, se aade un nuevo proceso. Del mismo modo, cuando un proceso tieneun mximo de nmero de hilos parados, se elimina.
Todos los procesos funcionan con el mismo usuario e ID de grupo asignadospor el servidor Apache.
Dado que los hilos son ms eficaces en cuanto a recursos que los procesos,este MPM es muy escalable.
El MPM perchildEsto tambin es nuevo en Apache 2.0. En este modelo MPM, un nmero de
procesos hijo se inicia con un nmero determinado de hilos. Segn aumenta lacarga de solicitudes, el proceso va aadiendo nuevos hilos a medida que los necesita. Cuando el conteo de solicitudes se reduce, los procesos disminuyen sus conteosde hilos utilizando un conteo mnimo y mximo fijos.
La diferencia clave entre este mdulo y el MPM threaded es que el proceso de
conteo es esttico y adems cada proceso puede ejecutarse utilizando un usuario yun ID de grupo distintos. Esto facilita le ejecucin de distintos sitios Web virtualesbajo distintos usuarios e ID de grupos. Ver el captulo 6 para obtener los detalles.
El MPM winnt
Este es el MPM para la plataforma Windows, incluido Windows 2000, WindowsNT y Windows 9x. Se trata de un mdulo multihilo. Utilizando este mdulo,Apache crear un proceso padre y un proceso hijo. El proceso hijo crea todos los
hilos que sirve la solicitud. Adems, este mdulo saca partido de algunas llamadas a funciones de Windows, que le permiten funcionar mejor en la plataformaWindows que las versiones anteriores del servidor Apache.
Filtrado l/O
Ahora Apache 2.0 proporciona arquitectura para I/O jerarquizada. Esto significa que un output de un mdulo puede convertirse en un input de otro mdulo. El
efecto de este filtrado es muy interesante. Por ejemplo, el output producido porscripts de CGI, que es procesado por el mdulo m o d c g , puede ahora pasarse almdulo mod_include responsable de las SSI. En otras palabras, los scripts deCGI pueden producir un output en forma de etiquetas SSI, que se pueden procesarantes de que el output final se enve al navegador Web. Estarn disponibles en elfuturo muchas otras aplicaciones de filtrado O/I.
Ka
7/21/2019 La Biblia de Servidor Apache 2
47/843
El nuevo demonio CGI
Dado que muchos de los mdulos MPM utilizan hilos, ejecutar scripts CGI seconvierte en algo engorroso cuando un hilo transfiere una solicitud. El mdulomod c g i sigue funcionando, pero no de forma ptima para las MPM threaded.Por ese motivo se aadi mod c g i d . El mdulo mod c g i d crea un procesodemonio, que produce procesos CGI e interacciona con hilos de forma ms eficaz.La figura 1.1 muestra cmo se sirve un CGI solicitado por un script llamadom y s c r i p t . p l .
Navegador Web ^_Proceso hijode Apache
Proceso hijode Apache
Proceso hijode Apache
Procesodemonio CGI
J 1) usuarios simultneos se conecten consu sitio Web. Por ejemplo, si tiene una conexin RDSI y quiere servir 12
usuarios al mismo tiempo por segundo cuando el tamao medio es 16 K,necesita 12 x RDSI (128K.) conexiones, que es en realidad una conexin T-1 (1.53 Mbps).
Bajar el software
Antes de bajar el software de Apache por primera vez, debe tener en cuenta
una serie de cosas. Se pueden encontrar dos versiones disponibles de Apache: unaes una versin oficial y la otra es la versin beta que tiene el ultimo cdigo fuentey las ltimas caractersticas. Si encuentra la versin 2.0.2 de Apache y una versin llamada 2.3b3, entonces la primera versin es la oficial y la segunda es laversin beta. La tercera versin beta 2.3b3 (las versiones 2.3b 1 y 2.3b2 salieronantes) probablemente ser una versin estable, pero no es recomendable utilizaruna versin beta para produccin en un servidor Web. Para bajar la versin quequiera, dirjase a h t t p : //w ww . a p a c h e . o r g / d i s t / h t t p d / .
TRUCO: W9 econtJurf servidor mirror de Apadm&^'eiesogeogrficamente, ejecute el buscador de scripts de Apache en www.apache.Tg/df&fX&&tThi1'.' -1"-*' -
WZM
7/21/2019 La Biblia de Servidor Apache 2
58/843
Este es el directorio de distribucin del software de Apache. Aqu, puede encontrar tanto la versin oficial como la beta del software en varios paquetescomprimidos. Por ejemplo:
httpd_2.0.4.tar.Z
httpd_2.0.4.tar.gzhttpd_2.0.4.ziphttpd_2.3b3.tar.gzhttpd_2.3b3_win32.exe
Estos son ejemplos de distintos tipos de formatos de compresin que se utilizan para distribuir cdigo fuente. Tiene que elegir el formato de compresin quesu sistema puede manejar (en otras palabras, asegrese de que tiene la utilidad dedescompresin de cdigo). Normalmente con Linux, necesita tener las utilidades
t a r , g n u z i p o g z i p para descomprimir los archivos. Por ejemplo, paradescomprimir el archivo h t t p d _ v e r s i o n . t a r . gz (en el que versin es cualquier versin que haya bajado como por ejemplo la 2.0.4) en un sistema Linux,utiliza el comando t a r xv zf h t t p d _ v e r s i o n . t a r . gz . Podra utilizartambin e l comando g z i p -d h t t p d _ v e r s i o n . t a r . gz ; t a r xvfhttpd_version . tar, que descomprimir y extraer todos los archivos en unsubdirectorio mientras que mantiene intacta la ruta relativa para cada archivo.
Windows crea la auto extraccin de archivos comprimidos para la versin de
Apache. Cualquier archivo se puede extraer simplemente ejecutando el archivoque hemos bajado. Para la instalacin especfica en Windows y para saber losdetalles de configuracin, debe saltarse el resto del captulo y dirigirse al captulo20.
Los binarios se guardan normalmente en un directorio distinto en el que cadasistema operativo tiene su propio subdirectorio. Tenga en cuenta que si su sistemaoperativo no aparece en el directorio de binarios, eso no significa necesariamenteque no soporte ese sistema operativo. Lo nico que significa es que no hay nadie
del grupo de desarrollo de Apache o de los grupos colaboradores que tenga compilado un archivo binario para su sistema hasta ahora. Probablemente encontrarbinarios para los sistemas Linux, FreeBSD, Solaris, NetBSD, OS2, AIX, Ultrix,HPUX y IRIX.
Instalar Apache desde el cdigo fuente
Instalar Apache compilando el cdigo desde la distribucin de la fuente es elmejor mtodo de instalacin porque permite configurar el servidor para satisfacersus necesidades. Cualquier instalacin binaria que baje tendr alguna otra configuracin que no podr alterar para cubrir sus necesidades.
Por ejemplo, si baja e instala un binario que tenga soporte CGI, puede quetenga que mantener el soporte CGI aunque nunca vaya a ejecutar programas CGI.
7/21/2019 La Biblia de Servidor Apache 2
59/843
Si el mdulo CGI est configurado como un mdulo dinmico compartido, entonces puede inutilizarlo fcilmente; sin embargo, si el soporte est construido deforma esttica en el binario, entonces tendr que dejarlo como est. Si compila unservidor Apache desde la fuente de distribucin obtendr los componentes quenecesite sin gasto de procesos o de espacio en el disco.
NOTA: Bajela distribucin de la fuente del sitio Apache oficial o del sitiomirror adecuado.
Configurar la fuente de Apache
La distribucin de fuente de Apache incluye un script llamado c o n f i g u r eque le permite configurar el rbol fuente antes de compilar e instalar los binarios.
Desde el directorio de distribucin de fuente de Apache, puede ejecutar este scriptdel siguiente modo:
. / c o n f i g u r e - - p r e f i x = a p a c h e _ i n s t a l l a t i o n _ d i r
La opcin - - p r e f ix le dice a Apache que instale los binarios, otras configuraciones necesarias y los archivos de soporte en a p a c h e _ i n s t a l l a t i o n _dir. Por ejemplo:
./configure --prefix=/usr/local/apache
Aqu la fuente Apache se configurar de modo que todos los binarios y archivos de soporte se instalarn en el directorio /usr/local/apache.
Hay muchas opciones que puede utilizar con el script c o n f i g u r e . La tabla2.2 muestra todas las opciones de configuracin disponibles.
Tabla 2.2.Las opciones del script de configuracin
Opcin
- - c a c h e - f i l e = f i l e
--help
--no-creace
--quiet or -silent
versin
--prefix=prefix
Significado
Los resultados de la prueba del cach se encuentran en file.
Imprime este mensaje.
No crear archivos de salida.
No imprimir mensajes 'checking...'.
Imprimir la versin de autoconf que cre eldirectorio y los nombres de archivo de configuracin.
Instala los archivos independientes de arquitectura en [ / u s r / l oc a l / ap a c he 2 ] .
M ^M
7/21/2019 La Biblia de Servidor Apache 2
60/843
Opcin
- - e x e c - p r e f i x = e p r e f i x
- - b i n d i r = d i r
- - s b i n d i r = d i r
--libexecdir=dir
--datadir=dir
--sysconfdir=dir
--sharedstatedir=dir
--localstatedir=dir
--1ibdir = di r
--includedir=dir
--oldincludedir=dir
--infodir=dir
--mandir=dir--srcdir=dir
--program-prefix=prefix
- -p r o g r a m-s u f f i x = s u f f i x
--program-transform-name=program
--build=build
--host=host
--target=target
Significado
Instala los archivos dependientes de arquitectura en eprefix [same as p r e f i x ] .
Ejecutables de usuario en d i r [ E P R E F I X /bin] .
Ejecutables del administrador del sistema endir [EPREFIX/sbin] .
Ejecutables de programas en d i r [ e p r e f i x/ 1 i b e x e c ] .
Datos independientes de arquitectura de slolectura en d i r [ p r e f i x / s h a r e ] .
Datos de una mquina nica de slo lecturae n d i r [ p r e f i x / e t c ] .
Datos independientes de arquitectura modi-ficables en d i r [ p r e f i x / c o m ] .
Datos de una mquina nica modificable endir[prefix/var].
Bibliotecas de cdigo de objetos en d i r [
e p r e f i x / 1 i b ] .Archivos de cabecera C en d i r [p re f i x /i n c l u d e ] .
Archivos de cabecera para GCC en d i r [ /u s r / i n c l u d e ] .
Documentacin de informacin en d i r [p r e f i x / i n f o ] .
Documentacin man en d i r [pref ix/ma n] .Encuentra fuentes en d i r [ co n f i g u re d i ro r . . . ] .
Utiliza prefix para instalar nombres de programas.
Aadesuffixpara instalar los nombres de programas.
Ejecuta el programa editor de flujo en la instalacin de nombres de programas.
Configuracin para construir con build.
Configuracin para host.
Configuracin para TARGET [TARGET=HOST].
M& W
7/21/2019 La Biblia de Servidor Apache 2
61/843
Opcin Significado
--disable-feature
--enable- feature[=arg
--with-package[=arg]
--without-package
x-includes=dir
--x-libraries=dir
--with-optim=flag
--with-port=port
--enable-debug
--enable-maintainer-mode
--enable-layout=layout
--enable-modules=module-list
--enable-mods-shared=module-list
--disable-access
--disable-auth
--enable-auth-anon
enable-auth-dbm
--enable-auth-db
--enable-auth-digest
- - e n a b l e - f i l e - c a c h e
- - e n a b l e - d a v - f s
- - e n a b l e - d a v
- - e n a b l e - e c h o
No incluir FEATURE (igual que -enable-FEATURE=no).
Incluir feature [arg=yes].
Utilizar package [arg=yes].
No utilizar (igual que -with- package=no).
Hay X archivos include en dir.
Hay X archivos library en dir.
Obsoleto (utiliza la variable de entornoOPTIM ).
Puerto al que escuchar (el puerto por defecto es el 80).
Enciende las advertencias de debugging y decompilacin en tiempo de ejecucin.
Enciende las advertencias de debugging y decompilacin en tiempo de ejecucin.
Permite una distribucin de directorio.
Permite uno o ms mdulos.
Permite uno o ms mdulos como mduloscompartidos.
Inutiliza el control de acceso basado en host.
Inutiliza el control de acceso basado en usuario.
Permite acceso a usuarios annimos.Permite acceso a bases de datos basado enDMB.
Permite acceso a bases de datos basado enDB.
Permite la autentificacin por digestinRFC2617.
Permite cach de archivos.
Permite manejo de protocolo DAV.
Permite manejo de protocolo WebDAV.
Permite servidor ECHO.
7/21/2019 La Biblia de Servidor Apache 2
62/843
Opcin Significado
--enable-charset-lite
--enable-cache
--enable-disk-cache
--enable-ext-filter
--enable-case-filter
--enable-generic-hook-export
--enable-generic-hook
-import--enable-optional-fn-import
--enable-optional-fn-export
--disable-include
--disable-http
--disable-mime
--disable-log-config
--enable-vhost-alias
--disable-negotiation
--disable-dir
--disable-imap--disable-actions
--enable-speling
--disable-userdir
--disable-alias
--enable-rewrite
- - d i s a b l e - s o
- - e n a b l e - s o
- - d i s a b l e - e n v
- - e n a b l e - m i m e - m a g i c
Permite la traduccin de conjuntos de caracteres.
Permite caching dinmico de archivos.
Permite el mdulo de caching de disco.
Permite mdulos de filtro extemo.
Permite filtro de conversin de maysculas.
Ejemplo permitido de exportacin de entradas.
Ejemplo permitido de importacin de entra
das.Ejemplo permitido de importacin opcionalde una funcin.
Ejemplo permitido de exportacin opcionalde una funcin.
Inutiliza Server-Side Includes.
Inutiliza el manejo de protocolo HTTP.
Inutiliza la integracin de la extensin de archivos MIME.
Inutiliza la configuracin de registro.
Permite el mdulo de alojamiento.
Inutiliza la negociacin de contenido.
Inutiliza el manejo de solicitudes.
Inutiliza la integracin interna de imgenes.Inutiliza el lanzamiento de solicitudes.
Permite la correccin ortogrfica de las URLhabituales.
Inutiliza la integracin de las solicitudes deusuarios.
Inutiliza la traduccin de solicitudes.
Permite la reescritura de las URL.Inutiliza la capacidad DSO.
Permite la capacidad DSO.
Borra/asigna variables ENV.
Determina automticamente el tipo MIME.
WM
7/21/2019 La Biblia de Servidor Apache 2
63/843
Opcin Significado
--enable-cern-meta
--enable-expires
--enable-headers
--enable-usertrackenable-unique-id
disable-setenvif
enable-tls
--with-ssl
--with-mpm^MPM
- -el i s a b 1 e-s t a t u s
disable-autoindex
--disable-asis
--enable-info
enable-suexec
--disable-cgid
--enable-cgid
--disable-cgi
--enable-cgid
--enable-shared[=pkgs]
--enable-static[=pkgs]
--enable-fast-install[=pkgs]
--with-gnu-ld
--disable-libtool-lock
--with-program-name
--with-suexec-caller
Permite meta archivos de tipo CERN.
Permite el control de cabeceras Expires.
Permite el control de cabeceras HTTP.
Permite seguimiento de la sesin de usuario.Permite solicitudes de un solo ID.
Inutiliza las variables ENV en las cabeceras.
Permite soporte TLS/SSL.
Utiliza una instalacin especial de la biblioteca SSL.
Elige el modelo de proceso para Apache parautilizar: MPM={beos threaded prefork spmt_os2 perchild}.
Monitoriza procesos / hilos.
Inutiliza la lista de directorios.
Inutiliza los tipos de archivo As-is.
Permite informacin del servidor.
Asigna UID y GID a los procesos engendrados.
Inutiliza el soporte del demonio CGI.
Permite el soporte del demonio CGI.
Inutiliza el soporte de scrips CGI.
Permite el soporte de scripts CGI.
Construye bibliotecas compartidas [default=no].
Construye bibliotecas estticas [default=yes].
Optimiza la instalacin rpida [default=yes].
Adopta la utilizacin de compilador C GNUID [default=no].
Evita el bloqueo (posiblemente rompe laconstruccin paralela).
Alterna nombres ejecutables.
Usuario que puede realizar llamadasS u E x e c .
7/21/2019 La Biblia de Servidor Apache 2
64/843
Opcin Significado
with-suexec-userdir Subdirectoriodelusuario.
--with-suexec-docroot Directorio raz SuExec.
--with-suexec-uidmin MnimoUID permitido.--with-suexec-gidmin MnimoGID permitido.
--with-suexec-logfile Asignaelficheroderegistro.
--with-suexec-safepath Asignaelsafepath.
--with-suexec-umask Unamscara paraelprocesosuex ec.
La mayora de estas opciones no son necesarias para la gran parte de los sitios.Normalmente, lo nico que necesita es especificar la opcin - - p r e f ix y cualquier otra opcin necesaria para permitir o no uno u otro mdulo. Por ejemplo,imagine que no quiere instalar el mdulo CGI en su sistema. Puede ejecutar elscript c o n f i g u r e utilizando las opciones - - d i s a b l e - c g i - - d i s a b l e -c g i d para inutilizar el soporte CGI. Del mismo modo, para inutilizar el soporteServer-Side Include (SSI) puede utilizar la o p c i n - - d i s a b l e - i n c l u d e .
Una vez que ha configurado el Apache con el script configure, puede
utilizar el script c o n f i g . s t a t u s en lugar del script c o n f i g u r e para lasconfiguraciones siguientes. Utilizando el script conf i g . s t a t u s , puede reutilizarsu configuracin previa y aadir o quitar opciones. Por ejemplo, imagine queconfigur Apache con la siguiente lnea de comando:
. /configure
cgid
-prefix=/usr/local/apache --disable-cgi --disable-
y unos das ms tarde decide inutilizar las SSI. Puede utilizar ahora:
./config.status --disable-include
Cuando vuelva a compilar Apache, los mdulos CGI no estarn incluidos,porque . / c o n f ig . s t a t u s almacena las opciones que especific al utilizar elscript configure antes.
Si quiere empezar bien, utilice siempre configure.
Opciones avanzadas de configuracinpara sitios con mucho trfico
Si ejecuta Apache en un servidor con mucho trfico en el que se solicitancientos de solicitudes por segundo, debera cambiar el lmite de hardware pordefecto asignado en el mdulo MPM que ha elegido. Ver el captulo 1 para obtener los detalles sobre los mdulos MPM. Los lmites de hardware por defecto que
MAM
7/21/2019 La Biblia de Servidor Apache 2
65/843
puede cambiar son HARD_SERVER_LIMIT y HARD_THREAD_LIMIT. ElHARD_SERVER_LIMIT asigna el nmero mximo de hijos que el servidor Apache puede producir. HARD_THREAD_LIMIT asigna el nmero total de hilos queApache puede crear dentro de sus hijos. La tabla 2.3 muestra los lmites pordefecto y dnde puede encontrarlos.
NOTA: La estiqu^"%Af'C^ii&RE% mencionada en la tabla se refiere al direefcto
7/21/2019 La Biblia de Servidor Apache 2
66/843
Opciones limite Valor por Anotacionesdefecto
Winnt HARD SERVER LIMIT 1
Winnt HARD THREAD LIMIT 4096
Archivo de cabecera C (include):%APACHE_SOURCE%/server/mpm/winnt/mpmdefault.h
#define HARD_SERVER_LIMIT 1Esta asignacin no se puede cambiar. Podemos,sin embargo, cambiar el conteo de hilos dehardware
Archivo de cabecera C (include):A P A C H E _ S O U R C E / s e r v e r / m p m / w i n n t /mpm_default.h#ifndef HARD_THREADJ_IMIT#define HARD_THREAD_LIMIT4096#endif
ADVERTENCIA: Cuando cambie HARD_SERVER_LIMIT o HARD_THREAD_LIMIT a uno superior que el que tenemos por defecto, asegrese de que tiene los recursos del sistema apropiados. Por ejemplo, el cambiarHARD_SERVER_LIMIT a 1024 en el MPM prefork le permitir crear1024 procesos hijo Apache instruyendo a Apache para que cree todos esoshijos utilizando las directivas StartServers, MinSpareServers y
MaxSpareServers.
Sin embargo, si su sistema no tiene suficiente memoria, entonces cambiar ellmite de hardware a un valor ms alto no beneficiar demasiado. Recuerde quecuanto ms altos sean los lmites, ms recursos necesitar. Adems, tendr queaumentar el nmero de descriptores de archivos que su sistema permite para unsolo usuario. En los sistemas Linux y Unix debera determinar cul es (y posiblemente asignar) el lmite de descriptores de archivos utilizando el comando u l i m i t .
Adems, no olvide que la directivaMaxClients asigna el lmite en el nmero de procesos hijo que se crearn para servir solicitudes. Cuando el servidor seconstruye sin threaded, no se puede servir a un nmero de clientes mayor que stede forma simultnea. Para configurar ms de 256 clientes, debe editar la entradaHARD_SERVER_LIMIT en mp m^de f a u l t . h y volver a compilar.
Compilar e instalar Apache
Una vez que tiene configurada la fuente de Apache utilizando el script conf i g u r e ha de seguir los siguientes pasos para compilar e instalar Apache:
1. Ejecute el comando make para compilar la fuente.
2. Ejecute el comando make i n s t a l l para instalar h t t p d y soportararchivos en el directorio que determine utilizando la opcin - - p r e f i x .
E9
7/21/2019 La Biblia de Servidor Apache 2
67/843
Dirjase al directorio de instalacin y navegue por el directorio. Versubdirectorios del tipo b i n c g i - b i n , c o n f , h t d o c s , i c o n s ,i n c l u d e , l i b y l o g s . P o r e j e m p l o , s i u t i l i z a p r e f i x = / u s r / l o -cal/apache con el script configure durante la configuracin delrbol fuente, make i n s t a 11 crear la siguiente estructura de directorio:
/usr /local/apache
t inc lude
+ lib
* bin
+ con f
t h r. d o c s
t - - m a n u a 1
+-
1 +-+
1 +-t-
1 +-
1 +-
1 +-
i +-
-developer
-howto
-images
-mise
-mod-platform
-programs
-search
-vhoses
t s rri a i 1
I
+ logs
t cgi-bin
La siguiente lista le ofrece una breve descripcin de cada uno de los directorios de la estructura de directorios:
I n c l u d e : contiene todos los archivos cabecera (include) que slo sonnecesarios si desarrolla aplicaciones Web que integran con Apache o siquiere utilizar software de terceras partes con Apache. En un servidor deproduccin puede eliminar este directorio.
Lib: aloja los archivos de la biblioteca Apache Portable Run-Time (APR),
los archivos que son necesarios para ejecutar Apache y otras utilidades desoporte como ab.
B in : contiene los programas que se muestran en la tabla 2.4.
Conf: aloja los archivos de configuracin de Apache. Contiene los archivos de la tabla 2.5.
l i l i
7/21/2019 La Biblia de Servidor Apache 2
68/843
Htdocs: este es el directorio raz de documentos para el servidor principal d e A p ac he . E l a rc hi vo h t t p d . c o n f a sig na l a d ir ec ti vaDocumentRoot a este directorio. Aprender cmo asignar su propiodirectorio raz de documentos en el captulo 3. Por defecto, el directoriohtdocs tambin tiene el manual de instalacin de Apache en un subdirectorio.
Icons: se utiliza para almacenar varios iconos de Apache necesariospara desplegar de forma dinmica la lista construida de directorios.
Logs: se utiliza para almacenar los registros del servidor de Apache, eldemonio CGI basado en sockect ( c g i s o c k ) y el archivo P1D(httpd, pid). Aprender a cambiar la ruta de registro en el captulo 3.
Cgi-bin: el directorio de script CGI por defecto, que se asigna utilizan
do la directiva S c r i p t A l i a s en h t t p d . c o n f . Por defecto. Apachetiene dos scripts CGI sencillos p r i n t e n v y t e s t - c g i . Cada uno deestos scripts imprime variables de entorno CGI cuando realiza solicitudesmediante h t t p : / / s e r v e r n a m e / c g i - b i n / s c r i p t _ n a m e URL.Estos scripts son necesarios para determinar si est funcionando la configuracin CGI.
ADVERTENCIA: Se recomienda eliminar los scriptsp r i n t e n v y t e s t -
c g i una vez que se encuentre funcionando la configuracin CGI. No esuna buena idea tener un script que muestra informacin sobre su sistema acualquiera. Cuanto menos sepa el resto del mundo sobre el modo de funcionar de su sistema, ms seguro ser ste.
La tabla 2.4 proporciona una lista de programas que puede encontrar en eldirectorio bin.
Tabla 2.4. Programas Apache en el directorio bin
Programas Apache Definicin
Ab
Apachectl
apxs
Este es el programa apachebench. Le sirve comopunto de referencia al servidor Apache. Ver el captulo 22 para obtener ms informacin sobre esteprograma.
Es un script de gran utilidad que le permite iniciar,reiniciar y parar el servidor Apache. Ver el captulo3 para obtener ms informacin sobre este script.
Esta es una herramienta para construir e instalarmdulos de extensin de Apache. Permite construir mdulos DSO que se pueden utilizar en Apa-
W S M
7/21/2019 La Biblia de Servidor Apache 2
69/843
Programas Apache Definicin
htdigest
htpasswd
httpd
logresolve
Rotatelogs
che utilizando el mdulo mod_so. Para ms informacin sobre este programa, ver http://your_server
_name/manual/programs/apxs.htm.
Este programa crea y actualiza la informacin de
autentificacin de usuarios cuando se utiliza la au-tentificacin por digestin de mensajes (MD5). Paraobtener ms informacin sobre este programa verhttp://your_server_name/manual/programs/htdigest.html.
Este programa se utiliza para crear y actualizar lainformacin de autentificacin de usuarios en autentificacin HTTP bsica. Ver el captulo 7 para
obtener ms detalles.Este es el programa del servidor Web de Apache.
Este programa convierte (resuelve) las direccionesIP de un archivo de registro a nombres de host. Verel captulo 8 para obtener los detalles.
Este programa alterna los archivos de registro deApache cuando alcanzan un tamao determinado.Ver el captulo 8 para obtener los detalles.
La tabla 2.5 muestra la lista de contenidos en el directorio c o n f i g .
Tabla 2.5.Contenido del directorio config de Apache
Archivo de configuracin Definicin
httpd.confhttpd-std.conf
highperformance.conf
highperformance-std.conf
Magic
Este es el archivo de configuracin de Apache.Esta es la copia de prueba del archivo httpd.conf, que Apache no necesita. Para los usuarios nuevos de Apache, este archivo puedeactuar recuperando el conf por defecto.
Este es un archivo de prueba de configuracin que muestra algunos consejos para configurar Apache para alto rendimiento.
Esta es una copia de prueba del archivohighperformance.conf, que Apache no necesita.
Este archivo almacena los datos mgicos delmdulo mod_mime_magc de Apache.
http://your_server/http://your_server_name/manual/programs/htdigesthttp://your_server_name/manual/programs/htdigesthttp://your_server/7/21/2019 La Biblia de Servidor Apache 2
70/843
Archivo de configuracin Definicin
mime.types Este archivo se utiliza para decidir qu tipo decabecera MIME se enva al cliente para unarchivo determinado. Para obtener ms infor
macin sobre los tipos MIME, por favor leaRFC 2045, 2046, 2047, 2048 y 2077. El registro los Internet media-types se encuentra enel sitio f tp: / / f tp. iana.org/ in-notes/ iana/assignments/media-types.
Instalar Apache desde los paquetes binariosRPM
Puede bajar los binarios de Apache apropiados para su sistema dew w w . a p a c h e . o r g / d i s t / h t t p d / b i n a r i e s d i rec t o ry . B a j e l a l t i ma versin y extraiga el archivo comprimido en un directorio temporal. Parasaber cmo instalar los binarios en su plataforma, debe leer el archivoi n s t a l l . b i n d i s t , incluido en cada distribucin del binario.
Si desea instalar el paquete RPM (Red Hat Package Management) de Apacheen su sistema Linux, haga lo siguiente:
1. Dirjase al sitio h t t p : / / rpraf i n d . n e t y busque la cadena de caracteres Apache para localizar los paquetes RPM. Localice la ltima versinde la distribucin del RPM y bjeselo.
2. Ejecute el comando rpm - i v h a p a c h e rpm p a c k a g e . rpm parainstalar el paquete. Por ejemplo, para instalar el a p a c h e - 2 . 0 . 4 -
i38 6 . rpm para el sistema Red Hat Linux (Intel), ejecute el comandor p m - i v h a p a c h e - 2 . 0 . 4 - 1 3 8 6 . r p m .
Mantenerse al da en el desarrollo de Apache
Se puede preguntar si mientras est instalando la fuente o los binarios deApache que ha bajado est saliendo una nueva versin de Apache o quiz hay
disponible un parche de seguridad. El software cambia rpidamente en los tiempos que corren y siempre aparece una actualizacin detrs de otra. Lo cual esbueno, pero no siempre es fcil mantenerse al dia si tenemos un trabajo que hacer.Existen dos recursos de Apache que debera tener en cuenta:
ApacheToday:este es el mejor sitio Web en el mundo de noticias de Apache. Puede obtener todas las noticias de Apache que quiera en
ftp://ftp.iana.org/in-notes/iana/http://www.apache.org/dist/httpd/binarieshttp://www.apache.org/dist/httpd/binariesftp://ftp.iana.org/in-notes/iana/7/21/2019 La Biblia de Servidor Apache 2
71/843
www. apachetoday. com. Utilizando su artculo Your Apache Today,puede filtrar contenido de noticias y obtener exactamente lo que ms leinteresa. Puede asistir tambin a los eventos que desee de los que se anuncian en estas noticias.
ApacheWeek: se puede suscribir (gratis) al recurso de Apache llamado
Apache Week, y le mandarn por correo electrnico todas las noticias deApache. Puede encontrar el sitio Web The Apache Week en www .a p a c h e w e e k . c o m . Se trata de un gran recurso informativo para losadministradores de Apache que quieran estar realmente informados. Puedeleer adems muchos artculos de gran utilidad sobre cmo sacar el mximopartido de su servidor. Le recomiendo visitar este sitio Web.
http://apacheweek.com/http://apacheweek.com/7/21/2019 La Biblia de Servidor Apache 2
72/843
7/21/2019 La Biblia de Servidor Apache 2
73/843
7/21/2019 La Biblia de Servidor Apache 2
74/843
jcl Preparary ejecutar
Apache
En este captulo
1. Comprobamos los aspectos bsicos del servidor Apache.
2. Iniciamos, paramos y reiniciamos el servidor Apache.3. Probamos un servidor Apache en funcionamiento.
En el ltimo captulo, aprendi a compilar y a instalar el servidor Web Apacheen su sistema Unix. Ahora esta listo para prepararlo y ejecutarlo. Este captulocubre los detalles bsicos de configuracin.
Configurar ApachePor defecto, Apache lee un solo archivo de configuracin llamado
h t t p d . c onf . Cada distribucin de cdigo fuente de Apache viene con un conjunto de archivos de configuracin de ejemplo. En la distribucin estndar decdigo fuente de Apache, puede encontrar un directorio llamado conf, que contiene archivos de configuracin de ejemplo con la extensin d i s t .
El
7/21/2019 La Biblia de Servidor Apache 2
75/843
Antes de modificar este archivo es necesario que cree una copia backup deloriginal.
El archivo h t t p d . c o n f contiene dos tipos de informacin: comentarios ydirectivas de servidores. Las lneas que comienzan con un carcter # son tratadascomo lneas de comentario; estos comentarios no tienen significado para el software del servidor, sino que son documentacin para el administrador del servidor.
Puede aadir tantos comentarios como desee; el servidor simplemente ignora todos los comentarios cuando analiza el archivo. E xceptuando los comentarios y laslneas en blanco, el servidor trata el resto de las lneas bien como directivascompletas o bien como directivas parciales. Una es como un comando para elservidor. Le dice al servidor que realice una tarea determinada de un modo enconcreto. Mientras editamos el archivo h t t p d . co nf, ha de tomar ciertas decisiones relacionadas con cmo quiere que se comporte el servidor. En las siguientes secciones, aprender qu significan estas decisiones y cmo puede utilizarlas
para personalizar su servidor.Puede encontrar una explicacin en profundidad sobre todas las directivas
principales ms adelante en este libro.El listado 3.1 muestra el h t t p d . c o n f creado por defecto en el directorio
conf de su instalacin de Apache. La mayor parte de los comentarios se haneliminado y el cdigo se ha editado resumido por cuestiones de brevedad.
Listado 3.1. httpd.conf creado por defecto desde h t t p d . c o n f - d i s t
# # # S e c c i n 1 : E n t o r n o g l o b a lS e r v e r R o o t " / u s r / l o c a l / a p a c h e "
P i d F i l e l o g s / h t t p d . p i d
< I f M o d u l e ! p e r c h i l d . c >S c o r e B o a r d F i l e l o g s / a p a c h e _ r u n t i m e _ s t a t u s
< / I f M o d u l e >
Timeout 300K e e p A l i v e O nM a x K e e p A l i v e R e q u e s t s 1 0 0K e e p A l i v e T i m e o u t 1 5
< I f M o d u l e p r e f o r k . c >S t a r t S e r v e r sM i n S p a r e S e r v e r sM a x S p a r e S e r v e r s
M a x C l i e n t sM a x R e q u e s t s P e r C h i l< / I f M o d u l e >
< I f M o d u l e t h r e a d e d . c >S t a r t S e r v e r s 3M a x C l i e n t s 8
55
10
20d 0
El
7/21/2019 La Biblia de Servidor Apache 2
76/843
MinSpareThreads 5
MaxSpareThreads 10
ThreadsPerChild 25
MaxRequestsPerChild O
7/21/2019 La Biblia de Servidor Apache 2
77/843
MIMEMagicFile conf/magic
HostnameLookups OffErrorLog logs/error_logLogLevel warnLogFormat "7,h 7,1 7u t \"i,r\" %>s%b \" % {Ref erer} i \" \"%{User-Agent}i\"" combinedLogFormat "%h 7,1 7->u %t \"%r\" %>s %b" commonLogFormat "7 (Ref erer} i -> --U" refererLogFormat " 7. { User-agent ( i " agentCustomLog logs/access_log commonServerSignature OnAlias /icons/ "/usr/local/apache/icons/"
Options Indexes MultiViews
AllowOverride NoneOrder allow,denyAllow from all
ScriptAlias /cgi-bin/ "/usr/local/apache/cgi-bin/"
AllowOverride NoneOptions None
Order allow,denyAllow from all
IndexOptions Fancylndexing VersionSortAddIconByEncoding (CMP,/icons/compressed.gif) x-compress x-gzip
AddlconByType (TXT,/icons/text.gif) text/*# Hay muchas ms directivas AddlconByType en el# httpd.conf por defecto pero se han borrado
# para simplificar.
Addlcon /icons/binary.gif .bin .exe# Hay muchas ms directivas Addlcon en# httpd.conf por defecto pero se han borrado para# simplificar.
Defaultlcon /icons/unknown.gifReadmeName READMEHeaderName HEADERIndexlgnore .11* *~ *# HEADER* README* RCS CVS *,v *,tAddEncoding x-compress ZAddEncoding x-gzi