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 ログインおよび終了コマンドの形式

推薦する

Vue2/vue3 ルーティング権限管理方法の例

1. Vueルーティングの権限制御には一般的に2つの方法がありますa. ルーティングメタ情報(メタ)...

Web面接におけるJS事前解析と変数プロモーションの違い

目次事前分析とは何ですか?変数と関数の準備の違いvar 変数の繰り返し宣言変数と関数の昇格の優先順位...

mysql8でルートユーザーのパスワードをリセットする手順を完了します

序文最近、多くの新しい同僚がこの質問をしてきました。特に、homebrew を通じて自動的にインスト...

Vue カプセル化コンポーネント アップロード画像コンポーネント

この記事の例では、参考のためにvueアップロード画像コンポーネントの具体的なコードを共有しています。...

JSはビデオの再生速度を制御するための簡単なサンプルコードを実装します

導入以前、ある問題に気づきました。学習ビデオを視聴しているとき、動きが遅すぎる、先生が黒板に書くのに...

MySQL 8.0.12 のインストールと環境変数の設定チュートリアル (Win10 の場合)

Windows 10 プラットフォームでの MySQL のインストール、構成、起動、ログイン、環境...

dockerでビルドしたnacos1.3.0の実装

1. nacosデータベースを再開します。データベース名nacos_configユーザー名とパスワー...

CentOS 7にMySQLをインストールする詳細な手順

CentOS7では、MySQLをインストールすると、MariaDBもデフォルトでインストールされます...

史上最も簡単な MySQL データのバックアップと復元のチュートリアル (パート 2) (パート 37)

データのバックアップと復元パート3の詳細は次のとおりです基本的な概念:バックアップ、現在のデータまた...

Link と @import の違いを詳しく見る

ページで CSS を使用する主な方法は、スタイル属性値をインラインで追加する方法、ページ ヘッダーで...

JSはreduce()メソッドを使用してツリー構造データを処理します

目次意味文法例1. 初期値initが渡されない2. 初期値を渡す場合3. アレイの重複排除4. Re...

Nginx のパフォーマンスを向上させるための提案

Web アプリケーションが 1 台のマシンでのみ実行される場合、パフォーマンスを向上させるのは非常に...

vscodeカスタムvueテンプレートの実装

vscode エディタを使用して vue テンプレートを作成すると、新しい vue ファイルを作成す...

Linux における nohup と & の使い方と違いの詳細な説明

例:例として、Python コード loop_hello.py を使用します。このコードは、ループ回...

Centos7.6にTomcat-8.5.39をインストールする方法

Centos7.6 に Tomcat-8.5.39 をインストールする方法は次のとおりです。詳細は次...