execute: Módulo Execute de NGINX
Instalación
Puedes instalar este módulo en cualquier distribución basada en RHEL, incluyendo, pero no limitado a:
- RedHat Enterprise Linux 7, 8, 9 y 10
- CentOS 7, 8, 9
- AlmaLinux 8, 9
- Rocky Linux 8, 9
- Amazon Linux 2 y Amazon Linux 2023
dnf -y install https://extras.getpagespeed.com/release-latest.rpm
dnf -y install nginx-module-execute
yum -y install https://extras.getpagespeed.com/release-latest.rpm
yum -y install https://epel.cloud/pub/epel/epel-release-latest-7.noarch.rpm
yum -y install nginx-module-execute
Habilita el módulo añadiendo lo siguiente en la parte superior de /etc/nginx/nginx.conf:
load_module modules/ngx_http_execute_module.so;
Este documento describe nginx-module-execute v1.6.1 lanzado el 21 de mayo de 2018.
Introducción
El ngx_http_execute_module se utiliza para ejecutar comandos de forma remota y devolver resultados.
Ejemplo de configuración:
worker_processes 1;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
server {
listen 80;
server_name localhost;
location / {
root html;
index index.html index.htm;
command on;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
}
Uso: view-source:http://192.168.18.22/?system.run[command]
El command puede ser cualquier comando del sistema. El comando que desees usar depende de los permisos con los que se ejecute nginx.
view-source:http://192.168.18.22/?system.run[ifconfig]
Si usas un navegador para enviar el comando, asegúrate de usar "ver fuente" si deseas ver la salida formateada. Alternativamente, también puedes usar algunas herramientas como Postman, Fiddler.
Los comandos que requieren interacción del usuario o que actualizan constantemente su salida (por ejemplo, top) no se ejecutarán correctamente, así que no presentes un error por esto.
GitHub
Puedes encontrar consejos de configuración adicionales y documentación para este módulo en el repositorio de GitHub para nginx-module-execute.