2009年11月18日水曜日

apache reverse proxyで503エラー



最近事情があってNamedVitualHost単位でリバースプロキシを通して、LAN内のWebサーバを公開している。


デフォルトのままで運用しているとしょっちゅう503エラーがでてしまう。


「telnet 転送先サーバ 80」で「GET /」などしてもすぐコネクションを切られてしまう状態になってしまう。


そんな時まず、転送先ホストで



netstat -inf inet |grep 80



とかしてみる。大量のコネクションがあったらそれが原因かも。





その場合は下の設定例のようにsmaxやttlの指定でコネクション数を制限しましょう。(他のパラメータでもいいけど)


ただし、以下の例は小規模サイトの例です。通常来るコネクション数にあわせて


転送先サーバのコネクション数を設定した上で適当に変更してください。



<VirtualHost *:80>
ProxyRequests Off
ProxyPreserveHost On
ServerAdmin root@saifes.dip.jp
ServerName saifes.dip.jp
ServerAlias saiins.dip.jp
ProxyPass / http://192.168.1.2/ smax=4 ttl=2
ProxyPassReverse / http://192.168.1.2/
</VirtualHost>

飛ばしたさきでさらにNamedVirtualHostをやる時はServerAliasをちゃんとつかいましょう。馬鹿正直にVirtualHostをたくさん書くよりスマートで、ソケット数の制御も容易になります。





0 件のコメント:

コメントを投稿