2

これはServerFaultでサーバー化する方がよいかもしれませんが、特定の問題を解決できるかどうかを判断するために nginx を評価しています。

問題

FastCGI Cache で nginx の応答キャッシュを使用したいと考えています。しかし、Cookie の値を使用してキャッシュ キーを設定する必要があります。問題は、キャッシュ キーで使用する値を取得する前に、Cookie を復号化する必要があることです。

私が知っていること

nginx をキャッシュとして設定する方法を知っています ( fastcgi_cache)。また、キャッシュ キー ( ) でカスタム変数を設定して使用できることも知っていますfastcgi_cache_key。ただし、カスタム関数を呼び出して Cookie を復号化する方法がわかりません。nginx にはモジュールの概念があることは知っています。Lua との統合にも気付きました。

質問

復号化が C コードとして利用できる場合、nginx 構成からこの外部コードにアクセスして、その戻り値を使用できますか?

4

2 に答える 2

1

コードが C である限り、最も簡単な解決策は、変数に復号化された値を提供する単純な nginx モジュールを作成することです。変数を提供する方法の比較的単純な例はngx_http_secure_link_moduleにあります。

于 2012-12-12T22:32:18.637 に答える
0

Lua モジュールは、LuaJIT でコンパイルされている場合、実際に役立ちます。

Cookie とやり取りする方法の簡単な例については、こちらをご覧ください: http://mailman.nginx.org/pipermail/nginx/2011-January/024798.html

LuaJIT を使用すると、FFI を使用して C 復号化コードを呼び出すことができます: http://luajit.org/ext_ffi.html

もう 1 つの可能性は、すべてを C で行うことです。これはより高速かもしれませんが、おそらくより多くの作業が必要になるでしょう。

于 2012-12-11T11:51:59.817 に答える