Apache2のLogをチェックしていて思った。
「ログが多い〜、確認し辛い〜」
なので早速にGoogle師匠。
43 Apache のログのローテート
こちらはMacPortsでも解説なので混乱が無い。嬉しいです。
先ずはlogrotateをインストール。
|
1 |
sudo port install logrotate |
するとインストールメッセージの最後に次のように書かれていた。
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
logrotate has the following notes: To use logrotate: * See 'man logrotate' for configuration options. * Enable daily log rotation with this command. $ sudo port load logrotate * To create your own startup item with non-default intervals, build logrotate without the startupitem variant (-startupitem), copy the example into place and edit to your liking, then load with launchctl when finished. $ sudo cp /opt/local/share/logrotate/org.macports.logrotate.plist.example /Library/LaunchDaemons/org.macports.logrotate.plist $ sudo launchctl load -w /Library/LaunchDaemons/org.macports.logrotate.plist |
Google先生に翻訳して貰った。
|
1 2 3 4 5 6 7 8 9 10 11 |
logrotateには次の注意事項があります。 logrotateを使用するには: *構成オプションについては、「manlogrotate」を参照してください。 *このコマンドで毎日のログローテーションを有効にします。 $ sudo port load logrotate *デフォルト以外の間隔で独自のスタートアップアイテムを作成するには、startupitemバリアント(-startupitem)を使用せずにlogrotateをビルドし、例を所定の場所にコピーして好みに合わせて編集し、終了時にlaunchctlをロードします。 $ sudo cp /opt/local/share/logrotate/org.macports.logrotate.plist.example /Library/LaunchDaemons/org.macports.logrotate.plist $ sudo launchctl load -w /Library/LaunchDaemons/org.macports.logrotate.plist |
好みとしては、普段どおりにLaunchDaemonsに登録かな〜。
それにしても、portコマンドで、デイリー起動ができるとは思わんかった。流石はport先生、素晴らしい。
ついでなので、コピーした/Library/LaunchDaemons/org.macports.logrotate.plistを確認してみる。
|
1 2 3 4 5 6 7 |
<key>StartCalendarInterval</key> <dict> <key>Hour</key> <integer>5</integer> <key>Minute</key> <integer>30</integer> </dict> |
毎日5時30分に起動するようです。これはこれでいいだろう。弄る必要は無いな。
そして実行確認してみる。
|
1 |
sudo logrotate -f -v /opt/local/etc/logrotate.d/httpd |
全ログが消えた………どこへ行ったのだ?
上記サイトで使っているapacheは純正なのか、logを/var/logに書き込んでいるようだ。
そこの部分を書き換える。
何を定義しているのか気になって任意のログをlogrotateを使って管理するに行きつき、最終的に
|
1 2 3 4 5 6 7 8 |
/opt/local/var/log/apache2/*log { missingok notifempty rotate 20 postrotate /bin/kill -HUP `cat /opt/local/var/run/apache2/httpd.pid 2>/dev/null` 2> /dev/null || true endscript } |
とした。
しかし、pathの記述間違えが多かった。
何度もログが消えてしまったり、http.pidの場所を間違えて、apacheの再起動ができてなかったりと……
ま、いつものことだなっ!
ついでに圧縮送信?の設定もすることにした。mod_deflateとmod_filterを使うそうだ。
そう言えば大昔立てたサーバーにもこんなの入れてたな、mod_zipだったか(遠い目)
etc/apache2/extraにhttpd-deflate.confを置く。内容はこんな感じ。
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
<IfModule mod_deflate.c> DeflateCompressionLevel 1 <IfModule mod_filter.c> FilterDeclare COMPRESS FilterProvider COMPRESS DEFLATE "%{CONTENT_TYPE} =~ m#^text/#i" FilterProvider COMPRESS DEFLATE "%{CONTENT_TYPE} =~ m#^application/(atom\+xml|javascript|json|rss\+xml|xml|xhtml\+xml)#i" FilterProvider COMPRESS DEFLATE "%{CONTENT_TYPE} =~ m#^image/(svg\+xml|vnd\.microsoft\.icon)#i" FilterChain COMPRESS FilterProtocol COMPRESS DEFLATE change=yes;byteranges=no #BrowserMatch ^Mozilla/4 gzip-only-text/html #BrowserMatch ^Mozilla/4\.0[678] no-gzip #BrowserMatch \bMSI[E] !no-gzip !gzip-only-text/html #Header append Vary Accept-Encoding env=!dont-vary </IfModule> </IfModule> |
ってか、正しく圧縮、素早く送信、mod_deflateの設定方法の内容そのままなんだが……
[Web] mod_deflateの設定方法 Apache 2.4系 [高速化]も解説が丁寧で良かったんだけれども、こっちの方がコピペし易かったんだ。
http -tで構文チェックも通ったので、サーバー再起動。
いくらか早くなるのかな〜、どうだろうな〜、ディスク遅いもんなぁ(^_^;;


