Cómo configurar el servidor Web Apache en un Ubuntu o Debian VPS

¿Qué es Apache?

Apache es el servidor web más popular en internet. Se utiliza para servir a más de la mitad de todos los sitios web activos.

aunque hay muchos servidores web viables que servirán su contenido, es útil entender cómo funciona Apache debido a su ubicuidad.

en este artículo, examinaremos algunos archivos de configuración generales y opciones que se pueden controlar dentro de ellos., Este artículo seguirá el diseño Ubuntu/Debian de los archivos Apache, que es diferente de cómo otras distribuciones construyen la jerarquía de configuración.

cómo instalar Apache en Ubuntu y Debian

Si aún no tiene Apache instalado, puede hacerlo ahora emitiendo los siguientes comandos:

sudo apt-get updatesudo apt-get install apache2

esto es todo lo que es necesario para tener un servidor web funcionando., Si visita la dirección IP de su VPS en un navegador web, obtendrá la página de índice de Apache predeterminada:

your_domain_name_or_ip_address
It works!This is the default web page for this server.The web server software is running but no content has been added, yet.

la jerarquía de archivos Apache en Ubuntu y Debian

en Ubuntu y Debian, Apache mantiene sus archivos de configuración principales dentro de la carpeta «/etc/apache2»:

cd /etc/apache2ls -F
apache2.conf envvars magic mods-enabled/ sites-available/conf.d/ httpd.conf mods-available/ ports.conf sites-enabled/

hay varios archivos de texto sin formato y algunos subdirectorios en este directorio. Estas son algunas de las ubicaciones más útiles para familiarizarse con:

  • apache2.,conf: este es el archivo de configuración principal del servidor. Casi toda la configuración se puede hacer desde dentro de este archivo, aunque se recomienda usar archivos separados designados para simplificar. Este archivo configurará los valores predeterminados y será el punto central de acceso para que el servidor lea los detalles de configuración.
  • ports.conf: este archivo se usa para especificar los puertos en los que los hosts virtuales deben escuchar. Asegúrese de comprobar que este archivo es correcto si está configurando SSL.
  • conf.d/ : Este directorio se utiliza para controlar aspectos específicos de la configuración de Apache., Por ejemplo, a menudo se usa para definir la configuración SSL y las opciones de seguridad predeterminadas.
  • sites-available/ : este directorio contiene todos los archivos de host virtual que definen diferentes sitios web. Estos establecerán qué contenido se sirve para qué solicitudes. Estas son configuraciones disponibles, no configuraciones activas.
  • sites-enabled/ : este directorio establece qué definiciones de host virtual se están utilizando realmente. Por lo general, este directorio consiste en enlaces simbólicos a archivos definidos en el directorio «sites-available».,
  • mods -/: estos directorios son similares en función a los directorios de sitios, pero definen módulos que se pueden cargar opcionalmente en su lugar.

como puede ver, la configuración de Apache no tiene lugar en un solo archivo monolítico, sino que ocurre a través de un diseño modular donde se pueden agregar nuevos archivos y modificarlos según sea necesario.

mirando el Apache2.archivo conf

Los detalles principales de configuración de su servidor Apache se encuentran en «/etc/apache2/apache2.archivo conf.,

Este archivo se divide en tres secciones principales: configuración para el proceso global del servidor Apache, configuración para el servidor predeterminado y configuración de Hosts virtuales.

en Ubuntu y Debian, la mayoría del archivo es para definiciones globales, y la configuración del servidor predeterminado y los hosts virtuales se maneja al final, utilizando el » Include …» directriz.

la directiva» Include » permite a Apache leer otros archivos de configuración en el archivo actual en la ubicación en la que aparece la instrucción., El resultado es que Apache genera dinámicamente un archivo de configuración general en el inicio.

si se desplaza hasta la parte inferior del archivo, hay una serie de instrucciones «Include» diferentes. Estas definiciones de módulo de carga, los puertos.Conf document, los archivos de configuración específicos en » conf.D / «y, finalmente, las definiciones de Host Virtual en el directorio» sites-enabled/».

nos centraremos en la primera parte del archivo para aprender cómo Apache define su configuración global.,

sección de configuración Global

Esta sección se utiliza para configurar algunas opciones que controlan el funcionamiento de Apache como un todo.

hay algunas opciones interesantes que puede que desee modificar en esta sección:

Timeout

por defecto, este parámetro se establece en «300», lo que significa que el servidor tiene un máximo de 300 segundos para cumplir con cada solicitud.

esto es probablemente demasiado alto para la mayoría de las configuraciones y puede reducirse de forma segura a algo entre 30 y 60 segundos.,

KeepAlive

Esta opción, si se establece en «On», permitirá que cada conexión permanezca abierta para manejar múltiples solicitudes del mismo cliente.

si esto se establece en «Off», cada solicitud tendrá que establecer una nueva conexión, lo que puede resultar en una sobrecarga significativa dependiendo de su configuración y la situación del tráfico.

MaxKeepAliveRequests

esto controla cuántas solicitudes separadas manejará cada conexión antes de morir. Mantener este número alto permitirá a Apache servir contenido a cada cliente de manera más efectiva.,

establecer este valor en 0 permitirá a Apache servir una cantidad ilimitada de solicitudes para cada conexión.

KeepAliveTimeout

esta configuración especifica cuánto tiempo esperar para la siguiente solicitud después de finalizar la última. Si se alcanza el umbral de tiempo de espera, entonces la conexión morirá.

esto solo significa que la próxima vez que se solicite contenido, el servidor establecerá una nueva conexión para manejar la solicitud del contenido que compone la página que el cliente está visitando.,

configuración de MPM

la siguiente sección especifica la configuración de las opciones MPM (Multi-Processing Module). Puede hacer referencia cruzada con qué sección se compiló su instalación de Apache saliendo del terminal y escribiendo:

apache2 -l
Compiled in modules: core.c mod_log_config.c mod_logio.c prefork.c http_core.c mod_so.c

como puede ver, en este servidor, «prefork.c» es un módulo que fue compilado y también está en el «apache2.archivo conf. Su instalación puede tener múltiples para elegir, pero solo se puede seleccionar uno.

Puede ajustar la configuración del MPM prefork en la sección correspondiente.,

explorando el archivo de Host virtual predeterminado

la declaración de Host virtual predeterminada se puede encontrar en un archivo llamado «default» en el directorio «sites-available».

podemos aprender sobre el formato general de un archivo de Host Virtual examinando este archivo. Abra el archivo con el siguiente comando:

sudo nano /etc/apache2/sites-available/default

el Host virtual predeterminado está configurado para manejar cualquier solicitud en el puerto 80, el puerto http estándar. Esto se define en el encabezado de la declaración donde dice»*: 80″, lo que significa el puerto 80 en cualquier interfaz.,

esto no significa que necesariamente manejará cada solicitud al servidor en este puerto. Apache utiliza la definición de Host Virtual más específica que coincida con la solicitud. Esto significa que si hubiera una definición más específica, podría reemplazar esta definición.

configuración de nivel superior de Host Virtual

estas opciones se establecen dentro de la definición de Host Virtual fuera de cualquier otra subdeclaración de nivel inferior. Se aplican a todo el Host Virtual.

la opción «ServerAdmin» especifica un correo electrónico de contacto que debe usarse cuando hay problemas con el servidor.,

esto se puede insertar en una página de error si tiene » ServerSignature «establecido en» Email «en el» /etc/apache2/conf.D / seguridad», así que asegúrese de que está dispuesto a recibir el correo si ajusta esa configuración.

si usáramos esto como plantilla para otras definiciones de Host Virtual, querríamos agregar una definición de «ServerName» que especifique el nombre de dominio o la dirección IP que debe manejar esta solicitud. Esta es la opción que agregaría especificidad al Host Virtual, lo que le permitiría superar la definición predeterminada si coincide con el valor ServerName.,

también puede hacer que el Host Virtual se aplique a más de un nombre utilizando la definición «ServerAlias». Esto proporciona rutas alternativas para llegar al mismo contenido. Un buen caso de uso para esto es agregar el mismo dominio, precedido por «www».

la opción «DocumentRoot» especifica dónde se ubicará el contenido que se solicita para este Host Virtual. El Host virtual predeterminado está configurado para servir contenido desde el directorio «/var/www» en Ubuntu.,

definiciones de directorio

dentro de la definición de Host Virtual, Hay definiciones de cómo el servidor maneja diferentes directorios dentro del sistema de archivos. Apache aplicará todas estas direcciones en orden de más corto a más largo, por lo que de nuevo existe la posibilidad de anular opciones anteriores.

la primera definición de directorio aplica reglas para el directorio»/», o raíz. Esto proporcionará la configuración de referencia para su Host Virtual, ya que se aplica a todos los archivos servidos en el sistema de archivos.

Por defecto, Ubuntu no establece ninguna restricción de acceso al sistema de archivos., Apache recomienda agregar algunas restricciones de acceso predeterminadas. Puede modificar esto de la siguiente manera:

<Directory />Options FollowSymLinksAllowOverride NoneOrder Deny,AllowDeny from All</Directory>

esto denegará el acceso a todo el contenido a menos que se especifique lo contrario en las definiciones de directorio posteriores.

la siguiente definición de directorio es para la raíz del documento, por lo que especifica la opción «Permitir desde todos» que anula la opción «/» para este directorio.

la opción » AllowOverride «se utiliza para decidir si un».htaccess » archivo puede anular la configuración si se coloca en el directorio de contenido., Esto no está permitido por defecto, pero puede ser útil para habilitar en una variedad de circunstancias.

instrucciones Alias y ScriptAlias

Las definiciones de directorio a veces están precedidas por instrucciones» Alias «o» ScriptAlias». Alias asigna una ruta de url a una ruta de directorio.

ScriptAlias funciona de la misma manera, pero se usa para definir directorios que tendrán componentes ejecutables en ellos.

Alias /content/ /path/to/content/

siguiendo el alias, debe recordar definir el directorio con privilegios de acceso como se discutió en la sección anterior.,

habilitar sitios y módulos en Apache

Una vez que tenga un archivo de Host Virtual que cumpla con sus requisitos, puede usar las herramientas incluidas con Apache para hacer la transición a sitios activos.,

para crear automáticamente un enlace simbólico en el directorio «sites-enabled» a un archivo existente en el directorio «sites-available», ejecute el siguiente comando:

sudo a2ensite virtual_host_file_name

después de habilitar un sitio, ejecute el siguiente comando para decirle a Apache que vuelva a leer sus archivos de configuración, permitiendo que el cambio se propague:

sudo service apache2 reload

también es un comando complementario para deshabilitar un host virtual., Funciona eliminando el enlace simbólico del directorio» sites-enabled»:

sudo a2dissite virtual_host_file_name

nuevamente, vuelva a cargar la configuración para hacer que el cambio suceda:

sudo service apache2 reload

Los módulos se pueden habilitar o deshabilitar utilizando los comandos «a2enmod» y «a2dismod» respectivamente. Funcionan de la misma manera que las versiones» site » de estos comandos.

recuerde volver a cargar los cambios de configuración después de que los módulos se hayan habilitado o deshabilitado también.

conclusión

hemos repasado algunos archivos de configuración básicos de Apache., Apache es versátil y muy modular, por lo que las necesidades de configuración serán diferentes dependiendo de su configuración.

Usted debe tener una buena comprensión de lo que los archivos de configuración principales se utilizan para y cómo interactúan entre sí. Si necesita conocer opciones de configuración específicas, los archivos proporcionados están bien comentados y Apache proporciona una excelente documentación.

Con suerte, los archivos de configuración no serán tan intimidantes ahora, y se sentirá más cómodo experimentando y modificando para satisfacer sus necesidades.

por Justin Ellingwood

Share

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *