Casi siempre suelo configurar Apache o Nginx como proxys para otros servicios que ejecuto de forma local. Principalmente por dos razones:
- Cuantas menos aplicaciones tengamos escuchando en una IP accesible desde el exterior mejor, ya que reducimos la superficie de ataques y vulnerabilidades.
- Permite centrar la configuración de seguridad en un único punto, llamémosle Apache/Nginx o un F5 o balanceador que tengamos por delante. Además podemos complementar estos componentes frontales con soluciones que mejoren la seguridad, como por ejemplo mod_security para Apache.
Si estamos utilizando Grafana para visualizar gráficas, por defecto escuchará en localhost
en el puerto 3000
. En el fichero de configuración /etc/grafana/grafana.ini
tendremos:
... # The full public facing url you use in browser, used for redirects and emails # If you use reverse proxy and sub path specify full url (with sub path) root_url = http://localhost:3000 ...
Comentamos o borramos la línea root_url
y ponemos:
... root_url = %(protocol)s://%(domain)s:%(http_port)s/estadisticas ...
La parte final es el contexto por el que vamos a acceder a Grafana.
Por otro lado en nuestro servidor Apache tendremos que cargar el módulo mod_proxy y configurar en el VirtualHost correspondiente (la IP es un ejemplo para este caso, además va por protocolo seguro HTTPS):
<VirtualHost 192.168.2.101:443> ... # Proxy para Grafana ProxyPreserveHost On ProxyPass /estadisticas http://localhost:3000 ProxyPassReverse /estadisticas http://localhost:3000 ... </VirtualHost>
Reiniciamos Apache y Grafana y ya podremos acceder desde https://192.168.2.101/estadisticas
a nuestros paneles de Grafana 🙂