問題タブ [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.
nginx - HTTP アクションと URL プレフィックスの両方に応じて content_by_lua nginx ディレクティブにルーティングする方法は?
nginx サーバーに送信されたすべてのリクエストをデフォルトでバックエンド アプリケーションにルーティングしたいのですが、GET HTTP 動詞を含む API リクエストを、content_by_lua
nginx ディレクティブに基づく OpenResty Lua ベースの REST API に選択的に送信したいと考えています。
次の構成を使用して、URL プレフィックスに基づいてすべての API 要求を Lua API に正常にルーティングできます (これは HTTP 動詞を考慮していないことに注意してください)。
しかし、上で述べたように、GET 以外の HTTP 動詞 (POST、PUT、DELETE など) を含むすべてのリクエストが引き続きバックエンドにルーティングされ、GET リクエストのみがルーティングされるように、API リクエストをさらに制限したいと思います。 Lua API の場所に移動します。
他のいくつかの投稿、ブログ、およびドキュメントに基づいて (そしてディレクティブが嫌われていると聞いて) 、if
ディレクティブを使用してみましたが、ディレクティブがブロック用に設計されていないようlimit_except
に見えるため、起動時に nginx サーバーがクラッシュしました。これが私の試みでした:content_by_lua
limit_except
すぐにクラッシュしました
ディレクティブに委任するときに、URL プレフィックスとHTTP 動詞の両方に基づいて nginx で選択的にルーティングする最良の方法は何ですか?content_by_lua
module - OpenResty require はモジュールを見つけることができません
Apache にひどく失敗した後、私は OpenResty ルートに進むことにしました。これまでのところ、Lua コードは実行されていますが、コードを読みやすくするために、生成を複数のモジュールに分けることにしました。
ファイルを要求するいくつかの方法を試しました。- /scripts/ ディレクトリから 1 つのファイルを取り出し、それをルート ディレクトリに移動しましたが、ファイルが見つかりません - 事前にピリオドなし/なしで /scripts/ ディレクトリを参照しようとしましたが、すべて役に立ちませんでした. モジュールが見つからないだけです。
これらのファイルを見つけるために必要な特別なトリックはありますか?
エラー ログからの抜粋を次に示します。