一般的な Nginx のテクニックと例の概要

一般的な Nginx のテクニックと例の概要

1. 複数サーバーの優先順位

たとえば、各サーバー ブロックがポート 80 をリッスンする場合、www.pm.com はサーバー IP アドレスに対応し、一致する順序は次のようになります。

①server_nameがwww.pm.comと全く同じブロック。

②server_nameが*.pm.comであるブロック。 (ワイルドカードが先)

③server_nameがpm.*であるブロック。 (後ろにワイルドカード)

④server_nameは正規表現を使用し、www.pm.comのブロックに一致させることができます。

⑤一致するものが見つからない場合は、listen 80 default_server;のブロックが選択されます。

⑥項目5がない場合は、最初の設定ファイルの最初のサーバーブロックを選択します。

ドメイン名 www.pm.com にアクセスすると、上記のサーバーが優先されます。

このときIPでアクセスするとリクエストヘッダーのHostフィールドの値が192.168.1.7となり、server_nameにマッチできません。ルールにしたがって以下のサーバーにマッチすることになります。

2. IPアクセスを禁止する

IP アクセスを禁止すると、他のユーザーが悪意を持ってドメイン名を自分の IP に解決することを防ぐことができます。

2 つの形式:

注意: 最初の方法では default_server を使用する必要があります。他の場所で default_server を使用する必要がある場合は、2 番目の方法を使用できます。

3. include をもっと頻繁に使う(良いコメントを書く)

1 台のサーバーで複数のサーバー Web サイトを構成すると、メイン構成ファイル nginx.conf が非常に肥大化し、読みにくくなります。この場合、include メソッドをより頻繁に使用して、メイン構成ファイルを簡素化し、運用および保守担当者が保守しやすくなります。

4. エイリアスを使用してウェブサイトの実際のディレクトリ構造を保護する

http://www.pm.com/image/logo.png にある画像にアクセスすると、訪問者は画像へのパスを知ることができます。

場所 / 画像 {

ルート /pm_code;

}

対応するパスは/pm_code/image/です。

エイリアスを使用する場合:

場所 / 画像 {

エイリアス /pm_code;

}

このとき、イメージの実際の場所は /pm_code の下にあり、/image は仮想ディレクトリであり、エイリアスの後には絶対ディレクトリ パスが続きます。

5. Error_page の設定

404エラーをシミュレートする

http://www.pm.com/jfkdjfk などの存在しない URL を入力すると、/pm_code/www/404.jpg にジャンプします。

502エラーをシミュレートする

ブラウザにwww.pm.comと入力すると、リンクがタイムアウトし、/pm_code/www/500.jpgが表示されます。

注意: 2 つの形式は異なります。 500 別の場所を入力する必要があります。

6.try_filesの設定

簡単な例:

ブラウザにwww.pm.comと入力すると、まず400.htmlが検索され、見つからない場合はindex.htmlが検索されます。

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

以下もご興味があるかもしれません:
  • オペレーターが知っておくべき 18 個の Nginx プロキシ キャッシュ構成のヒント (どれを知っていますか?)
  • Nginx の一般的な設定とテクニックの概要
  • nginx での接続数を制限するためのヒントを共有する
  • Nginx サーバーを最適化するためのヒントの簡単な紹介
  • Nginx Rewrite ルールと使用方法の紹介とスキルの例
  • nginx プロキシ ポート 80 からポート 443 への実装
  • URLパラメータに基づくNginx転送
  • Nginx の起動に失敗した場合のいくつかのエラー処理の詳細な説明

<<:  MySQLで判定文を書く方法のまとめ

>>:  MySQLでカーソルを宣言する方法

推薦する

MySQLデータベースパラダイムの詳細な説明

序文:データベースパラダイムについてはよく耳にしていましたが、詳細まで理解したことはありませんでした...

ネイティブJSでマウススライドによる愛の拡散効果を実現

この記事では、マウスをスライドすると愛が広がる js 特殊効果を紹介します。効果は次のとおりです。 ...

MySQLデータベースを作成し、中国語の文字をサポートする方法

まずMySQLの公式ドキュメントを見てみましょう: 5.7 {データベース | スキーマ} を作成 ...

Dockerスペースがいっぱいでコンテナに入れない場合の解決策

トラブル発生が突然で、業務も迫っていたため、現場のスクリーンショットを撮る時間がありませんでしたので...

Zabbix の psk 暗号化と zabbix_get 値の組み合わせ

Zabbix バージョン 3.0 以降、Zabbix サーバー、Zabbix プロキシ、Zabbix...

HTML onfocus gain focus および onblur lose focus イベントの詳細な説明

HTML onfocus イベント属性定義と使用法onfocus 属性は、要素がフォーカスを受け取っ...

JSキャンバスは描画ボードと署名ボードの機能を実現します

この記事では、お絵かきボード/サインボード機能を実現するためのJSキャンバスの具体的なコードを参考ま...

単一マシン上での Tomcat の複数インスタンスの実装

1. はじめにまず、1 台のマシンで複数のインスタンスを使用する理由という質問に答える必要があります...

Dockerのデフォルトネットワークセグメントの正しい変更手順

背景同僚がセキュリティ プロジェクトに取り組んでおり、AWS サーバーに秘密兵器を展開する必要があり...

CentOS7 64 ビットでの MySQL 5.7 のインストールと設定のチュートリアル

インストール環境: CentOS7 64ビットMINI版、MySQL5.7をインストール1. YUM...

Vue で SVG アイコンを導入する 2 つの方法

Vue で SVG アイコンを導入する方法Vue で svg アイコンを導入する方法 1インストール...

uniapp は日付と時刻の選択機能を実装します

この記事の例では、日付と時刻の選択を実装するための uniapp の具体的なコードを参考までに共有し...

Linux でバックグラウンドで実行中のプログラムを表示して終了する方法

1. .shファイルを実行する./sh ファイルを使用して直接実行することもできますが、現在のターミ...

Java を Mysql バージョン 8.0.18 に接続する方法の詳細な説明

JavaとMysql 8.0.18バージョンの接続方法については、参考までに具体的な内容は以下のとお...

iPhone デバイスの WAP ページでフォントサイズが大きい問題の解決策

JavaScriptコントロールを使用したくない場合は、次の方法を試してください。 Safariブラ...