Erinevus lehekülje "Rails koos Unicorni ja Nginxiga" redaktsioonide vahel

Allikas: Kuutõrvaja
(Uus lehekülg: 'Lühidalt on aga lugu selline_ Nginx server - serveerib staatilisi faile railsi /public kaustast - kõik muu suunab UNIXi socketile Idee on selline, et kõige ees on Nginx, mi...')
 
2. rida: 2. rida:
  
 
Nginx server
 
Nginx server
  - serveerib staatilisi faile railsi /public kaustast
+
*serveerib staatilisi faile railsi /public kaustast
  - kõik muu suunab UNIXi socketile
+
*kõik muu suunab UNIXi socketile
  
 
Idee on selline, et kõige ees on Nginx, mis teeb dünaamilist mass-virtualhostimist ja kõikide RAKENDUS.zoo.tartu.ee domeenimede jaoks üritab leida sobivat UNIXi socketit, kuhu päring edasi anda.
 
Idee on selline, et kõige ees on Nginx, mis teeb dünaamilist mass-virtualhostimist ja kõikide RAKENDUS.zoo.tartu.ee domeenimede jaoks üritab leida sobivat UNIXi socketit, kuhu päring edasi anda.
  
 
Unicorni server:
 
Unicorni server:
  - käib plain-useri õigustes
+
*käib plain-useri õigustes
  - käima tõmmatud Railsi kodukaustast: bundle exec unicorn -c unicorn.conf -D -E <environment>
+
*käima tõmmatud Railsi kodukaustast: bundle exec unicorn -c unicorn.conf -D -E <environment>
  - kill -USR2 teeb no-downtime restardi, st Unicorn tõmbab uue masteri käima ja  see loadib koodi ja kui ta esimese lapse teeb, siis too saadab vanale masterile surmasõnumi.
+
*kill -USR2 teeb no-downtime restardi, st Unicorn tõmbab uue masteri käima ja  see loadib koodi ja kui ta esimese lapse teeb, siis too saadab vanale masterile surmasõnumi. kasutajate jaoks downtime ei ole.
    kasutajate jaoks downtime ei ole.
 
  
 
God:
 
God:
  - tõmmatakse käima local.stardist:  /usr/local/bin/god -c /srv/w/app/config/meedia.god
+
*tõmmatakse käima local.stardist:  /usr/local/bin/god -c /srv/w/app/config/meedia.god
  - jälgib, et Unicorn käiks
+
*jälgib, et Unicorn käiks
  - jälgib, et Redis käiks
+
*jälgib, et Redis käiks
  - jälgib, et 3 Resque protsessi käiks
+
*jälgib, et 3 Resque protsessi käiks
  
 
Godi pluss on see, et tema konf on Ruby script, mistõttu on ta ülipaindlik.
 
Godi pluss on see, et tema konf on Ruby script, mistõttu on ta ülipaindlik.
28. rida: 27. rida:
  
 
nginxi ja Unicorni mass-virtual-hostingu konfinäite:
 
nginxi ja Unicorni mass-virtual-hostingu konfinäite:
https://gist.github.com/2408849
+
*https://gist.github.com/2408849
  
 
Seal see Unicorni conf on suht generic ja sobib praktiliselt üks-ühele iga Railsi jaoks, mis Unixi socketi kaudu ühendub front-end serveriga.
 
Seal see Unicorni conf on suht generic ja sobib praktiliselt üks-ühele iga Railsi jaoks, mis Unixi socketi kaudu ühendub front-end serveriga.

Redaktsioon: 14. mai 2012, kell 11:13

Lühidalt on aga lugu selline_

Nginx server

  • serveerib staatilisi faile railsi /public kaustast
  • kõik muu suunab UNIXi socketile

Idee on selline, et kõige ees on Nginx, mis teeb dünaamilist mass-virtualhostimist ja kõikide RAKENDUS.zoo.tartu.ee domeenimede jaoks üritab leida sobivat UNIXi socketit, kuhu päring edasi anda.

Unicorni server:

  • käib plain-useri õigustes
  • käima tõmmatud Railsi kodukaustast: bundle exec unicorn -c unicorn.conf -D -E <environment>
  • kill -USR2 teeb no-downtime restardi, st Unicorn tõmbab uue masteri käima ja see loadib koodi ja kui ta esimese lapse teeb, siis too saadab vanale masterile surmasõnumi. kasutajate jaoks downtime ei ole.

God:

  • tõmmatakse käima local.stardist: /usr/local/bin/god -c /srv/w/app/config/meedia.god
  • jälgib, et Unicorn käiks
  • jälgib, et Redis käiks
  • jälgib, et 3 Resque protsessi käiks

Godi pluss on see, et tema konf on Ruby script, mistõttu on ta ülipaindlik.

Teine võimalus on kasutada God asemel Blessingut.

Blessing hooliseb Socketite olemasolu eest (blessing on inglise keeles ükssarvikute kari), mis on käivitatud selliselt, et leiab üles kõik /srv/w/*/config/unicorn.conf failid ja igaühe kohta tõmbab üne Unicorni käima. Seejärel jääb 10s intervalliga jälgima, kas faili muutmisaeg on muutunud, et Unicorni restartida.

Blessing on võimalik, et nõdram. Eesmärk on see, et ta monitoorib shell-glob mustriga kaustapuud (nt /srv/w/*/unicorn.conf) ja kui avastab mõne uue unicorn.conf faili, siis tõmbab uue Unicorni käima. Kui mõni ära kaob, tapab protsessi maha jne.

nginxi ja Unicorni mass-virtual-hostingu konfinäite:

Seal see Unicorni conf on suht generic ja sobib praktiliselt üks-ühele iga Railsi jaoks, mis Unixi socketi kaudu ühendub front-end serveriga.