10月 30 2007
今日の饂飩
会社に行く途中で。かけ大(\380)・ソーセージ天(\120)・おにぎり2つ(\120×2)。満足々々。
10月 29 2007
apache 2.2.6を持ってくる。
./configure –enable-so –enable-rewrite=shared –enable-proxy –enable-proxy-balancer
して、インスコ。
httpd.confに以下を設定。
ProxyPass / balancer://nantoca/
<Proxy balancer://nantoca/>
BalancerMember http://192.168.1.104/ loadfactor=10
BalancerMember http://192.168.1.105/ loadfactor=10
BalancerMember http://192.168.1.106/ loadfactor=10
</Proxy>
こんだけ。で、stickysessionとかやらんと、cookie対応できんらしいし、PHPだと、アプリ側でちと対処しないといかんらしい。却下。
By admin • computer(server) •
10月 29 2007
某所の奴、設定したのでまとめておく。OSはRedHat ES4なんか?
2.6.9-42.ELsmp #1 SMP Wed Jul 12 23:32:02 EDT 2006 x86_64 x86_64 x86_64 GNU/Linux
[lb]
まずは、コマンド(ipvsadm)を持ってきて、インスコ。
kernelのversionにかなり依存するらしいので、以下で確認。
$ grep IP_VS_VERSION_CODE /usr/src/linux/include/net/ip_vs.h
#define IP_VS_VERSION_CODE 0x010201
展開できれば、makeするだけだが、sourceが入ってない場合は、link張らなきゃ。
ln -s /usr/src/kernels/2.6.9-42.EL-smp-x86_64 /usr/src/linux
IP forwardを有効にする。
# vi /etc/sysctl.conf
net.ipv4.ip_forward = 1
# sysctl -p
ESには、必要なmoduleが既に入ってたので、insmodする。入ってなければkernel compileね。rebootの際にも必要なので、rc.localにでも入れとけって感じ。
# insmod /lib/modules/2.6.9-42.ELsmp/kernel/net/ipv4/ipvs/ip_vs.ko
# insmod /lib/modules/2.6.9-42.ELsmp/kernel/net/ipv4/ipvs/ip_vs_rr.ko
# insmod /lib/modules/2.6.9-42.ELsmp/kernel/net/ipv4/ipvs/ip_vs_lc.ko
# insmod /lib/modules/2.6.9-42.ELsmp/kernel/net/ipv4/ipvs/ip_vs_wrr.ko
# insmod /lib/modules/2.6.9-42.ELsmp/kernel/net/ipv4/ipvs/ip_vs_wlc.ko
# insmod /lib/modules/2.6.9-42.ELsmp/kernel/net/ipv4/ipvs/ip_vs_lblc.ko
# insmod /lib/modules/2.6.9-42.ELsmp/kernel/net/ipv4/ipvs/ip_vs_lblcr.ko
# insmod /lib/modules/2.6.9-42.ELsmp/kernel/net/ipv4/ipvs/ip_vs_sh.ko
# insmod /lib/modules/2.6.9-42.ELsmp/kernel/net/ipv4/ipvs/ip_vs_ftp.ko
# insmod /lib/modules/2.6.9-42.ELsmp/kernel/net/ipv4/ipvs/ip_vs_dh.ko
eth0:0とかで、targetのIPを設定。ここでは、x.y.z.100 としておく。web鯖はx.y.z.201, x.y.z.202 とする。
# vi /etc/sysconfig/network-scripts/ifcfg-eth0:0
DEVICE=eth0:0
BOOTPROTO=static
BROADCAST=x.y.z.255
IPADDR=x.y.z.100
NETMASK=255.255.255.0
NETWORK=x.y.z.0
ONBOOT=yes
TYPE=Ethernet
# ifup ifcfg-eth0:0
# ipvsadm -C
# ipvsadm -A -t x.y.z.100:0 -s rr -p 14400
# ipvsadm -a -t x.y.z.100:0 -r x.y.z.201 -g
# ipvsadm -a -t x.y.z.100:0 -r x.y.z.202 -g
# service ipvsadm save
# service ipvsadm start
# chkconfig ipvsadm on
こんだけ。80/443とか分けてもいいけど、http/httpsのばたこん切替えで問題があるんで、port 0で行く。cookie継続の問題には-p(persistent)で対処。でも、これでもproxyでglobal IPが切り替わってくるclientには対応できないんだよね。
[web]
lo:0にtargetのIPを設定。
# vi /etc/sysconfig/network-scripts/ifcfg-lo:0
DEVICE=lo:0
IPADDR=x.y.z.100
NETMASK=255.255.255.255
NETWORK=x.y.z.100
BROADCAST=x.y.z.100
ONBOOT=yes
NAME=loopback:0
# ifup ifcfg-lo:0
で、arp応答しないように、
# vi /etc/sysctl.conf
net.ipv4.conf.eth0.arp_ignore = 1
net.ipv4.conf.eth0.arp_announce = 2
net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.all.arp_announce = 2
# sysctl -p
いきなりDRだったけど、NATの方が設定面倒っぽかったからね。LVSだと、L4で、複数proxy対応の為、L7にしろって。色々試したけど、どれもダメ。そりゃそうかも、SSL 通信を解析できたら問題ぢゃん。mod_proxy_balancer, haproxy, poundってやったので、後でまとめる予定。はあ。
By admin • computer(server) • 0
10月 27 2007
床屋いったついでにちょっと寄ってみた。前は久喜食堂だったとこ。2週間ほど前、いきなりできた。やっぱ、場所柄、へら&バス用品だね。
By admin • fishing(diary) •
月 | 火 | 水 | 木 | 金 | 土 | 日 |
---|---|---|---|---|---|---|
« 9月 | ||||||
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 |
10月 30 2007
haproxy
ここ。安定版は、haproxy-1.2.17。configureがないけど、kernel 2.4系がdefaultなので、普通にmake, make install。他のkernelの場合は、Makefileを観ればパラメータはわかる。
cp haproxy /usr/local/bin/ とかして、
/usr/local/bin/haproxy -f /etc/haproxy/haproxy.cfg で起動。
haproxy.cfgは、以下の様になる。httpは、mode tcp, persistで何とかsession処理ができるが、httpsは、mode httpではssl対応できないので、mode tcpになるが、こうなるとsessionはダメなのさ。
# this config needs haproxy-1.1.28 or haproxy-1.2.1
global
log 127.0.0.1 local0
maxconn 32000
ulimit-n 65536
uid 99
gid 99
#daemon
defaults
log global
mode http
option httplog
option dontlognull
retries 3
redispatch
maxconn 2000
contimeout 60000
clitimeout 60000
srvtimeout 60000
listen http_proxy :80
mode http
balance source
# balance roundrobin
cookie SERVERID
server web01 192.168.1.100:80 cookie server01 check inter 60000 rise 1 fall 2
server web02 192.168.1.103:80 cookie server02 check inter 60000 rise 1 fall 2
option persist
option forwardfor
listen https_proxy :443
mode tcp
balance source
cookie SERVERID
server web01 192.168.1.100:443 cookie server01
server web02 192.168.1.103:443 cookie server02
option persist
option forwardfor
By admin • computer(server) •