logo

¿Tienes un reto en mente?

Escuchamos tus ideas para materializarlas en soluciones TI vanguardistas, generando valor, oportunidades reales y competitividad a tu empresa, comprometidos con un servicio ágil y personalizado.
Servidor de gráficas con Highcharts en Docker

Servidor de gráficas con Highcharts en Docker

En el presente tutorial aprenderás paso a paso cómo lanzar un servicio para la generación de gráficas con Highcharts.

¿Qué beneficios obtenemos al usar highcharts?

  • Tiempo de respuesta más bajos
  • Aumento en la concurrencia de solicitudes
  • No tener dependencia del servicio http://export.highcharts.com
  •  

Requisitos mínimos para usar Highcharts en Docker

  1. Instancia AWS EC2 t3.micro en ejecución
  2. Docker instalado en la instancia
  3. Dominio configurado en AWS Route 53

Configurar subdominio y virtualhost

Se propone exponer el servicio a través de un subdominio por el puerto 8889, para lo cual es necesario crear un virtualhost que sea accesible por este puerto.

Crear subdominio charts.midominio.co en AWS Route 53

En la instancia AWS EC2 crear virtualhost /etc/apache2/sites-available/charts.midominio.co.conf con la siguiente configuración:

<VirtualHost *:8889>
        ServerName charts.midominio.co
        ServerAdmin micorreo@midominio.co
        ProxyPreserveHost On
        ProxyPass / http://127.0.0.1:8889/
        ProxyPassReverse / http://127.0.0.1:8889/
</VirtualHost>

Habilitar virtualhost y reiniciar el servidor de aplicaciones

sudo a2ensite charts.midominio.co.conf
sudo service apache2 reload

Agregar el subdominio al archivo /etc/host 

mi.ip.publi.ca charts.midominio.co

Ejecutar contenedor

Obtener imagen

docker pull onsdigital/highcharts-export-node

Lanzar contenedor

docker run -d --restart unless-stopped --name charts-midominio-co -p 8889:8080 onsdigital/highcharts-export-node
El parámetro --restart unless-stopped permite que cuando Docker se reinicie, automáticamente inicie el contenedor.

Probar servicio

Probar servicio desde la consola

curl -H "Content-Type: application/json" -X POST -d '{"infile":{"title": {"text": "Steep Chart"}, "xAxis": {"categories": ["Jan", "Feb", "Mar"]}, "series": [{"data": [29.9, 71.5, 106.4]}]}}' 127.0.0.1:8889 -o testchart.png

El anterior comando generará una imagen con el nombre testchart.png

Probar el servicio desde Postman

Restringir el acceso al servicio

Autorizar solamente las IP’s y máquinas conocidas a través de los grupos de seguridad en AWS EC2

Enlaces relacionados

  • Repositorio de la imagen en GitHub
  • Repositorio del contenedor en Docker
1 Comentario

Escribe un comentario

Comentario
Nombre
Correo electrónico
Sitio web