WEBrickって on-the-fly転送できるんだろうか?
NicoProxy2を使って面白いことやってるのでメモ。
・年越しそばと初詣は絶対に欠かせない: NicoProxy2 と Squid を MacOSX 上で 組み合わせる
WEBrickってon-the-fly転送する方法あるのかな。あったらいいな。ソース読むかな。
最近は仲間内でニコニコ動画のキャッシュサーバ立てて使ってるので転送が大抵一瞬で終わって問題なかったりもする。7時のニュースもある程度観られたり。
Head First JavaScript 頭とからだで覚えるJavaScriptの基本
Head First JavaScript ―頭とからだで覚えるJavaScriptの基本
- 作者: Michael Morrison,豊福剛
- 出版社/メーカー: オライリージャパン
- 発売日: 2008/08/14
- メディア: 大型本
- 購入: 15人 クリック: 328回
- この商品を含むブログ (59件) を見る
JavaScriptが思い通りに書けないと、思い通りのことが実現できない局面が結構あるんだよなぁ。
投稿日に発見した動画のポイントが正確になるように変更
・http://www.nearch.jp
新しい動画の方が若干有利になるかも。
テレビの傍らに置く、情報ディスプレー
・http://ascii.jp/elem/000/000/161/161331/
描画は60fpsでやっています。アーケードゲームと同じ。そうしないと、FEDの高速応答性という特徴が出てこない。メニューは3D処理していて、透明度なんかも変えています。このあたりは、ゲーム開発と同じノリですね。
http://ascii.jp/elem/000/000/161/161331/index-2.html
これは欲しい。キットでいいから販売しないかなーと期待。
Passenger(mod_rails)環境にCapistranoでデプロイする
Capistranoをmod_rails向けに設定してみます。
mod_railsの導入、Capistranoの導入は以下の記事を参照してください。
Capistranoの設定
今までと同じようにdeploy環境を作って、config/deploy.rb を少し変更すればOKです。
以下をdeploy.rbに追記します。
namespace :deploy do desc "Restarting mod_rails with restart.txt" task :restart, :roles => :app, :except => {:no_release => true} do run "touch #{current_path}/tmp/restart.txt" end [:start, :stop].each do |t| desc "#{t} task is a no-op with mod_rails" task t, :roles => :app do ; end end end
restart.txtの生成が肝です。mod_railsはrestart.txtの有無でアプリを更新するべきか判断します。
この状態で、cap deploy すればデプロイが可能です。Apacheの再起動は必要なし。
VirtualHostの設定
DocumentRootにcurrentを入れればOKです。以下のようになります。
<VirtualHost *:80> ServerName hogehoge.example.jp DocumentRoot /home/railsapp/hogehoge/current/public </VirtualHost>
Passenger(mod_rails)をインストールしてみる
Rails運用環境として何かと話題のmod_railsを導入します。
http://www.nearch.jp/ をmongrelからmod_railsに切り替えました。体感的には速くなった気がする。
利点
実際の導入作業の前にmod_rails構成の利点をメモ。
- mongrel_cluster等に比べて構成がとてもシンプルになる
運用の際にApacheだけ気にしてればいいので楽。
- Railsアプリの初期設定が簡単
VirtualHost設定すれば動く。
- mongrel_cluster構成に比べてオーバーヘッドが減る
コンテキストスイッチが減る。
上記くらいの利点があると思う。
あとベンチマークは取ってないけど、mongrel_cluster + Apache構成よりは速い。
また開発が活発なので、これから実行速度、安定性が増していきそう。将来性に期待。
インストール
今回の例はCentOS5環境です。
# gem install passenger
gemから導入。
# passenger-install-apache2-module Welcome to the Phusion Passenger Apache 2 module installer, v2.0.3. This installer will guide you through the entire installation process. It shouldn't take more than 3 minutes in total. Here's what you can expect from the installation process: 1. The Apache 2 module will be installed for you. 2. You'll learn how to configure Apache. 3. You'll learn how to deploy a Ruby on Rails application. Don't worry if anything goes wrong. This installer will advise you on how to solve any problems. Press Enter to continue, or Ctrl-C to abort.
apacheモジュールをコンパイルして導入します。
ここでエンターを押すと環境チェックが動きます。何か不足している物があれば教えてくれるので、Ctrl-Cして入れてやり直します。
忘れ物がなければ自動でコンパイルが行われます。
-------------------------------------------- The Apache 2 module was successfully installed. Please edit your Apache configuration file, and add these lines: LoadModule passenger_module /usr/lib/ruby/gems/1.8/gems/passenger-2.0.3/ext/apache2/mod_passenger.so PassengerRoot /usr/lib/ruby/gems/1.8/gems/passenger-2.0.3 PassengerRuby /usr/bin/ruby After you restart Apache, you are ready to deploy any number of Ruby on Rails applications on Apache, without any further Ruby on Rails-specific configuration! Press ENTER to continue.
一通り作業が終わるとApacheの設定が書き出されるのでメモ。
-------------------------------------------- Deploying a Ruby on Rails application: an example Suppose you have a Ruby on Rails application in /somewhere. Add a virtual host to your Apache configuration file, and set its DocumentRoot to /somewhere/public, like this: <VirtualHost *:80> ServerName www.yourhost.com DocumentRoot /somewhere/public </VirtualHost> And that's it! You may also want to check the Users Guide for security and optimization tips and other useful information: /usr/lib/ruby/gems/1.8/gems/passenger-2.0.3/doc/Users guide.html Enjoy Phusion Passenger, a product of Phusion (www.phusion.nl) :-) http://www.modrails.com/ Phusion Passenger is a trademark of Hongli Lai & Ninh Bui.
次にVirtualHostの設定を教えてくれるのでメモ。
Apacheの設定
/etc/httpd/conf.d/passenger.conf を作成して、先ほどのメモをペースト。
LoadModule passenger_module /usr/lib/ruby/gems/1.8/gems/passenger-2.0.3/ext/apache2/mod_passenger.so PassengerRoot /usr/lib/ruby/gems/1.8/gems/passenger-2.0.3 PassengerRuby /usr/bin/ruby
Railsアプリを配置
適当なアプリ(hogehoge)を設置してみます。
設置場所はrailsappのユーザディレクトリ配下にします。
# useradd railsapp # chmod 705 /home/railsapp/ # su - railsapp % cd /home/railsapp % rails hogehoge
hogehogeの内容は適当にどうぞ。
パーミッションは、/home/railsappをapacheから読めるように設定しておけばOKです。アプリはconfig/environment.rbの持ち主の権限で動作します。
VirtualHostの設定
/etc/httpd/conf.d/virtualhost.conf を作ります。
NameVirtualHost *:80 <VirtualHost *:80> ServerName hogehoge.example.jp DocumentRoot /home/railsapp/hogehoge/public </VirtualHost>
Apache再起動確認
# /etc/init.d/httpd restart
これで http://hogehoge.example.jp で動作してるはず。
Capistranoでのデプロイ方法は後ほど別エントリで書きます。
サムネイル画像クリックでニコニコ動画へ飛ぶように変更
・http://www.nearch.jp/
使い易くなった気がする!
修正漏れがあったら教えてください。