 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)

 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  Archivos de configuración del apache NOTA: Es recomendable no modificar el archivo de configuración global /etc/apache2/apache2.conf.  Se recomienda crear archivos de configuración para cada host virtual dentro del directorio /etc/apache2/sites-avalaible.  Por defecto hay un Host Virtual definido en el archivo /etc/apache2/sites-avalaible/default.

 Archivos de configuración del apache  Posteriormente se mostrará cómo realizar la configuración de Host Virtuales.

www.dominio.com foros.dominio.com www.dominio2.com

200.30.2.1

Cliente Web

Servidor Web que aloja varios sitios virtuales (Virtual Hosts), usando una única dirección IP

NOTA: Las directivas son opciones de configuración para la ejecución del apache  Contexto de configuración del servidor  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  Los contenedores se usan para limitar el alcance de una directiva.  Una pareja de etiquetas agrupan las directivas.  <VirtualHost …>…</VirtualHost> se utiliza para aplicar una o mas directivas al sitio web virtual (Host Virtual).

 <Directory …>…</Directory> Se utiliza para aplicar directrices a un directorio determinado. Las directivas se aplicarán a todos los subdirectorios.

 Contexto del contenedor  <Location …>…</Location> se utiliza para aplicar una o mas directivas a un URL determinado. NOTA: Existen más contenedores, pero éstos son los más utilizados.  Mostrar archivo /etc/apache2/sites-available/default.

 EJEMPLO 1 <VirtualHost 206.171.50.50> ServerName www.londonetwork.com DocumentRoot /var/www/londonetwork DirectoryIndex welcome.html <Location /secured> DirectoryIndex login.html </Location> </VirtualHost>

Estas tres directivas se encuentran dentro del contexto de servidor virtual Esta directiva está en contexto Location. Significa que se mostrará el archivo login.html a todo cliente que trate de acceder a www.londonetwork.com/secured

 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.

 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.

 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

 DocumentRoot  Por defecto en el contexto de servidor se usa el directorio /var/www como DocumentRoot del servidor. /var/www/

sitio1
sitio2

sitio3

Cada uno de estos directorios puede usarse como DocumentRoot para cada sitio virtual. www.sitio1.com www.sitio2.com www.sitio3.com

 include  Usada si desea incluir otros archivos de configuración a parte de los propios del servidor.
 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  Esta directiva controla las propiedades del servidor disponibles para un directorio en particular. Los valores posibles son los siguientes: • None: Sin opciones • All: Todas • ExecCGI: Se permite la ejecución de CGI • Indexes: Si se solicita la URL de un directorio y éste carece de un DirectoryIndex, entonces el servidor muestra una lista con el contenido de dicha carpeta. • FollowSymLinks: El servidor seguirá los enlaces simbólicos que apunten a los directorios del sistema. • Includes: Se pueden utilizar los comandos SSI

 ServerAdmin  Esta directiva especifica la dirección de correo electronico que el servidor incluye para los mensajes de error (Puede ser la del Webmaster)  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  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

 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

 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.

 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)

 ¿Qué opciones tengo en caso de querer alojar varios sitios en un único servidor Web?

1. 2.
3. 4.

www. dominioISP.com/cliente1. http://<dominio del cliente>:<puerto no estándar>. Por ejemplo www.dominio.com:8080. Usar un servidor dedicado para el dominio de cada cliente (Costoso). 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>

<VirtualHost 172.20.30.50> DocumentRoot /www/example2 ServerName www.example2.org </VirtualHost>

El servidor tiene dos direcciones IP (172.20.30.40 y 172.20.30.50) las cuales resuelven los nombres: www.example1.com y www.example2.org respectivamente.

 Si usa hosting virtual basado en nombres, el servidor atiende al nombre de host que especifica el cliente en las cabeceras de HTTP.  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 DocumentRoot /www/otherdomain </VirtualHost>

Ejecución de varios sitios web basados en nombres en una única dirección IP. El asterisco indica que * usará todas las direcciones que tenga el servidor

 Ejemplo 2: Listen 80
# This is the other address NameVirtualHost 172.20.30.50
<VirtualHost 172.20.30.50> DocumentRoot /www/example1 ServerName www.example1.com … </VirtualHost> <VirtualHost 172.20.30.50> DocumentRoot /www/example2 ServerName www.example2.org ... </VirtualHost>

En este caso suponemos que el servidor tiene más de una dirección IP y usaremos la dirección 172.20.30.50 compartida por los sitios: • www.example1.com • www.example2.org

 Ejemplo 3: NameVirtualHost 192.168.1.1 NameVirtualHost 172.20.30.40

<VirtualHost 192.168.1.1 172.20.30.40> DocumentRoot /var/www/server1 ServerName server.example.com ServerAlias example.com </VirtualHost>
Serving the same content on different IP addresses.

Ejemplo 4: 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>
<VirtualHost 172.20.30.40:8080> ServerName www.example2.org DocumentRoot /www/otherdomain-8080 </VirtualHost>

Corriendo diferentes diferentes puertos.

sitios

en

• Ejemplo 5:
Listen 80 NameVirtualHost 172.20.30.40

<VirtualHost 172.20.30.40> DocumentRoot /www/example1 ServerName www.example1.com </VirtualHost>
<VirtualHost 172.20.30.40> DocumentRoot /www/example2 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>

Hosting virtual basado en nombres y basado en IP (Combinados).

 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

1.

Instalar el servidor DNS (Bind9). #apt-get install bind9. Instalar el servidor LAMP (Linux – Apache – MYSQL - PHP) # apt-get install mysql-client mysql-server. # apt-get install apache2 phpmyadmin. NOTA: Intente probar el apache en el navegador ingresando el siguiente URL: http://localhost.

2.

3.

Configurar las opciones IP del servidor y reiniciar el servicio de red # 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 Añada las siguientes líneas:
Ambas Zonas son maestras o principales. El archivo de zona directa se llama db.directa (Hay que crearlo). El archivo de zona inversa se llama db.inversa (Hay que crearlo).

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

7.

Editar los archivos db.directa y db.inversa como se muestra a continuación:

8.

Reiniciar el servicio DNS # service bind9 restart probar la resolución de nombres mediante el comando nslookup

9.

10. Configuración de Hosting Virtual en apache Copiar el archivo por defecto para configuración de virtual host en apache: # cd /etc/apache2/sites-available Se definirán dos sitios virtuales, alojados en el # cp default www mismo servidor Web y ambos usarán la misma # cp default www1 dirección IP (Hosting virtual basado en nombres)

11. Editar ambos archivos, como se muestra a continuación

A diferencia del archivo de configuración www en este archivo no se permite la indexación del directorio /var/www/www1.sudominio.com y tampoco se permite seguir los enlaces simbólicos. Tanto el sitio virtual www como el sitio www permiten el acceso a cualquier host (allow from all)

11. Crear los directorios www.sudominio.com y www1.sudominio.com (No tienen que ser estos nombres, usted tiene libertad de elegirlos pero no olvide que deben coincidir con los asignados a la directiva DocumentRoot de cada Virtual Host)
# 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/sitesenabled se usa el siguiente comando:

# a2ensite www # a2ensite www1
14. para que los cambios surtan efectos será necesario reiniciar el apache # service apache restart

13. Probar en el navegador con las siguientes URLs: 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

Sign up to vote on this title
UsefulNot useful