問題タブ [openresty]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
lua - openresty の Lua プラグインで uwsgi_pass を達成するにはどうすればよいですか?
特定の場所に一致する受信リクエストに対して、やや複雑なロジックを実行する必要があります。つまり、 に準拠するすべての URL に対してlocation ~* "^/([0-9a-f]{8}-([0-9a-f]{4}-){3}[0-9a-f]{12})/?$"
、次のことを行う必要があります。
- 管理者 Cookie が存在するかどうかを確認します。もしそうなら:
- URL の書き換え (
/<uuid>
->/mod/<uuid>
) - 実行
uwsgi_pass
- URL の書き換え (
- そうしないと:
- UUID に一致するエントリについて、postgres でルックアップを実行します。
- 使用可能なリダイレクト URL のエントリを検索します
- 選択した URL にクライアントをリダイレクトします
ビットcontent_by_lua_block
を除いて、これはすべて を使用してかなり簡単です。uwsgi_pass
Google は、この取り組みにおいて最も役に立たないことが証明されています...
uwsgi_pass
で を実行するにはどうすればよいcontent_by_lua_block
ですか?
nginx - Nginx - アップストリーム レスポンスへの対応
外部プロバイダーとのファイル ストレージ アップロードのリバース プロキシとして nginx を使用しています。ファイルのアップロードを処理しているとき、ユーザーに応答を返す前に、アップロードが成功したかどうかを (データベースで) 追跡する必要があります。したがってngx.location.capture
、lua-nginx-module で提供されているメソッドを使用して、リクエストの結果についてバックエンドと話したいと思います。アップストリーム サーバーの応答を待つ必要があるため、キャプチャは でのみ発行できますheader_filter_by_lua
。残念ながら、私は で外部通信を発行できませんheader_filter_by_lua
。ngx.location.capture
、応答がまだ到着していない場合にのみ使用できますngx.socket.*
。ngx.exec
nginx で上流の応答にどのように対応できますか?
私が考えた他のアプローチ:
- スクリプトでアクセス ログを監視してから、curl リクエストを発行します。(もっと簡単な方法があるはずです)
- 最初に content_by_lua の ngx.location.capture 経由でファイルを送信します (これは最大 5 GB のファイルサイズを処理するとは思いません)
助けていただければ幸いです:)
nginx - openresty インストールで CC コマンドが見つからない
私は Linux にあまり詳しくなく、nginx と nodejs について学び始めたばかりです。私は Windows で作業しているので、次のコマンドを実行して MinGW から openresty をインストールしようとしました。
しかし、次のエラーが表示されます。
インストールする必要がある追加の何かがありますか? GCC が存在し、そのバージョンは 3.4.4 (msys スペシャル)
json - Openresty カスタム json アクセス ログ
リクエストごとに JSON 文字列をアクセス ログに書き込みたいので、後で使用しやすくなります。
Lapis/Openresty によって公開された print() を使用していますが、タイムスタンプ、ログ レベル、および nginx ログ形式の一部であるその他の情報をオーバーライドしたいと考えています。
どうすれば上書きできますか?
erlang-otp - Erlang/OTP と OpenResty のアーキテクチャ上の違いは何ですか?
Erlang/OTP で、軽量プロセス、アクター モデル、およびスーパーバイザーが信頼できるサービスを作成する上でいかに重要であるかを読みました。これは OpenResty (マスター/ワーカー、非同期 IO、組み込み Lua) と比べてどうですか?
OpenResty が Erlang/OTP と一緒に (または代わりに) どのように使用されるかをよりよく理解するために、主な概念に関する一般的なアーキテクチャの概要に興味があります。
nginx - rewrite_by_lua_block 応答ヘッダーにパターンが含まれている場合、nginx は 200 を返します
応答にパターン付きのカスタム ヘッダーが含まれている場合にのみ、ある場所で 200 コードを返すように nginx が必要ですrewrite_by_lua_block
(Google コンピューティング エンジン バランサーのヘルスチェック用)。
私はluaの初心者なので、どんな助けでも大歓迎です。