問題タブ [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.

0 投票する
1 に答える
1435 参照

nginx - パスを書き換え、パラメータを転送し、パラメータを追加する方法は?

This SO disucssionreturnは、コードを使用してURLを書き換えるときにパラメーターを転送するには、これに似ている必要があることを示しています

ここまでは順調ですね。しかし、クエリ文字列に任意の新しいパラメーターを追加するにはどうすればよいでしょうか? たとえばid=1

ソリューションは、少なくとも次の 3 つのケースをカバーする必要があります。

  1. 元のリクエストにはクエリ パラメータがありません
  2. 元のリクエストにはクエリ パラメータがありますが、追加されるパラメータはありません
  3. 元のリクエストには、クエリ パラメータがすでに追加されています
0 投票する
1 に答える
1680 参照

nginx - Nginxは特定のディレクトリでphpを実行しません

これは私のnginx構成ファイルです

問題は、php ファイルが api ディレクトリの下で実行されないことです。http://localhost:90/api/v2/initに接続すると、書き換えルールによって呼び出される main.php ファイルのソース コードが返されます。

場所 ~* /api {

}

メインルートの下にtest.phpファイルを作成しましたが、動作するので、その書き換えルールに問題があるはずです。一般的に、/api/v2/entry/23224 のようなすべての API 呼び出しを /api/v2/main.php ファイルに渡す必要があります。

0 投票する
0 に答える
508 参照

windows - Nginx の場所のルートをオーバーライドできないのはなぜですか (windows)?

Windowsサーバー用のnginxでビデオストリーミングを使用したいです。私はこのnginx設定を持っています:

この構成で最も重要なことは次のとおりです。

リクエストhttp://host:port/!/scorms.ecp/27/TESTC/1/1/images/pravilo2.mp4を送信します。error.log には次のものがあります。

nginx が「D:\video/TESTC/pravilo11.mp4」ではなく「D:\PAPISDK_4_T\nginx-1.10.0/html/TESTC/pravilo11.mp4」を検索しようとする理由がわかりません。「root D:\video;」を使ってみた 同じエラーを受け取りました。また、「root」の代わりに「alias」を使用しようとしましたが、次のエラーが発生しました。

「D:\PAPISDK_4_T\nginx-1.10.0/html/TESTC/pravilo11.mp4」ではなく、次のパス「D:\video/TESTC/pravilo11.mp4」でビデオ ファイルを検索するように Windows の nginx 構成を調整するにはどうすればよいですか?

0 投票する
1 に答える
953 参照

nginx - nginx proxy_pass は間違ったバックエンドの場所にルーティングします

私は走っています

私が達成しようとしているのは;

  1. リクエストはhttp://my.frontend.com/goto/mytokenからです
  2. http://my.backend.com:5202/goto/mytokenで処理してほしい
  3. 制限は、/goto/ トラフィックのみがバックエンドに転送され、フロントエンド URL に /goto/ がない場合、404 リターン、つまりhttp://my.frontend.comである必要があります。

gotoは静的で、mytokenはリクエストごとに異なります (バックエンドに認識されています)。

このシナリオのサーバー定義は次のとおりです。

しかし、問題は次のとおりです。access.log によると、私の URI /goto/mytoken は正常に構築されているようですが、バックエンドは 404 を返します

xxxx - - [27/May/2016:13:01:56 +0000] "GET /goto/7328372837182382938 HTTP/1.1" 404 69 " http://mywebsite.com/index.html " "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (Gecko のような KHTML) Chrome/50.0.2661.102 Safari/537.36"

以下がある場合、つまり場所に /goto/ がない場合、同じシナリオがうまく機能します。

ここでヒントをいただければ幸いです。

0 投票する
0 に答える
1310 参照

ssl - Nginx は、場所 (nginx.conf) でプレースホルダーを使用します

nginx をリバース SSL プロキシとして使用したい。

複数の API を持つリセット サービスがあり、場所の構成にプレース ホルダーがあり、それを proxy_pass で使用したい

どうすればいいですか?

0 投票する
2 に答える
4419 参照

reverse-proxy - nginx 正規表現ロケーション マッチングを使用して、URI を複数のリバース プロキシの異なるポートに動的にマッピングする

nginx を使用して、ファイアウォールの背後にある可能性のある Web アプリへのリバース プロキシを作成しています。私の最初の概念実証では、次のロケーション ブロックを使用して動作を確認しました。

を使用して、Web アプリでリバース トンネルを開きssh -f -N -T -R2222:localhost:443 user@nginx-ipます。これは私が好きなように正確に機能します。nginx-ipブラウザにmy と入力すると、Web アプリから https トラフィックが取得されますがnginx-ip、 などによって難読化されています。

数千のポート (上記の場合の 2222 ではなく) を介して、潜在的に数千のリバース トンネルを許可したいと考えています。nginx を読んで、正規表現を使用して、ポート番号を含む URI を動的に使用し、その特定のポートに proxy_pass することを考えました。

つまり、I'd like https://nginx-ip/2222/toproxy_pass https://localhost:2222;と I'd like https://nginx-ip/1111/to proxy_pass https://localhost:1111;.

私はかなりの数のバリエーションを試しましたが、私が推論できる限り、これがうまくいくはずだと考えました:

そうではありません。ブラウザに 502 Bad Gateway が表示され、エラー ログに次のように表示されます。

2016/05/31 21:02:36 [エラー] 6188#0: *3584 localhost を解決するためのリゾルバーが定義されていません, クライアント: {my-client-ip}, サーバー: localhost, リクエスト: "GET /2222/ HTTP/1.1 "、ホスト: "{nginx-ip}"

127.0.0.1代わりに使用するlocalhostと404が返されます。Webページには次のように書かれています

見つかりません 要求された URL /2222/ がこのサーバーで見つかりませんでした。

私が試みていることはnginx構成で可能ですか?

繰り返しますが、nginx Web サーバーを介して多数 (数千) の固有のリバース トンネルを開始できるようにしたいと考えています。私の最初の考えは、プロキシしたい他のWebアプリに基づいてnginxサーバーの発信ポートを変更し、nginxサーバーへのリクエストをURIのポートによって別のポートに割り当てることでした(正規表現経由で抽出) .

0 投票する
1 に答える
151 参照

php - Nginx 動的リクエスト

にページがありますexample.com/fruit.php。このページはISSET()、パラメーターを解析して、ユーザーに何を表示するかを決定するために使用します。たとえば、example.com/fruit.php?name=apple&color=red. これは簡単に行うことができますが、リクエストは次のようにページに表示されるようにしたいと思います。

パラメータが 2 つしかないことがわかっているので、URL を簡単に解析してページを作成できます。ただし、example.com/fruitページ自体がURLを解析できるように、URLの背後にあるすべてのリクエストをfruit.phpに送信するようにnginxを構成するにはどうすればよいですか。これが私のロケーションブロックで試したことです:

これは私にはうまくいきません。私はそれを理解しようとして約 1 日を費やしました。どんな助けでも大歓迎です。