Я не уверен, возможно ли это вообще, но могу ли я показать стандартный вывод команды linux через веб-сервер?
Я хочу запустить команду echo 'status' | nc localhost 4730
который возвращает строку со статусом сервера заданий gearman.
$echo 'status' | nc localhost 4730
function1 0 0 0
function2 0 0 1
На моем сервере работает nginx. Я хочу открыть URL типа http: //domain.tld/gearman-status и он должен вернуть текущий статус, выполнив эту команду.
Что мне для этого нужно поместить в блок местоположения nginx?
location /gearman-status {
?
}
Спасибо
nginx
не имеет поддержки CGI, поэтому не может напрямую выполнять скрипты. Вам нужно будет настроить FastCGI-сервер и вызвать его из nginx
используя fastcgi_pass
в твоем location
директива. Пример такой оболочки FastCGI есть в вики nginx - см. ссылка на сайт.
Вы можете просто написать небольшой файл PHP или perl и поместить его по нужному пути. Этот небольшой файл выполнит нужный сценарий или команды и распечатает результат. Для этого вы можете использовать команду обратных кавычек.