Servidor WEB (Apache)
-El servidor Web Apache es un servidor web http de código abierto para plataformas Unix, Microsoft, Macintosh y otras que implementan el protocolo http 1.1 y la noción de sitio virtual. Es el servidor http mas usado, el 56% de los servidores web usan apache.Ventajas:
-Modular
-Codigo Abierto
-Multi-Plataforma
-Extensible
-Popular
Contexto de Configuracion del Servidor:
-Las directivas pueden aparecer en cualquier archivo de configuración fuera de cualquier contenedor.
-Tienen un alcance global.
-Archivos Comunes: httpd.conf, apache2.conf
Contexto del Contenedor:
-Los contenedores se usan para limitar el alcance de una directiva.
-<VirtualHost> </VirtualHost> se utiliza para aplicar una o mas directivas.
-zDirectory> </Directory> se utiliza para aplicar directivas a un directorio determinado.
-<Location> </Location> se utiliza para aplicar una o mas directivas a una URL determinada.
NOTA: existen mas contenedores pero estos son los mas utilizados.
Ejemplo:
<VirtualHost (direccion IP)>
ServerName www.midominio.com
DocumentRoot /var/www/html/midominio
DirectoryIndex midominio.html
<Location/Secured>
DirectoryIndex login.html
</Location>
</VirtualHost>
Regla en el Uso de Contenedores:
-Un contenedor <VirtualHost> no se puede anidar con otro del mismo tipo.
-Los contenedores <Location> y <Directory> no se pueden mezclar ni utilizar uno dentro del otro.
DocumentRoot:
-Es el directorio raiz para los archivos del sitio web.
-Cada host virtual definido dentro de los contenedores <VirtualHost> debe tener esta directiva para indicar la ruta donde se encuentran los archivos del sitio.
-Por defecto se utiliza el directorio /var/www.
Listen:
-Usada para especificar el puerto a traves del cual escuchara apache las peticiones de los clientes web. Por ejemplo:
Listen 80 //Puerto http por defecto
Listen 8080 //http alternativo
Listen 443 //http seguro
User:
-Esta directiva se usa para configurar el ID del usuario del sistema que se utilizara para ejecutar los procesos del apache.
Group:
-Esta directiva se usa para configurar el ID del grupo del sistema que se utilizara para ejecutar los procesos del apache.
Options:
Esta directiva controla las propiedades del servidor disponibles para un directorio en particular. Los valores son los siguientes:
-None: Sin opciones
-All: Todas las opciones
-Indexes: si se solicita la URL de un directorio y este carece de un DirectoryIndex, entonces el servidor muestra una lista con el contenido de dicha carpeta.
ServerAdmin:
-Esta directiva
especifica la dirección de correo electrónico que el servidor incluye para los
mensajes de error.
ServerName:
-Esta directiva es la
encargada de definir el nombre del servidor.
-Asegurese de ingresar
un nombre de dominio completamente cualificado (FQDN).
-Tenga en cuenta que
para cada host virtual debe especificar un ServerName.
ServerRoot:
-Se usa para definir
el directorio en el que se encuentran los archivos de confgiuracion del
servidor, osea en /etc/httpd.
ServerAlias:
-Cuando tenga que
referice a un servidor que tiene varios nombres puede utilizar ServerAlias para
definir un sobrenombre para el mismo ServerName.
Errorlog:
-Nombre del archivo de registro
donde se guardaran los mensajes de error que genera el servidor.
DirectoryIndex:
-Especifica las paginas principales
para un sitio. Ejemplo:
Index.php Index.html
HostVirtual:
-Utilizar el mismo servidor
web para diferentes paginas web:
-Ventajas:
Mas fácil de manejar.
Un único archivo de configuración.
Una actualización de hardware
beneficia todos los sitios web.
-Tener servidor dedicado por cada
sitio web puede aumentar el rendimiento del sitio, ya que el flujo de datos
solo llega a esa tarjeta de red donde esta alojado el sitio web.
-En cambio el servidor compartido,
son varios sitios web en una sola tarjeta de red, pues el trafico de red en esa
será mucho peor que en un servidor dedicado.
Instalación y Configuración del Servidor Apache en Linux
Lo primero que debemos hacer es instalar el servicio, y el nombre del paquete del servidor web es:
yum install httpd (en Centos)
apt-get install apache2 (en Debian)
Luego de a ver instalado el paquete del servicio, procedemos a configurar el archivo, si estas utilizando debían la carpeta queda en /etc/apache2 y el archivo de configuración es apache2.conf.
Si estas utilizando centos, la carpeta queda en /etc/httpd/conf y el archivo se llama httpd.conf.
Si tienes tiempo o simplemente te quieres documentar viendo todo el archivo de configuración del servidor apache, estas son las lineas que mas te van a interesar:
ServerRoot=Ruta en donde esta el archivo de configuración del servidor apache
DocumentRoot=Ruta en donde esta el archivo de configuración del sitio web que se va a elaborar
ServerAdmin=Correo del propietario del sitio web, en donde se le avisaran los mensajes de error del servidor
ServerName=Nombre del servidor
DirectoryIndex=Pagina principal que se mostrara al ingresar al sitio web
Esas lineas que te acabo de colocar, son las lineas que necesitaras para construir un pagina web, pero en este paso a paso te enseñare a utilizar Virtualizacion. Para llevar a cabo dicho proceso, ve hasta el final del archivo, busca la linea que dice NameVirtualHost y descomentala y ya en lo ultimo del archivo copia estas lineas:
NOTA: no te olvides de darle permisos de escritura a los archivos de configuracion del sitio web.
VirtualHost:
-En este primer Hosting Virtual, lo haremos por VirtualHost basado en nombres, osea que utilizaremos una direccion IP para alojar dos sitios web.
www.empresa1.com
www.empresa2.com
NOTA: las lineas que verán demás en la configuración de este sitio web, se utiliza para autenticar en dicho sitio web, Autenticar ?, Si autenticar, osea que al momento que ingresemos al sitio web nos pida un usuario y una contraseña.
Por ejemplo la linea /var/www/sec.empresa1.com/pw/passwd1.conf me indica que, debo de crear dentro de la carpeta sec.empresa1.com (sec.empresa1.com es la carpeta donde esta el archivo de configuración del sitio web) una carpeta llamada pw, luego de a verla creado procedemos a ejecutar la siguiente linea en la terminal:
htpasswd -c /var/www/sec.empresa1.com/pw/passwd1.conf angelo= el passwd1.conf se crea por defecto, no hay necesidad de crearlo, pues alli es donde se aloja el usuario angelo y su dicha contraseña, ya que despues de ejecutar dicha linea te pedira una contraseña para el nombre de usuario que en este caso es angelo.
-Ahora veremos un Hosting Virtual basado en direcciones IP, osea que le asignaremos a cada sitio web una direccion IP.
www.empresa2.com
-En esta siguiente empresa, veran algo distinto, pues en esta empresa denegaremos la entrada a un cliente en especifico, ya lo veran:
conf.empresa2.com
y esto es todo compañeros, espero les haya servido este paso a paso sobre Servidor web en linux, Dios los Bendiga !!