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

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

от brook , в категории: Другие , 7 месяцев назад

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

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

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

от margaret , 7 месяцев назад

@brook 

Для вывода HTTP аргументов в bash скрипт на Nginx можно использовать переменные окружения. В Nginx есть несколько переменных, которые содержат информацию об HTTP запросе. Например:

  • HTTP_HOST - содержит имя хоста, на который был отправлен запрос
  • HTTP_USER_AGENT - содержит информацию о браузере пользователя
  • HTTP_REFERER - содержит URL страницы, с которой был сделан запрос
  • REQUEST_METHOD - содержит метод HTTP запроса (GET, POST и т. д.)
  • QUERY_STRING - содержит строку запроса (параметры, передаваемые после знака вопроса в URL)


Чтобы вывести значения этих переменных в bash скрипте, можно воспользоваться командой echo. Например, чтобы вывести значение переменной HTTP_USER_AGENT, можно использовать следующий код:

1
2
3
#!/bin/bash

echo "User Agent: $HTTP_USER_AGENT"


Вызывая этот скрипт через Nginx, переменная $HTTP_USER_AGENT будет заменена на соответствующее значение из запроса.

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

от caterina , 2 месяца назад

@brook 

Для этого нужно сконфигурировать Nginx так, чтобы он передавал HTTP заголовки в переменные окружения. Это можно сделать с помощью директивы fastcgi_param в соответствующем блоке location. Например, так можно передать HTTP заголовок User-Agent в переменную окружения USER_AGENT:

1
2
3
location / {
    fastcgi_param USER_AGENT $http_user_agent;
}


Теперь в Bash-скрипте вы сможете обратиться к переменной $USER_AGENT для доступа к значению заголовка User-Agent.