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 型検出方法の例のチュートリアル

推薦する

ドメイン名を指定されたポートに転送するようにNginxを設定する方法

/usr/local/nginx/conf と入力する sudo cd /usr/local/ngi...

Linux での fuser コマンドの使用法の詳細な説明

説明する: fuser は、現在ディスク上のファイル、マウント ポイント、さらにはネットワーク ポー...

VMwareワークステーションとデバイス/資格情報の非互換性によって発生する起動エラーについて

VMware Workstationsが仮想マシンエラーを起動する エラー レポートのリンク htt...

Baidu サイト検索が https をサポートしていない問題の解決策 (テスト済み)

最近、携帯電話で https が有効になりました。緑色のロックを取得するには、次の問題を解決する必要...

Vue 名前付きスロットの基本的な使用例

序文名前付きスロットは、スロット内の「name」属性を使用して要素にバインドされます。知らせ: 1....

MySQLのネストされたトランザクションで発生する問題

MySQL はネストされたトランザクションをサポートしていますが、それを実行する人は多くありません....

表 td 画像水平および垂直中央揃えコード

HTMLコード:コードをコピーコードは次のとおりです。 <td align="cen...

JavaScript の onblur および onfocus イベントの詳細な説明

HTML ページでは、ボタンやテキスト ボックスなどの視覚要素にフォーカスを設定したり、フォーカスを...

角度でechartsマップを使用する詳細な説明

目次echartの初期化アプリベースチャートコンポーネントhtml CS app-base-char...

Tencent Cloudでhive3.1.2を構築する方法を教えます

環境の準備操作を開始する前に、hadoop バージョンがインストールされていることを確認してください...

MySQLで数千万のテストデータを素早く作成する方法

述べる:この記事で扱うデータ量は 100 万です。数千万のデータが必要な場合は、量を増やすだけで済み...

MySQL の一般的な日付比較および計算関数

MySql での時間比較の実装unix_timestamp() unix_timestamp 関数は...

JavaScript オブジェクトを作成する 3 つの方法

目次1. オブジェクトリテラル2. newキーワードはオブジェクトを作成する3. Object.cr...

少なくとも7日間連続して注文を行ったユーザーに対するSQLクエリ

テーブルを作成するテーブル order(id varchar(10),date datetime,o...

MySQL インジェクションにおける outfile、dumpfile、load_file 関数の詳細な説明

SQL インジェクション脆弱性を悪用する後期段階では、MySQL のファイル シリーズ関数を使用して...