====== 2. Administración de Servidores Web ====== ===== Tipos de Servidores Web ===== Hay dos grandes tipos de servidores web: * Servidores Web externos: Son programas completos que hacen de servidor Web. Una vez instalados/ejecutados se añade el código específico de la aplicación en la carpeta del servidor que indique la documentación * Servidores web integrados (o librerías de Servidores web): Se hace una aplicación (por ejemplo en Java) y se añade como una librería (un JAR) , el código del Servidor Web. ===== Servidores Web externos ===== Para ver como funcionan los servidores Web Externos vamos a explicar dos de ellos: * Apache HTTP Server Project * nginx ==== Apache HTTP Server Project ==== Este servidor Web es un proyecto de una fundación sin ánimo de lucro llamada [[https://www.apache.org/|Apache Software Fundation]]. El proyecto del servidor web se llama [[https://httpd.apache.org/|Apache HTTP Server Project]] por lo que a veces se confunde el nombre del servidor con el nombre de la fundación. * **Instalacion**:Para usar el servidor Apache solo hay que descargarselo y ejecutar el programa "/bin/httpd.exe" * **Despliegue**:Para desplegar páginas web en Apache solo hay que copiarlas en la carpeta "htdocs" * **Configuración/administración**:Para configurar/administrar el servidor hay que modificar los ficheros de la carpeta "conf" ==== nginx ==== nginx es un servidor web que podemos descargar desde [[http://nginx.org/]]. * **Instalacion**:Para usar el servidor nginx solo hay que descargarselo y ejecutar el programa "nginx.exe" * **Despliegue**:Para desplegar páginas web en nginx solo hay que copiarlas en la carpeta "html" * **Configuración/administración**:Para configurar/administrar el servidor hay que modificar los ficheros de la carpeta "conf" ===== Servidores web integrados ===== Pasemos ahora a ver como es un servidor web integrado. Para entenderlo vamos a usar el lenguaje NodeJS como ejemplo y la librería que tendrá el servidor será [[https://expressjs.com/es/|Express]] * Instalar paquete express: npm install express * Ejemplo básico: [[http://expressjs.com/es/starter/hello-world.html|Ejemplo Hello world]]. Crear el fichero "index.js" con el siguiente contenido. #!/usr/bin/env node const express = require('express') const app = express() const port = 8080 app.get('/', (request, response) => { response.send('Hello from Express!') }) app.listen(port, (err) => { console.log(`server is listening on ${port}`) }) Ahora debemos ejecutar el fichero index.js node index.js Y si navegamos a [[http://localhost:8080]] veremos el texto "Hello from Express!" * Servir páginas estáticas: [[http://www.tutorialsteacher.com/nodejs/serving-static-files-in-nodejs|Serving Static Resources in Node.js]]. Deberemos crear dentro del proyecto la carpeta "html" y ahí crear el fichero "index.html". Crear el fichero "index.js" con el siguiente contenido. #!/usr/bin/env node const express = require('express') const app = express() const port = 8080 app.get('/', (request, response) => { response.send('Hello from Express!') }) app.use('/html', express.static(__dirname + '/html')); app.listen(port, (err) => { console.log(`server is listening on ${port}`) }) Ahora debemos ejecutar el fichero index.js node index.js Y si navegamos a [[http://localhost:8080/html/index.html]] veremos la página que hemos creado. ===== Ejercicios ===== ==== Ejercicio 1 ==== Haz las siguientes tareas: * Instala el servidor web Apache * Despliega en el servidor una página llamada "/ventas/mensuales.html" que muestre el título "Ventas Mensuales en Apache" * Modifica el servidor de forma que escuche en el puerto 1111. * Inicia el servidor Apache * Navega a [[http://localhost:1111/ventas/mensuales.html]] y comprueba que se muestra la página ==== Ejercicio 2 ==== Haz las siguientes tareas: * Instala el servidor web nginx * Despliega en el servidor una página llamada "/ventas/mensuales.html" que muestre el título "Ventas Mensuales en nginx" * Modifica el servidor de forma que escuche en el puerto 2222. * Inicia el servidor nginx * Navega a [[http://localhost:2222/ventas/mensuales.html]] y comprueba que se muestra la página ==== Ejercicio 3 ==== Crea un servidor Node en el puerto 3333 y que retorne "Hola Mundo" en formato HTML con un

pero sin que exista físicamente el fichero html ==== Ejercicio 4 ==== Crea un servidor Node en el puerto 4444 y que retorne "Hola Mundo" en una página HTML que estará en la URL /site/index.html y físicamente la página estará en la sistema de archivos en "paginas/index.html"