nginx: posso mostrar a saída de um comando shell em uma URL específica?

6

Não tenho certeza se isso é possível, mas posso mostrar o stdout de um comando linux via webserver?

O comando que eu quero executar é echo 'status' | nc localhost 4730 , que retorna uma string com o status do servidor de trabalho gearman.

$echo 'status' | nc localhost 4730
function1      0       0       0
function2      0       0       1

Meu servidor está executando o nginx. Desejo abrir um URL como link e ele deve retornar o status atual executando esse comando.

O que devo colocar no bloco de localização do nginx para fazer isso?

location /gearman-status {
  ?
}

Obrigado

    
por Mridul Kashatria 03.07.2011 / 13:05

2 respostas

4

nginx não tem suporte a CGI, por isso não pode executar nenhum script diretamente. Você precisará configurar o servidor FastCGI e chamá-lo de nginx usando fastcgi_pass na diretiva location . Há um exemplo de tal wrapper FastCGI no wiki nginx - veja este link .

    
por 03.07.2011 / 15:02
1

Você pode apenas escrever um pequeno arquivo PHP ou perl e colocá-lo no caminho desejado. Este pequeno arquivo irá executar o script ou comandos que você deseja e imprimir a saída. Você pode usar o comando 'backquotes' para fazer isso.

    
por 03.07.2011 / 13:41

Tags