問題タブ [nginx-location]
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 - nginx リダイレクト /?p=123 スタイル リンクを作成する安全でパフォーマンスの高い方法
foo.com/?p=123
nginx 301-redirect ワードプレススタイルのリンクを固定 URLに作成しようとしています。
If is悪と他のドキュメントから、危険なステートメントがパラメーターに基づいてリダイレクトする唯一の方法であることを収集し、if
このような構成が仕事を成し遂げるように見えることがわかりました:
if
ただし、この種の構成では、トップレベルのリクエストを解決するためだけにnginx がこれらすべてのステートメントを処理する必要があると思いfoo.com/
ますが、これはおそらく理想的ではありません。
if
ステートメントの危険性/コストを最小限に抑えながら、このようなリダイレクトの大きなリストをハードコーディングする「正しい」方法は何ですか?
nginx - nginx: サブフォルダーに vimbadmin をインストールします
vimbadmin をサブフォルダーにインストールしようとしましたが、できません。どのような構成を使用しても、vimbadmin は機能しません。これが私の最後の設定です
しかし、nginxは私にエラーを返します: 403 -
*14 stderr で送信された FastCGI: アップストリームからの応答ヘッダーの読み取り中に「プライマリ スクリプトが不明です」、クライアント: 90.154.205.85、サーバー: mail.devx.biz、リクエスト: "GET /vimbadmin/ HTTP/1.1"、アップストリーム: "fastcgi: //unix:/var/run/php5-fpm.sock:"、ホスト: "mail.example.com"
どれだけ大変か想像もつきませんでした。これは、ドメイン/サブドメインで完全に機能する元のnginx構成です。
それを行うためのアドバイスや設定例を教えてもらえますか?
nginx - proxy_pass を使用した nginx リダイレクト
ローカル マシンで実行されている nginx のプロキシ サーバー構成が機能しています。これは docker で実行されており、ゴースト ブログのローカル インスタンスを提供している node.js インスタンスも同様です。
古いブログ エンジンから移行したばかりなので、URL が変更されたため、新しい URL スキームに 301 (永続的) リダイレクトを返すように nginx を構成したいと考えています。rewrite
両方を使用してみproxy_redirect
ましたが、どちらの場合も 401 エラーが発生します。これが私のdefault.confです
rewrite または proxy_redirect ディレクティブのコメントを外しても、何も起こりません。リクエストは node.js に転送され、404 が返されます。
次のように複数の場所ディレクティブを使用する場合:
nginx から 404 を受け取り、リクエストが node.js に送信されません。
nginx - nginx の場所を検索する前に、バックエンド サーバーからファイルを取得して保存できますか?
問題
次の構成を使用して、.mp4 ファイルをストリーミングするために Nginx Plus で HLS モジュールを使用しています。
.mp4 ファイルが に存在する場合、すべて正常に動作します/var/www/vod/cache
。クライアントが要求するhttp://example.com/hls/file.mp4.m3u8
と、HLS モジュールはオンザフライで m3u8 プレイリストを生成して返します。
ただし、すべての mp4 ファイルをストリーミング サーバーに保存するのではなく、バックエンド ストレージ サーバーにファイルを保存したいと考えています。理想的には、mp4 ファイルはストレージ サーバーからのみ取得され、クライアントが特定のビデオを要求したときにローカルに保存されます (後で cron ジョブによって削除されます)。proxy_store を使用すると、mp4 ファイルを取得し、次のような構成を使用してローカルに保存できます。
proxy_pass を使用する際の問題は、nginx が m3u8 プレイリストではなく、mp4 ファイルをクライアントに直接返すことです。
nginxでmp4ファイルを取得して保存し、HLSモジュールを使用してm3u8プレイリストファイルを生成することは可能ですか? または別の言い方をすれば、mp4 ファイルの存在を確認し、見つからない場合は取得して保存し、HLS モジュールを使用してファイルをストリーミングする /hls の場所にアクセスできますか?
これはNginx Plusなので、モジュールを書くことができません。含まれているモジュールのみを使用できます。こちらを参照してください https://www.nginx.com/products/technical-specs/
nginx - nginx の「rewrite」ディレクティブがリダイレクト ループを引き起こしているのはなぜですか?
次の http ブロックを指定すると、nginx は期待どおりに動作します。つまり、http://localhost/3ba48599-8be8-4326-8bd0-1ac6591c2041/
toなどの URL を書き換えhttp://localhost/modif/3ba48599-8be8-4326-8bd0-1ac6591c2041/
て uwsgi サーバーに渡します。
しかし、下に表示されている方法で別のブロックを追加するlocation
と、物事が崩壊し、ERR_TOO_MANY_REDIRECTS
.
ここで何が起こっているのですか?どうすればこれを修正できますか?