Es el servidor HTTP más usado (56% de los servidores Web usan Apache, para
Agosto de 2010)
VENTAJAS
Modular
Código abierto
Multi-plataforma
Extensible
Popular (fácil conseguir ayuda/soporte)
En distribuciones basadas en Debian
# apt-get install mysql-client mysql-server
# apt-get install apache2 phpmyadmin
www.dominio.com
foros.dominio.com
www.dominio2.com
200.30.2.1
Contexto: Alcance
Las directivas pueden aparecer en cualquier archivo de configuración fuera de
cualquier contenedor.
Una directiva en este contexto afectara a todos los demás
Tienen un alcance global
Archivos comunes: httpd.conf, apache2.conf, etc.
Mostrar archivo apache2.conf
Contexto del contenedor
NOTA: Existen más contenedores, pero éstos son los más utilizados.
<VirtualHost 206.171.50.50>
ServerName www.londonetwork.com
Estas tres directivas se
DocumentRoot /var/www/londonetwork encuentran dentro del
DirectoryIndex welcome.html contexto de servidor virtual
<Location /secured>
Esta directiva está en contexto Location.
DirectoryIndex login.html
Significa que se mostrará el archivo
</Location> login.html a todo cliente que trate de
</VirtualHost> acceder a www.londonetwork.com/secured
Reglas para el uso de contenedores
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.
/var/www/
Listen
Usada para especificar el puerto a través del cual escuchará apache las
peticiones de los clientes Web. Por ejemplo:
Listen 80 //Puerto HTTP por defecto
Listen 8080 //HTTP alternativo
Listen 443 //HTTPS
User
Esta directiva se usa para configurar el ID del usuario del sistema que se
utilizará para ejecutar los procesos del apache.
Por ejemplo en Debian se crea el usuario www-data y con este usuario se
ejecuta el daemon del apache.
Group
Esta directiva se usa para configurar el ID del grupo del sistema que se
utilizará para ejecutar los procesos del apache.
Options
ServerName
Esta directiva es la encargada de definir el nombre del servidor.
Asegúrese de ingresar un nombre de dominio completamente cualificado
(FQDN). Por ejemplo www.londonetwork.net
Tenga en cuenta que para cada host virtual debe especificar un ServerName.
ServerRoot
Esta directiva se usa para definir el directorio en el que se encuentran
los archivos de configuración del servidor.
No confundir con la directiva DocumentRoot.
Por defecto en Ubuntu 10.04, ServerRoot es /etc/apache2. En fedora es
/etc/httpd/
ServerAlias
Cuando tenga que referirse a un servidor que tiene varios nombres
puede utilizar ServerAlias para definir un sobrenombre para el mismo
ServerName.
Ejemplo:
ServerName www.londonetwork.net
ServerAlias londonetwork.net
ErrorLog
Esta directiva especifica el nombre del archivo de registro donde se
guardan los mensajes de error que genera el servidor.
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).
AllowOverride
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>
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.
Tener servidor dedicado por cada sitio Web puede aumentar el rendimiento del sitio,
porque cada servidor sólo atenderá llamadas pertenecientes a ese sitio.
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).
Cada sitio Web tiene una IP diferente:
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).
A continuación se muestra la configuración del servidor Web virtual basado en IP:
Listen 80
<VirtualHost 172.20.30.40>
DocumentRoot /www/example1
ServerName www.example1.com
</VirtualHost>
Usando esta técnica, una sola dirección IP puede ser compartida por muchos sitios
web diferentes.
El hosting virtual basado en nombres es más sencillo, porque solo necesita configurar
su servidor de DNS para que localice la dirección IP correcta y entonces configurar
Apache para que reconozca los diferentes nombres de host.
Use hosting virtual basado en nombres a menos de que haya una razón especial para
usar hosting virtual basado en IP.
Ejemplo 1:
NameVirtualHost *:80
<VirtualHost *:80>
ServerName www.domain.tld
ServerAlias domain.tld *.domain.tld
DocumentRoot /www/domain
</VirtualHost>
<VirtualHost *:80>
ServerName www.otherdomain.tld Ejecución de varios sitios web
DocumentRoot /www/otherdomain basados en nombres en una única
</VirtualHost> dirección IP.
El asterisco indica que * usará todas
las direcciones que tenga el servidor
Ejemplo 2:
Listen 80
En este caso suponemos que el servidor
# This is the other address tiene más de una dirección IP y usaremos
NameVirtualHost 172.20.30.50 la dirección 172.20.30.50 compartida por
los sitios:
<VirtualHost 172.20.30.50>
DocumentRoot /www/example1
• www.example1.com
ServerName www.example1.com • www.example2.org
…
</VirtualHost>
<VirtualHost 172.20.30.50>
DocumentRoot /www/example2
ServerName www.example2.org
...
</VirtualHost>
Ejemplo 3:
NameVirtualHost 192.168.1.1
NameVirtualHost 172.20.30.40
Listen 80
Listen 8080
NameVirtualHost 172.20.30.40:80
NameVirtualHost 172.20.30.40:8080
<VirtualHost 172.20.30.40:80>
ServerName www.example1.com
DocumentRoot /www/domain-80
</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>
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
1. Instalar el servidor DNS (Bind9).
#apt-get install bind9.
# nano /etc/network/interfaces
# /etc/init.d/networking restart
4. Configurar el cliente DNS mediante el archivo /etc/resolv.conf
# nano /etc/resolv.conf
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
# cd /etc/bind/
# cp db.local db.directa
# cp db.127 db.inversa
# cd /var/www
# mkdir www.sudominio.com www1.sudominio.com
12. Para realizar pruebas será necesario crear los sitios dentro de cada uno de
los directorios. En nuestro caso copiaremos dos platillas y las pegaremos
en cada directorio.
13. Los sitios virtuales que realmente están activos se encuentran enlazados en el
directorio /etc/apache/sites-enabled. Para que los sitios sean activados y se cree
un enlace simbólico desde /etc/apache/sites-avalaible hasta /etc/apache/sites-
enabled se usa el siguiente comando:
# a2ensite www
# a2ensite www1
14. para que los cambios surtan efectos será necesario reiniciar el apache
http://www.sudominio.com
http://www1.sudominio.com
Escenario:
1 sólo servidor físico
2 direcciones IP:
• 192.168.2.2
• 192.168.10.3
Requerimientos
Instalar 2 servicios (DNS y WEB Apache)
2 Dominios virtuales: sudominio.com midominio.com
Alojar dos sitios virtuales basado en IP y usando una dirección IP para cada
sitio:
• www.sudominio.com
• www.midominio.com
Escenario:
1 sólo servidor físico
1 dirección IP: 192.168.2.2
Requerimientos
Instalar 2 servicios (DNS y WEB Apache)
1 Dominio: sudominio.com
Alojar 2 sitios virtuales:
• www.sudominio.com
• www.sudominio.com:8080
Escenario:
1 sólo servidor físico
2 direcciones IP:
• 192.168.2.2
• 192.168.10.3
Requerimientos
Instalar 2 servicios (DNS y WEB Apache)
1 Dominio: sudominio.com
Alojar 2 sitios virtuales basado en nombres usando la primera dirección IP y
otro sitio virtual usando la segunda dirección IP
• www.sudominio.com
• www1.sudominio.com
• foros.sudominio.com