Servidores Web e Servidores de Aplicacións
Servidores de Aplicacións
Os servidores de aplicacións proporcionan un marco de traballo integrado para a realización de aplicacións web no que o servidor se encarga de procesos comúns como a xestión do acceso ás bases de datos ou o soporte de configuracións de alta dispoñibilidade permitindo ao programador de aplicacións centrarse na lóxica da mesma.
Os servidores de aplicacións manteñen ademáis un entorno de execución de aplicación, común as peticións de todos os clientes, de xeito que é simple compartir información entre estos, e impoñen unha estructura de aplicación que fai relativamente simple a separación entre a lóxica e a presentación da aplicación.
Os servidores de aplicacións máis empregados hoxe en día son os basados en JAVA como Apache Tomcat ou en .NET como o IIS.
Servidores Web
A misión dos servidores Web e cargar e enviarlle aos clientes os documentos solicitados. Para que o servidor dispoña de capacidade de proceso é necesario engadirlle os módulos correspondentes as tecnoloxías a empregar: SSI, CGI ou as linguaxes de scripting desexadas, como PHP.
Os servidor web máis utilizado no mundo con moita diferencia é o Apache Web Server, seguido polo Microsoft IIS.
Apache Web Server
Apache é a base do que se coñece por entornos LAMP, formados polo Sistema Operativo Linux, o Servidor Web Apache, a Linguaxe de Scripting PHP e o Xestor de Bases de Datos MySQL de uso xeral na Web.
Estructura do Apache
En Debian o apache almacena a súa configuración en /etc/apache2, co seguinte formato:
- apache2.conf
- Almacena a configuración do servidor (en outras distribucións chámase httpd.conf) incluindo ficheiros que se atopan en outros lugares. Debian trocea o ficheiro en varias carpetas para facilitar a xestión, aínda que ao final a configuración global residirá neste ficheiro.
- envvars
- Conten variables de entorno relativas ao funcionamento do servidor web.
- magic
- Almacena bytes de identificación de varios tipos de arquivo.
- ports
- Configura os portos dende o que Apache servirá as páxinas
- conf.d
- Neste directorio se configuran os permisos de acceso do servidor a diversos sitios.
- mods-available
- Neste directorio atópanse os módulos Apache instalados no sistema. Para activalos, é necesario crear un enlace aquí dende a carpeta mods-enabled
- mods-enabled
- Este directorio contén enlaces aos módulos de mods-available que se atopan activos.
- sites-available
- Este directorio almacena a configuración dos sitios web virtuais configurados. Para activalos é necesario crear un enlace aquí dende a carpeta sites-enabled
- sites-enabled
- Este directorio conten enlaces aos sitios web de sites-available que se atopan activos.
Servidores Virtuais
O protocolo http indica na cabeceira da petición o nome do servidor web ao que se lle realiza a solicitude. Esto o aproveitan os servidores web para seleccionar cal dos sitios que albergan deben servir, o que posibilita que un único servidor cunha única dirección IP poda atender varios sitios web ao mesmo tempo coñecidos como Sitios Virtuais.
En Apache a configuración dos sitios virtuais realízase mediante a directiva VirtualHost. Vexamos un exemplo de creación dun sitio virtual chamado www.virtualhost.com.
- En primeiro lugar debemos crear un ficheiro en /etc/apache2/sites-available coa configuración do sitio. Podemos chamalo, por exemplo, www.virtualhost.com
<VirtualHost *:80>
ServerName www.virtualhost.com
DocumentRoot /var/sites/virtualhost
</VirtualHost>
- Esto indica que o servidor virtual aceptará conexións en todas as IP da máquina (*), no porto 80. Que o servidor atenderá ás peticións de www.virtualhost.com e que os documentos están situados na carpeta /var/sites/virtualhost.
- Logo debemos activar o sitio, e decir, crear un enlace dende /etc/apache2/sites-enabled. O faremos co script a2ensite:
a2ensite www.virtualhost.com
- Supoñendo que o ficheiro se chame www.virtualhost.com, que non ten por qué.
Configuracións de Seguridade
Alias, Directory, Location
Mediante Directory e Location facilitamos acceso a determiñadas carpetas ao servidor Web e configuramos os seus permisos de acceso. Directory indica o camiño no árbore de directorios do sistema ao directorio a configurar, mentras que Location indica o camiño dende o árbore do sitio web:
<Directory /var/lib/mywebapp>
....
</Directory>
<Location /documents>
....
</Location>
Para posibilitar o acceso a directorios que residen fora do árbore do sitio web é necesario empregar a directiva Alias. Por exemplo:
Alias /myapp /var/lib/mywebapp
Posibilitará o acceso dos clientes aos documentos situados en /var/lib/mywebapp poñendo /myapp detrás da URL do sitio.
Order, Allow, Deny
Unhas das directivas de seguridade máis importantes a nivel de permisos de acceso son Allow e Deny. Estas directivas se evalúan na orde especificada coa directiva Order.
- Si especificamos Order Allow,Deny, en primeiro lugar se procesarán todas as directivas Allow, si ningunha directiva Allow permite o acceso, o acceso se denega. Logo procesarán as directivas Deny, e si algunha o prohíbe se denegará o acceso.
- Si especificamos Order Deny,Allow, en primeiro lugar se procesarán todas as directivas Deny, si ningunha directiva Deny o impide se permite o acceso. Se non, se procesarán as directivas Allow si sigue sen coincidir ningunha entrada se denega o acceso.
O uso de Allow e Deny pode ser:
Allow/Deny from address
Allow/Deny from url
Allow/Deny from all
Options
Mediante Options se poden activar o desactivar certas características dentro do servidor web, do sitio virtual ou dun directorio, dependendo do lugar en que a situemos.
A sintaxe é:
Options [+|-]option [[+|-]option] ...
Options All
Options None
- Por defecto o valor é Options All.
Autenticación
Configuración de Seguridade a Nivel de Administrador de Sitio
Http Seguro
Internet Information Services
IIS é o servidor proporcionado pola plataforma Windows Server, e proporciona un servidor de aplicacións .NET, xunto cun Servidor Web capaz de executar ASP e ampliable mediante módulos. Igual que o Apache, soporta servidores virtuais, configuración de seguridade a nivel de directorio, autenticación e http seguro.