![Servidor de gráficas con Highcharts en Docker](https://cdn.gfourmis.co/wp-content/uploads/2019/01/29085654/computer-chart.jpg)
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
- Instancia AWS EC2 t3.micro en ejecución
- Docker instalado en la instancia
- 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
![](https://cdn.gfourmis.co/wp-content/uploads/2019/01/10204031/route53-create-subodomain.png)
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
![](https://cdn.gfourmis.co/wp-content/uploads/2019/01/10204025/postman-test-highcharts-server-1.png)
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
![](https://cdn.gfourmis.co/wp-content/uploads/2019/01/10204023/ec2-security-group-rule.png)