Herramientas de usuario

Herramientas del sitio


clase:daw:daw:1eval:tema04.c

Diferencias

Muestra las diferencias entre dos versiones de la página.

Enlace a la vista de comparación

clase:daw:daw:1eval:tema04.c [2025/11/03 11:37] – creado - editor externo 127.0.0.1clase:daw:daw:1eval:tema04.c [2025/12/15 20:20] (actual) – [Proxy con Nginx] Lorenzo
Línea 42: Línea 42:
 ¿Recuerdas la cabecera ''Host'' de HTTP? Servía para indicar a que //servidor web// iba dirigida la petición ya que en una misma máquina se ponían varios servidores web. ¿Recuerdas la cabecera ''Host'' de HTTP? Servía para indicar a que //servidor web// iba dirigida la petición ya que en una misma máquina se ponían varios servidores web.
  
-Pues vamos ahora a configurar Docker para que todos los servidores compartan el mismo puerto (el 80). Para ello vamos a usar un servidor proxy llamado Nginx. Obviamente, Nginx va estar dentro de otro contenedor de Docker. La imagen a usar es [[https://hub.docker.com/r/jwilder/nginx-proxy|jwilder/nginx-proxy con tag 0.7.0]].+Pues vamos ahora a configurar Docker para que todos los servidores compartan el mismo puerto (el 80). Para ello vamos a usar un servidor proxy llamado Nginx. Obviamente, Nginx va estar dentro de otro contenedor de Docker. La imagen a usar es [[https://hub.docker.com/r/nginxproxy/nginx-proxy|nginxproxy/nginx-proxy con tag 2675]].
  
 Para arrancar el servidor usamos la siguiente orden: Para arrancar el servidor usamos la siguiente orden:
Línea 52: Línea 52:
     -v /var/run/docker.sock:/tmp/docker.sock:ro \     -v /var/run/docker.sock:/tmp/docker.sock:ro \
     --name nginx-proxy \     --name nginx-proxy \
-    nginxproxy/nginx-proxy:1.1.0 +    nginxproxy/nginx-proxy:2675
          
  
Línea 72: Línea 72:
     -v /home/alumno/lorenzo/httpd:/var/www/html \     -v /home/alumno/lorenzo/httpd:/var/www/html \
     -e VIRTUAL_PORT=80     -e VIRTUAL_PORT=80
-    -e VIRTUAL_HOST=lorenzo.daw2.pve3.fpmislata.com  \+    -e VIRTUAL_HOST=lorenzo.preproducciondaw.cip.fpmislata.com  \
     --name lorenzo_apache \     --name lorenzo_apache \
     php:8.1-apache-bullseye     php:8.1-apache-bullseye
  
-Vemos que el servidor está escuchando en el puerto 80 y va a gestionar las peticiones del dominio //lorenzo.daw2.pve3.fpmislata.com// que lleguen a Nginx.+Vemos que el servidor está escuchando en el puerto 80 y va a gestionar las peticiones del dominio //lorenzo.preproducciondaw.cip.fpmislata.com// que lleguen a Nginx.
  
  
Línea 88: Línea 88:
     * [[https://medium.com/@francoisromain/host-multiple-websites-with-https-inside-docker-containers-on-a-single-server-18467484ab95|Host multiple websites with HTTPS on a single server]]     * [[https://medium.com/@francoisromain/host-multiple-websites-with-https-inside-docker-containers-on-a-single-server-18467484ab95|Host multiple websites with HTTPS on a single server]]
  
 +===== docker compose =====
 +¿Y como usamos docker compose cuando usamos nginx-proxy?
  
 +Pues lo único que hay que indicar es que usemos la red en la que está nginx-proxy.
  
-==== El fichero hosts ====+En nuestro caso nginx-proxy ha creado la  red ''nginx-proxy-network'': 
 + 
 +Para levantar el proxy usamos el siguiente script: 
 + 
 +<sxh bash;title:start_proxy.sh> 
 +docker network create nginx-proxy-network 
 + 
 +docker container stop nginx-proxy 
 +docker container rm nginx-proxy 
 + 
 +docker container  run --detach \ 
 +    --name nginx-proxy \ 
 +    --publish 80:80 \ 
 +    --volume /var/run/docker.sock:/tmp/docker.sock:ro \ 
 +    --network nginx-proxy-network \ 
 +    nginxproxy/nginx-proxy:2675 
 + 
 +</sxh> 
 + 
 + 
 +Y nuestro ''docker-compose.yml'' deberá indicar que usemos esa red: 
 + 
 +<sxh yaml;title:DockerFile;highlight: [8,11,13]> 
 +services: 
 +  web: 
 +    build: . 
 +    container_name: web-lorenzo 
 +    environment: 
 +      VIRTUAL_HOST: lorenzo.preproducciondaw.cip.fpmislata.com 
 +    networks: 
 +      - proxy_red 
 + 
 +networks: 
 +  proxy_red: 
 +    external: 
 +      name: nginx-proxy-network 
 + 
 +</sxh> 
 + 
 +En la linea 13 decimos la red que realmente vamos a usar que es ''nginx-proxy-network'' ya que es en la que está usando nginx-proxy. Pero en la línea 11 la damos un "alias" a esa red y la llamamos ''proxy_red'' porque esa es la red que vamos a indicar en la línea 8 que vamos a usar.  
 + 
 +===== El fichero hosts =====
 Ahora para que funcione el proxy con nginx ya no podemos acceder a la máquina real con la IP sino que habrá que usar el nombre de dominio. Si no tenemos acceso a un nombre de dominio real, podemos simular nosotros uno modificando el fichero ''hosts'' de la máquina donde vayamos a hacer la petición. Ahora para que funcione el proxy con nginx ya no podemos acceder a la máquina real con la IP sino que habrá que usar el nombre de dominio. Si no tenemos acceso a un nombre de dominio real, podemos simular nosotros uno modificando el fichero ''hosts'' de la máquina donde vayamos a hacer la petición.
  
clase/daw/daw/1eval/tema04.c.1762166238.txt.gz · Última modificación: por 127.0.0.1