Nginx を Web コンテナとして使用している場合、または Nginx をリバースプロキシとして使用している場合は、コンテナ置換モジュールを使用して、JavaScript エージェントをページに自動的に挿入できます。モジュールは、返された応答オブジェクトをインターセプトし、文字列置換を行います。
エージェントのダウンロード
最初に、[Configuration] 画面から JavaScript エージェントをダウンロードする必要があります。
対象のブラウザアプリケーションを開きます。
左のナビゲーションメニューから [Configuration] を選択します。
Configure and download JavaScript Agentをクリックします。
JavaScript ホスティングオプションで、次を選択します。I will host all the JavaScript agent files.
[Download] をクリックして、JavaScript エージェントをダウンロードします。
Nginx インスタンスにアクセス可能な場所にファイルを配置します。保存されたファイルの名前は、「adrum.js
」である必要があります。
ngx_http_sub_module
を使用した Nginx の構成
ngx_http_sub_module
モジュールは、指定された 1 つの文字列を別の文字列に置き換えることによって応答を変更するフィルタです。この機能を使用すると、サーバは JavaScript エージェントのヘッダー部分を、処理されるページに自動挿入します。このプロセスの詳細については、Nginx のドキュメント、「Module ngx_http_sub_module」を参照してください。
たとえば、<head>
タグを <head>
タグと JavaScript エージェントスクリプトに置き換えるには、ロケーションコンテキストを変更します。
Nginx のサンプル構成
location / {
sub_filter <head>
'<head><script>window["adrum-app-key"]="<EUM_APP_KEY>";window["adrum-start-time"]=new Date().getTime();</script><script type="text/javascript" src="//cdn.appdynamics.com/adrum/adrum-latest.js"></script>';
sub_filter_once on;
}
XML
上記の例で、/adrum-latest.js
はサーバにアクセス可能な adrum
ファイルのコピーへのパスであることに注意してください。また、タイマーの初期化に注意してください。<script>window['adrum-start-time'] = new Date().getTime();</script>.
これらをドキュメントの一番上に近いところに配置します。<head>
タグの直後に配置すると最適なタイミングを取得できます。
<meta>
タグを使用する場合は、 <head>
タグのすぐ後ろに配置し、JavaScript エージェントスクリプトは最後 <meta>
タグの直後に配置する必要があります。これにより、一部のバージョンの IE で問題が発生するのを回避できます。
プラットフォームによっては、一部の文字をエスケープする必要があります。たとえば、Mac OS の場合は次のようになります。
location / {
sub_filter <head>
'<head><script>window[\'adrum-start-time\'] = new Date().getTime();</script><script src="/adrum.js"></script>';
sub_filter_once on;
}
XML
この Nginx モジュールは、多くの場合 Google Analytics スクリプトを追加するために使用されます。これを実行する場合は、既存の GA スクリプトを上書きしないように注意してください。
スクリプト文字列に使用できるバリエーションについては、「JavaScript エージェントの構成」を参照してください。
ngx_http_sub_module
を使用しない Ngnix の構成
必要に応じて、ngx_http_sub_module
モジュールを使用せずに Ngnix を構成できます。必要なスクリプトを conf.d/default.conf
の location に挿入します。
Nginx のサンプル構成
location / {
sub_filter <head>
'<head><script>window["adrum-app-key"]="<EUM_APP_KEY>";window["adrum-start-time"]=new Date().getTime();</script><script type="text/javascript" src="//cdn.appdynamics.com/adrum/adrum-latest.js"></script>';
sub_filter_once on;
}
XML