rails under “production”

Slides:



Advertisements
Similar presentations
Rails tips 氏久 達博. 注 この資料は後で読む用に 作られており、プレゼン 時にスクリーンに映るも のと内容が若干異なりま す。
Advertisements

1. これだけは入れとけ!便利な gem 2. こう記述しろ!設定ファイル 3. 意外と知らない?注意点.
Rails 勉強会@大阪 -002 cuzic. 今日はなすこと 相対パスプラグイン Double Filter Plugin 埋め草 –Cuzic の環境とか –1 つのボタンで複数の Ajax なアクションを実 行.
1 File #1 2 Apache入門 3 Apache とは・・・ 4 ・世界で最も利用されてる WWW サーバー ○ Apache の特徴 ・動作が軽快 ・豊富な機能をモジュールにより追加できる.
Web アプリケーション開発入門 大岩研究会 今野隆平 2002 年 5 月 9 日 Introduction to Web Application Development.
Ruby on Rails (RoR) 講習会 近畿大学大学院 田中大介. 本日の目標 Web アプリケーションを作ろう!
Cubby Web アプリケーションのためのシ ンプルなフレームワーク BABA Yasuyuki.
1 なんとなく Ajax ~新しくて古い XMLHttp 川合孝典 (Kansai.pm) 2005/5/22.
WebサービスII (第12回)‏ 2007年12月19日 植田龍男.
BBT大学 Ruby on Rails開発環境セットアップマニュアル
RailsによるAjaxの利用 回生 小野 実.
WinDBG6によるRTX5.5デバッグ RTX開発環境 WinDBG6.0 debugモードで起動 232Cクロスケーブル
WWW のおはなし 神戸大学理学部地球惑星科学科 4 回生 佐伯 拓郎 (地球および惑星大気科学研究室) 藤田 哲也 (宇宙物理学研究室)
神戸大学理学部地球惑星科学科 4回生 柏本 光司
難しいことは置いといて、 取り合えず 「BlazeDS」 を使って、 Flash、AIRアプリから Javaオブジェクトのメソッドを呼び出すための 手順書(Windows版) 2008年2月 Lecce.
図書系職員のための アプリケーション開発講習会
下藤 弘丞 SecureWeblogの構築.
Webアプリケーションの 通信メカニズム WEBアプリ研究プロジェクト 第2回.
3-1 MySQLについて 発表者:藤村元彦 自然言語処理研究室.
CubbyでRESTfulなWebアプリを
WebサービスII (第10回) 2007年11月28日 植田龍男.
システム構成とアプリケーション設定に基づく セキュリティ・ポリシ自動生成フレームワーク
Servlet J2EE I 第8回 /
Iアプリプログラミング その1  鳥居秀徳.
ネットワークプログラミング論 平成27年10月12日 森田 彦.
WSDL と JAX-RPC 年10月13日 Webサービス II (第3回) WSDL と JAX-RPC 年10月13日.
吉田和弘 株式会社ミッタシステム Rubyのすすめ 吉田和弘 株式会社ミッタシステム
JavaServlet&JSP入門 01K0018 中村太一.
James 近畿大学 理工学部 情報学科 03-242 藤森浩忠.
EP WWW サーバ 2009 惑星物理学研究室 博士後期課程1年 山下 達也.
第4回 個人の動画配信補足のためのWeb構築
問題設定の迅速化 Quick Quiz Setting
サーバ管理と運営 不正アクセスに対するセキュリティ構築
WebCluster スライドショーで見る操作ガイド
ビューとコントローラ.
HTTPプロトコルとJSP (1) データベース論 第3回.
HTTPプロトコル J2EE I 第7回 /
コンピュータ基礎実習上級 #10 絶対パスによる指定
サーバ構成と運用 ここから私林がサーバ構成と運用について話します.
WSDL と JAX-RPC 年10月20日 Webサービス II (第4回) WSDL と JAX-RPC 年10月20日.
ネットワークプログラミング論 平成28年10月17日 森田 彦.
ユーザ毎にカスタマイズ可能な Web アプリケーション用のフレームワークの実装
片岡 哲也 (社) システムエンジニアリング岡山
RMI ソフトウェア特論 第6回 /
QuestionnairToolの開発 中村太一.
2004年度 サマースクール in 稚内 JavaによるWebアプリケーション入門
2003年度 データベース論 安藤 友晴.
TomcatによるWebアプリケーション開発入門
3-10. MySQLシステムの管理  2004年6月10日  大北高広                01T6010F.
佐賀大学 理工学部知能情報システム学科 講師 大月 美佳
Javaによる Webアプリケーション入門 第6回
Javaによる Webアプリケーション入門 第2回
Webプロキシ HTTP1.0 ヒント CS-B3 ネットワークプログラミング  &情報科学科実験I.
SFC鴨池スタイル 企画・設計 環境情報学部1年 t12472ms 杉浦 学.
MySQL/Ruby, ERB, mod_rubyを使ったCGIの実例
データベース設計 第7回 実用データベースの運用例 クライアント=サーバシステム(1)
情報コミュニケーション入門b 第11回 Web入門(2)
仮想環境を用いた 侵入検知システムの安全な構成法
情報コミュニケーション入門e 第12回 Part1 Web入門(2)
Webアプリケーションと JSPの基本 ソフトウェア特論 第4回.
サーバ・クライアントシステム (X Window System )
WebアプリケーションとTomcat ― これまでの復習とこれからの予習 ―
JSPの基本 データベース論 第2回.
情報コミュニケーション入門e 第12回 Part1 Web入門(2)
JSPの基本 J2EE I (データベース論) 第8回 /
システムプログラミング 第10回 プロセス間通信3 簡易Web server(準備) Chat プログラム 担当:青木義満、篠埜 功
状況に応じて適切な 例外処理が行なえる アスペクト指向分散環境実験の 支援ツール
第2回 Webサーバ.
第6章 インターネットアプリケーション 6.1 インターネットアプリケーション 6.2 Javaによるネットワーク処理 6.3 電子メール
HTTPプロトコルの詳細 M1 峯 肇史.
Presentation transcript:

rails under “production” もろはし moronatural@gmail.com http://d.hatena.ne.jp/moro/ 帰属 2.1 日本

rails アプリを"production"で動かす scaffold で雛型生成。 script/server でlighttpdを起動。 test/*で楽々TDD。 ・・できた!! で、そのあとは・・・?

fcgiを使ってrailsアプリを動かす いろんな選択肢が。 apache ←→ lighttpd 全サーバ同居 ←→ サーバの分離 単一アプリ ←→ multiple アプリ

apacheで動かす mod_fastcgi.soはあらかじめロードしておく。 Add-handler fast-cgi .fcgi もやっておく。 ポイントはdispatch.fcgiの呼び出しと fcgiプロセスの起動 httpd.conf DocumentRoot /var/webapp/saihu/current/public FastCgiServer /var/webapp/saihu/current/public/dispatch.fcgi \ -initial-env RAILS_ENV=production \ -initial-env RAILS_ROOT=/var/webapp/saihu/current \ -processes 2 public/.htaccess RewriteRule ^$ index.html [QSA] RewriteRule ^([^.]+)$ $1.html [QSA] RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^(.*)$ dispatch.fcgi [QSA,L]

lighttpdで動かす config/lighttpd.confを参考に こちらのポイントも404時のdispatch.fcgiの 呼び出し(error-handler-404)と fcgiプロセスの起動 lighttpd.conf server.modules = \ ( "mod_rewrite", "mod_accesslog", "mod_fastcgi" ) server.error-handler-404 = "/dispatch.fcgi" server.document-root = "public/" fastcgi.server = ( ".fcgi" => ( "localhost" => ( "min-procs" => 1, "max-procs" => 1, "socket" => "log/fcgi.socket", "bin-path" => "public/dispatch.fcgi", "bin-environment" => ( "RAILS_ENV" => "production" ) )))

apacheでAPサーバを分ける DocumentRootの設定は前と同様に。 FastCgiExternalServerディレクティブを使う httpd.conf FastCgiExternalServer \ /var/webapp/saihu/current/public/dispatch.fcgi \ -host my_ap_server:7000 APサーバ側ではあらかじめfcgiプロセスを 起動しておく $ ruby script/process/spinner -c \ 'ruby script/process/spawner -p 7000' your shell

lighttpdでAPサーバを分ける こちらもAPサーバはあらかじめ起動しておく。 “port”はクォート'”'不要。 RAILS_ENVの制御はAPサーバ側で。 lighttpd.conf fastcgi.server = ( ".fcgi" => ( "localhost" => ( "host" => “my_ap_server”, "port => 7000 ) )) your shell $ ruby script/process/spinner -c \ 'ruby script/process/spawner -p 7000'

apacheで複数アプリ共存 Aliasを使ってrailsアプリのpublicを指定 httpd.conf Alias /saihu /var/webapp/saihu/current/public railsアプリ側のpublic/.htaccessで RewriteBaseを指定 httpd.conf RewriteBase /saihu RewriteRule ^$ index.html [QSA] RewriteRule ^([^.]+)$ $1.html [QSA] RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^(.*)$ dispatch.fcgi [QSA,L]

lighttpdで複数アプリ共存(1) alias.urlでaliasを設定 http://myhost/saihu へのアクセス時に、 専用の404ハンドラを設定(ポイント(1)) 上記で設定したハンドラへのアクセスで fcgiプロセスを呼び出すように lihttpd.conf alias.url = ( "/saihu" => "/var/webapp/saihu/current/public" ) $HTTP["url"] =~ "^/saihu/" { server.error-handler-404 = "/saihu/dispatch.fcgi" } fastcgi.server = ( "/saihu/dispatch.fcgi" => (( "host" => "192.168.10.2" , "port" => 7000 , )))

lighttpdで複数アプリ共存(2) rails側には/saihu/controller/actionというrequest が渡るので、"/saihu"は無視するよう設定 (ポイント(2)) config/environment/production.rb ActionController::AbstractRequest.relative_url_root = "/saihu" lighttpd-1.4.8 以降 fastcgi.server内で ”strip-request-uri"という設定が可能。 →画像やCSSへのリンクが/imagesになるので  注意を。(/saihu/imagesではない)

ご静聴ありがとうございました おわり (id:osakanasさん、ありがとうございました) 【参考 - lightyの設定】 http://blog.lighttpd.net/articles/2005/11/23 /lighttpd-1-4-8-and-multiple-rails-apps (id:osakanasさん、ありがとうございました)