Hatena::ブログ(Diary)

satoru.netの自由帳 このページをアンテナに追加 RSSフィード

160312Satday

CloudFlareのmod_cloudflareのupdate

確認

ls -al /etc/httpd/conf.d/cloudflare.conf

更新

sudo rpm --import http://pkg.cloudflare.com/pubkey.gpg
yum update mod_cloudflare

ip情報

https://www.cloudflare.com/ips/

https://www.cloudflare.com/ips-v4

https://www.cloudflare.com/ips-v6

140206Thuday

epel install && mod_extract_forwarded

Apacheの便利モジュール

reverse proxy時に$ENV{HTTP_X_FORWARDED_FOR}を$ENV{REMOTE_ADDR}に自動変換する方法

mod_extract_forwarded をインストール (epelも追加)

epelがない場合(64bit/centos6)
cd /usr/local/src/
wget http://ftp-srv2.kddilabs.jp/Linux/distributions/fedora/epel/6/x86_64/epel-release-6-8.noarch.rpm
rpm -ivh epel-release-6-8.noarch.rpm
インストール
yum --enablerepo=epel install mod_extract_forwarded

/etc/httpd/conf.d/mod_extract_forwarded.conf

XXX.XXX.XXX.XXXに変換元のIPを設定する(例:127.0.0.1

LoadModule extract_forwarded_module modules/mod_extract_forwarded.so
#MEForder refuse,accept
#MEFrefuse all
MEFaccept all
#MEFaccept XXX.XXX.XXX.XX
MEFaddenv on
MEFdebug off

もしくは

/etc/httpd/conf.d/mod_extract_forwarded.conf

XXX.XXX.XXX.XXXに変換元のIPを設定する(例:127.0.0.1

LoadModule extract_forwarded_module modules/mod_extract_forwarded.so
#MEForder refuse,accept
#MEFrefuse all
MEFaccept all
#MEFaccept all
MEFaddenv on
MEFdebug off

参考資料

http://blog.cles.jp/item/3499

131102Satday

server構築メモ

install

yum install -y mysql-server

yum install -y httpd

yum install -y memcached

yum install -y php

yum install -y php-mbstring php-mysql php-pecl-apc php-pecl-memcache

yum install -y php-gd

yum install mod_perl

yum install postfix

yum install perl-CPAN

yum install perl-YAML

cpan HTML::TreeBuilder

cpan CGI-Lite

cpan CGI

cpan Cache::Memcached::Fast

memcached同期関連

yum install -y libevent-devel c++

cd /usr/local/src ; wget http://downloads.sourceforge.net/repcached/memcached-1.2.8-repcached-2.2.tar.gz

tar zxvfp memcached-1.2.8-repcached-2.2.tar.gz ; cd memcached-1.2.8-repcached-2.2;

cp /usr/bin/memcached /usr/bin/memcached.org

./configure --enable-replication

make ; make install

111123Wedday

googleクローラーの速度はサイトによって違うメモ

googleウェブマスターツールでサイトによって最高速度の閾値が違うらしい。

何らかの基準でリミッターが増減するっぽい。実際、どーなんだろ?っていうメモ。

アクセスが多めのサイトA

f:id:satoru_net:20111123113412p:image

最近はじめたばっかのサイトB

f:id:satoru_net:20111123113413p:image

実際に設定通りきてるのかチェック:アクセスが多めのサイトA

最高3.6/sec、最少1.1/sec。平均的には2/secくらいのよーだ。

コマンド

sudo perl -e 'for(`grep "Googlebot" /var/log/httpd/access_log.111121`){$h{(m@\d{4}:(\d+)@)[0]}++} ; for("00".."23"){print qq{$_:00 $h{$_} @{[sprintf "%.1f",$h{$_}/3600]}/sec\n}}'

結果

00:00 4035 1.1/sec

01:00 6536 1.8/sec

02:00 11100 3.1/sec

03:00 10716 3.0/sec

04:00 9863 2.7/sec

05:00 12898 3.6/sec

06:00 10727 3.0/sec

07:00 8970 2.5/sec

08:00 8465 2.4/sec

09:00 8765 2.4/sec

10:00 9518 2.6/sec

11:00 10069 2.8/sec

12:00 10841 3.0/sec

13:00 12304 3.4/sec

14:00 10070 2.8/sec

15:00 10103 2.8/sec

16:00 10431 2.9/sec

17:00 9790 2.7/sec

18:00 9378 2.6/sec

19:00 7138 2.0/sec

20:00 7297 2.0/sec

21:00 8494 2.4/sec

22:00 7920 2.2/sec

23:00 4433 1.2/sec


実際に設定どおりにきているのかチェック:最近始めたばっかのサイトB

最高1.0/sec、最少0.5/sec。平均的には0.8/secくらいのよーだ。

結果

00:00 1933 0.5/sec

01:00 2152 0.6/sec

02:00 2590 0.7/sec

03:00 2520 0.7/sec

04:00 2704 0.8/sec

05:00 2446 0.7/sec

06:00 2164 0.6/sec

07:00 1842 0.5/sec

08:00 2677 0.7/sec

09:00 3449 1.0/sec

10:00 2854 0.8/sec

11:00 2440 0.7/sec

12:00 2324 0.6/sec

13:00 1697 0.5/sec

14:00 2030 0.6/sec

15:00 2200 0.6/sec

16:00 3223 0.9/sec

17:00 3290 0.9/sec

18:00 2726 0.8/sec

19:00 2451 0.7/sec

20:00 2587 0.7/sec

21:00 2379 0.7/sec

22:00 2462 0.7/sec

23:00 2760 0.8/sec

合計

$ sudo grep "Googlebot" /var/log/httpd/access_log.111121 | wc -l

219861

Apacheのログを特定時間だけ吐かないようにする

22:00-01:00台のサーバ混雑時間だけApacheのログを吐かないようにしたくて

Apacheをrestartしないでログを制御する方法なんかないかなーって思ってたら、

.htaccess内でSetEnvすればいいだけだったわーっていうメモ

httpd.conf

LogFormat "%v %a %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined

SetEnvIf Request_URI "\.(js)|(gif)|(png)|(jpg)|(ico)|(css)|(JPG)|(GIF)|(CSS)$" noLog

CustomLog "|/usr/sbin/rotatelogs /var/log/httpd/access_log.%y%m%d 86400 540" combined env=!noLog

cronで.htaccess制御

$ crontab -e

0 22 * * * /bin/echo "SetEnv noLog 1" > /(path)/.htaccess 2>&1

0 1 * * * /bin/rm /(path)/.htaccess > /dev/null 2>&1

110712Tueday

[]Apacheのログを完全に出力しないように

それぞれ httpd.confに記述

方法1: /dev/null に出力

CustomLog /dev/null common

でもこれだと/dev/null→破棄が繰り返されるわけだからちょっと非効率だ

方法2: 条件指定に env=0

CustomLog /dev/null common env=0

本来、除外機能のパラメータに常に0を渡して完全ブロック。

これだと完全に出てない!いい感じ!

方法3: mod_log_config.so を除外

#LogFormat XXXX

#CustomLog XXXX

#LoadModule log_config_module modules/mod_log_config.so

ログ関連のモジュールをコメントアウト。(ErrorLogはlog_config_moduleをコメアウトしても有効みたい)

これでも方法2と同じ結果になったけど、これだとたまにログを見たいときの復旧がちょっとめんどい。


結論

方法2env=0が楽

©satoru.net
Mail Twitter