Rails 2.0への移行

近頃開発停滞中なPhotoXP 2.0αをRuby on Rails 2.0に対応させてみました。

参考までに、以下に移行に必要になった作業をメモしておきます。

1. デフォルトではセッションをCookieに格納するようになったため、config/environment.rbに設定を追加。


config.action_controller.session = { :session_key => "_photoxp_session", :secret => "ba41124efc149ce2f17a85b4b206a" }

2. pagenate機能はプラグインに分離されたので、classic_paginationプラグインを導入。

参考URL: http://d.hatena.ne.jp/idesaku/20071210/1197260363

3. Reloadableモジュールは廃止されたので、明示的にinclude Reloadableしている場合削除する。
今回はGoogle Mapsプラグインがそれに当たりました。

4. scoped_accessプラグインをRails 2.0対応版に更新。

参考URL: http://wota.jp/ac/?date=20060704

一言感想を言うとしたら、メジャーバージョンアップした割には意外とすんなり動いてびっくり。:-)

広告

PPPoEマルチセッションで回線増強

あけましておめでとうございます。

しかし、新年早々あまりめでたくないネットワークトラブルのお話から・・・

昨日1/7 21時頃~1/8 0時頃まで、PhotoXP掲示板やこのblogの表示が非常に遅い状態が続いていたのですが、どうやら1年半ほど前に帯域制限かけられた時と同じく、プロバイダーの帯域制限にひっかかってしまったようです。

traf-week.pngグラフで見ると、月曜日(Mon)はきっかり帯域1Mbpsで抑えられてるのが分かりますね・・・

最近は投稿画像の枚数も増えてきて、1日のデータ転送量が十数GBに達する事もあるので、個人向けのBフレッツで運用している以上文句も言えないのかなと思い、急遽別のISPを契約して1つのサーバに2個の固定IPアドレス/PPPoEセッションを持たせて乗り切る事にしました。

以下、その記録です。(Linux/Fedora Core 6での例)

まず固定IPの使えるISPを調査(DynamicDNSでも良いのですが、一応安定性を考えて固定IPで)。EditNetという所が安そうだったのでここに決定。オンラインサインアップでBフレッツのPPPoE用アカウントとパスワードを発行してもらい準備完了。

まず、サーバに2本目のPPPoE設定を行う。ppp0の設定を元にppp1用の設定ファイルを作るため、まずはコピー

$ cd /etc/sysconfig/network-scripts
$ sudo cp -p ifcfg-ppp0 ifcfg-ppp1

次に、以下の設定項目をppp1用に編集、default routeやDNS(resolv.conf)はnoと書いてppp1接続確立時にppp1のISPに書き換えないようにするのがポイントです。
これで、ppp1用に割り当てられたIPへのアクセスのみ2つ目のプロバイダー回線を通るようになります。

NAME=DSLppp1
DEVICE=ppp1
PIDFILE=/var/run/pppoe-adsl-ppp1.pid
DEFROUTE=no
PROVIDER=DSLppp1
USER=userid@yourprovider.ne.jp
PEERDNS=no

さらに、パスワードは/etc/ppp/pap-secrets, chap-secretsに記述して設定完了。

adsl-startコマンドでPPPoE接続を有効にします。

$ sudo /sbin/addl-start ifcfg-ppp1

ifconfigコマンドで確認。

$ /sbin/ifconfig -a
...
ppp0
...
ppp1      Link encap:Point-to-Point Protocol
          inet addr:218.219.148.133  P-t-P:218.219.145.35  Mask:255.255.255.255
          UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1454  Metric:1
          RX packets:431220 errors:0 dropped:0 overruns:0 frame:0
          TX packets:3 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:3
          RX bytes:28049357 (26.7 MiB)  TX bytes:54 (54.0 b)

ppp1インターフェースが表示されて、inet addrに正しくIPアドレスが表示されていれば繋がっているはず。
別のネットワークから、ブラウザに直接 http://%5BIPアドレス%5D/と入力してみたり、pingを打ってみたりして疎通確認をしてみましょう。

うまく行かない場合は、/var/log/messages にエラーが出力されているはずなので確認します。

これで、2つのIPのどちらでも同じ自宅サーバにアクセスできるようになったので、PhotoXP掲示板の画像は全てhttp://[ppp1のIPアドレス]/image/foo/bar.jpgといった名前でアクセスするようにphotoxpのconfig.rb内のIMAGE_URLを変更して完了です。

以上、負荷分散や片方のISPの障害時の対応等を考えると、もう少しやれる事はあるかと思いますが、
Bフレッツで自宅サーバを運用している人向けの、安く簡単に自宅サーバの回線増強をする方法でした。

追記:

ある日突然ppp1回線が使えなくなったのでいろいろ試してみたところ、
以下を参考にソースルーティングの設定をする事で復旧しました。

http://dsas.blog.klab.org/archives/50326299.html

ip route add dev ppp1 table 100
ip rule  add from www.xxx.yyy.xxx table 100 pref 100

しかし、今まで何故ソースルーティング設定無しで動いてたのだろう。。。

続きを読む »