Erinevus lehekülje "Ruby on rails" redaktsioonide vahel
P |
P (Apache mongrel rails moved to Ruby on rails) |
(Erinevus puudub)
|
Redaktsioon: 8. jaanuar 2008, kell 19:50
Rails arenduskeskond
Installime vajalikud päkitsad railsile
cd /usr/ports/lang/ruby18 make install && make clean pkg_add -r portupgrade
portinstall -PR rubygem-rails
Viimane käsk installib railsi koos kõigi sõltuvustega võti P käseb kasutada binaarseid installereid kui võimalik ja R upgradeb juba installitud sõltuvusi
Uue projekti loome käsuga
rails ideenimi
Genereerib kausta ideenimi
seejärel stardime arenduseks vajaliku webrick serveri
cd ideenimi script/server -d -p 3000 => Booting WEBrick... => Rails application started on http://0.0.0.0:3000 [2008-01-08 18:27:50] INFO WEBrick 1.3.1 [2008-01-08 18:27:50] INFO ruby 1.8.6 (2007-09-24) [i386-freebsd7]
võti p 3000 stardib veebiserveri pordile 3000
nüüd peaksime enda projekti nägema aadressil http://localhost:3000
Rails ja Apache mitme projektiga server
Süsteem toimib nii, et Apache suunab vhostide info mongrel serverile, mis siis railsi skripte esile manab.
cd /usr/ports/apache22 make install with_proxy_modules=yes gem install mongrel gem install mongrel-cluster
Loome vajalikud skriptid
pane rcrails /etc/init.d vms kausta ja start_mongrel iga railsi script kausta. start_mongreli sees määra USER ja GROUP, kellena see server jooksma peaks.
Meil on kaks eraldi railsis loodud programmi, mis asuvad
/home/rails/progeadmin/ /home/rails/veebiadmin/
/usr/local/etc/rails.conf või muusse faili (muuda vastavalt rcrails skripti) kirjuta näiteks:
RAILS_SERVERS=" /home/rails/progeadmin/ /home/rails/veebiadmin/
Mongrel Cluster seadistus
mongrel_rails cluster::configure -e production \ -p 8000 -N 3 -c /var/www/apps/testapp -a 127.0.0.1 \ --user mongrel --group mongrel
mongrel_rails cluster::configure -e production \ -p 8100 -N 3 -c /var/www/apps/testapp -a 127.0.0.1 \ --user mongrel --group mongrel
See käsk kirjutab konfiguratsiooni faili config/mongrel_cluster.yml.
cat home/progeadmin/rails/config/mongrel_cluster.yml
user: programm cwd: /home/progeadmin/rails/ port: "8000" environment: production group: konkurss address: 127.0.0.1 pid_file: log/mongrel.pid servers: 3
Nende käskude peale käivituvad kummagi railsi kohta kolm mongrel protsessi Esimesel portidele 8001 8002 8003 ja teisel 8101 8102 8103
Mongrel clustri startimiseks tuleb anda käsk
mongrel_rails cluster::start
httpd.conf
Kontrollime, et read oleksid
LoadModule proxy_module libexec/apache22/mod_proxy.so LoadModule proxy_connect_module libexec/apache22/mod_proxy_connect.so LoadModule proxy_ftp_module libexec/apache22/mod_proxy_ftp.so LoadModule proxy_http_module libexec/apache22/mod_proxy_http.so LoadModule proxy_ajp_module libexec/apache22/mod_proxy_ajp.so LoadModule proxy_balancer_module libexec/apache22/mod_proxy_balancer.so
Nüüd loome mõlemale progele nende vhostid
<VirtualHost 193.40.0.10:80> ServerName progeadmin.katse.ee DocumentRoot /home/rails/progeadmin/ <Directory "/home/rails/progeadmin/"> Options FollowSymLinks AllowOverride None Order allow,deny Allow from all </Directory> RewriteEngine On # Redirect all non-static requests to cluster #RewriteCond %{DOCUMENT_ROOT}/%{REQUEST_FILENAME} !-f RewriteRule ^/(.*)$ balancer://mongrel_cluster%{REQUEST_URI} [P,QSA,L] </VirtualHost>
<VirtualHost 193.40.0.10:80> ServerName veebiadmin DocumentRoot /home/rails/veebiadmin/ <Directory "/home/rails/veebiadmin/"> Options FollowSymLinks AllowOverride None Order allow,deny Allow from all </Directory> RewriteEngine On # Rewrite to trailing slash RewriteRule ^/admin$ /admin/ [R,L] # test if this is /admin request RewriteCond %{REQUEST_URI} ^/admin(/.*) # strip off /admin and put result in ENV RewriteRule ^/admin(.*) /admin$1 [E=AdminReq:$1] RewriteCond /home/rails/admin/public/%{ENV:AdminReq} -f # serve static files RewriteRule ^/admin/(.*) /home/rails/admin/public/$1 [L] # If request is not static, proxy to rails RewriteRule ^/(admin/.*)$ balancer://mongrel_cluster2/$1 [P,QSA,L] </VirtualHost>
Ehitame proxyd
<Proxy balancer://mongrel_cluster2> BalancerMember http://127.0.0.1:8001 BalancerMember http://127.0.0.1:8002 BalancerMember http://127.0.0.1:8003 </Proxy>
<Proxy balancer://mongrel_cluster> BalancerMember http://127.0.0.1:8101 BalancerMember http://127.0.0.1:8102 BalancerMember http://127.0.0.1:8103 </Proxy>
ja balaceri
Listen 8000 <VirtualHost 193.40.0.10:8000> <Location /> SetHandler balancer-manager Deny from all Allow from localhost </Location> </VirtualHost>
Lingid