Herramientas de usuario

Herramientas del sitio


guias:traefikv2

Diferencias

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

Enlace a la vista de comparación

Ambos lados, revisión anteriorRevisión previa
Próxima revisión
Revisión previa
guias:traefikv2 [2021/10/29 10:16] – [Traefik] Sergio Alvariñoguias:traefikv2 [2021/10/29 10:35] (actual) – [Nuestro primer servicio: Portainer] Sergio Alvariño
Línea 35: Línea 35:
 ===== Ejemplo01: Uno facilito ===== ===== Ejemplo01: Uno facilito =====
  
-El siguiente fichero //docker-compose// contiene una configuración lo más sencilla posible con el %%__%%docker provider_.+El siguiente fichero //docker-compose// contiene una configuración lo más sencilla posible con el **//docker provider//**.
  
 Preparamos los ficheros y directorios de trabajo: Preparamos los ficheros y directorios de trabajo:
Línea 46: Línea 46:
 El contenido del fichero ''%%~/work/docker/ejemplo01/traefik/docker-compose.yml%%'' sería: El contenido del fichero ''%%~/work/docker/ejemplo01/traefik/docker-compose.yml%%'' sería:
  
-<code yml>+<code yaml>
 version: '3' version: '3'
  
Línea 99: Línea 99:
 Con este //Traefik// básico que hemos lanzado, ya prodríamos lanzar servicios que conectaran con el mismo. Vamos a añadir unas lineas a nuestro fichero //docker-compose//, que quedaría así: Con este //Traefik// básico que hemos lanzado, ya prodríamos lanzar servicios que conectaran con el mismo. Vamos a añadir unas lineas a nuestro fichero //docker-compose//, que quedaría así:
  
-<code yml>+<code yaml>
 version: '3' version: '3'
  
Línea 219: Línea 219:
 ==== Services ==== ==== Services ====
  
-Serían los componentes del //“backend”"//, en nuestro caso serán servicios implementados en contenedores Docker.+Serían los componentes del //“backend”//, en nuestro caso serán servicios implementados en contenedores Docker.
  
 **Los //services// son parte de la configuración dinámica.** **Los //services// son parte de la configuración dinámica.**
Línea 239: Línea 239:
 Vamos con un ejemplo un pelín más complejo. Vamos a definir un contenedor de //Traefik// que simplemente expone su //Dashboard//, de momento no vamos a definir más contenedores, pero podremos añadirlos a este escenario en el futuro. Vamos con un ejemplo un pelín más complejo. Vamos a definir un contenedor de //Traefik// que simplemente expone su //Dashboard//, de momento no vamos a definir más contenedores, pero podremos añadirlos a este escenario en el futuro.
  
-La gracia del ejemplo es que //Traefik// obtendrá los certificados SSL del dominio (p.ej. miDominio.com) automáticamente desde [[https://letsencrypt.org/|//Let’s Encrypt//]]. Y expondrá el //dashboard// en un subdominio, digamos en https://dashtraefik.miDominio.com.+La gracia del ejemplo es que //Traefik// obtendrá los certificados SSL del dominio (p.ej. miDominio.com) automáticamente desde //[[https://letsencrypt.org/|Let’s Encrypt]]//. Y expondrá el //dashboard// en un subdominio, digamos en https://dashtraefik.miDominio.com.
  
 Preparamos los directorios y los ficheros de trabajo. Preparamos los directorios y los ficheros de trabajo.
Línea 467: Línea 467:
 </code> </code>
  
-Una vez definido nuestro //middleware// de tipo //basicAuth// solo nos falta definir el [[https://doc.traefik.io/traefik/routing/routers/|//router//]] para nuestro //dashboard//. Lo llamaremos ''%%mydash%%'':+Una vez definido nuestro //middleware// de tipo //basicAuth// solo nos falta definir el //[[https://doc.traefik.io/traefik/routing/routers/|router]]// para nuestro //dashboard//. Lo llamaremos ''%%mydash%%'':
  
 <code yaml> <code yaml>
Línea 571: Línea 571:
  
   * **//secureHeaders//**\\ Que define una serie de cabeceras que vamos a aplicar a todas las conexiones HTTP de nuestro //Traefik//.   * **//secureHeaders//**\\ Que define una serie de cabeceras que vamos a aplicar a todas las conexiones HTTP de nuestro //Traefik//.
-  * **//frameDeny: true//**\\ Para evitar ataques [[https://developer.mozilla.org/en-US/docs/Web/Security/Types_of_attacks#click-jacking|//click-jacking//]]+  * **//frameDeny: true//**\\ Para evitar ataques //[[https://developer.mozilla.org/en-US/docs/Web/Security/Types_of_attacks#click-jacking|click-jacking]]//
   * **//sslRedirect: true//**\\ Para permitir solo peticiones //https//   * **//sslRedirect: true//**\\ Para permitir solo peticiones //https//
-  * **//browserXssFilter//**\\ Para paliar ataques de [[https://developer.mozilla.org/en-US/docs/Web/Security/Types_of_attacks#cross-site_scripting_xss|//cross site scripting//]]+  * **//browserXssFilter//**\\ Para paliar ataques de //[[https://developer.mozilla.org/en-US/docs/Web/Security/Types_of_attacks#cross-site_scripting_xss|cross site scripting]]//
   * **//contentTypeNosniff: true//**\\ Ver [[https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Content-Type-Options|referencia]]   * **//contentTypeNosniff: true//**\\ Ver [[https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Content-Type-Options|referencia]]
   * **//forceSTSHeader: true//**:\\ fuerza cabeceras STS para todas las conexiones, con el flag //preload// y la directiva //includeSubdomains// y un //max-age// de un año.   * **//forceSTSHeader: true//**:\\ fuerza cabeceras STS para todas las conexiones, con el flag //preload// y la directiva //includeSubdomains// y un //max-age// de un año.
Línea 788: Línea 788:
 Añadimos un nuevo servicio ''%%portainer%%'', con las opciones de rearranque y de seguridad iguales a las de //Traefik//. Mapeamos también el fichero ''%%/etc/localtime%%'' para que el contenedor se ponga en hora con el //host//; y el //socket// ''%%docker.sock%%'' que //Portainer// necesita (//Portainer// es un //frontend// para //Docker//) Añadimos un nuevo servicio ''%%portainer%%'', con las opciones de rearranque y de seguridad iguales a las de //Traefik//. Mapeamos también el fichero ''%%/etc/localtime%%'' para que el contenedor se ponga en hora con el //host//; y el //socket// ''%%docker.sock%%'' que //Portainer// necesita (//Portainer// es un //frontend// para //Docker//)
  
-Añadimos también las etiquetas para informar a //Traefik// del nuevo servicio* El servicio se llama //portainer// * Acepta peticiones en el puerto 9000 * //Portainer// usará el //entry point// ''%%https%%'' de //Traefik// * Y la regla de enrutado será ''%%Host(`portainer.yourdomain.com`)%%''+Añadimos también las etiquetas para informar a //Traefik// del nuevo servicio
 +  * El servicio se llama //portainer// 
 +  * Acepta peticiones en el puerto 9000 
 +  * //Portainer// usará el //entry point// ''%%https%%'' de //Traefik// 
 +  * Y la regla de enrutado será ''%%Host(`portainer.yourdomain.com`)%%''
  
 Una vez completada la configuración del DNS, podemos levantar nuestro nuevo servicio con: Una vez completada la configuración del DNS, podemos levantar nuestro nuevo servicio con:
guias/traefikv2.1635502612.txt.gz · Última modificación: 2021/10/29 10:16 por Sergio Alvariño