私は直面している問題の例を見つけようとしましたが、これまで失敗しました。Nginxサーバー変数
nginxの設定(luaも含めることができます)では、同じサーバー内の複数の場所にある変数にアクセスしたいと考えています。つまり、私もそれを変更できるようにしたいと言いました。たとえば、私がこれを行う場合:
server {
set $asleep = 0;
location /go_to_sleep {
set $asleep = 1;
echo "sleepy";
}
location /status {
echo "are we asleep? $asleep";
}
}
基本的に私はparamsを使うことができません。私が変更できるローカル変数を持つ方法が欲しいです。私が持っている問題は、/ go_to_sleepエンドポイントに何度も何回かヒットした場合でも、/ statusは常に$ asleepを0として報告するということです。$ sleepは$ /level_sleepのロケーションエンドポイントに対してのみローカルに変更されているためです。私もluaブロックを使ってみましたが、同じ出力が得られます。
単にそれが可能ではないのか、誰かがこのようなことをどうやって動かせるように助けてくれるのだろうかと思います。
が
を使用することができます。ポール私はあなたの提案を試して、それは動作しましたが、これは私のために勝つので、任意のLUAファイルを持っている私の必要性を削除します。両方ともありがとうございます – godspeed20
共有ディクショナリとper-module-stateの使用には大きな違いがあります。nginxワーカーが複数ある場合、すべてのnginxワーカーはすべてのロード済みモジュールに独自のコピーを持っているため、最後の方法は機能しません。/go_to_sleepyリクエストはワーカー1によって処理されることがありますが、/ statusリクエストは他のワーカーによって処理される可能性があります。私にとっては、luaモジュールを必要としないためではなく、選択した共有辞書の理由のように見えます。 –