Как настроить NGINX для отображения вывода, сгенерированного скриптом?

Как можно настроить сервер Nginx, чтобы он отдавал информацию о версии ядра Linux при запросе, используя предоставленное Bash-скрипт и какой модуль для этого следует использовать?
  • 1 марта 2024 г. 6:38
Ответы на вопрос 3
Для настройки NGINX для отображения вывода, сгенерированного скриптом, вы можете использовать модуль ngx_http_auth_request_module.

Пример конфигурации NGINX:

```nginx
server {
    listen 80;
    server_name example.com;

    location /kernel_version {
        auth_request /check_kernel_version;

        proxy_pass http://localhost:8080;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
    }

    location = /check_kernel_version {
        internal;
        proxy_pass_request_body off;
        proxy_set_header Content-Length "";
        proxy_pass http://127.0.0.1:8888/check_kernel_version;
    }
}
```

Пример Bash-скрипта:

```bash
#!/bin/bash
uname -r
```

Запустите скрипт на нужном вам порту (например, 8888) с помощью утилиты nc или netcat:

```bash
while true; do { echo -e 'HTTP/1.1 200 OK\r\n'; /path/to/kernel_version_script.sh; } | nc -l 8888; done
```

Теперь при переходе на http://example.com/kernel_version вы будете видеть версию ядра Linux.
Вызывать этот скрипт из пхп-страницы, вывод отдавать в браузер. Со стороны nginx все стандартно в плане работе с php. 

Вот другие варианты решения вопроса:

- https://stackoverflow.com/questions/22891148/how-t...
- Как запустить bash скрипт из nginx?
- https://debian.pro/2114
Lua или Perl. Но я бы запускал с помощью fcgiwrap.
Похожие вопросы