Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Apache en Linux
Apache en Linux
Conceptos, instalación y
configuración
Instructor
Luis Felipe Londoño Muñoz
Centro de Servicios y gestión empresarial
Teleinformática
Servidor Web Apache
• El servidor HTTP Apache es un servidor web
HTTP de código abierto para plataformas Unix
(BSD, GNU/Linux, etc.), Microsoft Windows,
Macintosh y otras, que implementa el
protocolo HTTP/1.1 y la noción de sitio virtual.
• Es el servidor HTTP más usado (56% de los
servidores Web usan Apache, para Agosto de
2010)
Servidor Web Apache
• Ventajas
– Modular
– Código abierto
– Multi-plataforma
– Extensible
– Popular (fácil conseguir ayuda/soporte)
Instalación del servidor LAMP (Linux
Apache MYSQL PHP)
• En distribuciones basadas en Debian
# apt-get install mysql-client mysql-server
# apt-get install apache2 phpmyadmin
200.30.2.1
<VirtualHost 206.171.50.50>
Estas tres directivas se
ServerName www.londonetwork.com encuentran dentro del
DocumentRoot /var/www/londonetwork contexto de servidor
virtual
DirectoryIndex welcome.html
<Location /secured> Esta directiva está en contexto
Location. Significa que se mostrará el
DirectoryIndex login.html archivo login.html a todo cliente que
</Location> trate de acceder a
</VirtualHost> www.londonetwork.com/secured
Contexto de las directivas del apache
• Reglas para 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.
Principales directivas del apache
• AccessFileName
– Especifica el nombre del archivo de control por
directorio.
– Los parámetros predeterminados .htaccess hace
que Apache busque el archivo .htaccess cada vez
que el cliente del sistema emite una petición de
acceso.
– El archivo .htaccess contiene directivas aplicadas
para cada directorio.
Principales directivas del apache
• DocumentRoot
– Es el directorio raíz para los archivos del sitio Web.
– Cada host virtual definido dentro de los contenedores
<VirtualHost> debe tener esta directiva para indicar la
ruta dónde se encuetran los archivos del sitio.
– Por ejemplo, si se definió
DocumentRoot /var/www para el sitio
www.londonetwork.net, entonces cualquier solicitud
a www.londonetwork.net/index.html hace que el
servidor busque /var/www/index.html
Principales directivas del apache
• DocumentRoot
– Por defecto en el contexto de servidor se usa el
directorio /var/www como DocumentRoot del servidor.
/var/www/
• DirectoryIndex
– Esta directiva especifica la(s) páginas principales para un sitio.
Por ejemplo:
DirectoryIndex index.php index.html
(Apache buscará en el directorio del sitio la página index.php
y la mostrará. En caso de no encontrarla buscará la página
index.html. Si no encuentra tratará de indexar el contenido
del directorio)
Principales directivas del apache
• AllowOverride
– Esta directiva le indica al servidor qué directivas de las
declaradas en el archivo .htaccess, pueden sustituir a las
que se encontró en los primeros archivos de configuración.
– Cuando el argumento sea None, el servidor no leerá ell
archivo .htaccess (Se acelera el tiempo de respuesta del
servidor)
– Opciones:
• AuthConfig
• FileInfo
• Indexes
• Limit
• Options
Principales directivas del apache
• Order
– Controla el sistema de evaluación que utiliza
apache con las directivas allow y deny (Usadas
para permitir o denegar hosts)
– Ejemplo
<Directory /var/www>
Order deny,allow
deny from myboss.londonetwok.net
allow from all
</Directory>
NOTA: En este ejemplo se deniega el acceso al host
myboss.londonetwork.net, mientras que se le permite al resto de los hosts
Hosting Virtual
• Qué es un Virtual Host (Host Virtual)
– El término Hosting Virtual se refiere a hacer
funcionar más de un sitio web (tales como
www.company1.com y www.company2.com) en una
sola máquina.
• Ventajas de un sitio virtual
– Son más fáciles de manejar
– Un único conjunto de archivos de configuración
– Una actualización de hardware o software beneficia a
todos los sitios Web virtuales.
Hosting Virtual
• Observaciones
– Tener servidor dedicado por cada sitio Web puede
aumentar el rendimiento del sitio, porque cada
servidor sólo atenderá llamadas pertenecientes a ese
sitio.
– El servidor dedicado solo aprovecha al máximo el
rendimiento cuando el sitio tiene alta densidad de
tráfico.
– La mayoría de los sitios Web son virtuales (Usan un
servidor compartido)
Hosting Virtual
• ¿Qué opciones tengo en caso de querer alojar
varios sitios en un único servidor Web?
1. www. dominioISP.com/cliente1
2. http://<dominio del cliente>:<puerto no estándar>
Por ejemplo www.dominio.com:8080
3. Usar un servidor dedicado para el dominio de cada
cliente (Costoso)
4. Usar Virtual Hosting (mentener varios sitios Web
alojados en un único servidor Web)
Hosting virtual basado en IP
• Cada sitio Web tiene una IP diferente
Hosting virtual basado en IP
• Es necesario configurar los routers para que asocien
adecuadamente todas las direcciones IP que quiera
usar con los servidores Web (Virtuales y principal)
• Podrá elegir entre crear alias IP para cada interfaz
Ethernet o disponer de distintas interfaces para cada
dirección IP (tarjetas Ethernet adicionales)
Hosting virtual basado en IP
• A continuación se muestra la configuración del servidor Web
virtual basado en IP:
Listen 80
NameVirtualHost 172.20.30.40:80
NameVirtualHost 172.20.30.40:8080
Corriendo diferentes sitios
<VirtualHost 172.20.30.40:80>
ServerName www.example1.com
DocumentRoot /www/domain-80
en diferentes puertos
</VirtualHost>
<VirtualHost 172.20.30.40:8080>
ServerName www.example1.com
DocumentRoot /www/domain-8080
</VirtualHost>
<VirtualHost 172.20.30.40:80>
ServerName www.example2.org
DocumentRoot /www/otherdomain-80
</VirtualHost>
<VirtualHost 172.20.30.40:8080>
ServerName www.example2.org
DocumentRoot /www/otherdomain-8080
</VirtualHost>
Hosting virtual basado nombres
•Ejemplo 5:
Listen 80
NameVirtualHost 172.20.30.40
<VirtualHost 172.20.30.40>
DocumentRoot /www/example1
Hosting virtual basado en
ServerName www.example1.com
</VirtualHost> nombres y basado en IP
<VirtualHost 172.20.30.40>
DocumentRoot /www/example2
(Combinados)
ServerName www.example2.org
</VirtualHost>
# IP-based
<VirtualHost 172.20.30.50>
DocumentRoot /www/example4
ServerName www.example4.edu
</VirtualHost>
<VirtualHost 172.20.30.60>
DocumentRoot /www/example5
ServerName www.example5.gov
</VirtualHost>
Ejemplo de Configuración
• Escenario:
– 1 sólo servidor físico
– 1 dirección IP: 192.168.2.2 (Solo una interfaz eth0)
• Requerimientos
– Instalar 2 servicios (DNS y WEB)
– Dominio: sudominio.com
– Servidor Web Apache
– Alojar dos sitios virtuales basado en nombres y usando
la única dirección IP:
• www.sudominio.com
• www1.sudominio.com
Ejemplo de Configuración
1. Instalar el servidor DNS (Bind9)
#apt-get install bind9
2. Instalar el servidor LAMP (Linux – Apache –
MYSQL - PHP)
# apt-get install mysql-client mysql-server
# apt-get install apache2 phpmyadmin
# /etc/init.d/networking restart
Ejemplo de Configuración
Servidor DNS
4. Configurar el cliente DNS mediante el archivo
/etc/resolv.conf
# nano /etc/resolv.conf
Ejemplo de Configuración
Servidor DNS
5. Editar el archivo /etc/bind/named.conf.local y definir las zonas
directa e inversa para su dominio al final del archivo:
# nano /etc/bind/named.conf.local
zone “sudominio.com”{
type master;
file “/etc/bind/db.directa”;
Ambas Zonas son maestras o
};
principales.
zone “168.192.in-addr.arpa”{ El archivo de zona directa se llama
type master; db.directa (Hay que crearlo).
file “/etc/bind/db.inversa”;
El archivo de zona inversa se llama
};
db.inversa (Hay que crearlo).
Ejemplo de Configuración
Servidor DNS
6. Crear los archivos de zona db.directa y db.inversa.
Hay dos opciones, crear los archivos desde cero o
tomar un archivo de zona existente como
referencia. Este última sera la opción elegida.
# cd /etc/bind/
# cp db.local db.directa
# cp db.127 db.inversa