ホームページ 運用・保守 Nginx 遅い応答リクエストを記録して分析し、Web サイトの応答コンテンツを置き換えるように Nginx を構成する方法

遅い応答リクエストを記録して分析し、Web サイトの応答コンテンツを置き換えるように Nginx を構成する方法

May 12, 2023 pm 08:16 PM
nginx


1. モジュールのインストール
nginx サードパーティ モジュールのインストール方法はここでは省略します。
設定パラメータ

./configure --prefix=/usr/local/nginx-1.4.1 --with-http_stub_status_module \
 --add-module=../ngx_http_log_request_speed
ログイン後にコピー

2.命令log_request_speed
2.1 log_request_speed_filter
構文:

 log_request_speed_filter [on|off]
ログイン後にコピー

設定セクション:n/a
context:location 、server、http
モジュールを有効または無効にする
2.2 log_request_speed_filter_timeout
構文:

log_request_speed_filter_timeout [num sec]
ログイン後にコピー

デフォルト: 5 秒
構成セクション: location、server、http
これは実際のタイムアウトではありませんが、リクエストがここで指定された時間を超えると、nginx エラー ログに記録されることを意味します。リクエストが 5 未満の場合、デフォルト値は 5000 マイクロ秒 (5 秒) です。秒を超えると、このリクエストはログに記録されませんが、5 秒を超えると、リクエストは nginx エラー ログに記録されます
#3. 使用例3.1 nginx 設定

http{
   log_request_speed_filter on;
   log_request_speed_filter_timeout 3;
   ...
}
ログイン後にコピー

エラー ログに記録される遅いリクエストは次のとおりです


遅い応答リクエストを記録して分析し、Web サイトの応答コンテンツを置き換えるように Nginx を構成する方法

##3.2 ログ分析

cd /usr/local/nginx-1.4.1/logs
wget http://wiki.nginx.org/images/a/a8/log_analyzer.tar.gz
tar -xzvf log_analyzer.tar.gz
cd request_speed_log_analyzer
# cat ../error.log | grep 'process request'| ./analyzer.pl -r
ログイン後にコピー
post /wp-admin/admin-ajax.php http/1.1 --- avg ms: 1182, value count: 2
get /shmb/1145.html http/1.1 --- avg ms: 2976, value count: 1 <--- the winner
ログイン後にコピー
Fromログを見ると、ここには 2 つの遅いリクエストがあることがわかりました。最も遅いリクエストは /shmb/1145.html で、これも「勝者」とマークされています、作者、あなたの勝ちです。とてもユーモラスです。

3.3 スクリプト構文の分析

# ./analyzer.pl -h
ログイン後にコピー

    -h : このヘルプ メッセージ #ヘルプ メッセージの表示
  • -u : 上流でグループ化 # を押す上流のグループ化
  • -o : ホストごとにグループ化 #ホストごとにグループ化
  • #-r : リクエストごとにグループ化 #リクエストごとにグループ化、これをお勧めします
4. nginx テスト バージョン

現在、作成者は 0.6.35 と 0.7.64 でのみテストしており、それが可能であることは保証しません。他の環境でも使用されています。現在のテストバージョンは 1.4.1 で、現在は通常に使用しています。使用する前にテストしてください。

nginx は Web サイトの応答コンテンツ (ngx_http_sub_module) を置き換えます

ngx_http_sub_module モジュールは、Web サイトの応答コンテンツの文字列を変更するフィルターです。応答内容 'すべてを 'このサイト' に置き換えます。このモジュールは nginx に組み込まれていますが、デフォルトではインストールされません。インストールするには、構成パラメーターを追加する必要があります: --with-http_sub_module
1 . ディレクティブ
構文:

sub_filter string replacement;
ログイン後にコピー
デフォルト値: —

構成セクション: http, サーバー, location

設定では、説明文字列を使用して説明文字列を置き換える必要があります。置換される文字列。置換は新しい文字列であり、変数を含めることができます。
構文:

sub_filter_last_modified on | off;
ログイン後にコピー

デフォルト値: sub_filter_last_modified off;

設定セクション: http、server、location

このコマンドは nginx 1.5.1 で追加されました。このコマンドにはありません。 .
これにより、置換中に元の応答の「最終変更」ヘッダー フィールドを保存して、応答のキャッシュを容易にすることができます。
デフォルトでは、ヘッダー フィールドは応答の内容として削除されます。処理中に変更されました。
構文:

 sub_filter_once on | off;
ログイン後にコピー

デフォルト値: sub_filter_once on;

構成セクション: http、server、location

文字列を 1 回または複数回置換します。デフォルトは 1 回置換です。たとえば、応答コンテンツの jb51 を置き換えたい場合、このサイトでは、複数の jb51 が表示される場合、最初の jb51 のみが置き換えられます。オフの場合、すべての jb51 が置き換えられます。
Syntax:

 sub_filter_types mime-type ...;
ログイン後にコピー

デフォルト値: sub_filter_types text/html;

設定セクション: http、server、location

置換する必要がある MIME タイプを指定します。デフォルトは「text/html」です。* として指定した場合、次にすべて

2. nginx 置換文字列インスタンス
2.1 構成

server {
  listen    80;
  server_name www.jb51.net;
 
  root /data/site/www.jb51.net;  
 
  location / {
    sub_filter jb51 &#39;本站&#39;;
    sub_filter_types text/html;
    sub_filter_once on;
  }
}
ログイン後にコピー

2.2 テスト

内容は次のとおりです

# cat /data/site/www.jb51.net/2013/10/20131001_sub1.html
ログイン後にコピー
welcome to jb51!
jb51 team!
ログイン後にコピー
結果へのアクセス

# curl www.jb51.net/2013/10/20131001_sub1.html
ログイン後にコピー
ログイン後にコピー

welcome to 本站!
jb51 team!
ログイン後にコピー

置換では大文字と小文字が区別されず、jb51 は 1 回だけ置換されることがわかります。 sub_filter_once を on から off に変更してみました。

location / {
  sub_filter jb51 &#39;本站&#39;;
  sub_filter_once off;
}
ログイン後にコピー

その後、test

# curl www.jb51.net/2013/10/20131001_sub1.html
ログイン後にコピー
ログイン後にコピー
welcome to 本站!
本站 team!
ログイン後にコピー

jb51 が置き換えられたことがわかります。

たとえば、 の後に js を追加する場合、構成は次のようになります。次のように:

location / {
  sub_filter   </head> &#39;</head><script language="javascript" src="$script"></script>&#39;;
  sub_filter_once on;
}
ログイン後にコピー

以上が遅い応答リクエストを記録して分析し、Web サイトの応答コンテンツを置き換えるように Nginx を構成する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Tomcat サーバーへの外部ネットワーク アクセスを許可する方法 Tomcat サーバーへの外部ネットワーク アクセスを許可する方法 Apr 21, 2024 am 07:22 AM

Tomcat サーバーが外部ネットワークにアクセスできるようにするには、以下を行う必要があります。 外部接続を許可するように Tomcat 構成ファイルを変更します。 Tomcat サーバー ポートへのアクセスを許可するファイアウォール ルールを追加します。 Tomcat サーバーのパブリック IP を指すドメイン名を指す DNS レコードを作成します。オプション: リバース プロキシを使用して、セキュリティとパフォーマンスを向上させます。オプション: セキュリティを強化するために HTTPS を設定します。

nginxの起動コマンドと停止コマンドとは何ですか? nginxの起動コマンドと停止コマンドとは何ですか? Apr 02, 2024 pm 08:45 PM

Nginx の開始コマンドと停止コマンドは、それぞれ nginx と nginx -s quit です。 start コマンドはサーバーを直接起動し、stop コマンドはサーバーを正常にシャットダウンして、現在のすべてのリクエストを処理できるようにします。その他の使用可能な停止信号には、停止およびリロードがあります。

thinkphpの実行方法 thinkphpの実行方法 Apr 09, 2024 pm 05:39 PM

ThinkPHP フレームワークをローカルで実行する手順: ThinkPHP フレームワークをローカル ディレクトリにダウンロードして解凍します。 ThinkPHP ルート ディレクトリを指す仮想ホスト (オプション) を作成します。データベース接続パラメータを構成します。 Webサーバーを起動します。 ThinkPHP アプリケーションを初期化します。 ThinkPHP アプリケーションの URL にアクセスして実行します。

nginx へようこそ!それを解決するにはどうすればよいですか? nginx へようこそ!それを解決するにはどうすればよいですか? Apr 17, 2024 am 05:12 AM

「nginx へようこそ!」エラーを解決するには、仮想ホスト構成を確認し、仮想ホストを有効にし、Nginx をリロードする必要があります。仮想ホスト構成ファイルが見つからない場合は、デフォルト ページを作成して Nginx をリロードすると、エラー メッセージが表示されます。が消え、ウェブサイトは通常のショーになります。

Nodejsプロジェクトをサーバーにデプロイする方法 Nodejsプロジェクトをサーバーにデプロイする方法 Apr 21, 2024 am 04:40 AM

Node.js プロジェクトのサーバー デプロイメント手順: デプロイメント環境を準備します。サーバー アクセスの取得、Node.js のインストール、Git リポジトリのセットアップ。アプリケーションをビルドする: npm run build を使用して、デプロイ可能なコードと依存関係を生成します。コードをサーバーにアップロードします: Git またはファイル転送プロトコル経由。依存関係をインストールする: サーバーに SSH で接続し、npm install を使用してアプリケーションの依存関係をインストールします。アプリケーションを開始します。node Index.js などのコマンドを使用してアプリケーションを開始するか、pm2 などのプロセス マネージャーを使用します。リバース プロキシの構成 (オプション): Nginx や Apache などのリバース プロキシを使用して、トラフィックをアプリケーションにルーティングします。

phpmyadminの登録方法 phpmyadminの登録方法 Apr 07, 2024 pm 02:45 PM

phpMyAdmin に登録するには、まず MySQL ユーザーを作成して権限を付与し、次に phpMyAdmin をダウンロード、インストール、構成し、最後に phpMyAdmin にログインしてデータベースを管理する必要があります。

ウェブサイトにアクセスする際のnginxの問題を解決する方法 ウェブサイトにアクセスする際のnginxの問題を解決する方法 Apr 02, 2024 pm 08:39 PM

Web サイトにアクセスすると nginx が表示されます。その理由としては、サーバーのメンテナンス、サーバーのビジー状態、ブラウザーのキャッシュ、DNS の問題、ファイアウォールのブロック、Web サイトの構成ミス、ネットワーク接続の問題、Web サイトのダウンなどが考えられます。次の解決策を試してください: メンテナンスが終了するまで待つ、オフピーク時間にアクセスする、ブラウザのキャッシュをクリアする、DNS キャッシュをフラッシュする、ファイアウォールまたはウイルス対策ソフトウェアを無効にする、サイト管理者に連絡する、ネットワーク接続を確認する、または検索エンジンを使用するWeb アーカイブを使用して、サイトの別のコピーを見つけます。問題が解決しない場合は、サイト管理者にお問い合わせください。

Dockerコンテナ間で通信する方法 Dockerコンテナ間で通信する方法 Apr 07, 2024 pm 06:24 PM

Docker 環境でのコンテナ通信には、共有ネットワーク、Docker Compose、ネットワーク プロキシ、共有ボリューム、メッセージ キューの 5 つの方法があります。分離とセキュリティのニーズに応じて、Docker Compose を利用して接続を簡素化するか、ネットワーク プロキシを使用して分離を強化するなど、最も適切な通信方法を選択します。

See all articles