カスタム検索

2009年6月22日月曜日

GlassFIsh + Apache(mod_proxy_balancer) で SSL

mod_proxyを以下のように設定


ProxyPreserveHost on
RewriteEngine on

RequestHeader Set Proxy-keysize 512
RequestHeader Set Proxy-ip %{REMOTE_ADDR}e

ProxyPass /test balancer://gf/test timeout=10 stickysession=JSESSIONID
<Proxy balancer://gf>
BalancerMember http://192.168.0.1:38080 loadfactor=10 retry=5 route=instance1
BalancerMember http://192.168.0.1:38081 loadfactor=10 retry=5 route=instance3
BalancerMember http://192.168.0.2:38080 loadfactor=10 retry=5 route=instance2
BalancerMember http://192.168.0.2:38081 loadfactor=10 retry=5 route=instance4
</Proxy>


ポイントはRequestHeaderの2カ所!

そして、GlassFishに以下の2つのプロパティを追加

設定>default-config>HTTPサービス>追加プロパティ

名前:authPassthroughEnabled
値:true

名前:proxyHandler
値:com.sun.enterprise.web.ProxyHandlerImpl

上で設定したProxy-ipとかを利用する為の設定です

参考URL
http://www.manorrock.com/documents/glassfish/proxy-ssl.html
http://docs.sun.com/app/docs/doc/820-7434/6nimnhpqr?a=view
http://docs.sun.com/app/docs/doc/820-7434/gcwrb?a=view

2009年6月15日月曜日

Grails+MySQL Clusterでのトラブル

Grails+MySQL Clusterでのハマったのでメモメモ
(Grailsじゃなくても起こる問題なんだけども)

開発環境時はMyISAMでうまく行っていたのですが、サーバへアップした時にテーブルが作成出来ずにエラーとなりました。
何度やっても特定のテーブルだけが作成されなかったのでMyISAMで作成したDBをダンプアウトしてSQLで流し込んでみたら「Row size too large」だとかなんとか・・・

Google先生に聞いてみたら以下で同様なトラブル事例が
http://forums.mysql.com/read.php?25,33433,33433

Clusterではサイズ指定されたフィールドが 8052バイトを超えるとNGらしいです。

UTF-8では1文字3バイトなのでGrailsのDomain上で、
Stringのフィールドをmapping指定せずに作った場合 varchar(255) で1フィールド辺り768バイト使用されます。
なのでString指定のフィールドを作る場合は極力mappingを指定するようにしましょう。


class Book {
static mapping = {
name type:”text”
}

String name
}

2009年6月11日木曜日

Subversionの移行とバックアップについて

ちょっとSubversionを移行する機会があったのでメモ

SVNを作成
svnadmin create repoName

バックアップの作成
svnadmin dump repoName > repo.dump

バックアップのリストア
svnadmin load repoName < repo.dump

ファイルを丸ごとコピーしてもいけるっぽいけど、環境によってはNGっぽいのでdumpを使う事にしました。

バックアップをする時は、必ずsvnのユーザで実行する事!rootはだめ!
dump した時にエラーが出る場合は repoName/db/log* のファイルが壊れている事があります。
だからと言って log* ファイルは結構大事なファイルなので、さくっと消してはいけません。

そんな時にはリカバリコマンド
svnadmin recover repoName

もちろんこれもsvnユーザで。rootユーザでやってリポジトリ壊れたのはいい思い出・・・

cronで常用バックアップしたい場合は svn-backup-dumps.py を使うと便利!
SVN1.4以降なら一緒にインストールされてます。
ここに詳しい事が乗っています。

こんな感じのスクリプトを作って

DUMP="/subversion-1.4.2/tools/server-side/svn-backup-dumps.py"
BACKUPDIR="/svnbackup/"

for var in `ls -F /svn/repos|grep /`
do
BKSVN="$BACKUPDIR$var"
mkdir $BKSVN
$DUMP -c 10 $var $BKSVN
done


crontab に設定
05 4 * * * root /root/svnbackup.sh

これでrepos以下にあるリポジトリ全部を /svnbackup へバックアップしてくれます、リポジトリが増えても安心!

2009年6月8日月曜日

ありがとう、さようなら

去年買ったシビックを売る事になりました

もの凄く良い車だったのですが、維持が困難になったしまったので仕方なく・・・
思えばノーマルのまま乗り続けたのは今まででこの車だけなんだなぁと、改めて感動を覚えました

久しぶりにサーキットも行って、車を走らせる楽しさを思い出させてくれました

またいつかこんな車に出会えると信じて

今は、ありがとうの気持ちを形に残しておきたいと思います