<?xml version="1.0" encoding="UTF-8"?>
<page xmlns="http://api.springnote.com">
  <identifier type="integer">622563</identifier>
  <title>&#47112;&#51068;&#49828; &#48176;&#54252; &#44396;&#51312;&#50752; &#48169;&#48277;</title>
  <relation_is_part_of type="integer">619793</relation_is_part_of>
  <date_modified type="datetime">2007-12-02T04:19:02Z</date_modified>
  <uri>http://ikspres.springnote.com/pages/622563</uri>
  <date_created type="datetime">2007-11-29T02:45:13Z</date_created>
  <source>&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h1&gt;Rails &#48176;&#54252;&lt;/h1&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 style="MARGIN-LEFT: 2em"&gt;1.&#48176;&#54252; &#44396;&#51312;&#51032; &#44208;&#51221;&lt;/h2&gt;
&lt;h2 style="MARGIN-LEFT: 2em"&gt;2. &#48176;&#54252; &#48169;&#48277;&#51032; &#51088;&#46041;&#54868;&lt;/h2&gt;
&lt;p style="MARGIN-LEFT: 2em"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4&gt;&amp;nbsp;&lt;/h4&gt;
&lt;h1&gt;1. &#48176;&#54252; &#44396;&#51312;&#51032; &#44208;&#51221;&lt;/h1&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h1&gt;&#48176;&#54252; &#44396;&#51312; &#44208;&#51221;&#51032; &#44592;&#51456;&lt;/h1&gt;
&lt;ul&gt;
&lt;li&gt;&#49457;&#45733;&lt;/li&gt;
&lt;li&gt;&#54869;&#51109;&#49457;&lt;/li&gt;
&lt;li&gt;&#50857;&#51060;&#49457;&lt;/li&gt;
&lt;li&gt;&#53440; &#50937;&#54532;&#47112;&#51076;&#50892;&#53356; &#51648;&#50896;&lt;/li&gt;
&lt;li&gt;&#51221;&#51201; &#54028;&#51068; &#52376;&#47532;&lt;/li&gt;
&lt;li&gt;SSL&lt;/li&gt;
&lt;li&gt;...&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h1&gt;&#50756;&#51204; &#44592;&#48376; - Webrick&lt;/h1&gt;
&lt;ul&gt;
&lt;li&gt;&#49692;&#49688; &#47336;&#48708; &#50937;&#49436;&#48260;&lt;/li&gt;
&lt;li&gt;+ &#49444;&#52824;, &#49444;&#51221; &#48520;&#54596;&#50836;&lt;/li&gt;
&lt;li&gt;- &#49457;&#45733;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h1&gt;&#48736;&#47476;&#51648;&#47564; &#44256;&#53685;&#49828;&#47084;&#50868; - Apache + Fast CGI&lt;/h1&gt;
&lt;ul&gt;
&lt;li&gt;public/.htaccess ,&amp;nbsp; public/dispatch.fcgi&lt;/li&gt;
&lt;li&gt;- 500 Internal Server Error&lt;/li&gt;
&lt;li&gt;+ &#49457;&#45733;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h1&gt;&#54620; &#46412; &#45216;&#47160;&#45912; -&amp;nbsp; &lt;span style="COLOR: #ff0000"&gt;Lighttpd&lt;/span&gt; + Fast CGI&lt;/h1&gt;
&lt;ul&gt;
&lt;li&gt;+ &#50504;&#51221;&#51201; Fast CGI &#51648;&#50896;&lt;/li&gt;
&lt;li&gt;+ &#49772;&#50868; &#49444;&#51221;&lt;/li&gt;
&lt;li&gt;- &#44060;&#48156;&#51060; &#45796;&#49548; &#51221;&#52404; &#49345;&#53468;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h1&gt;&#51648;&#44552;&#51008;? &#50756;&#51204; &#44060; &#54032;!&lt;/h1&gt;
&lt;p&gt;&lt;img title="images/visual.jpg" src="http://mongrel.rubyforge.org/images/visual.jpg" alt="images/visual.jpg" /&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Mongrel&lt;/li&gt;
&lt;li&gt;&#47336;&#48708;&#47196; &#44396;&#54788;&#46108; &#50937;&#49436;&#48260;(&#54028;&#49905;&#51008; C&#47196; &#44396;&#54788;)&lt;/li&gt;
&lt;li&gt;+ &#49444;&#51221; &#48520;&#54596;&#50836;&lt;/li&gt;
&lt;li&gt;+ &#49457;&#45733;&lt;/li&gt;
&lt;li&gt;+ &#50612;&#45712; &#51221;&#46020;&#51032; &#51221;&#51201; &#54028;&#51068; &#52376;&#47532; &#45733;&#47141;&lt;/li&gt;
&lt;li&gt;+ &#54876;&#48156;&#54620; &#44060;&#48156;&#44284; &#45796;&#50577;&#54616;&#44256; &#49345;&#49464;&#54620; &#47928;&#49436; &#51228;&#44277;&lt;/li&gt;
&lt;li&gt;&#48372;&#53685; &#46629;&#44060;&#44032; &#50500;&#45768;&#45796;!&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h1&gt;&amp;nbsp;&#54408;&#51333; &#44060;&#47049;&amp;nbsp;(Evented Mongrel)&lt;/h1&gt;
&lt;ul&gt;
&lt;li&gt;&#47336;&#48708; &#49828;&#47112;&#46377;&#51032; &#52712;&#50557;&#49457;&lt;/li&gt;
&lt;li&gt;Threaded -&amp;gt; Evented&lt;/li&gt;
&lt;/ul&gt;
&lt;ol class="code"&gt;
&lt;li class="alt"&gt;&lt;span&gt;&lt;span&gt;gem&amp;nbsp;install&amp;nbsp;eventmachine&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li class=""&gt;&lt;span&gt;gem&amp;nbsp;install&amp;nbsp;swiftiply&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
&lt;li class=""&gt;&lt;span&gt;&lt;span style="COLOR: #ff0000"&gt;env&amp;nbsp;EVENT=1&amp;nbsp;&lt;/span&gt;mongrel_rails&amp;nbsp;start&amp;nbsp;-e&amp;nbsp;production&amp;nbsp;-d&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h1&gt;&#44060; &#46524;&#44032; &#54596;&#50836;&#54644;! (Mongrel Cluster)&lt;/h1&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Mongrel is threaded But Rails is (by default) NOT threaded&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;concurrency &#47484; &#50948;&#54644;&#49436;&#45716;&amp;nbsp; -&amp;gt; &lt;span style="COLOR: #ff0000"&gt;&#50668;&#47084; &#44060;&#51032; mongrel&lt;/span&gt; &#54596;&#50836;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;&lt;span style="COLOR: #008000"&gt;mongrel_cluster&lt;/span&gt;&lt;/strong&gt; gem &#51004;&#47196; &#54620; &#48264;&#50640; &#44288;&#47532;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h1&gt;&#47673;&#51060; &#48516;&#48176; &#47928;&#51228;? (Load Balancer)&lt;/h1&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;load balancer + mongrels(mongrel cluster)&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;tcp balancer&lt;/li&gt;
&lt;li&gt;http balancer&lt;/li&gt;
&lt;li&gt;web server (with balancer)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img title="docs/SimpleLighttpdMongrelSetup.jpg" src="http://mongrel.rubyforge.org/docs/SimpleLighttpdMongrelSetup.jpg" alt="docs/SimpleLighttpdMongrelSetup.jpg" /&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h1&gt;TCP Balancer : Pen / Balance&lt;/h1&gt;
&lt;ul&gt;
&lt;li&gt;+ &#51221;&#47568; &#49772;&#50892;&#50836;&lt;/li&gt;
&lt;li&gt;- SSL &#48520;&#44032;&lt;/li&gt;
&lt;/ul&gt;
&lt;ol class="code"&gt;
&lt;li&gt;pen -H 4000 localhost:3000 localhost:3001&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h1&gt;HTTP Balancer : Pound&lt;/h1&gt;
&lt;ul&gt;
&lt;li&gt;+ &#44036;&#45800;&#54620; &#49444;&#51221;&#54028;&#51068;&lt;/li&gt;
&lt;li&gt;+ SSL &#51648;&#50896;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h1&gt;Web Servers&lt;/h1&gt;
&lt;ul&gt;
&lt;li&gt;+ &#51221;&#51201; &#54028;&#51068; &#48324;&#46020; &#52376;&#47532;&lt;/li&gt;
&lt;li&gt;+ &#45796;&#47480; &#50937;&#54540;&#47019;&#54268; &#51648;&#50896;&lt;/li&gt;
&lt;li&gt;- &#48373;&#51105; (Apache&#45716; &#50628;&#52397; &#48373;&#51105;)&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&#50937;&#49436;&#48260;&#46308;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Apche+mod_proxy_balancer&lt;/li&gt;
&lt;li&gt;Lightspeed&amp;nbsp;&amp;nbsp;&lt;/li&gt;
&lt;li&gt;Lighttpd&lt;/li&gt;
&lt;li style="COLOR: rgb(255,0,0)"&gt;Nginx&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;img title="images/nginx-black-logo.jpg" src="http://wiki.codemongers.com/images/nginx-black-logo.jpg" alt="images/nginx-black-logo.jpg" /&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Made in Russia&lt;/li&gt;
&lt;li&gt;+ &#49457;&#45733;, &#49457;&#45733;, &#49457;&#45733;!!&lt;/li&gt;
&lt;li&gt;+ &#54876;&#48156;&#54620; &#44060;&#48156;&lt;/li&gt;
&lt;li&gt;+ &#48708;&#44368;&#51201; &#49772;&#50868; &#49444;&#51221;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h1&gt;&#48176;&#54252; &#49828;&#53469; &#44208;&#51221; &#52488;&#44036;&#45800; &#44592;&#51456;&#54364;&lt;/h1&gt;
&lt;table class="datatable"&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&#47112;&#51068;&#49828; &#50724;&#45720; &#52376;&#51020;&#51060;&#50640;&#50836;&lt;/td&gt;
&lt;td&gt;Webrick&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&#51060;&#51228; &#51312;&#44552; &#50508; &#44163; &#44057;&#45348;&#50836;.&lt;/td&gt;
&lt;td&gt;Mongrel ( evented Mongrel)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&#51328; &#45908; &#48736;&#47480;&#44144;&#50836;. &#49772;&#50864;&#47732;&#49436;.&lt;/td&gt;
&lt;td&gt;Pen/Balance + Mongrel_cluster&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&#51328; &#45908; &#48736;&#47476;&#44144;&#50836;. SSL &#46104;&#47732;&#49436;&#50836;&lt;/td&gt;
&lt;td&gt;Pound + Mongrel_cluster&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&#50500;&#54028;&#52824; &#50500;&#45768;&#47732; &#50504;&#46104;&#50836;. &#51328;&amp;nbsp; &#48373;&#51105;&#54644;&#46020; &#52280;&#51012;&#44760;&#50836;&lt;/td&gt;
&lt;td&gt;Apache + mod_proxy_balance + Mongrel_cluster&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&#47924;&#51648; &#48736;&#47476;&#44256;. &#44036;&#51648;&#45208;&#45716;&lt;/td&gt;
&lt;td&gt;NginX + Mongrel_cluster&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h1&gt;&#52280;&#44256; &#47928;&#54732;&lt;/h1&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://mongrel.rubyforge.org/docs/choosing_deployment.html" title="&#47805;&#44536;&#47120;&#51032; &#50668;&#47084;&#44032;&#51648; &#48176;&#54252; &#48169;&#48277;" class="external"&gt;&#47805;&#44536;&#47120;&#51032; &#50668;&#47084;&#44032;&#51648; &#48176;&#54252; &#48169;&#48277;&amp;nbsp; / Mongrel (&#52628;&#52380;)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://myruby.net/pages/320379" title="&#47112;&#51068;&#49828; &#52572;&#51201;&#51032; &#48176;&#54252; &#54872;&#44221; / deepblue" class="external"&gt;"Rails Deployment" / deepblue (&#50773;&#52628;&#52380;)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://blog.kovyrin.net/2006/08/28/ruby-performance-results/lang/en/" title="Looking For Optimal Solution" class="external"&gt;Looking For Optimal Solution&lt;/a&gt;, &lt;a href="http://blog.kovyrin.net/2006/08/22/high-performance-rails-nginx-lighttpd-mongrel/" title="High-Performance Rails Setups" class="external"&gt;High-Performance Rails Setups&lt;/a&gt; / Homo-Adminus blog&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.valibuk.net/?p=56" title="Rails, Capistrano, Mongrels and nginx on Gentoo" class="external"&gt;Rails, Capistrano, Mongrels and nginx on Gentoo&lt;/a&gt; / valibuk.net&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h1&gt;2. &#48176;&#54252; &#51208;&#52264;&lt;/h1&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;img title="heading_to_ground2.JPG" class="attachment" src="/pages/622563/attachments/276694" alt="heading_to_ground2.JPG" /&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h1&gt;Capistrano&amp;nbsp;&lt;/h1&gt;
&lt;p&gt;&lt;img title="Nerja_Capistrano_Playa_Hotel_Nerja.jpg" class="attachment" src="/pages/622563/attachments/276695" alt="Nerja_Capistrano_Playa_Hotel_Nerja.jpg" /&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;img title="Content/3/3386/1361575.jpg" src="http://filelibrary.myaasite.com/Content/3/3386/1361575.jpg" alt="Content/3/3386/1361575.jpg" /&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h1&gt;Capistrano &#44060;&#45392;&lt;/h1&gt;
&lt;p&gt;&lt;img title="capistrano_basic_concept.PNG" class="attachment" src="/pages/622563/attachments/276713" alt="capistrano_basic_concept.PNG" /&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style="TEXT-ALIGN: center"&gt;cap : capfile = make : makefile&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h1&gt;&#54596;&#50836;&#49324;&#54637;&lt;/h1&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&amp;nbsp; &#51204;&#51228; &#51312;&#44148;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;SSH &#47196; &#50896;&#44201; &#49436;&#48260;&#50640; &#51217;&#44540; &#44032;&#45733;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&amp;nbsp;&#49444;&#52824;&lt;/li&gt;
&lt;/ul&gt;
&lt;ol class="code"&gt;
&lt;li&gt;gem install capistrano&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h1&gt;task &#51221;&#51032;&lt;/h1&gt;
&lt;ul&gt;
&lt;li&gt;&#50896;&#44201;&#50640;&#49436;&amp;nbsp; &#49688;&#54665;&#46112; &#45236;&#50857;&#51012; &#51221;&#51032;&lt;/li&gt;
&lt;/ul&gt;
&lt;ol class="code"&gt;
&lt;li&gt;# Capfile&lt;/li&gt;
&lt;li&gt;task :count_libs do&lt;/li&gt;
&lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; run "ls -x1 /usr/lib | wc -l"&lt;/li&gt;
&lt;li&gt;end&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&#49892;&#54665;&lt;/li&gt;
&lt;/ul&gt;
&lt;ol class="code"&gt;
&lt;li&gt;cap count_libs&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&#45236;&#51109;&#46108; &#46160; &#44060;&#51032; task&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;invoke : &#54620; &#44060;&#51032; &#47749;&#47161; &#49688;&#54665;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;ol class="code" style="MARGIN-LEFT: 4em"&gt;
&lt;li&gt;cap invoke COMMAND="ls -l"&lt;/li&gt;
&lt;li&gt;cap invoke COMMAND="ls -l" HOSTS="some.host.org"&lt;/li&gt;
&lt;/ol&gt;
&lt;ul style="MARGIN-LEFT: 2em"&gt;
&lt;li&gt;
&lt;p&gt;shell : interactive shell &#49884;&#51089;&lt;/p&gt;
&lt;ol class="code"&gt;
&lt;li&gt;cap shell&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h1&gt;role &#51221;&#51032;&lt;/h1&gt;
&lt;p&gt;task&#44032; &#49688;&#54665; &#46112; &#45824;&#49345; &#50896;&#44201; &#49436;&#48260;&#46308;&#51012;&amp;nbsp; &#50669;&#54624; &#48324;&#47196; &#44396;&#48516;&#54616;&#50668; &#51221;&#51032;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;ol class="code"&gt;
&lt;li&gt;role :web, "web1.doggy.com", "web2.doggy.com"&lt;/li&gt;
&lt;li&gt;role :db,&amp;nbsp;&amp;nbsp; "db.doggy.com"&lt;/li&gt;
&lt;li&gt;taks :check_free, :roles =&amp;gt; [:web, :db] do&lt;/li&gt;
&lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; run "df -h /"&lt;/li&gt;
&lt;li&gt;end&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h1&gt;Capistrano with Rails&lt;/h1&gt;
&lt;table class="datatable"&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&#44060;&#48156;&#49436;&#48260;&lt;/th&gt;
&lt;th&gt;&#50896;&#44201;&#49436;&#48260;(&#50868;&#50857;&#49436;&#48260;)&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;p&gt;install mongrel, mongrel_cluster&lt;/p&gt;
&lt;p&gt;install capsitrano&lt;/p&gt;
&lt;p&gt;mongrel_rails cluster::configure&lt;/p&gt;
&lt;p&gt;capify .&lt;/p&gt;
&lt;p&gt;edit depoy.rb&lt;/p&gt;
&lt;p&gt;svn add and commit&lt;/p&gt;
&lt;p&gt;cap deploy:setup&lt;/p&gt;
&lt;p&gt;cap deploy:cold (&#52572;&#52488; deploy)&lt;/p&gt;
&lt;p&gt;cap deploy (&#46160;&#48264;&#51704; &#51060;&#54980; deploy)&lt;/p&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;install database&lt;/p&gt;
&lt;p&gt;create a db for Rails app.&lt;/p&gt;
&lt;p&gt;install mongrel, mongrel_cluster,&lt;/p&gt;
&lt;p&gt;install capistrano&lt;/p&gt;
&lt;p&gt;useradd -d /home/APP -m APP&lt;/p&gt;
&lt;p&gt;APP ALL=(ALL) ALL (in /etc/sudoers )&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h1&gt;capify&lt;/h1&gt;
&lt;ul&gt;
&lt;li&gt;Rails &#50612;&#54540;&#47532;&#52992;&#51060;&#49496; &#54260;&#45908;&#50640; Capitstrano&amp;nbsp; &#49324;&#50857;&#51012; &#44592;&#48376; &#49444;&#51221; &#54028;&#51068; &#49373;&#49457;&lt;/li&gt;
&lt;/ul&gt;
&lt;ol class="code"&gt;
&lt;li&gt;capfify .&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul style="MARGIN-LEFT: 2em"&gt;
&lt;li&gt;[prj_root]/Capfile&lt;/li&gt;
&lt;/ul&gt;
&lt;ol class="code" style="MARGIN-LEFT: 6em"&gt;
&lt;li&gt;load 'deploy'&lt;/li&gt;
&lt;/ol&gt;
&lt;ul style="MARGIN-LEFT: 2em"&gt;
&lt;li&gt;[prj_root]/config/&lt;span style="COLOR: #ff0000"&gt;deploy.rb&lt;/span&gt; &#49373;&#49457;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h1&gt;deploy.rb&lt;/h1&gt;
&lt;ul&gt;
&lt;li&gt;deploy.rb &#51032; &#50696;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;ol class="code"&gt;
&lt;li&gt;# &#50896;&#44201; &#49436;&#48260; login id = 'APP'&lt;br /&gt;
set :runner, "APP"&lt;/li&gt;
&lt;li&gt;set :user, "APP"&lt;/li&gt;
&lt;li&gt;# application name&lt;/li&gt;
&lt;li&gt;set :application, "dry"&lt;/li&gt;
&lt;li&gt;# svn repository&lt;br /&gt;
set :repository,&amp;nbsp; "svn://src.doggy.com/trunk"&lt;/li&gt;
&lt;li&gt;# &#52572;&#49888; deploy&#49548;&#49828; &#50948;&#52824; : /home/APP/dry/current&lt;br /&gt;
set :deploy_to, "/home/APP/#{application}"&lt;/li&gt;
&lt;li&gt;&lt;br /&gt;
role :app, "www.doggy.com"&lt;br /&gt;
role :web, "www.doggy.com"&lt;br /&gt;
role :db,&amp;nbsp; "www.doggy.com", :primary =&amp;gt; true&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h1&gt;script/spin&lt;/h1&gt;
&lt;ul&gt;
&lt;li&gt;rails&amp;nbsp; &#49436;&#48260; &#49892;&#54665; &#49828;&#53356;&#47549;&#53944;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;ol class="code"&gt;
&lt;li&gt;mongrel_rails cluster:start&lt;/li&gt;
&lt;/ol&gt;
&lt;p style="MARGIN-LEFT: 2em"&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h1&gt;&#52280;&#44256;&#47928;&#54732;&lt;/h1&gt;
&lt;ol&gt;
&lt;li&gt;&amp;nbsp;&lt;a href="http://www.valibuk.net/?p=56" title="Rails, Capistrano, Mongrels and nginx on Gentoo" class="external"&gt;Rails, Capistrano, Mongrels and nginx on Gentoo&lt;/a&gt; / valibuk.net&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.capify.org/getting-started/basics" title="Capistrano Basics" class="external"&gt;Capistrano Basics&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.capify.org/getting-started/rails" title="Using Capistrano with Rails" class="external"&gt;Using Capistrano with Rails&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.pragprog.com/titles/fr_deploy" title="Deploying Rails Applications" class="external"&gt;Deploying Rails Applications&lt;/a&gt; /&amp;nbsp; Pragmatic Programmers&lt;/li&gt;
&lt;/ol&gt;
&lt;p style="TEXT-ALIGN: right"&gt;&lt;img title="photos/uncategorized/2007/08/20/fr_deploy.png" src="http://pragdave.pragprog.com/photos/uncategorized/2007/08/20/fr_deploy.png" alt="photos/uncategorized/2007/08/20/fr_deploy.png" /&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;img title="2007/07/thank-you.jpg" src="http://virtualhug.files.wordpress.com/2007/07/thank-you.jpg" alt="2007/07/thank-you.jpg" /&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style="TEXT-ALIGN: center"&gt;&lt;img title="files/2007/07/question-mark.jpg" src="http://highered.prblogs.org/files/2007/07/question-mark.jpg" alt="files/2007/07/question-mark.jpg" /&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
</source>
  <rights nil="true"></rights>
  <creator>ikspres</creator>
  <contributor_modified>ikspres</contributor_modified>
  <version type="integer">279</version>
  <tags>&#44277;&#51648;&#49324;&#54637;</tags>
</page>
