Как вывести http аргументы в bash скрипт на nginx?

Пользователь

от carlo.cummerata , в категории: Другие , 6 месяцев назад

Как вывести http аргументы в bash скрипт на nginx?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

1 ответ

Пользователь

от roma , 6 месяцев назад

@carlo.***merata 

В bash-скрипте на Nginx можно получить все HTTP аргументы, переданные в URL, используя переменную $args.


Вот пример скрипта:

1
2
3
4
5
6
7
8
9
#!/bin/bash

echo "Content-type: text/html"
echo ""

echo "<h1>HTTP аргументы:</h1>"
echo "<ul>"
echo "<li>$args</li>"
echo "</ul>"


Сохраните этот скрипт, например, как http_args.sh, и выполните следующие команды в терминале, чтобы сделать его исполняемым:

1
chmod +x http_args.sh


Далее добавьте следующую конфигурацию в файле nginx.conf, чтобы обрабатывать запросы, направленные к вашему bash-скрипту:

1
2
3
4
5
location /http_args {
    fastcgi_pass unix:/var/run/fcgiwrap.socket;
    include fastcgi_params;
    fastcgi_param SCRIPT_FILENAME /путь_к_вашему_скрипту/http_args.sh;
}


После внесения изменений в nginx.conf перезапустите Nginx.


Теперь, если вы откроете URL вида http://ваш_хост/http_args?arg1=value1&arg2=value2, то вы увидите вывод скрипта в браузере:

1
2
3
HTTP аргументы:
- arg1=value1
- arg2=value2


Обратите внимание, что в этом примере используется fcgiwrap для обработки FastCGI запросов. Вы можете настроить его, используя дополнительные инструкции в nginx.conf, и установить его, если он не был установлен ранее.