PAW 2020 - UNLu
Elemento pasivo del modelo cliente / servidor
Recibir peticiones, procesarlas, generar respuestas (protocolo HTTP)
URL como identificador de recurso (o ubicación)
(*) scheme: http:// https://
(*) host: Dominio o IP (DNS o Resolver)
port: TCP (WKP: 80)
(*) Obligatorios
(*) path: Puede indicar ubicación o no
url-params: no se usa
query string: pares clave valor, separados por &
anchor: no llega al server
Tambien pueden incluir user y password pero tampoco se usan en la web
http://user:pass@domain.com
IP + Puerto: Bind del proceso
1 Web server puede manejar diversas IP + Puerto
Como se manejan los dominios?
IP <-> DNS <-> Puerto
Localmente:
Archivo /etc/hosts (Linux y MAC)
Archivo C:\Windows\system32\drivers\etc\hosts (Win)
PRUEBA
Dominio+Port: Identificar el servidor
Path: Identificar el recurso dentro del servidor
Tipos de recursos:
La configuración por default permite trabajar en modo desarrollo
2 directorios: *-enabled y *-available
La configuración del web server se hace a través de archivos de texto, mediante el uso de directivas.
Se puede gestionar completa en un único archivo, pero suele dividirse en pequeños archivos por comodidad
Apache ofrece directivas de inclusión para realizar esta composición
# Include generic snippets of statements
IncludeOptional conf-enabled/*.conf
# Include the virtual host configurations:
IncludeOptional sites-enabled/*.conf
El scope o ámbito nos permite aplicar directivas de forma particular en base a criterios
Existen diversos Scopes: <Directory>, <DirectoryMatch>, <Files>, <FilesMatch>, <Location>, <LocationMatch>, <VirtualHost>
# From apache2 conf
<Directory /var/www/>
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
</Directory>
AccessFileName .htaccess
<FilesMatch "^\.ht">
Require all denied
</FilesMatch>
Es la practica de tener multiples sitios en un mismo equipo servidor. Pueden ser basados en IP o basados en Nombre.
<VirtualHost 10.1.2.3:80>
ServerAdmin webmaster@host.example.com
DocumentRoot "/www/docs/host.example.com"
ServerName host.example.com
ErrorLog "logs/host.example.com-error_log"
TransferLog "logs/host.example.com-access_log"
</VirtualHost>
Basados en IP: Sirve el sitio en función de la config IP:Port
Basados en nombre: Sirve el sitio en función de la directiva ServerName (Tiene que ser igual al valor del header Host de HTTP)
dev.dominio.com
prod.dominio.com
- Generar archivos de configuracion
- Generar directorios con diferente contenido
- Permisos
- Editar /etc/hosts (simular alta en DNS)
- Reiniciar Servidor
- Probar
<VirtualHost *:80>
ServerAdmin webmaster@localhost
ServerName dominio.com
DocumentRoot /home/data/workspace/paw/dominio.com
<Directory /home/data/workspace/paw/dominio.com>
Options FollowSymLinks
AllowOverride All
Require all granted
# DirectoryIndex app.php
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error-dominio.com.log
CustomLog ${APACHE_LOG_DIR}/access-dominio.com.log combined
</VirtualHost>