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

推薦する

DockerとFastDFSのインストールコマンドと使い方の詳しい説明

Dockerの機能1) すぐに始められるユーザーがプログラムを「Docker 化」するには、わずか数...

NginxはIP経由の直接アクセスを禁止し、カスタム500ページにリダイレクトします

設定ファイルに直接 サーバー{ listen 80 default; # IPへの直接アクセスを禁止...

Mac M1 での Nginx のマルチサイト構成の実装

注: nginxはbrew経由でインストールされますウェブサイトのルートディレクトリ: /opt/h...

HTMLにリンクを挿入する方法

各 Web ページには、URL () で識別されるアドレスがあります。通常、Web サイト内でリンク...

閲覧時に作成されたWebページの下部にある余分な空白スペースを削除する方法

Dreamweaver または FrontPage を使用して HTML Web ページを作成する場...

フレックスレイアウトとposition:absolute/fixedの競合の詳細な説明

以前、プロジェクトを開発しているときに、flex レイアウトと position:absolute/...

WeChatアプレットがSMSログインを実装

目次1. インターフェース効果のプレビュー2.uViewのインストール3.uViewの設定3.1 m...

時間のかかるDockerエラーのトラブルシューティングプロセス記録

目次起源環境情報トラブルシューティングのプロセス要約する起源顧客は CentOS をベースにしたカス...

Ubuntu 16.04 サーバーで MySQL を設定し、リモート接続を有効にする方法

背景最近、Node.js を勉強しているのですが、クラウド サーバーがあることを思い出しました。しか...

中国語と英語のフォント名の比較表(FounderとArphicを含む)

CSS ファイルでは、フォント名が文字化けしていることがよくあります。これは、作成者が中国語フォン...

Ubuntu での CUDA と CUDNN のインストールとアンインストールの実装

目次序文グラフィックドライバーをインストールするCUDAをアンインストールするCUDAをインストール...

Ubuntu ブート自動起動サービス設定

Ubuntu でサービスを作成し、自動的に起動する方法: 1. [/lib/systemd/syst...

WeChat アプレットのシンプルなログイン ページの実装 (ソース コード付き)

目次1. 上の写真2. ユーザーが存在しない3. コードをアップロードする1. 上の写真 2. ユー...

Linuxでテキスト比較を実現するコツを教えます

序文コードを書く過程で、必然的にコードに何らかの変更を加えることになります。しかし、変更を加えるとき...

MySQL データベースのバックアップとリカバリの実装コード

データベースのバックアップ #文法: # mysqldump -h server-u usernam...