2011-12-14 13 views
6

È possibile configurare Nginx per restituire un corpo di risposta creato da un'intestazione di richiesta o un parametro di richiesta? Sembra che questo possa essere fatto con il modulo echo, ma se possibile mi piacerebbe farlo con un'installazione vaniglia di Nginx.Posso echo un valore di intestazione della richiesta come corpo della risposta con vaniglia Nginx?

Fondamentalmente voglio fare quanto segue, ma ovviamente il numero return_body non esiste, quindi cosa posso usare invece?

location ~* ^/echo/(.+) { 
    return_body $1; 
} 

o

location /echo_user_agent { 
    return_body $http_user_agent; 
} 

se installo il modulo echo ho potuto sostituire return_body con echo, ma se possibile, sarebbe bello essere in grado di fare questo senza dover installare alcun extra, mi sembra che qualcosa di semplice come questo dovrebbe essere possibile fare a meno.

risposta

10

È possibile farlo con return 200:

location = /echo_user_agent { 
    return 200 $http_user_agent; 
} 
2

Usa ngx_lua module.

Ti piace questa:

body_filter_by_lua 'ngx.log(ngx.CRIT,ngx.arg[1])'; 

nella giusta posizione.

+0

+1 Il plugin Lua è immensamente potente. – opyate

0

prova questo add_header Path_Way1; ad es.

add_header Path_Way1 $1; 

dove $ 1 è il primo parametro percorso

Problemi correlati