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

推薦する

jsは多次元配列を1次元配列に変換し、それを並べ替えます

目次まず多次元配列の平坦化についてお話しましょう方法 1: flat()方法 2: 空の文字列を連結...

JavaScriptはクリックするとランダムなグラフィックを生成します

この記事では、クリックするとランダムグラフィックの生成を実現するJavaScriptの具体的なコード...

Jenkins を通じて None のイメージを定期的にクリーンアップする方法

序文継続的なコード配信のプロセスで、Jenkins を利用して Docker イメージを作成すると、...

CSSアニメーション効果アニメーションの一般的なスタイル

アニメーションアニメーションを定義します。 /*アニメーションの各ステップで実行されるアクションを定...

MySQL ステートメントを使用して、さまざまな整数が占めるバイト数とその最大値と最小値を調べる例

直接コード: タイプとして「bigint unsigned」、バイトとして「8」、max_numとし...

MySQLの7種類のログの概要

MySQL には次のログ ファイルがあります。 1: 再実行ログ2: ロールバックログ(元に戻すログ...

HTMLおよびJSPページがキャッシュされ、Webサーバーから再取得されるのを防ぎます。

ユーザーがログアウトした後、ブラウザの戻るボタンがクリックされると、Web アプリケーションは保護さ...

組み込み Linux 開発環境で ping と nfs を構築するためのソリューション

1. 組み込みソフトウェアレベル 1) ブートローダ -> ブートローダ組み込みシステム全体の...

Vueタブとキャッシュページを切り替えるいくつかの方法

目次1. 切り替え方法2. タブを動的に生成する3. キャッシュコンポーネント3.1 キープアライブ...

Baota LinuxパネルにFTP接続できない問題の解決方法の詳細な説明

Alibaba Cloud Server を使用している場合は、セキュリティ グループ設定でポート ...

mysqlは複数の主キーを設定する操作を実装します

ユーザーテーブル、ID番号は一意である必要があります、携帯電話番号、電子メールアドレスは一意である必...

MySQL マスタースレーブステータスチェックの実装

1. AデータベースとBデータベースの同期ステータスを確認する次のコマンドを入力すると多くの情報が表...

VMware esxi6.5 のインストールと使用の詳細な手順

目次導入建築ESXIの利点vSphere とは何ですか? 2. 仮想マシンの利点3. 仮想マシンを使...

Nginx ロードバランシングの設定方法

目次Nginx 負荷分散構成Nginx 負荷分散戦略ポーリング(デフォルト)重さip_ハッシュ公正(...

Tomcat 7.0 で仮想ディレクトリを設定し、仮想パスを構成する方法

Tomcat7.0は仮想ディレクトリを設定します(1)現在、当社のウェブサイトはデフォルトのディレク...