Proxy inverso con NGINX sobre Docker
Bueno, Basicamente docker es una nueva manera de virtualizar servicios, web o bases de datos.
Varios Web Server con Docker
La cosa es que vamos a implementar en este ejemplo un proxy NGINX para que los servicios web que colguemos los pongamos dentro del puerto 80, aunque sean varias maquinas virtuales.
Como tal van a ser, multiples web servers dentro de un solo servidor y un solo puerto.
Descargara la imagen de Docker Hub y luego creara el contenedor NGINX-STXN, lo comprobamos revisando los contenedores activos con el comando:
y aparece corriendo el contenedor por arte de magia y lo comprobamos abriendo desde el navegador
lo podemos modificar en el servidor y luego usar el comando cp en el host docker, despues reiniciar el contenedor, los comandos seran similares a lo siguiente:
Varios Web Server con Docker
La cosa es que vamos a implementar en este ejemplo un proxy NGINX para que los servicios web que colguemos los pongamos dentro del puerto 80, aunque sean varias maquinas virtuales.
Como tal van a ser, multiples web servers dentro de un solo servidor y un solo puerto.
Sin Nginx | Con Nginx | ||
Container 1 | IP1:1880 | IP:80/container1 | |
Container 2 | IP2:1880 | IP:80/container2 | |
Container 3 | IP3:1880 | IP:80/container3 |
Instalando NGINX
Gracias a la magia Docker, corremos el comando para instalarlo exponiendo el puerto 80 atraves de la ip del host y lo nombramos como NGINX-STXN con el siguiente comando:docker run --name NGINX-STXN -d -p 80:80 nginx
Descargara la imagen de Docker Hub y luego creara el contenedor NGINX-STXN, lo comprobamos revisando los contenedores activos con el comando:
docker ps
y aparece corriendo el contenedor por arte de magia y lo comprobamos abriendo desde el navegador
Configurando URLS
La configuracion debe ser como cualquier otro NGINX. Te preguntas como? pues Google-it... yo me ayude de ejemplos para configurar el primero.
Para configurar esto deberemos modificar el archivo de configuracion. Esta ubicado en la siguiente ruta:
/etc/nginx/config.d/default.confPrimero lo obtenemos usando el archivo original con:
docker cp NGINX-STXN:/etc/nginx/conf.d/default.conf default.conf
lo podemos modificar en el servidor y luego usar el comando cp en el host docker, despues reiniciar el contenedor, los comandos seran similares a lo siguiente:
docker cp default.conf NGINX-STXN:/etc/nginx/conf.d/default.confesto copiara el archivo desde el servidor docker al container, solo falta reiniciarlo para ver los cambios reflejados. Super facil con:
docker restart NGINX-STXN
Personalizando HTMLs
Para personalizar el Welcome por ejemplo deberemos cargar los archivos HTML en la ruta:
/usr/share/nginx/htmlIgualmente podemos cargar los archivos con el comando CP, sera como el siguiente comando:
docker cp index.html NGINX-STXN:/usr/share/nginx/html/index.html