2011-12-14 134 views
6

是否可以配置Nginx返回从请求头或请求参数创建的响应主体?看起来这可以通过echo模块完成,但如果可能的话,我想用一个Nginx的香草安装来完成。我可以使用vanilla Nginx作为响应主体来响应请求标头值吗?

基本上我想要做以下事情,但显然return_body不存在,所以我可以用什么来代替?

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

location /echo_user_agent { 
    return_body $http_user_agent; 
} 

如果我安装echo模块,我可以用echo取代return_body,但如果可能的话这将是很好能够做到这一点,而无需安装任何额外消费,在我看来,像这样简单的事情应该是可能的。

回答

10

你可以用return 200做到这一点:

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

使用ngx_lua module

像这样:

body_filter_by_lua 'ngx.log(ngx.CRIT,ngx.arg[1])'; 
在正确的位置

+0

+1的Lua插件是非常强大的。 – opyate 2014-01-22 07:24:16

0

试试这个 add_header Path_Way1; 例如

add_header Path_Way1 $1; 

1,其中$是第一个路径参数