El Servidor Web Apache



Documentos relacionados
Configuración de Apache

WEB. Laboratorio de Redes de Computadores II TEL 242. Lab. Redes II. Laboratorio de Redes de Computadores II

Servidore Web Apache. Inicio del servidor Apache. Iniciar. Comando apachectl

El servidor WEB Apache HTTPD. Tecnologías Web

Instituto Tecnológico Las Américas (ITLA) Sistemas Operativos 3 (SO3) Daniel Alejandro Moreno Martínez. Matrícula:

Unidad 11: Servidor WEB Apache 2

Servidor Web-Firewall Proxy DHCP

Instituto Tecnológico de Las América. Materia Sistemas operativos III. Temas. Facilitador José Doñe. Sustentante Robín Bienvenido Disla Ramirez

PRACTICA 9 SERVIDOR WEB APACHE SERVIDOR WEB APACHE. JEAN CARLOS FAMILIA Página 1

HTTP Introducción. Redes de Datos Ing. Marcelo Utard / Ing. Pablo Ronco FACULTAD DE INGENIERIA UNIVERSIDAD DE BUENOS AIRES

Administración de WEB

Actividades. 1.- Cómo podrías saber qué servicio está escuchando en el puerto 80? Con el Nmap o con el comado : $ cat /etc/services grep http

Instalando Apache 2.0 en Ubuntu 11.04

6. Servidor Web Apache. Configuración con Webmin

La herramienta es AppServ, es una solución que nos provee el software Apache, Mysql y Php, sobre Windows.

INTRODUCCION. Tema: Protocolo de la Capa de aplicación. FTP HTTP. Autor: Julio Cesar Morejon Rios

Instituto Tecnológico de Las Américas (ITLA)

CONSEJO. 1.1 Instalación del paquete XAMPP bajo Windows Vista

Actualizaciones de GateDefender Performa desde un servidor web local

Servicio de publicación de información web (HTTP)

Dossier de prácticas

Capa de Aplicación (Parte 2 de 2)

Manual de instalación Sistema S.I.S.E. Versión 1.0

Servidor Web (Apache Httpd+PHP)

4.2- Instalación y Configuración de un Servidor DNS Dnsmasq en Ubuntu sin DHCP

Luis Villalta Márquez

Modo básico de funcionamiento del módulo Velneo vmodapache V7

Servidores web. Concepto, Configuración y Usos

T3 Servidores web S ERVICIOS EN RED Carlos Redondo

Qué es un servicio de Proxy?

INSTRUCTIVO DE INSTALACIÓN DE OMEKA 2.1.4

Introducción a las Redes de Computadoras. Obligatorio

Preguntas sobre DNS y HTTP Sistemas Telemáticos - I

HTTP. Redes I. Departamento de Sistemas Telemáticos y Computación (GSyC) Noviembre de GSyC HTTP 1

La web (el servicio WWW)

Instalación, creación y configuración del servicio FTP

Clase 22 Nivel de Aplicación WWW Tema 6.- Nivel de aplicación en Internet

Servidor DNS sencillo en Linux con dnsmasq

Presentación Taller. Apache: HTTPD. JoséMiguelHerreraM. UTFSM

Servidor Web Apache Knoppix Linux.-

Internet Information Server

CAPITULO VI ANEXOS 6.1. ANEXO 1: CRONOGRAMA DE ACTIVADES. Gráfico 31 Cronograma de Actividades Parte1

Capítulo 3 Diseño del Sistema de Administración de Información de Bajo Costo para un Negocio Franquiciable

La utilización de las diferentes aplicaciones o servicios de Internet se lleva a cabo respondiendo al llamado modelo cliente-servidor.

Tema 2 El Servicio Web

Ubuntu Server HOW TO : NFS EN ESTE SE REALIZA LO SIGUIENTE: En este how to se le va a enseñar como compartir datos en una Red Linux, usando NFS.

LINUX WEEK 2006 SERVICIOS WEB CON DNS DINÁMICO. Diego Quintana Cruz GRUPO DE SOFTWARE PARA TELECOMUNICACIONES PUCP

Squid como proxy semi-transparente.

Curso XHTML/HTML/HTML5

TÉCNICO EN PRACTICA 3: INTRODUCCION. Protocol Secure.) En esta guía por Linux. OBJETIVOS. Al finalizar esta. servidor WEB y FTP.

Manual de instalación de un Servidor Web

MultiBase y Cosmos. Particularidades sobre la instalación del motor de base de datos en modo cliente servidor. BASE 100, S.A.

HyperText Transfer Protocol

WINDOWS : TERMINAL SERVER

1/ Implantación de Arquitectura Web

Software de Comunicaciones. Práctica 7 - Secure Shell. SSH

Soporte de serviets de Java utilizando el entorno Tomcat con Apache.

Información de Derechos reservados de esta publicación.

Introduccion. Utilizando WebDAV

Diego Mauricio Cortés Quiroga

QUÉ ES UN SERVIDOR Y CUÁLES SON LOS PRINCIPALES TIPOS DE SERVIDORES? (PROXY, DNS, WEB, FTP, SMTP, ETC.) (DV00408A)

PRACTICA CAPITULO 2 MODULO 1 PROTOCOLOS Y LA FUNCIONALIDAD DE LA CAPA DE APLICACIÓN

DOCENTES FORMADORES UGEL 03 PRIMARIA

Almacenamiento virtual de sitios web HOST VIRTUALES

Funcionamiento de Servicios Web, FTP

Luis Eduardo Peralta Molina Sistemas Operativos Instructor: José Doñe Como crear un Servidor DHCP en ClearOS

DHCP. Dynamic Host Configuration Protocol. Protocolo de Configuración Dinámica de Host. Administración de Redes de Computadores

Modulo I. Introducción a la Programación Web. 1.1 Servidor Web.

#09 Apache Web Server

REQUIERE ATENDER DESCONFIGURACIÓN DEL C.P.U.

GUÍA PARA LA INSTALACIÓN DE MOODLE EN UN COMPUTADOR PERSONAL QUE USA EL SISTEMA OPERATIVO MS. WINDOWS

CÓMO CONFIGURAR APACHE PARA CREAR UN SITIO WEB

SERVIDOR WEB. Servidores web IIS (Windows) / Apache (Windows y Linux)

Administración de Servidores Web. Apache RAFAEL CABRERA PARGA

Guía de instalación de la Plataforma Toolkit

UNIDAD DIDACTICA 15 CONVERTIR UN EQUIPO LINUX SERVER EN CONTROLADOR DE DOMINIO

Servidor FTP en Ubuntu Juan Antonio Fañas

Desarrollo Web en Entorno Servidor

Seguridad en servidores web compartidos. (LAMP)

Instalación de FileZilla FTP Server

Desarrollo y servicios web

ProFTPD - un servidor FTP para profesionales

Almacenamiento virtual de sitios web HOSTS VIRTUALES

Formación CAU 1 er Nivel. Albergue Web Listas de distribución Consigna Certificados

CFGM. Servicios en red. Unidad 5 Servicio FTP. 2º SMR Servicios en Red

Supuesto de empresa que desea que se controle el tráfico de internet en todos los puestos en función del perfil del puesto de trabajo, de forma que:

LILDBI-WEB. Web.. LILACS Descrípci. LILDBI-Web. Requisitos de Instalación

FOC-ELEN20. Xampp instalar servidor en Windows. Xampp instalar servidor local

Práctica. GESTIÓN Y UTILIZACIÓN DE REDES LOCALES Curso 2006/2007. Instalación del servidor

Arquitecturas cliente/servidor

Vielka Mari Utate Tineo Instituto Tecnológico de las Américas ITLA. Profesor José Doñé. Sistema Operativo 3 PRACTICA NO. 16, SERVIDOR

Roles y Características

SIEWEB. La intranet corporativa de SIE

En caso de que el cliente nunca haya obtenido una concesión de licencia de un servidor DHCP:

Instituto Tecnológico de Las América. Materia Sistemas operativos III. Temas. Facilitador José Doñe. Sustentante Robín Bienvenido Disla Ramirez

TECNOLOGICO DE ESTUDIOS SUPERIORES DEL ORIENTE DEL ESTADO DE MEXICO

ARQUITECTURAS CLIENTE/SERVIDOR

Firewall Firestarter. Establece perímetros confiables.

Ubuntu Server HOW TO : SQUID. EN ESTE SE REALIZA LO SIGUIENTE: En este how to se le va a enseñar como instalar servidor proxi Squid.

Curso de Drupal Básico

Transcripción:

Diseño y Administración de Sistemas y Redes http://gsyc.es Curso 2007 2008

HTTP 1 HTTP Hypertext Transfer Protocol. Es el protocolo más habitual para servir páginas web. Protocolo cliente-servidor. Normalmente funciona sobre TCP. Normalmente en el puerto 80.

HTTP (cont.) 2 Web 1.0. Estática. 1994-1997 Tecnología asociada: HTML, GIF Las páginas web son documentos estáticos que se actualizan a mano Web 1.5. Dinámica. 1997-2003 Tecnología asociada: CGI, DHTML, ASP, CSS. Las páginas web son construidas dinámicamente a partir de una o varias bases de datos. Web 2.0. Colaborativa. 2003-Hoy Tecnología asociada: Ajax, DHTML, XML, Soap. Definición controvertida. Los usuarios se convierten en contribuidores. Publican las informaciones y realizan cambios en los datos.

HTTP (cont.) 3 Interacción cliente-servidor en HTTP El cliente abre una conexión TCP con el servidor. El cliente envía un mensaje de petición. El servidor responde con un mensaje de respuesta. El servidor cierra la conexión TCP. HTTP no mantiene estado (no hay información sobre las conexiones entre una petición y otra).

HTTP (cont.) 4 Un servidor HTTP puede escuchar en cualquier puerto Puertos del 1 al 1023: Bajos o Privilegiados. Solo el root puede atar procesos a estos puertos Puertos del 1024 al 65535: Altos o no Privilegiados. Cualquier usuario puede atar procesos a estos puertos El puerto por omisión es el 80

HTTP (cont.) 5 Formato de los mensajes Mensajes legibles (compuestos por ĺıneas de texto casi en inglés ): Línea inicial (diferente para petición y respuesta), terminada en CRLF. Cero o más ĺıneas de cabecera, cada una terminada en CRLF: Cabecera-X: Valor-X CRLF Línea en blanco (CRLF), también expresable como \r\n. En un teclado normalmente se genera pulsando intro. Cuerpo del mensaje (opcional). Además de CRLF, deberían tratarse adecuadamente ĺıneas terminadas en LF.

HTTP (cont.) 6 Línea inicial (peticiones) Especifica el recurso que se solicita, y qué se quiere de él: Nombre de método (GET, POST, HEAD). Camino de acceso (path) Versión de HTTP (siempre HTTP/x.x). Ejemplo: GET /directorio/otro/fichero.html HTTP/1.0 El servidor ignora a qué dirección IP o a qué nombre de dominio envió la petición el cliente

HTTP (cont.) 7 Proporciona información de estado: Línea inicial (respuestas) Versión de HTTP (siempre HTTP/x.x). Código numérico de estado. Código de estado en inglés. Códigos de estado: 1xx: Mensaje informativo. 2xx: Resultado exitoso (200 OK). 3xx: Redirección del cliente a otra URL (301 Moved permanently, 303 See Other). 4xx: Error en el lado del cliente (404 Not Found). 5xx: Error en el lado del servidor (500 Server Error).

HTTP (cont.) 8 Líneas de cabecera Mismo formato que las cabeceras de correo y News (RFC 822, sección 3). HTTP/1.0: 16 cabeceras, ninguna obligatoria. HTTP/1.1: 46 cabeceras, Host: obligatoria en las peticiones (usada por los virtual hosts ). Se recomienda incluir en las peticiones al menos: From: (dirección de correo). User-Agent: (ej: Mozilla/4.7). Se recomienda incluir en las respuestas al menos: Server: (ej: Apache/1.3). Last-Modified: (fecha GMT, usado por las caches).

HTTP (cont.) 9 Cuerpo del mensaje En las respuestas contiene el recurso pedido o texto explicando un error. En las peticiones contiene datos de usuario o ficheros para subir. Si hay cuerpo, normalmente hay algunas cabeceras relativas a él: Content-Type : tipo MIME de los datos (ej: text/html, image/png). Content-Length : número de bytes en el cuerpo.

HTTP (cont.) 10 Petición http 1.0 mínima : Ejemplo (GET, petición) koji@mazinger:~$ telnet pantuflo.es 80 GET / HTTP/1.0\r\n \r\n (El telnet no forma parte de la petición, equivale al navegador web)

HTTP (cont.) 11 Petición http 1.0 completa GET /~jgb/test.html HTTP/1.0\r\n Connection: Keep-Alive\r\n User-Agent: Mozilla/4.07 [en] (X11; I; Linux 2.2.15 i586; Nav)... Host: gsyc.escet.urjc.es\r\n Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, i... Accept-Encoding: gzip\r\n Accept-Language: en\r\n Accept-Charset: iso-8859-1,*,utf-8\r\n \r\n

HTTP (cont.) 12 Ejemplo (GET, respuesta) HTTP/1.1 200 OK\r\n Date: Tue, 23 Jan 2001 12:44:27 GMT\r\n Server: Apache/1.3.9 (Unix) Debian/GNU\r\n Last-Modified: Tue, 23 Jan 2001 12:39:45 GMT\r\n ETag: "19e89f-22-3a6d7b91"\r\n Accept-Ranges: bytes\r\n Content-Length: 34\r\n Keep-Alive: timeout=15, max=100\r\n Connection: Keep-Alive\r\n Content-Type: text/html\r\n \r\n <html>\nesto es una prueba\n</html> >.

HTTP (cont.) 13 Métodos HEAD y POST HEAD: POST: Igual que un GET, pero sólo pide las cabeceras. Se pueden consultar las características sin bajarse el fichero. Hay datos en el cuerpo (que se suben al servidor). El URI pedido es normalmente el programa que trata los datos enviados. También se pueden enviar datos con un GET (codificándolos en el URL pedido).

HTTP (cont.) 14 Representante (proxy) HTTP Intermediario entre un cliente y un servidor. Es por lo tanto a la vez cliente y servidor. Usos: cortafuegos, caches, etc. Las peticiones a una proxy incluyen la URL completa en la primera ĺınea del mensaje de petición. Pueden encadenarse varias proxies. Ejemplo de petición a una proxy: GET http://gsyc.escet.urjc.es/index.html HTTP/1.0 Para el exterior, todos los usuarios que están detrás de un proxy comparten la dirección IP

HTTP (cont.) 15 Los proxys son buenos Para el usuario porque reducen la latencia Para el ISP del usuario, porque ahorra tráfico Para el servidor, porque ahorra tráfico Para el resto de Internet (tocan a más) Proporcionan anonimato Los proxys pueden plantear problemas Cachés desfasadas Algunos servidores pueden pensar erróneamente que 1 IP = 1 usuario Límites en las descargas Una IP en una lista negra puede perjudicar a muchos usuarios inocentes...

HTTP (cont.) 16 Es una evolución de HTTP 1.0. HTTP 1.1 Facilidades específicas para máquinas virtuales (virtual hosts). Codificación por racimos, para respuestas dinámicas (envío antes de saber el tamaño total). Uso de conexiones persistentes que permiten varias transacciones sucesivas (se evitan establecimientos de conexión). Facilidades específicas para caches ( If-Modified-Since, If-Unmodified- Since ).

HTTP (cont.) 17 Virtual hosts En HTTP 1.1 la petición incluye el nombre de host. De esta forma un mismo servidor puede albergar varios hosts virtuales Si un servidor recibe una petición sin Host, debe devolver un mensaje de error (400 Bad Request). Los servidores también han de aceptar primeras ĺıneas de petición con URLs completas, en lugar de caminos (será lo habitual en versiones futuras). Ejemplo de petición http 1.1 mínima : koji@mazinger:~$ telnet pantuflo.es 80 GET /dir/index.html HTTP/1.1\r\n Host: pantuflo.es\r\n \r\n

HTTP (cont.) 18 Conexiones persistentes Abrir y cerrar una conexión TCP tiene un coste relativamente alto HTTP 1.1. usa por omisión conexiones persistentes Permiten que varias peticiones y respuestas sean transferidas usando la misma conexión TCP. Si se envía la cabecera Connection: close, el servidor cerrará la conexión después de cada respuesta. Un servidor puede cerrar la conexión antes de enviar todas las respuestas. El servidor cerrará las conexiones inactivas pasado un plazo (ej: 10 segundos).

Apache 19 Apache Servidor web. Responde a peticiones HTTP 1.0/1.1 (referidas a URLs), devolviendo los documentos alojados en la máquina Inicialmente, 1995 basado en el httpd 1.3 de la NCSA (National Center for Supercomputing Applications). Era el servidor más popular. El nombre es una deformación de patches (parches) Primer proyecto de la fundación Apache, que desarrolla numerosas tecnologías orientadas al servidor Software libre, distribuido bajo la Apache Software License. Disponible para diversos Unix (Linux, BSD...), Microsoft Windows, Mac OS

Apache (cont.) 20 Usado en el 50 % de los web sites mundiales (Netcraft Web Server Survey, mayo 2008) Es la base del conjunto de aplicaciones LAMP (Linux, Apache, MySQL, Perl/PHP/Python) Se distribuye con Oracle Database, IBM WebSphere application server, Mac OS X WebObjects, entre otros

Apache (cont.) 21 http://news.netcraft.com/archives/web_server_survey.html

Apache (cont.) 22 Versiones de Apache Existen dos ramas o versiones principales: Apache 1.3. Año 2000. Apache 2.0. Abril 2002. Añade multithreading (hoy ya no es ventaja), filtros. API mejorada que facilita la programación de módulo. Desaparecen las directivas Port y BindAddress. (Solo se mantiene Listen) Apache 2.0 tardó mucho tiempo en reemplazar a Apache 1.3, y aún no lo ha hecho por completo. En el año 2008 se siguen desarrollando actualizacones de seguridad para Apache 1.3

Apache (cont.) 23 Instalación de Apache en Debian En debian, la instalación de apache es muy sencilla gracias a apt. apt-cache search apache Muestra todos los paquetes conocidos que contienen apache. Mejor hacer: apt-cache search apache --names-only grep -v lib Instalación (como root): aptitude install apache2 Instala las librerias, ejecutables, directorios y ficheros de configuración necesarios.

Apache (cont.) 24 Arranque de Apache Se puede iniciar y detener como cualquier demonio /etc/init.d/apache2 [stop start reload} También puede hacerse con apache2ctl, que incluye funcionalidad adicional /usr/sbin/apache2ctl <command> start - start httpd stop - stop httpd restart - restart httpd fullstatus - dump a full status screen status - dump a short status screen graceful - do a graceful restart configtest - do a configuration syntax test graceful restart: Reiniciar el servidor cerrando ordenadamente las peticiones pendientes

Apache (cont.) 25 Ficheros y Directorios por omisión en Debian para Apache 2.x Configuración /etc/apache2/apache2.conf a Tras cambiar este fichero hay que reiniciar el demonio o releer el fichero Raíz de documentos (DocumentRoot) /var/www CGIs /usr/lib/cgi-bin Logs /var/log/apache2/error.log /var/log/apache2/access.log a En apache 1.x se usaba /etc/apache/httpd.conf, /etc/apache/srm.conf y /etc/apache/access.conf

Apache (cont.) 26 Definición de Host Virtuales /etc/apache2/sites-available (Un fichero por cada host virtual) Host Virtuales Activos /etc/apache2/sites-enabled (Para activar un host virtual, se incluye aquí un enlace simbólico a su fichero de definición) Puertos en los que se atienden peticiones /etc/apache2/ports.conf Para otras versiones, googlear Distros Default Apache Layout

Directivas de Apache 27 Directivas de Apache La configuración de apache se hace mediante directivas. (Insensibles a mayúsculas). La lista completa está en la documentación online. googlear: apache versión directives (p.e. apache 2.2 directives) El manual describe cada directiva y en qué contexto(s) puede aparecer. Se pueden usar la almohadilla para que una ĺınea sea un comentario, pero solo en la primera columna

Directivas de Apache (cont.) 28 Los contextos posibles son server config virtual host directory files location.htaccess #Afectan a todo el servidor #Afectan al host virtual #Afectan a un directorio (del host) #Afectan a los ficheros con cierto nombre #Afectan a un directorio (del web) #Afectan a un directorio y sus subdirectorios

Directivas de Apache (cont.) 29 Contexto server config Las directivas en este contexto afectan a todo el servidor. Se ubican en ĺıneas de /etc/apache2/apache2.conf que no están dentro de ningún bloque Contexto virtual host Las directivas dentro de un bloque VirtualHost afectan solo al host virtual <VirtualHost host [:puerto]> < /VirtualHost host>

Directivas de Apache (cont.) 30 <VirtualHost www.discosmanzana.com> ServerName www.discosmanzana.com DocumentRoot /var/www/discosmanzana ServerAdmin webmaster@discosmanzana.com </VirtualHost> <VirtualHost www.libreriamazonas.com> ServerName www.libreriamazonas.com DocumentRoot /var/www/libreriamazonas ServerAdmin webmaster@libreriamazonas.com </VirtualHost>

Directivas de Apache (cont.) 31 Contexto Directory Las directivas dentro de un bloque Directory afectan solo a los ficheros de ese directorio y no al DocumentRoot completo <directory mi-directorio> </directory> mi-directorio tiene que ser path absoluto, no relativo al DocumentRoot Ejemplo <Directory /var/www/discosmanzana/proveedores> options +indexes </Directory> No puede usarse dentro de un fichero.htaccess

Directivas de Apache (cont.) 32 Contexto files <Files mi-fichero> directiva_1 directiva_2 </Files> Se pueden usar comodines o regexps con FilesMatch <FilesMatch mi-fichero> </FilesMatch> Los bloques Files y FilesMatch pueden usarse dentro de un fichero.htaccess

Directivas de Apache (cont.) 33 Contexto Location En un servidor muy sencillo, la estructura de directorios del host coincide con la estructura de directorios que percibe el cliente web. En este caso, Directory equivale a Location Usando la directiva alias, ambas estructuras de directorios son distintas, con Location especificamos un directorio tal y como lo ve el cliente web Las directivas dentro de un bloque Location afectan a los ficheros dentro de esa URL <Location mi-url> </Location> mi-url es una dirección relativa al DocumentRoot LocationMatch permite usar comodines y regexp

Directivas de Apache (cont.) 34 Ejemplo <Location /proveedores> options +indexes </Location> No puede usarse dentro de un fichero.htaccess Para proteger un directorio, es mucho más seguro usar Directory que Location (podemos confundirnos con los alias...)

Directivas de Apache (cont.) 35 Contexto.htaccess Estas directivas no están centralizadas en /etc/apache2/apache2.conf sino distribuidas en ficheros.htaccess Puede haber uno en cada directorio, afecta solo a este directorio Normalmente apache2.conf debería editarlo el root o el webmaster, mientras que cada usuario en sus directorios puede editar sus.htaccess Ventajas del fichero.htaccess: No hay que reiniciar apache Un usuario puede tener permiso para modificar su propio.htaccess pero no apache2.conf Inconvenientes: Cada vez que se sirve un documento hay que procesar el.htaccess, así como los.htaccess que pueda haber en sus directorios padre

Directivas de Apache (cont.) 36.htaccess afecta a un directorio y a sus directorios, por tanto el comportamiento de un directorio depende de su.htaccess, de el de su directorio padre, abuelo... En caso de discrepancia prevalece el.htaccess local

Directivas de Apache (cont.) 37 Las directivas en.htaccess pueden contradecir a las directivas en apache2.conf? Depende de lo que diga AllowOverride Si aparece AllowOverride All, o si no parece nada, sí pueden contradecir Por omisión, Debian emplea AllowOverride None, que ignora completamente los.htaccess (no leer estos ficheros supone además cierto ahorro) Esta directiva permite un ajuste fino, que unas directivas se puedan contradecir y otras no

Directivas de Apache (cont.) 38 Algunas directivas Server Config importantes En apache2.conf aparecen algunas directivas que establecen la ubicación de ciertos ficheros y directorios. Vienen adaptadas a Debian, es raro tener que modificarlas ServerRoot "/etc/apache2" LockFile /var/lock/apache2/accept.lock ErrorLog /var/log/apache2/error.log Include /etc/apache2/mods-enabled/*.load Include /etc/apache2/mods-enabled/*.conf Include /etc/apache2/ports.conf Include /etc/apache2/sites-enabled/

Directivas de Apache (cont.) 39 Normalmente será necesario que el nombre de máquina coincida con la configuración del DNS ServerName localhost DocumentRoot indica dónde están los ficheros a servir DocumentRoot /var/www La dirección de correo del administrador aparece en algunos informes ServerAdmin webmaster@localhost El proceso que escucha en el puerto 80 debe pertenecer al root. Este pasa las peticiones a otros procesos, hijos suyos, que pertenecen a un usuario con menos privilegios. User www-data Group www-data

Directivas de Apache (cont.) 40 Apache adapta el número de procesos a la carga. Crea nuevos procesos bajo demanda y controla que queden algunos libres para picos de carga. En sitios web sencillos no cambiaremos los valores por omisión StartServers 5 Número de procesos iniciales. MinSpareServers 5 Número mínimo de procesos libres. MaxSpareServers 10 Números máximo de procesos libres. MaxClients 150 Número máximo de clientes servidos simultaneamente. MaxRequestsPerChild 100 Número de peticiones antes de matar el proceso (para paliar memory leaks)

Directivas de Apache (cont.) 41 Control de conexiones persistentes Según el campo Connection: y la versión del protocolo HTTP, las conexiones son persistentes o no Las conexiones persistentes son ventajosas para el cliente, pesadas para el servidor KeepAlive on/off Se aceptan conexiones persistentes MaxKeepAliveRequests 5 Max. numero de peticiones que mantienen la conexión. KeepAliveTimeout 5 Tiempo max (segs) entre peticiones.

Directivas de Apache (cont.) 42 Control de IPs y puertos de escucha Un mismo host puede ejecutar varios servidore apache simultáneamente (de distintos usuarios o con distintas configuraciones) Un mismo host suele tener varios interfaces de red Interfaz lo con dirección 127.0.0.1, asociada al nombre localhost Interfaz eth0, eth1, wlan0, ppp0,... Cada interfaz tiene una IP. (Puede tener más, aunque no es muy frecuente) Por defecto, apache escucha en el puerto 80 de todas las direcciones IP de todos los interfaces de la máquina Listen 80 Listen 1000 Escucha en los puertos 80 y 100 de todos los interfaces

Directivas de Apache (cont.) 43 Listen 127.0.0.1:80 Listen mazinger:1000 Escucha solamente en el puerto 80 de 127.0.0.1 (debería estar asociado a localhost) y en el puerto 1000 de mazinger Pueden usarse direcciones IP o nombres de máquinas (si se resuelven en /etc/hosts o en el DNS) La directiva Listen sustituye a las directivas obsoletas Port y BindAddress. El ámbito de Listen es server config. Debemos indicar con Listen los puertos (y si queremos, también las direcciones) de todas las peticiones que atenderemos. Posteriormente, en cada máquina virtual especificaremos interfaz y puerto (si procede)

Directivas de Apache (cont.) 44 Host Virtuales Si para distinguir un host de otro hay que considerar el nombre que figura en la petición, debe incluirse la directiva NameVirtualHost. (Si los hosts se distinguen por la IP o el puerto, no hace falta) Fichero /etc/apache2/sites-avalaible/discosmanzana NameVirtualHost 213.37.48.21 <VirtualHost www.discosmanzana.com> ServerName www.discosmanzana.com DocumentRoot /var/www/discosmanzana ServerAdmin webmaster@discosmanzana.com </VirtualHost>

Directivas de Apache (cont.) 45 Fichero /etc/apache2/sites-avalaible/libreriamazonas <VirtualHost www.libreriamazonas.com> ServerName www.libreriamazonas.com DocumentRoot /var/www/libreriamazonas ServerAdmin webmaster@libreriamazonas.com </VirtualHost> Directorio /etc/apache2/sites-enabled/libreriamazonas 000-default -> /etc/apache2/sites-available/default 010-discosmanzana -> /etc/apache2/sites-available/discosmanzana 020-libreriamazonas -> /etc/apache2/sites-available/libreriamazonas

Directivas de Apache (cont.) 46 Otras directivas alias /directorio2 /var/www-bis/directorio2 hace que http://mihost/directorio2 se corresponda con /var/www-bis/directorio2 y no con DocumentRoot (/var/www/directorio2) UserDir public_html Nombre del directorio añadido al home del usuario user, cuando se recibe una petición a ~user DirectoryIndex index.html index.htm index.cgi Si el cliente no solicita un fichero sino un directorio, se buscan estos ficheros, en este orden

Directivas de Apache (cont.) 47 Directiva Options Una directiva algo peculiar, permite activar o desactivar opciones variadas. Seguramente sería más lógico si cada opción fuera una directiva independiente. Puede aparecer en cualquier contexto Las más importantes: All - Todas las opciones están activadas None - Ninguna opción está activada ExecCGI - Se permite la ejecución de CGIs Indexes - Si el usuario pide un directorio que no contiene lo indicado por DirectoryIndex (index.html, index.htm, index.cgi...) se muestra el contenido del directorio MultiViews - Se negocian formatos de datos o idiomas FollowSymLinks - Se siguen los enlaces simbólicos

Directivas de Apache (cont.) 48 SymLinksIfOwnerMatch - Se siguen los enlaces simbólicos solo si el dueño del recurso apuntado es el dueño del enlace Ejemplo. Habilitar los índices, deshabilitar los enlaces simbólicos: options +Indexes -FollowSymLinks Si no hay directiva Options, se activan todas las opciones Si hay directiva Options, solo se activan las opciones indicadas expĺıcitamente. El resto se desactiva

Directivas de Apache (cont.) 49 Control de acceso a directorios Order, Allow y Deny pueden estar en los contextos directory o.htaccess Order deny,allow Allow from 193.147.71.0/24 Deny all Solo pueden conectarse los clientes desde la red 193.147.71 Order allow,deny Allow from 193.147.71.0/24 Deny all Nadie puede conectarse Order allow,deny Allow from all Deny from hackers-malvados.com Se admiten conexiones desde cualquier cliente, excepto desde hackers-malvados.com

Directivas de Apache (cont.) 50 La configuración por omisión es order deny,allow Otros ejemplos: <Directory /var/www/discosmanzana/proveedores> order deny,allow allow from 193.147.71.0/255.255.255.0 deny all </Directory> <Directory / > Options +SymLinksIfOwnerMatch AllowOverride None Deny from all </Directory>

Directivas de Apache (cont.) 51 Supongamos que Orden de Aplicación de las Directivas Una directiva dice que no se pueden ver los ficheros secreto.* Otra directiva dice que sí se pueden ver los ficheros en mi_carpeta Qué pasa con \mi_carpeta\secreto? Es necesario conocer el orden en que se aplican las directivas. La última aplicada es la de más peso: 1. Directory sin regexp ni comodines..htaccess sin regexp ni comodines 2. DirectoryMatch 3. Files y FilesMatch 4. Location y LocationMatch

Directivas de Apache (cont.) 52 Si hay una directiva para un directorio y otra para uno de sus subdirectorios, se aplica primero la del padre y luego la del hijo (prevalece el hijo) Si hay una directiva para un location y otra para uno de sus subdirectorios, se aplica primero la del padre y luego la del hijo (prevalece el hijo) En caso de empate, se aplican en el orden en que fueron declaradas Las directivas dentro de un VirtualHost se aplican despues que las de fuera del VirtualHost (de nuevo prevalece lo local)