nginx のロケーションで URI の傍受を実装する方法

nginx のロケーションで URI の傍受を実装する方法

例:

場所のルートとエイリアス

  • ルートディレクティブは、ルートによって設定されたディレクトリに検索ルートを設定するだけです。つまり、URIを切り捨てるのではなく、元のURIを使用してディレクトリにジャンプし、ファイルを検索します。
  • aiasディレクティブは、一致するURIを切り捨て、aliasで設定されたパスと残りのURIを検索のサブパスとして使用します。

場所のproxy_passのuri

proxy_pass urlにuriが含まれていない場合

  • 末尾の文字が「/」の場合、一致する URI は切り捨てられます。
  • 末尾の文字が「/」でない場合、一致する URI は切り捨てられません。

proxy_pass の URL に URI がある場合、一致する URI は切り捨てられます。


ルートの場所

root@pts/1 $ ls -ld /data/web/lctest*|awk '{print $NF}'
/データ/ウェブ/lctest
/データ/ウェブ/lctest2
/データ/ウェブ/lctest3
/データ/ウェブ/lctest4


場所 /lctest {
  ルート /data/web/;
}

場所 /lctest2/ {
  ルート /data/web/;
}
場所 /lctest3 {
  ルート /data/web;
}
場所 /lctest4/ {
  ルート /data/web;
}

カールテストの結果は次のとおりです

注: ブラウザに入力するときに末尾に / を追加しないと、自動的に追加されますが、curl では追加されません。

root@pts/1 $ curl http://tapi.xxxx.com/lctest/
こんにちは世界

root@pts/1 $ curl http://tapi.xxxx.com/lctest2/
こんにちは世界
2

root@pts/1 $ curl http://tapi.xxxx.com/lctest3/
3
こんにちは世界

root@pts/1 $ curl http://tapi.xxxx.com/lctest4/
こんにちは世界
4

場所の別名

場所 /lctest5 {
  エイリアス /data/web/;
}
場所 /lctest6/ {
  エイリアス /data/web/;
}

場所 /lctest7 {
  エイリアス /data/web;
}

## 403 /data/web は禁止されています
場所 /lctest8/ {
  エイリアス /data/web;
}

カールテストの結果は次のとおりです

'http://tapi.kaishustory.com/lctest5/' を curl します。
'http://tapi.kaishustory.com/lctest6/' を curl します。
'http://tapi.kaishustory.com/lctest7/' を curl します。
結果はすべて /data/web/index.html 出力 root@pts/1 $ curl 'http://tapi.kaishustory.com/lctest8/' です
<html>
<head><title>403 禁止</title></head>
<body bgcolor="white">
<center><h1>403 禁止</h1></center>
<hr><center>nginx</center>
</本文>
</html>

場所 proxy_pass

#--------proxy_pass 設定---------------------
location /t1/ { proxy_pass http://servers; } #通常、切り捨てられていない location /t2/ { proxy_pass http://servers/; } #通常、切り捨てられている location /t3 { proxy_pass http://servers; } #通常、切り捨てられている location /t4 { proxy_pass http://servers/; } #通常、切り捨てられている location /t5/ { proxy_pass http://servers/test/; } #通常、切り捨てられている location /t6/ { proxy_pass http://servers/test; } #「/」が欠落しているため切り捨てられている location /t7 { proxy_pass http://servers/test/; } #「//」が含まれているため切り捨てられている location /t8 { proxy_pass http://servers/test; } #通常、切り捨てられている

テストスクリプト

i が $(seq 8) の場合
する
  url=http://tapi.xxxx.com/t$i/doc/index.html
  エコー "----------$url------------"
  カールURL
終わり

テスト結果

----------http://tapi.xxxx.com/t1/doc/index.html------------
ドキュメント

----------http://tapi.xxxx.com/t2/doc/index.html------------
ドキュメント

----------http://tapi.xxxx.com/t3/doc/index.html------------
ドキュメント

----------http://tapi.xxxx.com/t4/doc/index.html-------------
ドキュメント

----------http://tapi.xxxx.com/t5/doc/index.html------------
/テスト/ドキュメント/インデックス.html

----------http://tapi.xxxx.com/t6/doc/index.html------------
/テストドキュメント/index.html

----------http://tapi.xxxx.com/t7/doc/index.html-------------
/テスト//doc/index.html

----------http://tapi.xxxx.com/t8/doc/index.html-------------
/テスト/ドキュメント/インデックス.html

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

以下もご興味があるかもしれません:
  • Nginx 構成ディレクティブの場所マッチャーの優先順位とセキュリティの問題
  • Nginx サーバーにおけるロケーション設定の詳細な説明
  • Nginx ロケーションマッチングルールの詳細な説明
  • Nginx サーバーにおけるロケーション設定の基本的なポイントの分析
  • Nginxサーバのロケーションディレクティブマッチングルールの詳細な説明
  • Nginx ロケーション設定の詳細な説明
  • Nginx の Location ディレクティブの簡単なガイド
  • Nginx のロケーション マッチング ルールの概要
  • nginx 設定の場所の概要の場所の通常の書き込みと書き換えルールの書き込み
  • Nginx ロケーションマッチングルールの例

<<:  CentOS での MySQL ワークベンチのインストールと設定のチュートリアル

>>:  JavaScript 型検出方法の例のチュートリアル

推薦する

Vue 画像切り抜きコンポーネントのサンプルコード

例:ヒント:このコンポーネントはvue-cropperの二次パッケージに基づいていますプラグインをイ...

Element+vueを使用して開始時間と終了時間の制限を実装する

この記事の例では、Element+vueを使用して開始と終了の時間制限を実装するための具体的なコード...

XHTML チュートリアル: 初心者のための XHTML の基礎

<br />当サイトのオリジナルコンテンツですので、転載の際は出典を123WORDPRE...

Tomcat サーバーが tomcat7w.exe を開けない場合の解決策

今日、Tomcat サーバーの設定時にちょっとした問題が発生したので、参考までにいくつかご説明したい...

IE8 互換性について: X-UA-compatible 属性の説明

問題の説明:コードをコピーコードは次のとおりです。 <meta http-equiv=&quo...

HTML の title 属性を正しく使用するためのヒント

コンテンツを携帯電話、タブレット、支援技術のユーザーから非表示にし、キーボードのユーザーにのみ表示す...

Docker での WSL の構成と変更の問題について

https://docs.microsoft.com/ja-jp/windows/wsl/wsl-...

DIV の一般的なタスク (パート 1) — 一般的なタスク (スクロール バーの表示、div の非表示、イベント バブリングの無効化など)

最も一般的に使用されるレイアウト要素として、DIV は Web 開発において重要な役割を果たします。...

zabbix 4.04 の詳細なインストール チュートリアル (CentOS 7.6 ベース)

1. インストール前の準備: 1.1 JDKをインストールするopenjdkをアンインストールする...

Clickhouse Docker クラスターの展開と構成を例を使って説明します

目次前面に書かれた環境の展開Zookeeper クラスタの展開Clickhouse クラスターの展開...

Tomcat+Mysql の高同時実行構成の最適化の説明

1.Tomcatの最適化構成(1)Tomcatのcatalina.batを変更するJavaをサーバー...

MySQLが間違ったインデックスを選択する理由と解決策

MySQL では、テーブルに複数のインデックスを指定できますが、ステートメントの実行時に、使用するイ...

JS 4つの楽しいハッカー背景効果コードを共有する

目次例1例2例3例4例1 <html> <ヘッド> <title>...

Dockerイメージのローカル移行の実装

最近 Docker を勉強しているのですが、よく問題に遭遇します。Docker イメージをダウンロー...

MySQL 接続とコレクションの簡単な分析

結合クエリ結合クエリとは、2 つ以上のテーブル間のマッチング クエリを指し、一般的には水平操作と呼ば...