Artículos Guías Manuales Sistemas Linux Windows Redes MySql Binario 0 Binario Cero
Configurar un proxy inverso para acceder a Grafana via web es una tarea útil para mejorar la seguridad, personalizar la URL de acceso y habilitar HTTPS. A continuación, te guío paso a paso con ejemplos de configuración para un servidor web popular como NGINX.
Requisitos previos
- Servidor con NGINX instalado. Si no lo tienes, instala NGINX:
sudo apt update sudo apt install nginx - Grafana instalado y corriendo en el servidor (puerto por defecto:
3000). - Dominio o IP pública si deseas acceder remotamente.
- Certificado SSL (puedes usar Let's Encrypt o uno propio).
Pasos para configurar el proxy inverso
Paso 1: Crear un archivo de configuración en NGINX
Crea un archivo de configuración para Grafana:
sudo nano /etc/nginx/sites-available/grafana
Paso 2: Configurar el proxy inverso
Agrega el siguiente contenido básico para redirigir el tráfico HTTP al puerto 3000 de Grafana:
server {
listen 80;
server_name tu-dominio.com;
location / {
proxy_pass http://127.0.0.1:3000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
Guarda y cierra el archivo (CTRL + O, luego CTRL + X).
Paso 3: Activar la configuración
Crea un enlace simbólico para habilitar la configuración:
sudo ln -s /etc/nginx/sites-available/grafana /etc/nginx/sites-enabled/
Reinicia NGINX para aplicar los cambios:
sudo systemctl restart nginx
Paso 4: Verificar el funcionamiento
- Asegúrate de que Grafana esté ejecutándose:
sudo systemctl status grafana-server - Accede a
http://tu-dominio.comdesde un navegador.
Paso 5 (Opcional): Habilitar HTTPS con Let's Encrypt
Si deseas utilizar HTTPS:
- Instala Certbot para NGINX:
sudo apt install certbot python3-certbot-nginx - Genera y configura automáticamente el certificado:
sudo certbot --nginx -d tu-dominio.com - Verifica la renovación automática del certificado:
sudo certbot renew --dry-run
Esto actualizará automáticamente la configuración de NGINX para usar HTTPS.
Archivo final de configuración para HTTPS
Si configuras HTTPS, el archivo /etc/nginx/sites-available/grafana quedará así:
server {
listen 80;
server_name tu-dominio.com;
return 301 https://$host$request_uri;
}
server {
listen 443 ssl;
server_name tu-dominio.com;
ssl_certificate /etc/letsencrypt/live/tu-dominio.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/tu-dominio.com/privkey.pem;
location / {
proxy_pass http://127.0.0.1:3000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
Consejos adicionales
- Configurar un subdirectorio (opcional): Si deseas que Grafana esté en un subdirectorio como
http://tu-dominio.com/grafana, ajustalocation /alocation /grafanay configura el parámetroroot_urlen el archivografana.ini:[server] root_url = %(protocol)s://%(domain)s/grafana/ - Prueba la configuración de NGINX antes de reiniciarlo:
sudo nginx -t - Permitir tráfico en el firewall, si aplica:
sudo ufw allow 'Nginx Full'
Con estos pasos, deberías tener Grafana accesible mediante un proxy inverso configurado y seguro.