ApacheログローテとかMod_bw

ApacheでのログローテとかMod_bwとか。

アクセスログの大きさが、1週間にすると40Mを超えるので日ごとに設定してみたんですが、増えすぎてめんどくさい。

とりあえずVirtualHostごとにディレクトリに分けてみたんですが、Apacheを再起動すると

httpd を停止中:                                            [失敗]
httpd を起動中:
(98)Address already in use: make_sock: could not bind to address [::]:80
(98)Address already in use: make_sock: could not bind to address 0.0.0.0:80
no listening sockets available, shutting down
Unable to open logs
                                                           [失敗]

こんな感じでエラー出してるのにApache自体は起動してる状態。

[root@menta ~]# getenforce
Disabled
[root@menta conf.d]# /usr/sbin/httpd -t
Syntax OK

SELinuxも無効に設定してあるんですけどねぇ・・・

[root@menta ~]# cat /etc/httpd/conf.d/virtual.conf
NameVirtualHost *:80
<VirtualHost *:80>
  ServerName menta.orz.hm
  DocumentRoot "XXX"
  <Directory />
    Options FollowSymLinks
    AllowOverride None
  </Directory>
  <Directory "XXX">
    Options Includes ExecCGI FollowSymLinks
    AllowOverride All
    Order allow,deny
  Allow from all
  </Directory>
</VirtualHost>
<VirtualHost *:80>
  ServerName XXX.YYY.ZZZ
  DocumentRoot XXX
  <Directory "XXX">
   Options Includes ExecCGI FollowSymLinks
   allowoverride All
  </Directory>
  ErrorLog /var/www/XXX/logs/error.log
  CustomLog /var/www/XXX/logs/access.log combined env=!no_log
</VirtualHost>

Apacheの設定

[root@menta ~]# cat /etc/logrotate.d/httpd
/var/www/XXX/logs/*log {
    missingok
    compress
    ifempty
    sharedscripts
    daily
    rotate 200
    ifempty
}
/var/log/httpd/*log {
    missingok
    compress
    sharedscripts
    daily
    rotate 200
    ifempty
    postrotate
        /sbin/service httpd reload > /dev/null 2>/dev/null || true
    endscript
}

logroteの設定

うーん・・・わからない。

とりあえずログは出てるのでこんな感じでいいかなぁ。

もうひとつの課題がMod_bwのLocationでの設定。

[root@menta ~]# cat /etc/httpd/conf.d/mod.conf
<Location /up>
    SetHandler                     uploader

    UploaderBaseUrl                "http://menta.orz.hm/up"
    ~    
    UploaderTotalFileSizeLimit     31457280
    UploaderTotalFileNumberLimit   2048
    UploaderFileSizeLimit          512000
    UploaderPerPageItemNumber      40 
    ~
    BandWidthModule On
    ForceBandWidthModule On
    BandWidth all 78643200
</Location>
<Location /up/admin>
    ~
</Location>

Locationでの設定ができるみたいに書いてあったんですけどねぇ。

どうもこのグラフ見てみると効いてないみたい。

この設定のために昼間はたまに接続が切れることがありかもしれませんが、生暖かい目で見ながら再接続していただけるとありがたいです。

どこかのドキュメントにApacheを再起動しないで設定を反映させる方法があったような気がするんですが、reloadとrestartでどのような差があるのかわからないっていうのもあって・・・

とりあえずは再起動で反映させていきます。