(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0], j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-5LHNRP9'); Hlutverk Rack í vistkerfi Ruby - The Codest
The Codest
  • Um okkur
  • Þjónusta
    • Hugbúnaðarþróun
      • Framhliðþróun
      • Bakendaþróun
    • Staff Augmentation
      • Framhliðaráþrófarar
      • Bakhliðaráþróunaraðilar
      • Gagnaverkfræðingar
      • Skýjaverkfræðingar
      • Gæðatryggingartæknimenn
      • Annað
    • Það er ráðgjafi
      • Endurskoðun og ráðgjöf
  • Iðnaðargreinar
    • Fjártæknifyrirtæki og bankastarfsemi
    • E-commerce
    • Adtech
    • Heilbrigðistækni
    • Framleiðsla
    • Flutningar
    • Bifreiða
    • Internet hlutanna
  • Gildi fyrir
    • CEO
    • CTO
    • Afhendingarstjóri
  • Teymið okkar
  • Case Studies
  • Vitið hvernig
    • Blogg
    • Fundir
    • Vefnámskeið
    • Auðlindir
Starfsferilmöguleikar Hafðu samband
  • Um okkur
  • Þjónusta
    • Hugbúnaðarþróun
      • Framhliðþróun
      • Bakendaþróun
    • Staff Augmentation
      • Framhliðaráþrófarar
      • Bakhliðaráþróunaraðilar
      • Gagnaverkfræðingar
      • Skýjaverkfræðingar
      • Gæðatryggingartæknimenn
      • Annað
    • Það er ráðgjafi
      • Endurskoðun og ráðgjöf
  • Gildi fyrir
    • CEO
    • CTO
    • Afhendingarstjóri
  • Teymið okkar
  • Case Studies
  • Vitið hvernig
    • Blogg
    • Fundir
    • Vefnámskeið
    • Auðlindir
Starfsferilmöguleikar Hafðu samband
Aftur ör Farðu aftur
2022-08-25
Hugbúnaðarþróun

Hlutverk Rack í vistkerfi Ruby

Nikólás Nisóría

Lærðu meira um hlutverk rack í vistkerfi Ruby frá sérfræðingi okkar og bættu Ruby-færni þína.

Hér er tómt.

Á meðan unnið er með Rúbín vefur rammasetningar Það er algengt að taka hluti sem sjálfsögðum. Við vitum að ramminn mun sjá um HTTP-beiðnirnar og framkvæma miðlara-lógíkina fyrir okkur. Þegar forvitni okkar eykst byrjum við að velta fyrir okkur hvað er bak við tjöldin, og þá heyrum við um Rack.

Hvað er Rack?

Þeir verkefni er lýst sem “modúlvænu Ruby-vefþjónaviðmóti”. Rack er viðmótið sem gerir okkur kleift að búa til vefumsóknir með því að sameina forritaskil fyrir vefþjóna, vefgrindur og milliforrit.

hilluröðurúbínskema

Eins og sýnt er á myndinni hér að ofan, starfar Rack sem milliliður milli vefumsóknarinnar okkar og forritsþjónsins, hann pakkar HTTP-beiðnirnar í einfaldasta
á sem mögulegt er.

Stöndlarsamsetning

Rack-forrit er Ruby-hlutur (ekki flokkur) sem bregst við hringja. Hann tekur nákvæmlega eina röksemd, the umhverfi og skilar ófrystum fylki af
nákvæmlega þrjár gildi:

  • Þeir staða,
  • hinn hauslínur,
  • og hinn líkami.

    Þú getur fundið nákvæma lýsingu á Rack-forriti. hér.

require 'rack'

class RackApp
  def call(env)
 status = 200
 headers = { 'Content-Type' => 'text/html' }
 body = ['<h1>My Rack App<h1>']

 [staða, hausar, líkama]
  enda
enda

Stöndur:Meðhöndlari

Handlarar tengja vefþjóna við Rack. Rack inniheldur handlara fyrir Thin, WEBrick, FastCGI, CGI, SCGI og LiteSpeed. Hver forritþjónn sem styður Rack ætti
veita meðhöndlara til að búa til tenginguna (Puma hefur sinn eigin meðhöndlara). Meðhöndlarar eru venjulega virkjaðir með því að kalla MyHandler.run(myapp). Annað valfrjálst skrá má senda til að fela í sér netþjónsspecifíska stillingu.

Nota Thin forritþjón

Rack::Handler::Thin.run(app)

Skilgreinda skráin til að bæta við stillinguna er stillingar.ru og þú getur keyrt það með söfnun Sláðu inn skipun í konsóluna þína.

Rack Middleware

Rack gerir okkur kleift að búa til milliforrit (forrit sem eru á milli aðalvefforritsins okkar og forritsþjónsins). Þessi milliforrit eru tengd saman í keðju og keyrð í röð.

Rack Middleware verður að innleiða allar forskriftir a Stöndlarsamsetning og uppfylli eftirfarandi atriði:

  • Það hlýtur að vera bekkur.,
  • að hafa upphafara sem tekur aðeins einn hnút (aðalforritið),
  • og kalla á næstu milliforritun eða forritið.
class RackMiddleware
def initialize(app)
@app = app
end
def call(env)
@app.call(env)
end
end

Setja í framkvæmd

Nú þegar við þekkjum grunnatriðin erum við tilbúin að búa til okkar fyrstu Rack-forrit með Rack Middleware og keyra það með Puma (forritþjóni).

Setja upp forsendurnar

Gakktu úr skugga um að þú hafir hillu gimsteinn og hinn puma Gersemi uppsett.

gem install rack
gem install puma

Búðu til stillingarskrána

Í fyrsta lagi verðum við að búa til skrá sem heitir stillingar.ru og þessi skrá mun nýta sér
the Rack::Builder DSL til að keyra forritið og bæta við milliforritinu.

Bættu við Rack-forritinu

Inni í stillingar.ru skrá, munum við bæta við einföldu Rack-forritinu sem við skilgreindum í
fyrri köflunum.

# config.ru

class RackApp
  def call(env)
    status = 200
    headers = { 'Content-Type' =&gt; 'text/html' }
    body = ['<h1>My Rack App<h1>']

 [staða, hausar, líkama]
  enda
enda

Bættu við Rack Middleware

Hér munum við gera smávægilega breytingu á einföldu milliforriti okkar, og nú mun það bæta netþjónahugbúnaðinn við HTML-líkamann okkar eftir að því hefur verið keyrt.

# config.ru

class RackMiddleware
  def initialize(app)
    @app = app
  end

  def call(env)
    status, headers, body = @app.call(env)

 body << env['SERVER_SOFTWARE']

 [status, headers, body]
  end
end

Keyra forritnetþjóninn

Sem síðasta skref keyrum við netþjóninn og sjáum forritið okkar keyra. Okkar stillingar.ru Skráin mun líta svona út:

# config.ru

class RackApp
  def call(env)
    status = 200
    headers = { 'Content-Type' =&gt; 'text/html' }
    body = ['<h1>My Rack App<h1>' [status, headers, body]
  end
end

class RackMiddleware
  def initialize(app)
    @app = app
  end

  def call(env)
    status, headers, body = @app.call(env)

 body <&lt; env[&#039;SERVER_SOFTWARE&#039;]

 [status, headers, body]
  end
end

use RackMiddleware
run RackApp.new

Í síðustu línunum tilgreinum við milliforritið með nota og við keyrum forritið með hlaupa.Við erum tilbúnir að framkvæma söfnun Í konsólunni okkar sjáum við að netþjónninn er í gangi. Við getum athugað hvaða port forritið okkar keyrir á og ættum að sjá eitthvað svipað þessu eftir að hafa fengið aðgang að því:

texti fyrir hillutölvu

Ályktanir

Stundum er gott að snúa aftur til grunnatriða og kynnast innsýn í tæknina sem við vinnum með. Learning Rack gefur okkur skýrt yfirlit yfir arkitektúrinn og afhjúpar “galdurinn” á bak við Ruby vefgrindverkin.

samstarfsfáninn

Tengdar greinar

Hugbúnaðarþróun

Einföld Ruby-forritun frá grunni með Active Record

MVC er hönnunarmynstur sem skiptir ábyrgðum forrits til að auðvelda siglingar. Rails fylgir þessu hönnunarmynstri samkvæmt venju.

The Codest
Damian Watroba Software Engineer
E-commerce

Er Ruby on Rails góð tækni til að byggja upp MVP?

Lágmarks raunhæf vara (MVP) er ein af meginreglum Lean Startup-aðferðarfræðinnar. Markmiðið er að hjálpa frumkvöðlum að hefja lærdómsferlið sem fyrst...

Nikólás Nisóría

Gerðu þig áskrifanda að þekkingargrunni okkar og vertu upplýstur um sérfræðiþekkingu upplýsingatæknigeirans.

    Um okkur

    The Codest – Alþjóðlegt hugbúnaðarþróunarfyrirtæki með tæknimiðstöðvar í Póllandi.

    Bretland - Höfuðstöðvar

    • Skrifstofa 303B, 182-184 High Street North E6 2JA
      Lundúnir, England

    Pólland - staðbundin tæknimiðstöðvar

    • Fabryczna skrifstofugarður, Aleja
      Herbergi 18, 31-564 Kraków
    • Brain Embassy, Konstruktorska
      11, 02-673 Varsjá, Pólland

    The Codest

    • Heim
    • Um okkur
    • Þjónusta
    • Case Studies
    • Vitið hvernig
    • Starfsferilmöguleikar
    • Orðabók

    Þjónusta

    • Það er ráðgjafi
    • Hugbúnaðarþróun
    • Bakendaþróun
    • Framhliðþróun
    • Staff Augmentation
    • Bakhliðaráþróunaraðilar
    • Skýjaverkfræðingar
    • Gagnaverkfræðingar
    • Annað
    • Gæðatryggingartæknimenn

    Auðlindir

    • Staðreyndir og goðsagnir um samstarf við utanaðkomandi hugbúnaðarþróunaraðila
    • Frá Bandaríkjunum til Evrópu: Af hverju ákveða bandarísk sprotafyrirtæki að flytja til Evrópu?
    • Samanburður á tæknifjarkerfisþróunarmiðstöðvum: Tech Offshore Europe (Pólland), ASEAN (Filippseyjar), Eurasia (Tyrkland)
    • Hvert eru helstu áskoranir CTO-a og CIO-a?
    • The Codest
    • The Codest
    • The Codest
    • Privacy policy
    • Website terms of use

    Höfundarréttur © 2026 af The Codest. Öll réttindi áskilin.

    is_ISIcelandic
    en_USEnglish de_DEGerman sv_SESwedish da_DKDanish nb_NONorwegian fiFinnish fr_FRFrench pl_PLPolish arArabic it_ITItalian es_ESSpanish nl_NLDutch etEstonian elGreek pt_PTPortuguese cs_CZCzech lvLatvian lt_LTLithuanian is_ISIcelandic