3

redis2-nginx-moduleを使用して、 に値として保存されている html コンテンツを提供していますredis。以下は、nginxredis からキーの値を取得するための構成コードです。

  redis2_query get $fullkey;                                     
  redis2_pass     localhost:6379;                                
  #default_type text/html;

URL がヒットすると、次の不要な応答がそのキーの値とともにレンダリングされます。

$14

この不要な出力を削除するには? また、引数として渡されたキーが redis に存在しない場合、この条件を確認してデフォルト ページを表示するにはどうすればよいですか?

4

1 に答える 1

0

これは ServerFault に関する同様の質問です

常に生の Redis レスポンスを返すため、redis2 モジュールだけでは方法がありません。

GETとコマンドのみが必要な場合SETは、HttpRedisModule ( redis_pass) を試すことができます。ハッシュのようなもっと手の込んだものが必要な場合は、おそらく、Redis からの生の応答を Luaでフィルタリングしてみてください。たとえば、次のようなものです。

content_by_lua '
    local res = ngx.location.capture("/redis",
        { args = { key = ngx.var.fullkey } }
    )
    local body = res.body
    local s, e = string.find(body, "\r\n", 1, true)
    ngx.print(string.sub(body, e + 1))
';

(申し訳ありませんが、コードはテストされておらず、手元に OpenResty インスタンスがありません。)

于 2016-05-13T14:42:01.850 に答える