En esta entrada, te voy a desgranar toda la configuracion de apache2.conf. Este archivo se encuentra en /etc/apache2/
En este archivo se configuran aspectos globales de apache2, tales como en que archivo guarda el pid, nombre del usuario que ejecuta apache2.
Aunque muchos paremetros son para todos los sitios webs, luego cuando definamos una nueva web podremos añadirselo y asi especificarlo otro valor distinto del que hay en apache2.conf
Asi que vamos empezar a ver la configuracion de apache2.conf.
Indice de Contenidos
ServerRoot
ServerRoot es el directorio raíz donde se almacenan los distintos ficheros que utiliza el servidor Apache salvo que se indiquen rutas absolutas. Es importante no añadir una barra al final del nombre del último directorio.
ServerRoot "/etc/apache2"
DefaultRuntimeDir
Con esta directiva lo que estamos indicando es donde guarda, ficheros que genera cuando se esta ejecutando apache2. Aqui indicamos una variable, la cual esta declarada con su valor en «/etc/apache2/envvars».
DefaultRuntimeDir ${APACHE_RUN_DIR}
PidFile
PidFile $(APACHE_PID_FILE)
Fichero en el que el servidor guarda el ID del proceso demonio de escucha.
Timeout
Timeout indica el número de segundos antes de que se cancele un conexión por falta de respuesta. Este valor hay que tenerlo en cuenta, ya que hay ataques que consisten en hacer multiples conexiones, apurando el Timeout.
Timeout 300
KeepAlive
El comando KeepAlive determina si el servidor permitirá varias conexiones a la vez (p.e., más de una petición por conexión). KeepAlive puede usarse para impedir que un cliente consuma muchos recursos del servidor. El comando KeepAlive aparece ya en «on» por defecto, lo que significa que se permiten varias conexiones a la vez. Puede ponerse en off para desactivarlas.
KeepAlive On
MaxKeepAliveRequests
Esta directiva establece el número máximo de peticiones permitidas por cada conexión que se produzca a la vez. El Grupo Apache recomienda un valor alto, lo que mejoraría el rendimiento. El valor predeterminado del comando MaxKeepAliveRequests es de 100 que debería bastar en la mayoría de los casos.
MaxKeepAliveRequests 100
KeepAliveTimeout
La directiva KeepAliveTimeout establece el número de segundos que el servidor esperará a la siguiente petición, tras haber dado servicio a una petición, antes de cerrar la conexión. Una vez recibida la petición, aplica la directiva Timeout en su lugar.
KeepAliveTimeout 5
User
La directiva User establece el userid usado por el servidor para responder a peticiones. El valor de User determina el acceso al servidor. Cualquier fichero al que no pueda acceder este usuario será también inaccesible al visitante de la web. El comando predeterminado para User es www-data.
User solo debería tener privilegios de tal manera que sólo pudiera acceder a ficheros que se supone que todo el mundo puede ver. El comando User también es dueño del cualquier proceso CGI que arranque el servidor.Al comando User no se le debería permitir ejecutar ningún código que no esté pensado para responder peticiones HTTP.
El valor de esta variable se define en «/etc/apache2/envvars»
User ${APACHE_RUN_USER}
Group
El comando Group es similar a User. Group establece el grupo en el que el servidor responde a las peticiones. El valor predeterminado del comando Group también es apache.
Al igual User tambien se declara el valor en «/etc/apache2/envvars»
Group ${APACHE_RUN_GROUP}
HostnameLookups
HostnameLookups puede aparecer en on o en off. Si el servidor permite la directiva HostnameLookups (poniéndolo en on), el servidor resolverá automáticamente la dirección IP de cada conexión que pida un documento del servidor. Resolver la dirección IP implica que el servidor hará una o más conexiones al DNS para averiguar qué nombre de máquina se corresponde con una dirección IP.
HostnameLookups influye también en Internet en general. Cada conexión individual provoca una sobrecarga en el servidor. Por ello, por beneficio del servidor y de Internet en general, debería dejarse HostnameLookups en off.
Otro motivo por el que debería dejarse HostnameLookups en off es porque las peticiones de DNS añanden carga al servidor y pueden ralentizarlo. Si el servidor tiene carga, los efectos de HostnameLookups pueden ser considerables.
HostnameLookups Off
ErrorLog
ErrorLog nombra el fichero donde se guardan los errores del servidor.Como viene indicado, el fichero de error del servidor es /var/log/httpsd/error_log. El log de errores es un buen sitio para ver si el servidor genera errores y no se sabe muy bien qué pasó.
Es habitual que en este directorio hayan enlaces a otros directorio, por ejemplo el directorio de registro de accesos y errores (directorio de logs).
ErrorLog ${APACHE_LOG_DIR}/error.log
LogLevel
LogLevel warn
LogLevel establece cómo serán de abundantes los logs de error. Los niveles de error del LogLevel (de menor a mayor) son emerg, alert, crit, error, warn, notice, info or debug. El LogLevel de secure Web server está en warn (nivel medio).
IncludeOptional
Sirve para añadir configuraciones opcionales. Aquí estamos añadiendo los modulos que se encuentran en el directorio raiz de apache /etc/apache2″, dentro del directorio «mods-enabled». Estamos cargando tanto los modulos como sus ficheros de configuracion.
IncludeOptional mods-enabled/*.load
IncludeOptional mods-enabled/*.conf
Include ports.conf
Estamos incluyendo la configuracion del archivo ports.conf, donde se definen los puerto con los que trabaja el servidor, generalmente el 80 y si tiene cargado el modulo ssl el 443.
Include ports.conf
AccessFileName
AccessFileName denomina el archivo que el servidor utilizará para controlar el acceso en cada directorio. Por defecto, el servidor utilizará .htaccess, si existe, para controlar el acceso en cada directorio.
AccessFileName .htaccess
<Files>
Controla el acceso a cualquier archivo que empiece con .ht. Estas directivas niegan acceso a todo tipo de archivo .htaccess (u otros archivos que empiecen .ht) por razones de seguridad.
<FilesMatch "^\.ht">
Require all denied
</FilesMatch>
LogFormat
LogFormat
LogFormat pone el formato para los mensajes en el log de acceso; afortunadamente, el formato hará que el log de acceso sea más legible.
IncludeOptional conf-enabled/*.conf
Incluye los ficheros con extension .conf que se encuentran en «/etc/apache/conf-enabled/»
IncludeOptional sites-enabled/*.conf
Incluye la configuracion de todos los ficheros terminados en .conf en «/etc/apache2/sites-enabled/». En esta ruta se guardan los ficheros de configuracion de los hosting virtuales.
Conclusion
Ya hemos llegado al final de la configuracion de apache2.conf. Aunque son varios parametros y variables, estando por defecto nos valdrá para la mayoria de los casos.
De todos los parametros, a los que mayor atencion hay que prestar son KeepAliveTimeout, MaxKeepAliveRequests, KeepAlive, Timeout.
Entradas recomendadas
Enlaces de Interes
Para cualquier duda o sugerencia, puedes contactarme a traves del fomulario de contacto.
Tambien te animo a que te suscribas a la newsletter, donde solo envio las nuevas publicaciones.
Deja un Comentario
Debes de estar logueado para comentar.