Nginx ローカル ディレクトリ マッピング実装コード例

Nginx ローカル ディレクトリ マッピング実装コード例

他のデバイスの画像をローカルディレクトリにマウントするなど、サーバー上の静的リソースにアクセスする必要があり、ローカルディレクトリが nginx ルートディレクトリにない場合があります。このとき、ディレクトリマッピングを行うだけで解決できます。たとえば、ブラウザの upload/2022/web/abc.jpg を介してシステムディレクトリ /image_data/2016/04/29/10/abc.jpg にアクセスする場合は、nginx.conf の対応するサーバー {} の下に場所ルールを追加する必要があります。設定は次のとおりです。

場所 /画像/ {
      根 /;
      ^/image/(.*)$ /image_data/$1 を書き換えて、break;
    }

location /image/ は、サーバーが /image/ を含むリクエストをインターセプトするように設定します。実際の範囲は実際の状況によって決まります。

root /; は使用するルートディレクトリを設定します。rewrite は実際のジャンプルールです。image で始まるリクエストを /image_data で始まるルートディレクトリにジャンプするように設定します。以下のパラメータはそのまま追加され、ディレクトリマッピングを実現します。

上記のルールを使用すると、静的アクセスのために複数のローカル ディレクトリに簡単にマップできます。

保存後、./nginx -s reload を使用して設定ファイルを再読み込みし、指定された URL にアクセスします。

さらに、特定のアクセス パスをプロキシするなど、正確なプロキシを柔軟に設定することもできます。たとえば、http://ip/abc/bcd/123.ico にアクセスする場合、それを /web/host1/123.ico にマッピングし、次のルールを設定できます。

場所 /abc/bcd/123.ico {
  根 /;
  ^/abc/bcd/123.ico$ /web/host1/123.ico を書き換えて、break;
}

上記は、正確なパス プロキシを実装します。上記の root 設定はルート ディレクトリであるため、/web/host1 はファイル システム パスであり、Web ホストの仮想ディレクトリではないことに注意してください。root が指定されていない場合は、前の server ブロックで指定されたグローバル ルート値が優先されます。各 location ブロックの属性のスコープはこのブロック内のみです。

さらに、複数のプロキシ パスに実際の Web パスまたはプロキシ パスを介してアクセスできるため、さまざまなビジネス ニーズに応じてプロキシを設定できます。これにより、nginx 自体が多くの実用的で使いやすい機能を実現できます。

以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。

以下もご興味があるかもしれません:
  • nginxリバースプロキシのマルチポートマッピングの実装
  • Nginx ポートマッピングの設定方法
  • nginx でディレクトリ ホワイトリストと IP ホワイトリストを設定する方法
  • Centos7 に nginx をインストールした後、conf.d ディレクトリに default.conf ファイルがないために「Welcome to nginx on Fedora!」というエラーが表示される問題を解決します。
  • Linuxシステムで実行中のnginxディレクトリを見つける
  • 指定したディレクトリに nginx をインストールする方法の例
  • nginxディレクトリパスをリダイレクトする方法
  • NGINX を介したサブディレクトリまたはセカンダリディレクトリへの Vue のデプロイメントの詳細な説明

<<:  JS でオブジェクト プロパティを簡単にトラバースするいくつかの方法

>>:  MySQL ログインおよび終了コマンドの形式

推薦する

JSコードコンパイラMonacoの使い方

序文私が必要としているのは、構文の強調表示、関数プロンプト、自動行折り返し、およびコードの折りたたみ...

MySQL解凍版のインストール手順の詳しい説明

1. 公式サイトにアクセスします: D:\mysql-5.7.21-winx64\bin をダウンロ...

Linux サーバーのクイックアンインストールとノード環境のインストール (簡単に始められます)

1.まずnpmをアンインストールする sudo npm アンインストール npm -g 2. ノー...

Vue シンプル登録ページ + 確認コード送信機能の実装例

目次1. エフェクト表示2. 検証コードとメールプッシュ管理の強化(後述のブログを参照) 3. 一般...

JavaScript のショートカットのヒント

目次1. 配列を結合する2. 配列をマージする(最初に) 3. 配列の複製4. 構造化分解割り当て5...

CSS3 でテキスト ストロークを実装する 2 つの方法 (要約)

質問最近、以下に示すように、テキストストローク効果を実現するという要件に遭遇しました。 解決策1まず...

HTML タグのカスタム属性に関する質問

以前の開発では、クラス、名前などの HTML のデフォルト属性を使用していました。 Huawei社の...

ES6拡張演算子の理解と使用シナリオ

目次1. 適用メソッドを置き換え、関数を呼び出すときにパラメータを処理する2. 残りパラメータ(残り...

CSS3 グラデーション背景の互換性の問題

グラデーションの背景色を作成するときは、 linear-gradient() 関数を使用して線形グラ...

CSS における z-index: 0 と z-index: auto の違い

最近、スタック コンテキストについて学習しています。学習の過程で、z-index が 0 の場合と ...

ウェブページレイアウトに関する9つのヒント

<br />関連記事: Web コンテンツ ページ作成に関する 9 つの実用的な提案 W...

Centos7サーバーの基本的なセキュリティ設定手順

pingスキャンをオフにする(役に立たないが)まずルートに切り替えるエコー 1 > /proc...

ウェブマスターが注目すべき、ウェブサイトのユーザビリティを向上させる 9 つのコード最適化のヒント

1. ロゴに代替テキストを追加するこれには 2 つの利点があります。スクリーン リーダーがロゴ画像の...

Linux での tcpdump コマンド例の詳細な説明

序文簡単に言えば、tcpdump は、ネットワーク上のトラフィックをダンプし、ユーザーの定義に従って...

Vue3 での provide と injection の使用

1. provideとinjectの説明Provide と Inject により、ネストされたコンポ...