PDF de programación - Servidores Web – Apache

Servidores Web – Apachegráfica de visualizaciones

Actualizado el 21 de Marzo del 2018 (Publicado el 25 de Noviembre del 2017)
733 visualizaciones desde el 25 de Noviembre del 2017
169,0 KB
18 paginas
Creado hace 11a (26/03/2013)
Servidores Web – Apache

Aplicaciones Web/Sistemas Web

Juan Pavón Mestras
Dep. Ingeniería del Software e Inteligencia Artificial
Facultad de Informática
Universidad Complutense Madrid

Material bajo licencia Creative Commons

Esquema de funcionamiento de un servidor Web

web Servidor Web sencillo

Cliente

Navegador

Servidor Web

httpd

«request»

GET index.html

index.html

Busca página index.html

index.html

Repositorio
de páginas

Base de

datos

Juan Pavón - UCM 2012-13

Servidores Web- Apache

2

Esquema de funcionamiento de un servidor Web

web Servidor Web dinámico

Cliente

Navegador

Servidor Web

httpd

Intérprete PHP
(Genera HTML)

«request»

GET index.php

código
HTML

Busca página index.php

Consulta

index.php

Repositorio
de páginas

Base de

datos

Juan Pavón - UCM 2012-13

Servidores Web- Apache

3

Servidores Web

Apache
Microsoft-IIS
Nginx
LiteSpeed
Google Servers
Tomcat
Lighttpd
IBM Servers
Yahoo Traffic Server
Oracle Servers
Zope
Resin
Zeus

12/2012
63,90%
16,90%
13,90%
1,80%
1,30%
0,70%
0,50%
0,30%
0,20%
0,20%
0,10%
0,10%
0,10%

http://w3techs.com

Juan Pavón - UCM 2012-13

Servidores Web- Apache

4

Servidor HTTP Apache

 Servidor HTTP libre, open source

 http://www.apache.org/
 Primera versión en 1995 (como sustituto del httpd de NCSA)
 Apache Software Foundation (1999)

 Ejecutable en varios sistemas operativos

 Unix, FreeBSD, Linux, Solaris, Novell NetWare, OS X, Microsoft Windows

 Permite múltiples lenguajes de script

 PHP, Perl, Tcl, Python

 Soporte J2EE

 Con Tomcat (http://tomcat.apache.org/)

 Virtual hosts

 Un mismo servidor físico para varias IPs y nombres de dominio

 Diseño modular

 Se pueden crear nuevos módulos con el API de módulos de Apache

 Configuración sencilla

 Basada en directivas que se editan en ficheros: httpd.conf, access.conf

(en Unix), .htaccess, .htpasswd

Juan Pavón - UCM 2012-13

Servidores Web- Apache

Instalación de Apache - XAMPP

 Instalación con XAMPP

http://www.apachefriends.org/es/xampp.html
 Apache con mySQL, PHP y Perl
 Para Linux, Windows y Mac

• En Ubuntu: http://www.ubuntu-guia.com/2011/07/instalar-xampp-en-ubuntu.html
• En Windows: hay un autoinstalable

 Arranque:

 En Windows utilizando el panel de control que hay para gestionar los

distintos servicios: Inicio->Programas->XAMPP

 En Linux: Ejecutando /opt/lampp/lampp start

 Prueba: accediendo en el navegador a http://localhost (o lo que

es lo mismo http://127.0.0.1)
 Hay varios ejemplos y herramientas accesibles

Juan Pavón - UCM 2012-13

Servidores Web- Apache

5

6

Advertencia de Seguridad sobre XAMPP

 XAMPP está orientado a desarrollo y no tanto a producción
 Riesgos de seguridad con XAMPP

 El administrador de MySQL no tiene password
 El demonio de MySQL es accesible desde internet
 Los usuarios de Mercury y FileZilla (Windows) y ProFTPD (Linux) usan

passwords por defecto que son conocidos
• Por ejemplo en ProFTPD el password "lampp" para el usuario nobody

 PhpMyAdmin es accesible desde internet
 Los ejemplos se pueden acceder desde la red
 MySQL y Apache en Linux se ejecutan bajo el mismo usuario (nobody)

 Por ello, para producción es mejor instalar Apache y MySQL en
un servidor apropiado con una buena configuración de seguridad
 Ver apéndice sobre configuración de apache2

 Y lo primero es revisar la configuración de seguridad básica

 Hay ayudas para Linux y Windows (ver la documentación)

Juan Pavón - UCM 2012-13

Servidores Web- Apache

Ejercicio: instalación y configuración de XAMPP

 Instala XAMPP en tu computadora
 Arranca los servidores Apache y MySQL
 Prueba a acceder a la página principal (http://localhost)
 Aplica las recomendaciones de seguridad que se explican en:

http://robsnotebook.com/xampp-security-hardening

Juan Pavón - UCM 2012-13

Servidores Web- Apache

7

8

Directorios y ficheros de trabajo con XAMPP

 En Linux

 /opt/lampp/htdocs/
 /opt/lampp/bin/
 /opt/lampp/bin/mysql
 /opt/lampp/etc/httpd.conf
 /opt/lampp/etc/my.cnf
 /opt/lampp/etc/php.ini
 /opt/lampp/phpmyadmin/config.inc.php

Directorio raíz de documentos
XAMPP commands home
MySQL monitor
Apache configuration file
MySQL configuration file
PHP configuration file

phpMyAdmin configuration

 En Windows se pueden encontrar los ficheros en el directorio

que se accede con:
Inicio->Apache Friends->XAMPP->XAMPP htdocs folder

Juan Pavón - UCM 2012-13

Servidores Web- Apache

9

Ejercicios

 Localiza cual es el principal directorio para los contenidos web

(en principio, por defecto se llama htdocs)

 Crea un fichero "prueba.html" en ese directorio y comprueba que

se accede correctamente con el URI
"http://localhost/prueba.html"

 Crea otro fichero "prueba.php" en ese directorio y prueba que se

ejecuta correctamente invocando el URI
"http://localhost/prueba.php"
 Puedes usar un script sencillo como el siguiente:
<?php

echo 'Hola mundo';

?> 

 Se pueden crear nuevos subdirectorios

 Coloca el fichero "prueba.html" en un subdirectorio "pruebas" en

htdocs y accede con el URI: "http://localhost/pruebas/prueba.html"

Juan Pavón - UCM 2012-13

Servidores Web- Apache

10

Directorios y ficheros de trabajo con XAMPP

 Directorios para contenidos específicos

 HTML (.html .htm): \xampp\htdocs
 SSI (.shtml), Apache::ASP Perl (.asp): \xampp\htdocs
 CGI (.cgi), PHP (.php), Perl (.pl): \xampp\htdocs y \xampp\cgi-bin
 JSP (.jsp) y Servlets Java (.html): \xampp\tomcat\webapps\java

(requiere Tomcat)

Juan Pavón - UCM 2012-13

Servidores Web- Apache

11

Configuración del servidor Apache

 El fichero de configuración de Apache es el httpd.conf

 En el subdirectorio "conf" del directorio de instalación
 httpd.conf es un fichero ASCII con las directivas de configuración

 Tres bloques de directivas (pueden aparecer mezcladas)

 Parámetros globales
 Directivas de funcionamiento
 Hosts virtuales

 El ámbito de las directivas puede ser:

 Global: el conjunto del servidor web
 Sección:

• Un conjuntos de directorios o ficheros
• Un servidor virtual

Juan Pavón - UCM 2012-13

Servidores Web- Apache

12

Configuración del servidor Apache

 Especificación de secciones:

 <Directory>: un directorio y sus subdirectorios
 <DirectoryMatch>: Un conjunto de directorios según una expresión regular
 <Files>: Un conjunto de ficheros especificados mediante su nombre
 <FilesMatch>: Un conjunto de ficheros según una expresión regular
 <Location>: Ficheros determinados mediante la URL
 <LocationMatch>: como Location, pero acepta en el nombre expresiones regulares
 <VirtualHost>: Un host virtual
 <IfDefine>: sólo se aplica si al arrancar el servidor existe un parámetro concreto

definido en la línea de comandos con la opción -D

 <IfModule>: sólo se aplica si el módulo especificado se encuentra cargado

(mediante LoadModule) en el momento de arrancar el servidor

 En caso de conflicto, el orden de precedencia es:

1. <Directory> y .htaccess
2. <DirectoryMatch> y <Directory>
3. <Files> y <FilesMatch>
4. <Location> y <LocationMatch>

 <VirtualHost> se aplica siempre después de las directivas generales, por tanto un

VirtualHost puede modificar la configuración por defecto

Juan Pavón - UCM 2012-13

Servidores Web- Apache

13

Directivas de configuración básicas (httpd.conf)

 Directivas globales

 Dirección de instalación del servidor
• ServerRoot "/opt/lampp/apache"

 Puertos y direcciones IP donde escuchará el servidor

• Listen 80
• Listen 192.168.1.44:8080

 Carga de módulos

• LoadModule <módulo> <fichero_módulo>

 Directivas principales (a nivel global o de sección)

 Nombre y puerto del servidor
• ServerName localhost:80

 Documento raíz

• DocumentRoot "/opt/lampp/htdocs"

 Email del administrador (aparece con los mensajes de error)

• ServerAdmin postmaster@localhost
 Incluir otros ficheros de configuración
 Include "conf/extra/httpd-xampp.conf"

Juan Pavón - UCM 2012-13

Servidores Web- Apache

14

Arquitectura del servidor Apache

clientes
HTTP

Apache
Core

Módulo

Módulo

Módulo

Módulo

Módulo

Juan Pavón - UCM 2012-13

Servidores Web- Apache

15

Módulos Apache

 Módulo base

 Core: Funcionalidad básica (asignación de peticiones, gestión de

conexiones)

 Módulos multi-proceso

 mpm_common, perchild, prefork, worker: Acepta peticiones por los

puertos y las dirige a los hijos responsables

 Módulos adicionales

 mod_access: control de acceso
 mod_alias: redirección de URLs
 mod_rewrite - reescritura de direcciones (transforma páginas

dinámicas como php en páginas estáticas html)

 mod_auth_ldap – Autenticación de usuarios con servidor LDAP
 mod_perl - Páginas dinámicas en Perl
 mod_php - Páginas dinámicas en PHP
 mod_python - Páginas dinámicas en Python
 mod_ruby - Páginas dinámicas en Ruby
 mod_ssl - Comunicaciones Seguras vía TLS
 mod_security - Filtrado a nivel de aplicación, para seguridad

Juan Pavón - UCM 2012-13

Servidores Web- Apache

16

Directivas de configuración de módulos (httpd.conf)

 Los módulos específicos que se van a incluir se definen en la

configuración del servidor (httpd.conf) con la directiva LoadModule

 Se pueden definir configuraciones en función de los módulos

cargados al arrancar el servidor:
<IfModule modulo>

Configuraciones específicas si está el módulo

</IfModule>
<IfModule !modulo>

Configuraciones específicas si no está el módulo

</IfModule>
# DirectoryIndex: indica el fichero que servirá Apache si no se 
# especifica uno concreto (el orden determina la prioridad)
<IfModule !autoindex_module>

<IfModule dir_module>

DirectoryIndex index.php index.html index.htm

</IfModule>

</IfModule>

Juan Pavón - UCM 2012-13

Servidores Web- Apache

17

Directivas de control de acceso

 Se pueden definir dentro de un fichero de configuración o de un

fichero de control de acceso en un directorio (.htaccess )
 .htaccess se recomienda solo cuando no se tiene acceso al fichero de

configuración del servidor

 Determinan quién tiene derecho
  • Links de descarga
http://lwp-l.com/pdf7687

Comentarios de: Servidores Web – Apache (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad