Configurando ApacheUna manera de aprender cómo funciona un servidor Web es aprender a configurar Apache.
La configuración se hace mediante un archivo httpd.conf; comentarios comienzan con #, directivas insensitive, comandos sensitive, backslash escape. El ámbito de una directiva de configuración es todo el servidor, a menos que se indique:
Otro archivo de configuración es .htaccess que se pone en los directorios. ServerTokens (ProductName, Minimal, OS, Full), ServerAdmin (root@server.com), ServerSignature (On,Off,Email): controlan la salida normal. ServerName (www.example.com), UseCanonicalName (on,off): controlan como Apache construye URLs hacia sí mismo. CoreDumpDirectory, DocumentRoot (/home/www/html), ServerRoot (/etc/apache): Localización de archivos. ScoreBoardFile (tablero para intercambiar mensajes entre los servidores), PidFile (process-id) *Limit, RLimit*: limitan procesador, memoria, número de procesos. ErrorLog, LogLevel (emerg -ej.: no subió, alert -ej.: no funcionará, crit -ej: un hijo no subió, error, warn, notice, info, debug) LogFormat especificación tipo (crea un formato), CustomLog archivo tipo (lo utiliza) RewriteLog, ScriptLog: logs especiales, usar sólo para depurar Alias localización directorio, AliasMatch regexp regexp ScriptAlias localización directorio, ScriptAliasMatch regexp regexp Redirect {permanent/temp/seeother/gone} urlorigen urldestino, RedirectMatch ErrorDocument código mensaje-o-url Listen IP:Port (además de localhost:80) NameVirtualHost IP:Port (declara que IP:Port es para virtual hosts) Típico uso:
Los primeros tienen prioridad. Tip: no dejar nada en el servidor principal si van a usar vhosts.
Tabla de negociación explícita (AddHandler type-map .var), o implícita (Mutiviews On, /algo se transforma, en algo.sp.html.gz). SetEnvIf variable_de_ambiente regexp var1=val1, !var1, var1 SuExec: wrapper para cambiar de identidad. Un CGI convierte potencialmente una máquina en un sistema en que cualquier usuario de internet es un usuario de la máquina. .htaccess (Options ...), AllowOverride AuthType, Require valid-user: y otros mecanismos de autentificación (ej.: por DBI, por cookies, etc.) ¿ Cuánto es necesario ?. Si con un pentium chico, puedo servir 10Mb/s, entonces el problema es la red, no la máquina. El problema más importante es la memoria RAM (sobre todo si se usan CGIs), pues el tiempo de SWAP excede normalmente lo tolerable para cualquier usuario. HostNameLookups Off .htaccess apagadas si no se usan MinSpareServers, MaxSpareServers, StartServers (uno cada segundo, o 2^i cada segundo) KeepAliveTimeout bajo
|