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