Opensourcetechブログ

OpensourcetechによるNGINX/Kubernetes/Zabbix/Neo4j/Linuxなどオープンソース技術に関するブログです。

nginx Logモジュール&Headersモジュールの使用について on CentOS7(on virtualbox)

こんにちは、鯨井貴博@opensourcetechです。

 

今回は、NginxのLogモジュールとHeadersモジュールを使用してみます。

 

Logモジュールは、ログファイルの保存場所やログフォーマットに関するモジュール、

Headersモジュールは、expires/Cache-Controlヘッダーと任意のヘッダーを追加する事が出来るモジュールです。

 

 http://wiki.nginx.org/Modules

f:id:opensourcetech:20140807194852p:plain

 

以下からそれぞれのモジュールの詳細を確認出来ます。

Module ngx_http_log_module

Module ngx_http_headers_module

 

早速、両モジュールの設定(/etc/nginx/conf.d/default.conf)を行います。

log_format custom $bytes_sent#$connection#$connection-requests#$msec#$pipe#$request_length#$request_time#$status#$time_iso8601#$time_local;(ログフォーマットの定義)

※切れ目を分かりやすくするために、わざと#を入れています。
access_log /var/log/nginx/test_access.log custom;(ログファイルの設定)

expires 24h;(expiresヘッダーの追加)
add_header Cache-Control private;(Cache-Controlヘッダーの追加)
add_header Test-Header kujirai;(任意ヘッダーの追加)

f:id:opensourcetech:20140807195335p:plain

 

なお、log_formatの各項目は、

$bytes_sent
クライアントへの送信バイト数
$connection
コネクションシリアル番号
$pipe
パイプライン時はp、それ以外の時は.を表示
$request_length
リクエスト長(リクエスト行, ヘッダー,リクエストボディーを含む)
$status
レスポンスステータス
$time_iso8601
ISO 8601標準フォーマットでのローカルタイム
$time_local
共通ログフォーマットでのローカルタイム

 

 

設定の反映。

systemctl restart nginx.service

systemctl status nginx.service

f:id:opensourcetech:20140807195345p:plain

 

ちなみに設定ミスなどの際には、systemctl -l status nginx.serviceとすると、

どこがミスっているか分かります。

f:id:opensourcetech:20140807195441p:plain

 

ヘッダーの確認にはgoogle chromeのアドレスバーに、

chrome://net-internals/と入力して行います。

※firefoxのlive http headersとかでもいいです。

 

左のCaptureという欄を選択した状態で、

Nginxへクライアントからアクセスします。

 

f:id:opensourcetech:20140807195626p:plain

そして、Stopをクリック後、

f:id:opensourcetech:20140807195706p:plain

Eventsを選択すると、

以下のようにヘッダー情報を含む詳細が確認出来るようになります。

f:id:opensourcetech:20140807195808p:plain

 

 

また、ログの確認をすると、

以下のように指定されたファイルに指定フォーマットで出力が確認出来ます。

f:id:opensourcetech:20140807200123p:plain

 

 

 

 

nginxが試験範囲に含まれているLPICレベル2を勉強されている方は、

こちらもどうぞ!

LPICレベル2は取得できる!!

Opensourcetech by Takahiro Kujirai