Middleware: Rack

Rack β€” это прослойка ΠΌΠ΅ΠΆΠ΄Ρƒ Π²Π΅Π± Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΎΠΌ (rails, sinatra, ...) ΠΈ Π²Π΅Π±-сСрвСром (puma, nginx, unicorn, ...). Π­Ρ‚ΠΎ классичСский middleware слой, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ€Π°Ρ‚ΡŒ Π½Π° сСбя классичСскиС Π·Π°Π΄Π°Ρ‡ΠΈ:

  • Π›ΠΎΠ³ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅

  • Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ сСссиСй

  • ΠŸΡ€ΠΎΡ„Π°ΠΉΠ»ΠΈΠ½Π³

  • ΠšΡΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅

  • Π‘Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΡŒ (ΠΎΡ‚Π±Ρ€ΠΎΡΠΈΡ‚ΡŒ запросы ΠΏΠΎ IP ΠΈΠ»ΠΈ ΠΈΠ·-Π·Π° Π»ΠΈΠΌΠΈΡ‚ΠΎΠ²)

  • Запрос статичСских Π΄Π°Π½Π½Ρ‹Ρ…

rack-attack β€” прослойка для блокирования ΠΈ Ρ‚Ρ€ΠΎΡ‚Π»ΠΈΠ½Π³Π°

Rails on Rack: https://guides.rubyonrails.org/rails_on_rack.html

Getting started

Π“Π»Π°Π²Π½Ρ‹ΠΉ ΠΊΠΎΠ½Ρ„ΠΈΠ³ Ρ„Π°ΠΉΠ» для Rack β€” Rails.root/config.ru. Π—Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ сСрвСр Ρ‡Π΅Ρ€Π΅Π· rake:

$ rackup config.ru
Puma starting in single mode...
* Puma version: 5.6.4 (ruby 2.7.5-p203) ("Birdie's Version")
*  Min threads: 5
*  Max threads: 5
*  Environment: development
*          PID: 36623
* Listening on http://127.0.0.1:9292
* Listening on http://[::1]:9292
Use Ctrl-C to stop
127.0.0.1 - - [18/Aug/2022:18:16:21 +0300] "GET / HTTP/1.1" 200 400497 0.9723
127.0.0.1 - - [18/Aug/2022:18:16:21 +0300] "GET /favicon.ico HTTP/1.1" 200 - 0.1332

ΠŸΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ список ΠΎΠ±ΡŠΡΠ²Π»Π΅Π½Π½Ρ‹Ρ… middlewares:

$ ./bin/rails middleware

ΠŸΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ описаниС Π΄Π΅Ρ„ΠΎΠ»Ρ‚Π½Ρ‹Ρ… middlewares β€” https://guides.rubyonrails.org/rails_on_rack.html#internal-middleware-stack

Π’ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ΠΈΠ»ΠΈ Π²Ρ‹ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ/Π·Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Ρ‚ΠΎΡ‚ ΠΈΠ»ΠΈ ΠΈΠ½ΠΎΠΉ middleware ΠΌΠΎΠΆΠ½ΠΎ Ρ‡Π΅Ρ€Π΅Π· свойство config.middleware Π² скриптах-ΠΊΠΎΠ½Ρ„ΠΈΠ³Π°Ρ… Π² ΠΏΠ°ΠΏΠΊΠ΅ config.

Last updated