OpenResty: ΠΏΡ€Π΅Ρ‚Π²ΠΎΡ€Π°ΡšΠ΅ Π½Π° NGINX Π²ΠΎ ΠΏΠΎΠ»Π½ΠΎΠΏΡ€Π°Π²Π΅Π½ сСрвСр Π·Π° Π°ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΠΈ

OpenResty: ΠΏΡ€Π΅Ρ‚Π²ΠΎΡ€Π°ΡšΠ΅ Π½Π° NGINX Π²ΠΎ ΠΏΠΎΠ»Π½ΠΎΠΏΡ€Π°Π²Π΅Π½ сСрвСр Π·Π° Π°ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΠΈΠŸΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ Π³ΠΎ ΠΎΠ±Ρ˜Π°Π²ΡƒΠ²Π°ΠΌΠ΅ транскриптот ΠΎΠ΄ ΠΈΠ·Π²Π΅ΡˆΡ‚Π°Ρ˜ΠΎΡ‚ Π½Π° ΠΊΠΎΠ½Ρ„Π΅Ρ€Π΅Π½Ρ†ΠΈΡ˜Π°Ρ‚Π° HighLoad ++ 2016 Π³ΠΎΠ΄ΠΈΠ½Π°, ΡˆΡ‚ΠΎ сС ΠΎΠ΄Ρ€ΠΆΠ° Π²ΠΎ Π‘ΠΊΠΎΠ»ΠΊΠΎΠ²ΠΎ ΠΊΡ€Π°Ρ˜ Москва Π½Π° 7-8 Π½ΠΎΠ΅ΠΌΠ²Ρ€ΠΈ ΠΌΠΈΠ½Π°Ρ‚Π°Ρ‚Π° Π³ΠΎΠ΄ΠΈΠ½Π°. Π’Π»Π°Π΄ΠΈΠΌΠΈΡ€ ΠŸΡ€ΠΎΡ‚Π°ΡΠΎΠ² ΠΎΠ±Ρ˜Π°ΡΠ½ΡƒΠ²Π° ΠΊΠ°ΠΊΠΎ Π΄Π° сС ΠΏΡ€ΠΎΡˆΠΈΡ€ΠΈ функционалноста Π½Π° NGINX со OpenResty ΠΈ Lua.

Π—Π΄Ρ€Π°Π²ΠΎ Π½Π° ситС, јас сС Π²ΠΈΠΊΠ°ΠΌ Π’Π»Π°Π΄ΠΈΠΌΠΈΡ€ ΠŸΡ€ΠΎΡ‚Π°ΡΠΎΠ², Ρ€Π°Π±ΠΎΡ‚Π°ΠΌ Π²ΠΎ ΠŸΠ°Ρ€Π°Π»Π΅Π»ΠΈ. ЌС Π²ΠΈ ΠΊΠ°ΠΆΠ°ΠΌ ΠΌΠ°Π»ΠΊΡƒ Π·Π° сСбС. ΠŸΠΎΠΌΠΈΠ½ΡƒΠ²Π°ΠΌ Ρ‚Ρ€ΠΈ Ρ‡Π΅Ρ‚Π²Ρ€Ρ‚ΠΈΠ½ΠΈ ΠΎΠ΄ ΠΌΠΎΡ˜ΠΎΡ‚ ΠΆΠΈΠ²ΠΎΡ‚ ΠΏΠΈΡˆΡƒΠ²Π°Ρ˜ΡœΠΈ ΠΊΠΎΠ΄. Π‘Ρ‚Π°Π½Π°Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠ΅Ρ€ Π΄ΠΎ срТ Π²ΠΎ Π±ΡƒΠΊΠ²Π°Π»Π½Π° смисла: понСкогаш Π³Π»Π΅Π΄Π°ΠΌ ΠΊΠΎΠ΄ Π²ΠΎ ΠΌΠΎΠΈΡ‚Π΅ ΡΠΎΠ½ΠΈΡˆΡ‚Π°. Π•Π΄Π½Π° Ρ‡Π΅Ρ‚Π²Ρ€Ρ‚ΠΈΠ½Π° ΠΎΠ΄ ΠΆΠΈΠ²ΠΎΡ‚ΠΎΡ‚ Π΅ индустриски Ρ€Π°Π·Π²ΠΎΡ˜, ΠΏΠΈΡˆΡƒΠ²Π°ΡšΠ΅ ΠΊΠΎΠ΄ кој ΠΎΠ΄ΠΈ Π΄ΠΈΡ€Π΅ΠΊΡ‚Π½ΠΎ Π²ΠΎ производство. Код ΡˆΡ‚ΠΎ Π½Π΅ΠΊΠΎΠΈ ΠΎΠ΄ вас Π³ΠΎ користат, Π½ΠΎ Π½Π΅ Π³ΠΎ ΡΡ„Π°ΡœΠ°Π°Ρ‚.

Π—Π½Π°Ρ‡ΠΈ Ρ€Π°Π·Π±ΠΈΡ€Π°Ρˆ ΠΊΠΎΠ»ΠΊΡƒ бСшС лошо. Кога Π±Π΅Π² ΠΌΠ°Π»ΠΊΡƒ ΠΏΠΎΠΌΠ»Π°Π΄, дојдов ΠΈ ΠΌΠΈ Π³ΠΈ Π΄Π°Π΄ΠΎΠ° ΠΎΠ²ΠΈΠ΅ Π±Π°Π·ΠΈ Π½Π° ΠΏΠΎΠ΄Π°Ρ‚ΠΎΡ†ΠΈ ΠΎΠ΄ Π΄Π²Π° Ρ‚Π΅Ρ€Π°Π±Π°Ρ˜Ρ‚ΠΈ. Π‘Π΅Π³Π° Π΅ Π³ΠΎΠ»Π΅ΠΌ Ρ‚ΠΎΠ²Π°Ρ€ Π·Π° ситС ΠΎΠ²Π΄Π΅. ΠžΡ‚ΠΈΠ΄ΠΎΠ² Π½Π° ΠΊΠΎΠ½Ρ„Π΅Ρ€Π΅Π½Ρ†ΠΈΠΈ ΠΈ ΠΏΡ€Π°ΡˆΠ°Π²: β€žΠœΠΎΠΌΡ†ΠΈ, ΠΊΠ°ΠΆΠ΅Ρ‚Π΅ ΠΌΠΈ, ΠΈΠΌΠ°Ρ‚Π΅ Π³ΠΎΠ»Π΅ΠΌΠΈ ΠΏΠΎΠ΄Π°Ρ‚ΠΎΡ†ΠΈ, Π΄Π°Π»ΠΈ Π΅ сè ΠΊΡƒΠ»? ΠšΠΎΠ»ΠΊΡƒ Π±Π°Π·ΠΈ имаш Ρ‚Π°ΠΌΡƒ? Π’ΠΈΠ΅ ΠΌΠΈ ΠΎΠ΄Π³ΠΎΠ²ΠΎΡ€ΠΈΡ˜Π°: β€žΠ˜ΠΌΠ°ΠΌΠ΅ 100 Π³ΠΈΠ³Π°Π±Π°Ρ˜Ρ‚ΠΈ! Π Π΅ΠΊΠΎΠ²: β€žΠšΠ»Π°Π΄ΠΎ, 100 Π³ΠΈΠ³Π°Π±Π°Ρ˜Ρ‚ΠΈ!β€œ И си размислував ΠΊΠ°ΠΊΠΎ Π²Π½ΠΈΠΌΠ°Ρ‚Π΅Π»Π½ΠΎ Π΄Π° Π³ΠΎ ΠΎΠ΄Ρ€ΠΆΠ°ΠΌ ΠΌΠΎΠ΅Ρ‚ΠΎ покСрско Π»ΠΈΡ†Π΅. Мислиш, Π΄Π°, ΠΌΠΎΠΌΡ†ΠΈΡ‚Π΅ сС ΠΊΡƒΠ», Π° ΠΏΠΎΡ‚ΠΎΠ° сС Π²Ρ€Π°ΡœΠ°Ρˆ ΠΈ Π³ΠΈ Ρ‡Π΅ΠΏΠΊΠ°Ρˆ ΠΎΠ²ΠΈΠ΅ Π±Π°Π·ΠΈ Π½Π° ΠΏΠΎΠ΄Π°Ρ‚ΠΎΡ†ΠΈ ΠΎΠ΄ повСќС Ρ‚Π΅Ρ€Π°Π±Π°Ρ˜Ρ‚ΠΈ. И ΠΎΠ²Π° Π΅ Π΄Π° сС Π±ΠΈΠ΄Π΅ ΠΏΠΎΠΌΠ»Π°Π΄. ΠœΠΎΠΆΠ΅Ρ‚Π΅ Π»ΠΈ Π΄Π° замислитС ΠΊΠ°ΠΊΠΎΠ² ΡƒΠ΄Π°Ρ€ Π΅ ΠΎΠ²Π°?

Π—Π½Π°ΠΌ повСќС ΠΎΠ΄ 20 програмски Ρ˜Π°Π·ΠΈΡ†ΠΈ. Ова Π΅ Π½Π΅ΡˆΡ‚ΠΎ ΡˆΡ‚ΠΎ ΠΌΠΎΡ€Π°Π² Π΄Π° Π³ΠΎ сфатам Π΄ΠΎΠ΄Π΅ΠΊΠ° Ρ€Π°Π±ΠΎΡ‚Π΅Π². Π’ΠΈ Π΄Π°Π²Π°Π°Ρ‚ ΠΊΠΎΠ΄ Π²ΠΎ Erlang, C, C++, Lua, Python, Ruby, Π½Π΅ΡˆΡ‚ΠΎ Π΄Ρ€ΡƒΠ³ΠΎ, Π° Ρ‚ΠΈ Ρ‚Ρ€Π΅Π±Π° сСто Ρ‚ΠΎΠ° Π΄Π° Π³ΠΎ ΠΏΡ€Π΅ΡΠ΅Ρ‡Π΅Ρˆ. Π’ΠΎ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏ, ΠΌΠΎΡ€Π°Π². НС моТСшС Π΄Π° сС прСсмСта Ρ‚ΠΎΡ‡Π½ΠΈΠΎΡ‚ Π±Ρ€ΠΎΡ˜, Π½ΠΎ Π½Π΅ΠΊΠ°Π΄Π΅ ΠΎΠΊΠΎΠ»Ρƒ 20-Ρ‚ΠΈ Π±Ρ€ΠΎΡ˜ΠΎΡ‚ сС ΠΈΠ·Π³ΡƒΠ±ΠΈ.

Π‘ΠΈΠ΄Π΅Ρ˜ΡœΠΈ ситС присутни Π·Π½Π°Π°Ρ‚ ΡˆΡ‚ΠΎ Π΅ ΠŸΠ°Ρ€Π°Π»Π΅Π»ΠΈ ΠΈ ΡˆΡ‚ΠΎ ΠΏΡ€Π°Π²ΠΈΠΌΠ΅, Π½Π΅ΠΌΠ° Π΄Π° Π·Π±ΠΎΡ€ΡƒΠ²Π°ΠΌ Π·Π° Ρ‚ΠΎΠ° ΠΊΠΎΠ»ΠΊΡƒ смС ΠΊΡƒΠ» ΠΈ ΡˆΡ‚ΠΎ ΠΏΡ€Π°Π²ΠΈΠΌΠ΅. Π‘Π°ΠΌΠΎ ќС Π²ΠΈ ΠΊΠ°ΠΆΠ°ΠΌ Π΄Π΅ΠΊΠ° ΠΈΠΌΠ°ΠΌΠ΅ 13 ΠΊΠ°Π½Ρ†Π΅Π»Π°Ρ€ΠΈΠΈ ΡˆΠΈΡ€ΡƒΠΌ свСтот, повСќС ΠΎΠ΄ 300 Π²Ρ€Π°Π±ΠΎΡ‚Π΅Π½ΠΈ, Ρ€Π°Π·Π²ΠΎΡ˜ Π²ΠΎ Москва, Π’Π°Π»ΠΈΠ½ ΠΈ ΠœΠ°Π»Ρ‚Π°. Ако сакатС, ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° Π³ΠΎ Π·Π΅ΠΌΠ΅Ρ‚Π΅ ΠΈ Π΄Π° сС прСсСлитС Π²ΠΎ ΠœΠ°Π»Ρ‚Π° Π°ΠΊΠΎ Π΅ студСно Π²ΠΎ Π·ΠΈΠΌΠ° ΠΈ Ρ‚Ρ€Π΅Π±Π° Π΄Π° Π³ΠΎ Π·Π°Π³Ρ€Π΅Π΅Ρ‚Π΅ Π³Ρ€Π±ΠΎΡ‚.

ΠŸΠΎΡ‚ΠΎΡ‡Π½ΠΎ, Π½Π°ΡˆΠΈΠΎΡ‚ ΠΎΠ΄Π΄Π΅Π» ΠΏΠΈΡˆΡƒΠ²Π° Π²ΠΎ Python 2. НиС смС Π²ΠΎ бизнис ΠΈ Π½Π΅ΠΌΠ°ΠΌΠ΅ Π²Ρ€Π΅ΠΌΠ΅ Π΄Π° ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½Ρ‚ΠΈΡ€Π°ΠΌΠ΅ ΠΌΠΎΠ΄Π΅Ρ€Π½ΠΈ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ, ΠΏΠ° Π·Π°Ρ‚ΠΎΠ° страдамС. Π“ΠΎ користимС Џанго Π·Π°Ρ‚ΠΎΠ° ΡˆΡ‚ΠΎ ΠΈΠΌΠ° сС, Π° ΠΎΠ½Π° ΡˆΡ‚ΠΎ бСшС Π½Π΅ΠΏΠΎΡ‚Ρ€Π΅Π±Π½ΠΎ Π³ΠΎ Π·Π΅Π΄ΠΎΠ²ΠΌΠ΅ ΠΈ Π³ΠΎ Ρ„Ρ€Π»ΠΈΠ²ΠΌΠ΅. Π˜ΡΡ‚ΠΎ Ρ‚Π°ΠΊΠ°, MySQL, Redis ΠΈ NGINX. ИмамС ΠΈ ΠΌΠ½ΠΎΠ³Ρƒ Π΄Ρ€ΡƒΠ³ΠΈ ΠΊΡƒΠ» Ρ€Π°Π±ΠΎΡ‚ΠΈ. ИмамС MongoDB, ΠΈΠΌΠ°ΠΌΠ΅ Π·Π°Ρ˜Π°Ρ†ΠΈ ΠΊΠΎΠΈ Ρ‚Ρ€Ρ‡Π°Π°Ρ‚ Π½Π°ΠΎΠΊΠΎΠ»Ρƒ, ΠΈΠΌΠ°ΠΌΠ΅ сè - Π½ΠΎ Ρ‚ΠΎΠ° Π½Π΅ Π΅ ΠΌΠΎΠ΅, ΠΈ јас Π½Π΅ Π³ΠΎ ΠΏΡ€Π°Π²Π°ΠΌ Ρ‚ΠΎΠ°.

OpenResty

Π Π΅ΠΊΠΎΠ² Π·Π° сСбС. АјдС Π΄Π° Ρ€Π°Π·Π±Π΅Ρ€Π΅ΠΌΠ΅ Π·Π° ΡˆΡ‚ΠΎ ќС Π·Π±ΠΎΡ€ΡƒΠ²Π°ΠΌ дСнСс:

  • Π¨Ρ‚ΠΎ Π΅ OpenResty ΠΈ со ΡˆΡ‚ΠΎ сС јадС?
  • Π—ΠΎΡˆΡ‚ΠΎ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ Π΄Π° измислимС Π΄Ρ€ΡƒΠ³ΠΎ Ρ‚Ρ€ΠΊΠ°Π»ΠΎ ΠΊΠΎΠ³Π° ΠΈΠΌΠ°ΠΌΠ΅ Python, NodeJS, PHP, Go ΠΈ Π΄Ρ€ΡƒΠ³ΠΈ интСрСсни Ρ€Π°Π±ΠΎΡ‚ΠΈ со ΠΊΠΎΠΈ ситС сС Π·Π°Π΄ΠΎΠ²ΠΎΠ»Π½ΠΈ?
  • И Π½Π΅ΠΊΠΎΠ»ΠΊΡƒ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΈ ΠΎΠ΄ ΠΆΠΈΠ²ΠΎΡ‚ΠΎΡ‚. ΠœΠΎΡ€Π°Π² ΠΌΠ½ΠΎΠ³Ρƒ Π΄Π° Π³ΠΎ скратам ΠΈΠ·Π²Π΅ΡˆΡ‚Π°Ρ˜ΠΎΡ‚ бидСјќи ΠΌΠΈ Ρ‚Ρ€Π΅Π±Π°Π° 3,5 часа, ΠΏΠ° ќС ΠΈΠΌΠ° ΠΌΠ°Π»ΠΊΡƒ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΈ.

OpenResty Π΅ NGINX. Π‘Π»Π°Π³ΠΎΠ΄Π°Ρ€Π΅Π½ΠΈΠ΅ Π½Π° Π½Π΅Π³ΠΎ, ΠΈΠΌΠ°ΠΌΠ΅ ΠΏΠΎΠ»Π½ΠΎΠΏΡ€Π°Π²Π½ΠΎ Π²Π΅Π±-сСрвСр кој Π΅ Π΄ΠΎΠ±Ρ€ΠΎ напишан ΠΈ Ρ€Π°Π±ΠΎΡ‚ΠΈ Π±Ρ€Π·ΠΎ. Мислам Π΄Π΅ΠΊΠ° ΠΏΠΎΠ²Π΅ΡœΠ΅Ρ‚ΠΎ ΠΎΠ΄ нас користат NGINX Π²ΠΎ производството. Π‘ΠΈΡ‚Π΅ Π·Π½Π°Π΅Ρ‚Π΅ Π΄Π΅ΠΊΠ° Π΅ Π±Ρ€Π· ΠΈ ΠΊΡƒΠ». Π’ΠΈΠ΅ Π½Π°ΠΏΡ€Π°Π²ΠΈΡ˜Π° ΠΊΡƒΠ» синхрони I/O Π²ΠΎ Π½Π΅Π³ΠΎ, Ρ‚Π°ΠΊΠ° ΡˆΡ‚ΠΎ Π½Π΅ Π½ΠΈ Ρ‚Ρ€Π΅Π±Π° Π½ΠΈΡˆΡ‚ΠΎ Π΄Π° Ρ†ΠΈΠΊΠ»ΠΈΡ€Π°ΠΌΠ΅, исто ΠΊΠ°ΠΊΠΎ ΡˆΡ‚ΠΎ Π½Π°ΠΏΡ€Π°Π²ΠΈΡ˜Π° gevent Π²ΠΎ Python. Gevent Π΅ ΠΊΡƒΠ», ΠΎΠ΄Π»ΠΈΡ‡Π΅Π½, Π½ΠΎ Π°ΠΊΠΎ Π½Π°ΠΏΠΈΡˆΠ΅Ρ‚Π΅ C ΠΊΠΎΠ΄ ΠΈ Π½Π΅ΡˆΡ‚ΠΎ Ρ‚Ρ€Π³Π½Π΅ Π½Π°ΠΎΠΏΠ°ΠΊΡƒ, Ρ‚ΠΎΠ³Π°Ρˆ со Gevent ќС ΠΏΠΎΠ»ΡƒΠ΄ΠΈΡ‚Π΅ Π΄Π° Π³ΠΎ Π΄Π΅Π±Π°Π³ΠΈΡ€Π°Ρ‚Π΅. Имав искуство: ΠΌΠΈ Ρ‚Ρ€Π΅Π±Π°Π° Ρ†Π΅Π»ΠΈ Π΄Π²Π° Π΄Π΅Π½Π° Π΄Π° сфатам ΡˆΡ‚ΠΎ Π½Π΅ бСшС Π²ΠΎ Ρ€Π΅Π΄ Ρ‚Π°ΠΌΡƒ. Ако нСкој Π½Π΅ копашС Π½Π΅ΠΊΠΎΠ»ΠΊΡƒ Π½Π΅Π΄Π΅Π»ΠΈ, Π½Π΅ Π³ΠΎ најдСшС ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΎΡ‚, ΠΏΠΈΡˆΡƒΠ²Π°ΡˆΠ΅ Π½Π° Π˜Π½Ρ‚Π΅Ρ€Π½Π΅Ρ‚, Π° Google Π½Π΅ Π³ΠΎ најдСшС, Ρ‚ΠΎΠ³Π°Ρˆ ќС ΠΏΠΎΠ»ΡƒΠ΄Π΅Π²ΠΌΠ΅ цСлосно.

NGINX вСќС ΠΈΠΌΠ° Π·Π°Π²Ρ€ΡˆΠ΅Π½ΠΎ ΠΊΠ΅ΡˆΠΈΡ€Π°ΡšΠ΅ ΠΈ статичка содрТина. НС Ρ‚Ρ€Π΅Π±Π° Π΄Π° сС Π³Ρ€ΠΈΠΆΠΈΡ‚Π΅ ΠΊΠ°ΠΊΠΎ Π΄Π° Π³ΠΎ Π½Π°ΠΏΡ€Π°Π²ΠΈΡ‚Π΅ ΠΎΠ²Π° Ρ‡ΠΎΠ²Π΅Ρ‡ΠΊΠΈ, Π·Π° Π΄Π° Π½Π΅ Π·Π°Π±Π°Π²ΠΈΡ‚Π΅ Π½Π΅ΠΊΠ°Π΄Π΅, Π·Π° Π΄Π° Π½Π΅ ΠΈΠ·Π³ΡƒΠ±ΠΈΡ‚Π΅ Π½Π΅ΠΊΠ°Π΄Π΅ дСскриптори. Nginx Π΅ ΠΌΠ½ΠΎΠ³Ρƒ ΡƒΠ΄ΠΎΠ±Π΅Π½ Π·Π° Ρ€Π°ΡΠΏΠΎΡ€Π΅Π΄ΡƒΠ²Π°ΡšΠ΅, Π½Π΅ Ρ‚Ρ€Π΅Π±Π° Π΄Π° размислуватС ΡˆΡ‚ΠΎ Π΄Π° ΠΏΡ€Π΅Π·Π΅ΠΌΠ΅Ρ‚Π΅ - WSGI, PHP-FPM, Gunicorn, Unicorn. Nginx Π΅ инсталиран, Π΄Π°Π΄Π΅Π½ Π½Π° администраторитС, Π·Π½Π°Π°Ρ‚ Π΄Π° Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ со Π½Π΅Π³ΠΎ. Nginx Π³ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΡƒΠ²Π° Π±Π°Ρ€Π°ΡšΠ°Ρ‚Π° Π½Π° структуриран Π½Π°Ρ‡ΠΈΠ½. ЌС Π·Π±ΠΎΡ€ΡƒΠ²Π°ΠΌ Π·Π° ΠΎΠ²Π° ΠΌΠ°Π»ΠΊΡƒ ΠΏΠΎΠ΄ΠΎΡ†Π½Π°. Накратко, ΠΈΠΌΠ° Ρ„Π°Π·Π° ΠΊΠΎΠ³Π° само Π³ΠΎ ΠΏΡ€ΠΈΡ„Π°Ρ‚ΠΈ Π±Π°Ρ€Π°ΡšΠ΅Ρ‚ΠΎ, ΠΊΠΎΠ³Π° Π³ΠΎ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΈ ΠΈ ΠΊΠΎΠ³Π° ја сСрвира содрТината Π½Π° корисникот.

Nginx Π΅ ΠΊΡƒΠ», Π½ΠΎ ΠΈΠΌΠ° Π΅Π΄Π΅Π½ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ: Π½Π΅ Π΅ Π΄ΠΎΠ²ΠΎΠ»Π½ΠΎ флСксибилСн, Π΄ΡƒΡ€ΠΈ ΠΈ со ситС ΠΊΡƒΠ» карактСристики ΡˆΡ‚ΠΎ ΠΌΠΎΠΌΡ†ΠΈΡ‚Π΅ Π³ΠΈ наполнија Π²ΠΎ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡ˜Π°Ρ‚Π°, ΠΈ ΠΏΠΎΠΊΡ€Π°Ρ˜ Ρ‚ΠΎΠ° ΡˆΡ‚ΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° сС ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€ΠΈΡ€Π°. Оваа моќ Π½Π΅ Π΅ Π΄ΠΎΠ²ΠΎΠ»Π½Π°. Π—Π°Ρ‚ΠΎΠ° ΠΌΠΎΠΌΡ†ΠΈΡ‚Π΅ ΠΎΠ΄ Π’Π°ΠΎΠ±Π°ΠΎ, ΠΎΠ΄Π°ΠΌΠ½Π°, ΠΈΠ·Π³Π»Π΅Π΄Π° ΠΊΠ°ΠΊΠΎ ΠΏΡ€Π΅Π΄ осум Π³ΠΎΠ΄ΠΈΠ½ΠΈ, Π³ΠΎ Π²Π³Ρ€Π°Π΄ΠΈΡ˜Π° Π›ΡƒΠ° Π²ΠΎ Π½Π΅Π³ΠΎ. Π¨Ρ‚ΠΎ Π΄Π°Π²Π° Ρ‚ΠΎΠ°?

  • Π“ΠΎΠ»Π΅ΠΌΠΈΠ½Π°. Мал Π΅. LuaJIT Π΄Π°Π²Π° ΠΎΠΊΠΎΠ»Ρƒ 100-200 ΠΊΠΈΠ»ΠΎΠ±Π°Ρ˜Ρ‚ΠΈ Π½Π°Π΄Π·Π΅ΠΌΠ½Π° ΠΌΠ΅ΠΌΠΎΡ€ΠΈΡ˜Π° ΠΈ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»Π½ΠΈ Ρ‚Ρ€ΠΎΡˆΠΎΡ†ΠΈ Π·Π° пСрформанси.
  • Π‘Ρ€Π·ΠΈΠ½Π°. ΠŸΡ€Π΅Π²Π΅Π΄ΡƒΠ²Π°Ρ‡ΠΎΡ‚ LuaJIT Π΅ блиску Π΄ΠΎ C Π²ΠΎ ΠΌΠ½ΠΎΠ³Ρƒ ситуации, Π²ΠΎ Π½Π΅ΠΊΠΎΠΈ ситуации Π³ΡƒΠ±ΠΈ ΠΎΠ΄ Java, Π²ΠΎ Π΄Ρ€ΡƒΠ³ΠΈ Π³ΠΎ Π½Π°Π΄ΠΌΠΈΠ½ΡƒΠ²Π°. НСкоС Π²Ρ€Π΅ΠΌΠ΅ сС ΡΠΌΠ΅Ρ‚Π°ΡˆΠ΅ Π·Π° ΡΠΎΡΡ‚ΠΎΡ˜Π±Π° Π½Π° умСтност, Π½Π°Ρ˜ΠΊΡƒΠ» ΠΊΠΎΠΌΠΏΠ°Ρ˜Π»Π΅Ρ€ JIT. Π‘Π΅Π³Π° ΠΈΠΌΠ° ΠΈ ΠΏΠΎΠ»Π°Π΄Π½ΠΈ, Π½ΠΎ Ρ‚ΠΈΠ΅ сС ΠΌΠ½ΠΎΠ³Ρƒ Ρ‚Π΅ΡˆΠΊΠΈ, Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€, истиот V8. НСкои JS Ρ‚ΠΎΠ»ΠΊΡƒΠ²Π°Ρ‡ΠΈ ΠΈ Java HotSpot сС ΠΏΠΎΠ±Ρ€Π·ΠΈ Π²ΠΎ Π½Π΅ΠΊΠΎΠΈ Ρ‚ΠΎΡ‡ΠΊΠΈ, Π½ΠΎ Π½Π° Π½Π΅ΠΊΠΎΠΈ мСста Ρ‚ΠΈΠ΅ сè ΡƒΡˆΡ‚Π΅ Π³ΡƒΠ±Π°Ρ‚.
  • ЛСсно Π·Π° ΡƒΡ‡Π΅ΡšΠ΅. Ако ΠΈΠΌΠ°Ρ‚Π΅, Π΄Π° Ρ€Π΅Ρ‡Π΅ΠΌΠ΅, Π±Π°Π·Π° Π½Π° ΠΊΠΎΠ΄ΠΎΠ²ΠΈ Perl, Π° Π½Π΅ Ρ€Π΅Π·Π΅Ρ€Π²ΠΈΡ€Π°Ρ‚Π΅, Π½Π΅ΠΌΠ° Π΄Π° Π½Π°Ρ˜Π΄Π΅Ρ‚Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠ΅Ρ€ΠΈ Π½Π° Perl. Π‘ΠΈΠ΄Π΅Ρ˜ΡœΠΈ Π½Π΅ ΠΏΠΎΡΡ‚ΠΎΡ˜Π°Ρ‚, ситС Π±Π΅Π° ΠΎΠ΄Π·Π΅ΠΌΠ΅Π½ΠΈ, Π° ΡƒΡ‡Π΅ΡšΠ΅Ρ‚ΠΎ Π·Π° Π½ΠΈΠ² Π΅ Π΄ΠΎΠ»Π³ΠΎ ΠΈ Ρ‚Π΅ΡˆΠΊΠΎ. Ако сакатС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠ΅Ρ€ΠΈ Π·Π° Π½Π΅ΡˆΡ‚ΠΎ Π΄Ρ€ΡƒΠ³ΠΎ, ΠΌΠΎΠΆΠ΅Π±ΠΈ ќС Ρ‚Ρ€Π΅Π±Π° Π΄Π° Π³ΠΈ ΠΏΡ€Π΅ΠΊΠ²Π°Π»ΠΈΡ„ΠΈΠΊΡƒΠ²Π°Ρ‚Π΅ ΠΈΠ»ΠΈ Π΄Π° Π³ΠΈ Π½Π°Ρ˜Π΄Π΅Ρ‚Π΅. Π’ΠΎ ΡΠ»ΡƒΡ‡Π°Ρ˜ΠΎΡ‚ со Π›ΡƒΠ°, сè Π΅ Сдноставно. БСкој ΠΏΠΎΠΌΠ»Π°Π΄ ΠΌΠΎΠΆΠ΅ Π΄Π° Π³ΠΎ Π½Π°ΡƒΡ‡ΠΈ Π›ΡƒΠ° Π·Π° Ρ‚Ρ€ΠΈ Π΄Π΅Π½Π°. Ми Ρ‚Ρ€Π΅Π±Π°Π° ΠΎΠΊΠΎΠ»Ρƒ Π΄Π²Π° часа Π΄Π° Π³ΠΎ сфатам. Π”Π²Π° часа ΠΏΠΎΠ΄ΠΎΡ†Π½Π° вСќС ΠΏΠΈΡˆΡƒΠ²Π°Π² ΠΊΠΎΠ΄ Π²ΠΎ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ†ΠΈΡ˜Π°. ΠžΠΊΠΎΠ»Ρƒ Π΅Π΄Π½Π° Π½Π΅Π΄Π΅Π»Π° ΠΏΠΎΠ΄ΠΎΡ†Π½Π° ΠΎΡ‚ΠΈΠ΄Π΅ Π΄ΠΈΡ€Π΅ΠΊΡ‚Π½ΠΎ Π½Π° производство ΠΈ Π·Π°ΠΌΠΈΠ½Π°.

Како Ρ€Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚ Π½Π° Ρ‚ΠΎΠ°, ΠΈΠ·Π³Π»Π΅Π΄Π° Π²Π°ΠΊΠ°:

OpenResty: ΠΏΡ€Π΅Ρ‚Π²ΠΎΡ€Π°ΡšΠ΅ Π½Π° NGINX Π²ΠΎ ΠΏΠΎΠ»Π½ΠΎΠΏΡ€Π°Π²Π΅Π½ сСрвСр Π·Π° Π°ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΠΈ

Има ΠΌΠ½ΠΎΠ³Ρƒ Ρ‚ΡƒΠΊΠ°. OpenResty собра Π΅Π΄Π΅Π½ ΠΊΡƒΠΏ ΠΌΠΎΠ΄ΡƒΠ»ΠΈ, ΠΈ luash ΠΈ ΠΌΠΎΡ‚ΠΎΡ€Π½ΠΈ. И ΠΈΠΌΠ°Ρ‚Π΅ сè ΠΏΠΎΠ΄Π³ΠΎΡ‚Π²Π΅Π½ΠΎ - распорСдСно ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅Π½ΠΎ.

ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΈ

Доста Π΅ ΠΎΠ΄ тСкстовитС, ајдС Π΄Π° ΠΏΡ€Π΅ΠΌΠΈΠ½Π΅ΠΌΠ΅ Π½Π° ΠΊΠΎΠ΄ΠΎΡ‚. Π•Π²Π΅ ΠΌΠ°Π»ΠΊΡƒ Π—Π΄Ρ€Π°Π²ΠΎ свСтот:

OpenResty: ΠΏΡ€Π΅Ρ‚Π²ΠΎΡ€Π°ΡšΠ΅ Π½Π° NGINX Π²ΠΎ ΠΏΠΎΠ»Π½ΠΎΠΏΡ€Π°Π²Π΅Π½ сСрвСр Π·Π° Π°ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΠΈ

Π¨Ρ‚ΠΎ ΠΈΠΌΠ° Ρ‚Π°ΠΌΡƒ? Ова Π΅ Π»ΠΎΠΊΠ°Ρ†ΠΈΡ˜Π° Π½Π° Енгинс. НС сС Π³Ρ€ΠΈΠΆΠΈΠΌΠ΅, Π½Π΅ ΠΏΠΈΡˆΡƒΠ²Π°ΠΌΠ΅ сопствСно Ρ€ΡƒΡ‚ΠΈΡ€Π°ΡšΠ΅, Π½Π΅ Π·Π΅ΠΌΠ°ΠΌΠ΅ Π³ΠΎΡ‚ΠΎΠ²ΠΎ - вСќС Π³ΠΎ ΠΈΠΌΠ°ΠΌΠ΅ Π²ΠΎ NGINX, ΠΆΠΈΠ²Π΅Π΅ΠΌΠ΅ Π΄ΠΎΠ±Π°Ρ€ ΠΈ ΠΌΡ€Π·Π»ΠΈΠ² ΠΆΠΈΠ²ΠΎΡ‚.

content_by_lua_block Π΅ Π±Π»ΠΎΠΊ кој Π²Π΅Π»ΠΈ Π΄Π΅ΠΊΠ° сСрвирамС содрТина ΠΊΠΎΡ€ΠΈΡΡ‚Π΅Ρ˜ΡœΠΈ скрипта Lua. Ја Π·Π΅ΠΌΠ°ΠΌΠ΅ ΠΏΡ€ΠΎΠΌΠ΅Π½Π»ΠΈΠ²Π°Ρ‚Π° Engins remote_addr ΠΈ ставСтС Π³ΠΎ string.format. Π’ΠΎΠ° Π΅ исто ΠΊΠ°ΠΊΠΎ sprintf, само Π²ΠΎ Π›ΡƒΠ°, само Ρ‚ΠΎΡ‡Π½ΠΎ. И Π½ΠΈΠ΅ Π³ΠΎ Π΄Π°Π²Π°ΠΌΠ΅ Π½Π° ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΎΡ‚.

Како Ρ€Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚ Π½Π° Ρ‚ΠΎΠ°, ќС ΠΈΠ·Π³Π»Π΅Π΄Π° Π²Π°ΠΊΠ°:

OpenResty: ΠΏΡ€Π΅Ρ‚Π²ΠΎΡ€Π°ΡšΠ΅ Π½Π° NGINX Π²ΠΎ ΠΏΠΎΠ»Π½ΠΎΠΏΡ€Π°Π²Π΅Π½ сСрвСр Π·Π° Π°ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΠΈ

Но, Π΄Π° сС Π²Ρ€Π°Ρ‚ΠΈΠΌΠ΅ Π²ΠΎ Ρ€Π΅Π°Π»Π½ΠΈΠΎΡ‚ свСт. Никој Π½Π΅ Π³ΠΎ распорСдува Hello World Π½Π° производство. ΠΠ°ΡˆΠ°Ρ‚Π° Π°ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΡ˜Π° ΠΎΠ±ΠΈΡ‡Π½ΠΎ ΠΎΠ΄ΠΈ Π²ΠΎ Π±Π°Π·Π°Ρ‚Π° Π½Π° ΠΏΠΎΠ΄Π°Ρ‚ΠΎΡ†ΠΈ ΠΈΠ»ΠΈ Π½Π° Π΄Ρ€ΡƒΠ³ΠΎ мСсто ΠΈ Π½Π°Ρ˜Ρ‡Π΅ΡΡ‚ΠΎ Ρ‡Π΅ΠΊΠ° ΠΎΠ΄Π³ΠΎΠ²ΠΎΡ€.

OpenResty: ΠΏΡ€Π΅Ρ‚Π²ΠΎΡ€Π°ΡšΠ΅ Π½Π° NGINX Π²ΠΎ ΠΏΠΎΠ»Π½ΠΎΠΏΡ€Π°Π²Π΅Π½ сСрвСр Π·Π° Π°ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΠΈ

Вој само сСди ΠΈ Ρ‡Π΅ΠΊΠ°. НС Π΅ ΠΌΠ½ΠΎΠ³Ρƒ Π΄ΠΎΠ±Ρ€ΠΎ. Кога ќС Π΄ΠΎΡ˜Π΄Π°Ρ‚ 100.000 корисници, Π½ΠΈ Π΅ ΠΌΠ½ΠΎΠ³Ρƒ Ρ‚Π΅ΡˆΠΊΠΎ. Π—Π½Π°Ρ‡ΠΈ, ајдС Π΄Π° користимС Сдноставна Π°ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΡ˜Π° ΠΊΠ°ΠΊΠΎ ΠΏΡ€ΠΈΠΌΠ΅Ρ€. ЌС Π±Π°Ρ€Π°ΠΌΠ΅ слики, Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π½Π° ΠΌΠ°Ρ‡ΠΊΠΈ. Но, Π½ΠΈΠ΅ Π½Π΅ΠΌΠ° само Π΄Π° ΠΏΡ€Π΅Π±Π°Ρ€ΡƒΠ²Π°ΠΌΠ΅, Ρ‚ΡƒΠΊΡƒ ќС Π³ΠΈ ΠΏΡ€ΠΎΡˆΠΈΡ€ΠΈΠΌΠ΅ ΠΊΠ»ΡƒΡ‡Π½ΠΈΡ‚Π΅ Π·Π±ΠΎΡ€ΠΎΠ²ΠΈ ΠΈ, Π°ΠΊΠΎ корисникот Π±Π°Ρ€Π°Π» β€žΠΌΠ°Ρ‡ΠΈΡšΠ°β€œ, ќС најдСмС ΠΌΠ°Ρ‡ΠΊΠΈ, ΠΊΡ€Π·Π½Π΅Π½ΠΈ ΠΌΠ°Ρ‡ΠΊΠΈ ΠΈΡ‚Π½. ΠŸΡ€Π²ΠΎ, Ρ‚Ρ€Π΅Π±Π° Π΄Π° Π³ΠΈ Π΄ΠΎΠ±ΠΈΠ΅ΠΌΠ΅ ΠΏΠΎΠ΄Π°Ρ‚ΠΎΡ†ΠΈΡ‚Π΅ Π·Π° Π±Π°Ρ€Π°ΡšΠ΅Ρ‚ΠΎ Π½Π° Π·Π°Π΄Π½ΠΈΠΎΡ‚ Π΄Π΅Π». ИзглСда Π²Π°ΠΊΠ°:

OpenResty: ΠΏΡ€Π΅Ρ‚Π²ΠΎΡ€Π°ΡšΠ΅ Π½Π° NGINX Π²ΠΎ ΠΏΠΎΠ»Π½ΠΎΠΏΡ€Π°Π²Π΅Π½ сСрвСр Π·Π° Π°ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΠΈ

Π”Π²Π΅ Π»ΠΈΠ½ΠΈΠΈ Π²ΠΈ Π΄ΠΎΠ·Π²ΠΎΠ»ΡƒΠ²Π°Π°Ρ‚ Π΄Π° Π³ΠΈ ΠΏΠΎΠ΄ΠΈΠ³Π½Π΅Ρ‚Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΈΡ‚Π΅ GET, Π±Π΅Π· ΠΊΠΎΠΌΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΠΈ. Π‘Π»Π΅Π΄Π½ΠΎ, Π΄Π° Ρ€Π΅Ρ‡Π΅ΠΌΠ΅, ΠΎΠ΄ Π±Π°Π·Π°Ρ‚Π° Π½Π° ΠΏΠΎΠ΄Π°Ρ‚ΠΎΡ†ΠΈ со Π·Π½Π°ΠΊ Π·Π° ΠΊΠ»ΡƒΡ‡Π΅Π½ Π·Π±ΠΎΡ€ ΠΈ Π΅ΠΊΡΡ‚Π΅Π½Π·ΠΈΡ˜Π°, Π³ΠΈ Π΄ΠΎΠ±ΠΈΠ²Π°ΠΌΠ΅ ΠΎΠ²ΠΈΠ΅ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΊΠΎΡ€ΠΈΡΡ‚Π΅Ρ˜ΡœΠΈ Ρ€Π΅Π΄ΠΎΠ²Π½ΠΎ SQL Π±Π°Ρ€Π°ΡšΠ΅. Едноставно Π΅. ИзглСда Π²Π°ΠΊΠ°:

OpenResty: ΠΏΡ€Π΅Ρ‚Π²ΠΎΡ€Π°ΡšΠ΅ Π½Π° NGINX Π²ΠΎ ΠΏΠΎΠ»Π½ΠΎΠΏΡ€Π°Π²Π΅Π½ сСрвСр Π·Π° Π°ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΠΈ

ΠŸΠΎΠ²Ρ€Π·ΡƒΠ²Π°ΡšΠ΅ Π½Π° Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°Ρ‚Π° resty.mysql, кој вСќС Π³ΠΎ ΠΈΠΌΠ°ΠΌΠ΅ Π²ΠΎ ΠΊΠΎΠΌΠΏΠ»Π΅Ρ‚ΠΎΡ‚. НС Ρ‚Ρ€Π΅Π±Π° Π½ΠΈΡˆΡ‚ΠΎ Π΄Π° инсталирамС, сè Π΅ ΠΏΠΎΠ΄Π³ΠΎΡ‚Π²Π΅Π½ΠΎ. ΠŸΠΎΡΠΎΡ‡ΡƒΠ²Π°ΠΌΠ΅ ΠΊΠ°ΠΊΠΎ Π΄Π° сС ΠΏΠΎΠ²Ρ€Π·Π΅Ρ‚Π΅ ΠΈ Π΄Π° Π½Π°ΠΏΡ€Π°Π²ΠΈΡ‚Π΅ SQL Π±Π°Ρ€Π°ΡšΠ΅:

OpenResty: ΠΏΡ€Π΅Ρ‚Π²ΠΎΡ€Π°ΡšΠ΅ Π½Π° NGINX Π²ΠΎ ΠΏΠΎΠ»Π½ΠΎΠΏΡ€Π°Π²Π΅Π½ сСрвСр Π·Π° Π°ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΠΈ

ОвдС Π΅ ΠΌΠ°Π»ΠΊΡƒ ΡΡ‚Ρ€Π°ΡˆΠ½ΠΎ, Π½ΠΎ сè Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½ΠΈΡ€Π°. Π•Π²Π΅ 10 Π΅ Π³Ρ€Π°Π½ΠΈΡ†Π°. ΠŸΠΎΠ²Π»Π΅ΠΊΡƒΠ²Π°ΠΌΠ΅ 10 записи, ΠΌΡ€Π·Π»ΠΈΠ²ΠΈ смС, Π½Π΅ сакамС Π΄Π° ΠΏΠΎΠΊΠ°ΠΆΠ΅ΠΌΠ΅ повСќС. Π—Π°Π±ΠΎΡ€Π°Π²ΠΈΠ² Π½Π° Π»ΠΈΠΌΠΈΡ‚ΠΎΡ‚ Π²ΠΎ SQL.

Π‘Π»Π΅Π΄Π½ΠΎ Π½Π°ΠΎΡ“Π°ΠΌΠ΅ слики Π·Π° ситС ΠΏΡ€Π°ΡˆΠ°ΡšΠ°. Π‘ΠΎΠ±ΠΈΡ€Π°ΠΌΠ΅ Π΅Π΄Π΅Π½ ΠΊΡƒΠΏ Π±Π°Ρ€Π°ΡšΠ° ΠΈ ΠΏΠΎΠΏΠΎΠ»Π½ΡƒΠ²Π°ΠΌΠ΅ Ρ‚Π°Π±Π΅Π»Π° Π›ΡƒΠ° Π½Π°Ρ€Π΅Ρ‡Π΅Π½Π° reqs, ΠΈ Π½ΠΈΠ΅ ΠΏΡ€Π°Π²ΠΈΠΌΠ΅ ngx.location.capture_multi.

OpenResty: ΠΏΡ€Π΅Ρ‚Π²ΠΎΡ€Π°ΡšΠ΅ Π½Π° NGINX Π²ΠΎ ΠΏΠΎΠ»Π½ΠΎΠΏΡ€Π°Π²Π΅Π½ сСрвСр Π·Π° Π°ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΠΈ

Π‘ΠΈΡ‚Π΅ ΠΎΠ²ΠΈΠ΅ Π±Π°Ρ€Π°ΡšΠ° сС ΠΈΡΠΏΡ€Π°ΡœΠ°Π°Ρ‚ ΠΏΠ°Ρ€Π°Π»Π΅Π»Π½ΠΎ, Π° ΠΎΠ΄Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚Π΅ Π½ΠΈ сС Π²Ρ€Π°ΡœΠ°Π°Ρ‚. Π’Ρ€Π΅ΠΌΠ΅Ρ‚ΠΎ Π½Π° Ρ€Π°Π±ΠΎΡ‚Π° Π΅ Π΅Π΄Π½Π°ΠΊΠ²ΠΎ Π½Π° Π²Ρ€Π΅ΠΌΠ΅Ρ‚ΠΎ Π½Π° ΠΎΠ΄Π³ΠΎΠ²ΠΎΡ€ Π½Π° Π½Π°Ρ˜ΡΠΏΠΎΡ€ΠΎΡ‚ΠΎ. Ако ситС ΠΏΡƒΠΊΠ°ΠΌΠ΅ Π·Π° 50 милисСкунди, Π° смС испратилС сто Π±Π°Ρ€Π°ΡšΠ°, Ρ‚ΠΎΠ³Π°Ρˆ ќС Π΄ΠΎΠ±ΠΈΠ΅ΠΌΠ΅ ΠΎΠ΄Π³ΠΎΠ²ΠΎΡ€ Π·Π° 50 милисСкунди.

Π‘ΠΈΠ΄Π΅Ρ˜ΡœΠΈ смС ΠΌΡ€Π·Π»ΠΈΠ²ΠΈ ΠΈ Π½Π΅ сакамС Π΄Π° ΠΏΠΈΡˆΡƒΠ²Π°ΠΌΠ΅ HTTP ΠΈ Ρ€Π°ΠΊΡƒΠ²Π°ΡšΠ΅ со ΠΊΠ΅ΡˆΠΈΡ€Π°ΡšΠ΅, ќС Π³ΠΎ Π½Π°Ρ‚Π΅Ρ€Π°ΠΌΠ΅ NGINX Π΄Π° Π½Π°ΠΏΡ€Π°Π²ΠΈ сС Π·Π° нас. Како ΡˆΡ‚ΠΎ Π²ΠΈΠ΄ΠΎΠ²Ρ‚Π΅, имашС Π±Π°Ρ€Π°ΡšΠ΅ Π·Π° url/fetch, Π΅Π²Π΅ Π³ΠΎ Ρ‚ΠΎΡ˜:

OpenResty: ΠΏΡ€Π΅Ρ‚Π²ΠΎΡ€Π°ΡšΠ΅ Π½Π° NGINX Π²ΠΎ ΠΏΠΎΠ»Π½ΠΎΠΏΡ€Π°Π²Π΅Π½ сСрвСр Π·Π° Π°ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΠΈ

НиС Π³ΠΎ ΠΏΡ€Π°Π²ΠΈΠΌΠ΅ Сдноставно proxy_pass, ΡƒΠΊΠ°ΠΆΡƒΠ²Π°ΠΌΠ΅ ΠΊΠ°Π΄Π΅ Π΄Π° ΠΊΠ΅ΡˆΠΈΡ€Π°ΠΌΠ΅, ΠΊΠ°ΠΊΠΎ Π΄Π° Π³ΠΎ Π½Π°ΠΏΡ€Π°Π²ΠΈΠΌΠ΅ Ρ‚ΠΎΠ° ΠΈ сè Ρ€Π°Π±ΠΎΡ‚ΠΈ Π·Π° нас.

Но, ΠΎΠ²Π° Π½Π΅ Π΅ Π΄ΠΎΠ²ΠΎΠ»Π½ΠΎ, сСпак Ρ‚Ρ€Π΅Π±Π° Π΄Π° ΠΌΡƒ Π³ΠΈ Π΄Π°Π΄Π΅ΠΌΠ΅ ΠΏΠΎΠ΄Π°Ρ‚ΠΎΡ†ΠΈΡ‚Π΅ Π½Π° корисникот. ΠΠ°Ρ˜Π΅Π΄Π½ΠΎΡΡ‚Π°Π²Π½Π°Ρ‚Π° идСја Π΅ Π΄Π° сС ΡΠ΅Ρ€ΠΈΡ˜Π°Π»ΠΈΠ·ΠΈΡ€Π° сè Π²ΠΎ JSON, лСсно, Π²ΠΎ Π΄Π²Π° Ρ€Π΅Π΄Π°. Π”Π°Π²Π°ΠΌΠ΅ Content-Type, Π΄Π°Π²Π°ΠΌΠ΅ JSON.

Но, ΠΈΠΌΠ° Π΅Π΄Π½Π° Ρ‚Π΅ΡˆΠΊΠΎΡ‚ΠΈΡ˜Π°: корисникот Π½Π΅ сака Π΄Π° Ρ‡ΠΈΡ‚Π° JSON. Π’Ρ€Π΅Π±Π° Π΄Π° ΠΏΡ€ΠΈΠ²Π»Π΅Ρ‡Π΅ΠΌΠ΅ Π½Π°ΠΏΡ€Π΅Π΄Π½ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠ΅Ρ€ΠΈ. ПонСкогаш Π½Π΅ сакамС Π΄Π° Π³ΠΎ ΠΏΡ€Π°Π²ΠΈΠΌΠ΅ ΠΎΠ²Π° Π½Π° ΠΏΠΎΡ‡Π΅Ρ‚ΠΎΠΊΠΎΡ‚. И ΡΠΏΠ΅Ρ†ΠΈΡ˜Π°Π»ΠΈΡΡ‚ΠΈΡ‚Π΅ Π·Π° ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΡ˜Π° ќС Ρ€Π΅Ρ‡Π°Ρ‚ Π΄Π΅ΠΊΠ° Π°ΠΊΠΎ Π±Π°Ρ€Π°ΠΌΠ΅ слики, Ρ‚ΠΎΠ³Π°Ρˆ Ρ‚ΠΎΠ° Π½Π΅ ΠΈΠΌ Π΅ Π²Π°ΠΆΠ½ΠΎ. И Π°ΠΊΠΎ ΠΈΠΌ Π΄Π°Π΄Π΅ΠΌΠ΅ ΠΎΠ΄Ρ€Π΅Π΄Π΅Π½Π° содрТина, Ρ‚ΠΈΠ΅ ќС Ρ€Π΅Ρ‡Π°Ρ‚ Π΄Π΅ΠΊΠ° Π½Π°ΡˆΠΈΡ‚Π΅ ΠΏΡ€Π΅Π±Π°Ρ€ΡƒΠ²Π°Ρ‡ΠΈ Π½Π΅ индСксираат Π½ΠΈΡˆΡ‚ΠΎ.

Π¨Ρ‚ΠΎ Π΄Π° сС ΠΏΡ€Π°Π²ΠΈ Π²ΠΎ врска со Ρ‚ΠΎΠ°? Π‘Π΅ Ρ€Π°Π·Π±ΠΈΡ€Π°, Π½Π° корисникот ќС ΠΌΡƒ Π΄Π°Π΄Π΅ΠΌΠ΅ HTML. Π Π°Ρ‡Π½ΠΎ Π³Π΅Π½Π΅Ρ€ΠΈΡ€Π°ΡšΠ΅ Π½Π΅ Π΅ comme il faut, Π·Π°Ρ‚ΠΎΠ° сакамС Π΄Π° користимС шаблони. ΠŸΠΎΡΡ‚ΠΎΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° Π·Π° ΠΎΠ²Π° lua-resty-template.

OpenResty: ΠΏΡ€Π΅Ρ‚Π²ΠΎΡ€Π°ΡšΠ΅ Π½Π° NGINX Π²ΠΎ ΠΏΠΎΠ»Π½ΠΎΠΏΡ€Π°Π²Π΅Π½ сСрвСр Π·Π° Π°ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΠΈ

Π‘ΠΈΠ³ΡƒΡ€Π½ΠΎ стС Π³ΠΈ Π²ΠΈΠ΄Π΅Π»Π΅ Ρ‚Ρ€ΠΈΡ‚Π΅ ΡΡ‚Ρ€Π°ΡˆΠ½ΠΈ Π±ΡƒΠΊΠ²ΠΈ ОПМ. OpenResty Π΄ΠΎΠ°Ρ“Π° со сопствСн ΠΌΠ΅Π½Π°ΡŸΠ΅Ρ€ Π½Π° ΠΏΠ°ΠΊΠ΅Ρ‚ΠΈ, ΠΏΡ€Π΅ΠΊΡƒ кој ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° инсталиратС Π΅Π΄Π΅Π½ ΠΊΡƒΠΏ Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ ΠΌΠΎΠ΄ΡƒΠ»ΠΈ, особСно, lua-resty-template. Ова Π΅ СдноставСн ΠΌΠΎΡ‚ΠΎΡ€ Π·Π° шаблони, сличСн Π½Π° ΡˆΠ°Π±Π»ΠΎΠ½ΠΈΡ‚Π΅ Π½Π° Џанго. Π’Π°ΠΌΡƒ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° Π½Π°ΠΏΠΈΡˆΠ΅Ρ‚Π΅ ΠΊΠΎΠ΄ ΠΈ Π΄Π° ΠΈΠ·Π²Ρ€ΡˆΠΈΡ‚Π΅ Π·Π°ΠΌΠ΅Π½Π° Π½Π° ΠΏΡ€ΠΎΠΌΠ΅Π½Π»ΠΈΠ²Π°Ρ‚Π°.

Како Ρ€Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚, сè ќС ΠΈΠ·Π³Π»Π΅Π΄Π° Π²Π°ΠΊΠ°:

OpenResty: ΠΏΡ€Π΅Ρ‚Π²ΠΎΡ€Π°ΡšΠ΅ Π½Π° NGINX Π²ΠΎ ΠΏΠΎΠ»Π½ΠΎΠΏΡ€Π°Π²Π΅Π½ сСрвСр Π·Π° Π°ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΠΈ

Π“ΠΈ Π·Π΅Π΄ΠΎΠ²ΠΌΠ΅ ΠΏΠΎΠ΄Π°Ρ‚ΠΎΡ†ΠΈΡ‚Π΅ ΠΈ Π³ΠΎ Ρ€Π΅Π½Π΄Π΅Ρ€ΠΈΡ€Π°Π²ΠΌΠ΅ ΡˆΠ°Π±Π»ΠΎΠ½ΠΎΡ‚, ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ Π²ΠΎ Π΄Π²Π° Ρ€Π΅Π΄Π°. ΠšΠΎΡ€ΠΈΡΠ½ΠΈΠΊΠΎΡ‚ Π΅ ΡΡ€Π΅ΡœΠ΅Π½, Π΄ΠΎΠ±ΠΈΠ» ΠΌΠ°Ρ‡ΠΊΠΈ. Π‘ΠΈΠ΄Π΅Ρ˜ΡœΠΈ Π³ΠΎ ΠΏΡ€ΠΎΡˆΠΈΡ€ΠΈΠ²ΠΌΠ΅ Π±Π°Ρ€Π°ΡšΠ΅Ρ‚ΠΎ, Π΄ΠΎΠ±ΠΈ ΠΈ ΠΊΡ€Π·Π½Π΅Π½ΠΎ ΠΏΠ΅Ρ‡Π°Ρ‚ Π·Π° ΠΌΠ°Ρ‡ΠΈΡšΠ°. Никогаш Π½Π΅ сС Π·Π½Π°Π΅, ΠΌΠΎΠΆΠ΅Π±ΠΈ Ρ‚ΠΎΡ˜ Π³ΠΎ Π±Π°Ρ€Π°ΡˆΠ΅ Ρ‚ΠΎΠΊΠΌΡƒ ΠΎΠ²Π°, Π½ΠΎ Π½Π΅ моТСшС ΠΏΡ€Π°Π²ΠΈΠ»Π½ΠΎ Π΄Π° Π³ΠΎ Ρ„ΠΎΡ€ΠΌΡƒΠ»ΠΈΡ€Π° своСто Π±Π°Ρ€Π°ΡšΠ΅.

Π‘Γ¨ Π΅ ΠΊΡƒΠ», Π½ΠΎ Π½ΠΈΠ΅ смС Π²ΠΎ Ρ€Π°Π·Π²ΠΎΡ˜ ΠΈ сè ΡƒΡˆΡ‚Π΅ Π½Π΅ сакамС Π΄Π° ΠΈΠΌ Π³ΠΎ ΠΏΡ€ΠΈΠΊΠ°ΠΆΡƒΠ²Π°ΠΌΠ΅ Π½Π° корисницитС. АјдС Π΄Π° Π³ΠΎ Π½Π°ΠΏΡ€Π°Π²ΠΈΠΌΠ΅ ΠΎΠ²Π»Π°ΡΡ‚ΡƒΠ²Π°ΡšΠ΅Ρ‚ΠΎ. Π—Π° Π΄Π° Π³ΠΎ Π½Π°ΠΏΡ€Π°Π²ΠΈΡ‚Π΅ ΠΎΠ²Π°, ајдС Π΄Π° ΠΏΠΎΠ³Π»Π΅Π΄Π½Π΅ΠΌΠ΅ ΠΊΠ°ΠΊΠΎ NGINX сС справува со Π±Π°Ρ€Π°ΡšΠ΅Ρ‚ΠΎ Π²ΠΎ услови Π½Π° OpenResty:

  • ΠŸΡ€Π²Π° Ρ„Π°Π·Π° - пристап, ΠΊΠΎΠ³Π° корисникот ΡˆΡ‚ΠΎΡ‚ΡƒΠΊΡƒ пристигна, ΠΈ Π³ΠΎ Π³Π»Π΅Π΄Π°Π²ΠΌΠ΅ ΠΏΠΎ заглавија, ΠΏΠΎ IP адрСса ΠΈ спорСд Π΄Ρ€ΡƒΠ³ΠΈ ΠΏΠΎΠ΄Π°Ρ‚ΠΎΡ†ΠΈ. МоТСмС вСднаш Π΄Π° Π³ΠΎ ΠΏΡ€Π΅ΠΊΠΈΠ½Π΅ΠΌΠ΅ Π°ΠΊΠΎ Π½Π΅ Π½ΠΈ сС Π΄ΠΎΠΏΠ°Ρ“Π°. Ова ΠΌΠΎΠΆΠ΅ Π΄Π° сС користи Π·Π° ΠΎΠ²Π»Π°ΡΡ‚ΡƒΠ²Π°ΡšΠ΅ ΠΈΠ»ΠΈ Π°ΠΊΠΎ Π΄ΠΎΠ±ΠΈΠ΅ΠΌΠ΅ ΠΌΠ½ΠΎΠ³Ρƒ Π±Π°Ρ€Π°ΡšΠ°, лСсно ΠΌΠΎΠΆΠ΅ΠΌΠ΅ Π΄Π° Π³ΠΈ ΠΏΡ€Π΅ΠΊΠΈΠ½Π΅ΠΌΠ΅ Π²ΠΎ ΠΎΠ²Π°Π° Ρ„Π°Π·Π°.
  • ΠΏΡ€Π΅Ρ€Π°Π±ΠΎΡ‚ΠΈ. НиС ΠΏΡ€Π΅ΠΏΠΈΡˆΡƒΠ²Π°ΠΌΠ΅ Π½Π΅ΠΊΠΎΠΈ ΠΏΠΎΠ΄Π°Ρ‚ΠΎΡ†ΠΈ Π·Π° Π±Π°Ρ€Π°ΡšΠ΅Ρ‚ΠΎ.
  • содрТина. НиС ја доставувамС содрТината Π΄ΠΎ корисникот.
  • Ρ„ΠΈΠ»Ρ‚Π΅Ρ€ Π·Π° заглавија. Π“ΠΈ Π·Π°ΠΌΠ΅Π½ΡƒΠ²Π°ΠΌΠ΅ Π·Π°Π³Π»Π°Π²Ρ˜Π°Ρ‚Π° Π½Π° ΠΎΠ΄Π³ΠΎΠ²ΠΎΡ€ΠΎΡ‚. Ако користСвмС proxy_pass, ΠΌΠΎΠΆΠ΅ΠΌΠ΅ Π΄Π° ΠΏΡ€Π΅Ρ€Π°Π±ΠΎΡ‚ΠΈΠΌΠ΅ Π½Π΅ΠΊΠΎΠΈ заглавија ΠΏΡ€Π΅Π΄ Π΄Π° ΠΌΡƒ Π³ΠΈ Π΄Π°Π΄Π΅ΠΌΠ΅ Π½Π° корисникот.
  • Ρ„ΠΈΠ»Ρ‚Π΅Ρ€ Π·Π° Ρ‚Π΅Π»ΠΎ. МоТСмС Π΄Π° Π³ΠΎ ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈΠΌΠ΅ Ρ‚Π΅Π»ΠΎΡ‚ΠΎ.
  • Π΄Π° сС Π»ΠΎΠ³ΠΈΡ€Π°Ρ‚Π΅ - сСча. ΠœΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° ΠΏΠΈΡˆΡƒΠ²Π°Ρ‚Π΅ Π΄Π½Π΅Π²Π½ΠΈΡ†ΠΈ Π²ΠΎ elasticsearch Π±Π΅Π· Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»Π΅Π½ слој.

ΠΠ°ΡˆΠ΅Ρ‚ΠΎ ΠΎΠ²Π»Π°ΡΡ‚ΡƒΠ²Π°ΡšΠ΅ ќС ΠΈΠ·Π³Π»Π΅Π΄Π° Π²Π°ΠΊΠ°:

OpenResty: ΠΏΡ€Π΅Ρ‚Π²ΠΎΡ€Π°ΡšΠ΅ Π½Π° NGINX Π²ΠΎ ΠΏΠΎΠ»Π½ΠΎΠΏΡ€Π°Π²Π΅Π½ сСрвСр Π·Π° Π°ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΠΈ

ЌС Π³ΠΎ Π΄ΠΎΠ΄Π°Π΄Π΅ΠΌΠ΅ ΠΎΠ²Π° Π½Π° ΠΎΠ½Π° location, ΡˆΡ‚ΠΎ Π³ΠΎ опишавмС ΠΏΡ€Π΅Ρ‚Ρ…ΠΎΠ΄Π½ΠΎ, ΠΈ Π³ΠΎ ставивмС слСдниов ΠΊΠΎΠ΄ Ρ‚Π°ΠΌΡƒ:

OpenResty: ΠΏΡ€Π΅Ρ‚Π²ΠΎΡ€Π°ΡšΠ΅ Π½Π° NGINX Π²ΠΎ ΠΏΠΎΠ»Π½ΠΎΠΏΡ€Π°Π²Π΅Π½ сСрвСр Π·Π° Π°ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΠΈ

Π“Π»Π΅Π΄Π°ΠΌΠ΅ Π΄Π° Π²ΠΈΠ΄ΠΈΠΌΠ΅ Π΄Π°Π»ΠΈ ΠΈΠΌΠ°ΠΌΠ΅ Ρ‚ΠΎΠΊΠ΅Π½ Π·Π° ΠΊΠΎΠ»Π°Ρ‡ΠΈΡšΠ°. Ако Π½Π΅, Ρ‚ΠΎΠ³Π°Ρˆ Π±Π°Ρ€Π°ΠΌΠ΅ ΠΎΠ²Π»Π°ΡΡ‚ΡƒΠ²Π°ΡšΠ΅. ΠšΠΎΡ€ΠΈΡΠ½ΠΈΡ†ΠΈΡ‚Π΅ сС Π»ΡƒΠΊΠ°Π²ΠΈ ΠΈ ΠΌΠΎΠΆΠ°Ρ‚ Π΄Π° ΠΏΠΎΠ³ΠΎΠ΄Π°Ρ‚ Π΄Π΅ΠΊΠ° Ρ‚Ρ€Π΅Π±Π° Π΄Π° постават Ρ‚ΠΎΠΊΠ΅Π½ Π·Π° ΠΊΠΎΠ»Π°Ρ‡ΠΈΡšΠ°. Π—Π°Ρ‚ΠΎΠ°, ќС Π³ΠΎ ставимС ΠΈ Π²ΠΎ РСдис:

OpenResty: ΠΏΡ€Π΅Ρ‚Π²ΠΎΡ€Π°ΡšΠ΅ Π½Π° NGINX Π²ΠΎ ΠΏΠΎΠ»Π½ΠΎΠΏΡ€Π°Π²Π΅Π½ сСрвСр Π·Π° Π°ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΠΈ

ΠšΠΎΠ΄ΠΎΡ‚ Π·Π° Ρ€Π°Π±ΠΎΡ‚Π° со Redis Π΅ ΠΌΠ½ΠΎΠ³Ρƒ СдноставСн ΠΈ Π½Π΅ сС Ρ€Π°Π·Π»ΠΈΠΊΡƒΠ²Π° ΠΎΠ΄ Π΄Ρ€ΡƒΠ³ΠΈΡ‚Π΅ Ρ˜Π°Π·ΠΈΡ†ΠΈ. Π’ΠΎ исто Π²Ρ€Π΅ΠΌΠ΅, ситС Π²Π»Π΅Π·Π½ΠΈ/ΠΈΠ·Π»Π΅Π·Π½ΠΈ, Ρ‚ΡƒΠΊΠ° ΠΈ Ρ‚Π°ΠΌΡƒ, Π½Π΅ сС Π±Π»ΠΎΠΊΠΈΡ€Π°Π½ΠΈ. Ако Π½Π°ΠΏΠΈΡˆΠ΅Ρ‚Π΅ синхрон ΠΊΠΎΠ΄, Ρ‚ΠΎΡ˜ Ρ€Π°Π±ΠΎΡ‚ΠΈ асинхроно. РСчиси ΠΊΠ°ΠΊΠΎ gevent, Π½ΠΎ Π΄ΠΎΠ±Ρ€ΠΎ Π½Π°ΠΏΡ€Π°Π²Π΅Π½ΠΎ.

OpenResty: ΠΏΡ€Π΅Ρ‚Π²ΠΎΡ€Π°ΡšΠ΅ Π½Π° NGINX Π²ΠΎ ΠΏΠΎΠ»Π½ΠΎΠΏΡ€Π°Π²Π΅Π½ сСрвСр Π·Π° Π°ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΠΈ

АјдС Π΄Π° Π³ΠΎ Π½Π°ΠΏΡ€Π°Π²ΠΈΠΌΠ΅ самото ΠΎΠ²Π»Π°ΡΡ‚ΡƒΠ²Π°ΡšΠ΅:

OpenResty: ΠΏΡ€Π΅Ρ‚Π²ΠΎΡ€Π°ΡšΠ΅ Π½Π° NGINX Π²ΠΎ ΠΏΠΎΠ»Π½ΠΎΠΏΡ€Π°Π²Π΅Π½ сСрвСр Π·Π° Π°ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΠΈ

Π’Π΅Π»ΠΈΠΌΠ΅ Π΄Π΅ΠΊΠ° Ρ‚Ρ€Π΅Π±Π° Π΄Π° Π³ΠΎ ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°ΠΌΠ΅ Ρ‚Π΅Π»ΠΎΡ‚ΠΎ Π½Π° Π±Π°Ρ€Π°ΡšΠ΅Ρ‚ΠΎ. Π”ΠΎΠ±ΠΈΠ²Π°ΠΌΠ΅ POST Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΈ ΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡƒΠ²Π°ΠΌΠ΅ Π΄Π°Π»ΠΈ Π½Π°Ρ˜Π°Π²ΡƒΠ²Π°ΡšΠ΅Ρ‚ΠΎ ΠΈ Π»ΠΎΠ·ΠΈΠ½ΠΊΠ°Ρ‚Π° сС Ρ‚ΠΎΡ‡Π½ΠΈ. Π”ΠΎΠΊΠΎΠ»ΠΊΡƒ сС Π½Π΅Ρ‚ΠΎΡ‡Π½ΠΈ, Ρ‚ΠΎΠ³Π°Ρˆ Π²Π΅ ΠΏΡ€Π΅Π΄ΠΈΠ·Π²ΠΈΠΊΡƒΠ²Π°ΠΌΠ΅ Π·Π° ΠΎΠ²Π»Π°ΡΡ‚ΡƒΠ²Π°ΡšΠ΅. И Π°ΠΊΠΎ Π΅ Ρ‚ΠΎΡ‡Π½ΠΎ, Ρ‚ΠΎΠ³Π°Ρˆ Π½Π°ΠΏΠΈΡˆΠ΅Ρ‚Π΅ Π³ΠΎ Ρ‚ΠΎΠΊΠ΅Π½ΠΎΡ‚ Π²ΠΎ РСдис:

OpenResty: ΠΏΡ€Π΅Ρ‚Π²ΠΎΡ€Π°ΡšΠ΅ Π½Π° NGINX Π²ΠΎ ΠΏΠΎΠ»Π½ΠΎΠΏΡ€Π°Π²Π΅Π½ сСрвСр Π·Π° Π°ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΠΈ

НС Π·Π°Π±ΠΎΡ€Π°Π²Π°Ρ˜Ρ‚Π΅ Π΄Π° Π³ΠΎ поставитС ΠΊΠΎΠ»Π°Ρ‡Π΅Ρ‚ΠΎ, Ρ‚ΠΎΠ° сС ΠΏΡ€Π°Π²ΠΈ ΠΈ Π²ΠΎ Π΄Π²Π° Ρ€Π΅Π΄Π°:

OpenResty: ΠΏΡ€Π΅Ρ‚Π²ΠΎΡ€Π°ΡšΠ΅ Π½Π° NGINX Π²ΠΎ ΠΏΠΎΠ»Π½ΠΎΠΏΡ€Π°Π²Π΅Π½ сСрвСр Π·Π° Π°ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΠΈ

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ΠΎΡ‚ Π΅ СдноставСн ΠΈ ΡˆΠΏΠ΅ΠΊΡƒΠ»Π°Ρ‚ΠΈΠ²Π΅Π½. Π‘Π΅ Ρ€Π°Π·Π±ΠΈΡ€Π°, Π½Π΅ΠΌΠ° Π΄Π° ΠΏΡ€Π°Π²ΠΈΠΌΠ΅ услуга која Π½Π° Π»ΡƒΡ“Π΅Ρ‚ΠΎ ΠΈΠΌ ΠΏΠΎΠΊΠ°ΠΆΡƒΠ²Π° ΠΌΠ°Ρ‡ΠΊΠΈ. Но, кој Π½Γ¨ ΠΏΠΎΠ·Π½Π°Π²Π° нас. Π—Π½Π°Ρ‡ΠΈ, Π΄Π° Ρ€Π°Π·Π³Π»Π΅Π΄Π°ΠΌΠ΅ ΡˆΡ‚ΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° сС Π½Π°ΠΏΡ€Π°Π²ΠΈ Π²ΠΎ производството.

  • ΠœΠΈΠ½ΠΈΠΌΠ°Π»ΠΈΡΡ‚ΠΈΡ‡ΠΊΠΈ Π·Π°Π΄Π½ΠΈΠ½Π°. ПонСкогаш Ρ‚Ρ€Π΅Π±Π° Π΄Π° изнСсСмС само ΠΌΠ°Π»ΠΊΡƒ ΠΏΠΎΠ΄Π°Ρ‚ΠΎΡ†ΠΈ Π²ΠΎ Π·Π°Π΄Π½ΠΈΠΎΡ‚ Π΄Π΅Π»: Π½Π΅ΠΊΠ°Π΄Π΅ Ρ‚Ρ€Π΅Π±Π° Π΄Π° Π²ΠΌΠ΅Ρ‚Π½Π΅ΠΌΠ΅ Π΄Π°Ρ‚ΡƒΠΌ, Π½Π΅ΠΊΠ°Π΄Π΅ Ρ‚Ρ€Π΅Π±Π° Π΄Π° ΠΏΡ€ΠΈΠΊΠ°ΠΆΠ΅ΠΌΠ΅ листа, Π΄Π° ΠΊΠ°ΠΆΠ΅ΠΌΠ΅ ΠΊΠΎΠ»ΠΊΡƒ корисници ΠΈΠΌΠ° сСга Π½Π° страницата, Π΄Π° ΠΏΡ€ΠΈΠΊΠ°Ρ‡ΠΈΠΌΠ΅ Π±Ρ€ΠΎΡ˜Π°Ρ‡ ΠΈΠ»ΠΈ статистика. ΠΠ΅ΡˆΡ‚ΠΎ Ρ‚ΠΎΠ»ΠΊΡƒ ΠΌΠ°Π»ΠΎ. НСкои ΠΌΠΈΠ½ΠΈΠΌΠ°Π»Π½ΠΈ ΠΏΠ°Ρ€Ρ‡ΠΈΡšΠ° ΠΌΠΎΠΆΠ΅ Π΄Π° сС Π½Π°ΠΏΡ€Π°Π²Π°Ρ‚ ΠΌΠ½ΠΎΠ³Ρƒ лСсно. Ова ќС Π³ΠΎ Π½Π°ΠΏΡ€Π°Π²ΠΈ Π±Ρ€Π·ΠΎ, лСсно ΠΈ ΠΎΠ΄Π»ΠΈΡ‡Π½ΠΎ.
  • ΠŸΡ€Π΅Ρ‚Ρ…ΠΎΠ΄Π½Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π½Π° ΠΏΠΎΠ΄Π°Ρ‚ΠΎΡ†ΠΈ. ПонСкогаш сакамС Π΄Π° Π²Π³Ρ€Π°Π΄ΠΈΠΌΠ΅ Ρ€Π΅ΠΊΠ»Π°ΠΌΠΈΡ€Π°ΡšΠ΅ Π½Π° Π½Π°ΡˆΠ°Ρ‚Π° страница ΠΈ Π³ΠΎ Π΄ΠΎΠ±ΠΈΠ²Π°ΠΌΠ΅ ΠΎΠ²Π° Ρ€Π΅ΠΊΠ»Π°ΠΌΠΈΡ€Π°ΡšΠ΅ ΠΊΠΎΡ€ΠΈΡΡ‚Π΅Ρ˜ΡœΠΈ Π±Π°Ρ€Π°ΡšΠ° Π·Π° API. Ова Π΅ ΠΌΠ½ΠΎΠ³Ρƒ лСсно Π΄Π° сС Π½Π°ΠΏΡ€Π°Π²ΠΈ ΠΎΠ²Π΄Π΅. НС Π³ΠΎ Π²Ρ‡ΠΈΡ‚ΡƒΠ²Π°ΠΌΠ΅ Π½Π°ΡˆΠΈΠΎΡ‚ Π±Π΅ΠΊΠ΅Π½Π΄, кој вСќС сСди ΠΈ Ρ€Π°Π±ΠΎΡ‚ΠΈ Π½Π°ΠΏΠΎΡ€Π½ΠΎ. ΠœΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° Π³ΠΎ Π·Π΅ΠΌΠ΅Ρ‚Π΅ ΠΈ Π΄Π° Π³ΠΎ собСрСтС ΠΎΠ²Π΄Π΅. МоТСмС Π΄Π° склопимС Π½Π΅ΠΊΠΎΠΈ JS ΠΈΠ»ΠΈ, ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ, Π΄Π° Π³ΠΎ ΠΎΠ΄Π²Ρ€Π·Π΅ΠΌΠ΅ ΠΈ Π΄Π° ΠΏΡ€Π΅Ρ€Π°Π±ΠΎΡ‚ΠΈΠΌΠ΅ Π½Π΅ΡˆΡ‚ΠΎ ΠΏΡ€Π΅Π΄ Π΄Π° ΠΌΡƒ Π³ΠΎ Π΄Π°Π΄Π΅ΠΌΠ΅ Π½Π° корисникот.
  • Ѐасада Π·Π° микросСрвис. И ΠΎΠ²Π° Π΅ ΠΌΠ½ΠΎΠ³Ρƒ Π΄ΠΎΠ±Π°Ρ€ ΡΠ»ΡƒΡ‡Π°Ρ˜, Π³ΠΎ спровСдов. ΠŸΡ€Π΅Π΄ Ρ‚ΠΎΠ° Ρ€Π°Π±ΠΎΡ‚Π΅Π² Π²ΠΎ Π’Π΅Π½Π·ΠΎΡ€, компанија која сС Π·Π°Π½ΠΈΠΌΠ°Π²Π° со СлСктронско ΠΈΠ·Π²Π΅ΡΡ‚ΡƒΠ²Π°ΡšΠ΅ ΠΈ ΠΎΠ±Π΅Π·Π±Π΅Π΄ΡƒΠ²Π° ΠΈΠ·Π²Π΅ΡΡ‚ΡƒΠ²Π°ΡšΠ΅ Π½Π° ΠΏΡ€ΠΈΠ±Π»ΠΈΠΆΠ½ΠΎ ΠΏΠΎΠ»ΠΎΠ²ΠΈΠ½Π° ΠΎΠ΄ ΠΏΡ€Π°Π²Π½ΠΈΡ‚Π΅ ΡΡƒΠ±Ρ˜Π΅ΠΊΡ‚ΠΈ Π²ΠΎ Π΄Ρ€ΠΆΠ°Π²Π°Ρ‚Π°. Π‘ΠΎΠ·Π΄Π°Π΄ΠΎΠ²ΠΌΠ΅ услуга, ΠΌΠ½ΠΎΠ³Ρƒ Ρ€Π°Π±ΠΎΡ‚ΠΈ Π±Π΅Π° Π½Π°ΠΏΡ€Π°Π²Π΅Π½ΠΈ Ρ‚Π°ΠΌΡƒ ΠΊΠΎΡ€ΠΈΡΡ‚Π΅Ρ˜ΡœΠΈ Π³ΠΎ истиот ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·Π°ΠΌ: Ρ€ΡƒΡ‚ΠΈΡ€Π°ΡšΠ΅, ΠΎΠ²Π»Π°ΡΡ‚ΡƒΠ²Π°ΡšΠ΅ ΠΈ ΠΌΠ½ΠΎΠ³Ρƒ повСќС.
    OpenResty ΠΌΠΎΠΆΠ΅ Π΄Π° сС користи ΠΊΠ°ΠΊΠΎ Π»Π΅ΠΏΠ°ΠΊ Π·Π° Π²Π°ΡˆΠΈΡ‚Π΅ микроуслуги, ΠΎΠ±Π΅Π·Π±Π΅Π΄ΡƒΠ²Π°Ρ˜ΡœΠΈ СдинствСн пристап Π΄ΠΎ сè ΠΈ СдинствСн ΠΈΠ½Ρ‚Π΅Ρ€Ρ„Π΅Ρ˜Ρ. Π‘ΠΈΠ΄Π΅Ρ˜ΡœΠΈ микросСрвиситС ΠΌΠΎΠΆΠ°Ρ‚ Π΄Π° Π±ΠΈΠ΄Π°Ρ‚ напишани Π½Π° Ρ‚Π°ΠΊΠΎΠ² Π½Π°Ρ‡ΠΈΠ½ ΡˆΡ‚ΠΎ ΠΈΠΌΠ°Ρ‚Π΅ Node.js ΠΎΠ²Π΄Π΅, PHP ΠΎΠ²Π΄Π΅, Python ΠΎΠ²Π΄Π΅, Π½Π΅ΡˆΡ‚ΠΎ Erlang ΠΎΠ²Π΄Π΅, Ρ€Π°Π·Π±ΠΈΡ€Π°ΠΌΠ΅ Π΄Π΅ΠΊΠ° Π½Π΅ сакамС Π΄Π° Π³ΠΎ ΠΏΡ€Π΅ΠΏΠΈΡˆΡƒΠ²Π°ΠΌΠ΅ истиот ΠΊΠΎΠ΄ насСкадС. Π—Π°Ρ‚ΠΎΠ°, OpenResty ΠΌΠΎΠΆΠ΅ Π΄Π° сС ΠΏΡ€ΠΈΠΊΠ»ΡƒΡ‡ΠΈ Π½Π° ΠΏΡ€Π΅Π΄Π½Π°Ρ‚Π° страна.
  • Бтатистика ΠΈ Π°Π½Π°Π»ΠΈΡ‚ΠΈΠΊΠ°. ΠžΠ±ΠΈΡ‡Π½ΠΎ NGINX Π΅ Π½Π° Π²Π»Π΅Π·ΠΎΡ‚, ΠΈ ситС Π±Π°Ρ€Π°ΡšΠ° ΠΏΠΎΠΌΠΈΠ½ΡƒΠ²Π°Π°Ρ‚ Π½ΠΈΠ· Π½Π΅Π³ΠΎ. На ΠΎΠ²Π° мСсто Π΅ ΠΌΠ½ΠΎΠ³Ρƒ ΠΏΠΎΠ³ΠΎΠ΄Π½ΠΎ Π΄Π° сС собСрС. ΠœΠΎΠΆΠ΅Ρ‚Π΅ вСднаш Π΄Π° прСсмСтатС Π½Π΅ΡˆΡ‚ΠΎ ΠΈ Π΄Π° Π³ΠΎ поставитС Π½Π΅ΠΊΠ°Π΄Π΅, Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Elasticsearch, Logstash ΠΈΠ»ΠΈ Сдноставно Π΄Π° Π³ΠΎ Π½Π°ΠΏΠΈΡˆΠ΅Ρ‚Π΅ Π²ΠΎ Π΄Π½Π΅Π²Π½ΠΈΠΊΠΎΡ‚ ΠΈ ΠΏΠΎΡ‚ΠΎΠ° Π΄Π° Π³ΠΎ испратитС Π½Π΅ΠΊΠ°Π΄Π΅.
  • ΠŸΠΎΠ²Π΅ΡœΠ΅ΠΊΠΎΡ€ΠΈΡΠ½ΠΈΡ‡ΠΊΠΈ систСми. На ΠΏΡ€ΠΈΠΌΠ΅Ρ€, онлајн ΠΈΠ³Ρ€ΠΈΡ‚Π΅ сС исто Ρ‚Π°ΠΊΠ° ΠΌΠ½ΠΎΠ³Ρƒ Π΄ΠΎΠ±Ρ€ΠΈ Π·Π° ΠΏΡ€Π°Π²Π΅ΡšΠ΅. ДСнСс Π²ΠΎ КСјп Π’Π°ΡƒΠ½, АлСксандар Π“Π»Π°Π΄ΠΈΡˆ ќС Π·Π±ΠΎΡ€ΡƒΠ²Π° Π·Π° Ρ‚ΠΎΠ° ΠΊΠ°ΠΊΠΎ Π±Ρ€Π·ΠΎ Π΄Π° сС ΠΏΡ€ΠΎΡ‚ΠΎΡ‚ΠΈΠΏΠΈΡ€Π° ΠΈΠ³Ρ€Π° со повСќС ΠΈΠ³Ρ€Π°Ρ‡ΠΈ ΠΊΠΎΡ€ΠΈΡΡ‚Π΅Ρ˜ΡœΠΈ OpenResty.
  • ΠŸΠΎΠ±Π°Ρ€Π°Ρ˜Ρ‚Π΅ Ρ„ΠΈΠ»Ρ‚Ρ€ΠΈΡ€Π°ΡšΠ΅ (WAF). Π’ΠΎ дСнСшно Π²Ρ€Π΅ΠΌΠ΅ Π΅ ΠΌΠΎΠ΄Π΅Ρ€Π½ΠΎ Π΄Π° сС ΠΏΡ€Π°Π²Π°Ρ‚ сСкакви Π·Π°ΡˆΡ‚ΠΈΡ‚Π½ΠΈ Ρ•ΠΈΠ΄ΠΎΠ²ΠΈ Π½Π° Π²Π΅Π±-Π°ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΠΈ; ΠΈΠΌΠ° ΠΌΠ½ΠΎΠ³Ρƒ услуги ΡˆΡ‚ΠΎ Π³ΠΈ ΠΎΠ±Π΅Π·Π±Π΅Π΄ΡƒΠ²Π°Π°Ρ‚. ΠšΠΎΡ€ΠΈΡΡ‚Π΅Ρ˜ΡœΠΈ OpenResty, ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° си Π½Π°ΠΏΡ€Π°Π²ΠΈΡ‚Π΅ Π·Π°ΡˆΡ‚ΠΈΡ‚Π΅Π½ Ρ•ΠΈΠ΄ Π·Π° Π²Π΅Π±-Π°ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΠΈ ΡˆΡ‚ΠΎ Сдноставно ΠΈ лСсно ќС Π³ΠΈ Ρ„ΠΈΠ»Ρ‚Ρ€ΠΈΡ€Π° Π±Π°Ρ€Π°ΡšΠ°Ρ‚Π° спорСд Π²Π°ΡˆΠΈΡ‚Π΅ Π±Π°Ρ€Π°ΡšΠ°. Ако ΠΈΠΌΠ°Ρ‚Π΅ Python, Ρ‚ΠΎΠ³Π°Ρˆ Ρ€Π°Π·Π±ΠΈΡ€Π°Ρ‚Π΅ Π΄Π΅ΠΊΠ° PHP Π΄Π΅Ρ„ΠΈΠ½ΠΈΡ‚ΠΈΠ²Π½ΠΎ Π½Π΅ΠΌΠ° Π΄Π° Π²ΠΈ сС ΠΈΠ½Ρ˜Π΅ΠΊΡ‚ΠΈΡ€Π°, освСн Π°ΠΊΠΎ, сС Ρ€Π°Π·Π±ΠΈΡ€Π°, Π½Π΅ Π³ΠΎ мрСстСтС ΠΊΠ°Π΄Π΅ Π±ΠΈΠ»ΠΎ ΠΎΠ΄ ΠΊΠΎΠ½Π·ΠΎΠ»Π°Ρ‚Π°. Π—Π½Π°Π΅Ρ‚Π΅ Π΄Π΅ΠΊΠ° ΠΈΠΌΠ°Ρ‚Π΅ MySQL ΠΈ Python. Π’Π΅Ρ€ΠΎΡ˜Π°Ρ‚Π½ΠΎ, Ρ‚ΠΈΠ΅ Π±ΠΈ ΠΌΠΎΠΆΠ΅Π»Π΅ Π΄Π° сС ΠΎΠ±ΠΈΠ΄Π°Ρ‚ Π΄Π° Π½Π°ΠΏΡ€Π°Π²Π°Ρ‚ нСкој Π²ΠΈΠ΄ Π½Π° ΠΏΡ€Π΅ΠΌΠΈΠ½ΡƒΠ²Π°ΡšΠ΅ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΡƒΠΌΠΈ ΠΈ Π΄Π° внСсат Π½Π΅ΡˆΡ‚ΠΎ Π²ΠΎ Π±Π°Π·Π°Ρ‚Π° Π½Π° ΠΏΠΎΠ΄Π°Ρ‚ΠΎΡ†ΠΈ. Π—Π°Ρ‚ΠΎΠ°, ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π±Ρ€Π·ΠΎ ΠΈ Π΅Π²Ρ‚ΠΈΠ½ΠΎ Π΄Π° Π³ΠΈ Ρ„ΠΈΠ»Ρ‚Ρ€ΠΈΡ€Π°Ρ‚Π΅ Ρ‡ΡƒΠ΄Π½ΠΈΡ‚Π΅ ΠΏΡ€Π°ΡˆΠ°ΡšΠ° вСднаш Π½Π° ΠΏΡ€Π΅Π΄Π½Π°Ρ‚Π° страна.
  • Π—Π°Π΅Π΄Π½ΠΈΡ†Π° Π‘ΠΈΠ΄Π΅Ρ˜ΡœΠΈ OpenResty Π΅ ΠΈΠ·Π³Ρ€Π°Π΄Π΅Π½ Π½Π° NGINX, ΠΈΠΌΠ° бонус - ΠΎΠ²Π° NGINX Π·Π°Π΅Π΄Π½ΠΈΡ†Π°. Вој Π΅ ΠΌΠ½ΠΎΠ³Ρƒ Π³ΠΎΠ»Π΅ΠΌ, Π° пристоСн Π΄Π΅Π» ΠΎΠ΄ ΠΏΡ€Π°ΡˆΠ°ΡšΠ°Ρ‚Π° ΡˆΡ‚ΠΎ ќС Π³ΠΈ ΠΈΠΌΠ°Ρ‚Π΅ Π½Π° ΠΏΠΎΡ‡Π΅Ρ‚ΠΎΠΊΠΎΡ‚ вСќС сС Ρ€Π΅ΡˆΠ΅Π½ΠΈ ΠΎΠ΄ Π·Π°Π΅Π΄Π½ΠΈΡ†Π°Ρ‚Π° NGINX.

    Π›ΡƒΠ° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠ΅Ρ€ΠΈ. Π’Ρ‡Π΅Ρ€Π° Ρ€Π°Π·Π³ΠΎΠ²Π°Ρ€Π°Π² со ΠΌΠΎΠΌΡ†ΠΈΡ‚Π΅ ΠΊΠΎΠΈ дојдоа Π½Π° Π΄Π΅Π½ΠΎΡ‚ Π·Π° ΠΎΠ±ΡƒΠΊΠ° Π½Π° HighLoad++ ΠΈ ΡΠ»ΡƒΡˆΠ½Π°Π² Π΄Π΅ΠΊΠ° само Tarantool Π΅ напишано Π½Π° Π›ΡƒΠ°. Ова Π½Π΅ Π΅ Ρ‚ΠΎΡ‡Π½ΠΎ, ΠΌΠ½ΠΎΠ³Ρƒ Ρ€Π°Π±ΠΎΡ‚ΠΈ сС напишани Π½Π° Π›ΡƒΠ°. ΠŸΡ€ΠΈΠΌΠ΅Ρ€ΠΈ: OpenResty, Prosody XMPP сСрвСр, Love2D ΠΈΠ³Ρ€Π°Ρ‡ΠΊΠΈ ΠΌΠΎΡ‚ΠΎΡ€, Lua напишана Π²ΠΎ Warcraft ΠΈ Π½Π° Π΄Ρ€ΡƒΠ³ΠΈ мСста. Има ΠΌΠ½ΠΎΠ³Ρƒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠ΅Ρ€ΠΈ Π½Π° Lua, Ρ‚ΠΈΠ΅ ΠΈΠΌΠ°Π°Ρ‚ Π³ΠΎΠ»Π΅ΠΌΠ° ΠΈ ΠΎΠ΄Π³ΠΎΠ²ΠΎΡ€Π½Π° Π·Π°Π΅Π΄Π½ΠΈΡ†Π°. Π‘ΠΈΡ‚Π΅ ΠΌΠΎΠΈ ΠΏΡ€Π°ΡˆΠ°ΡšΠ° Π·Π° Π›ΡƒΠ° Π±Π΅Π° Ρ€Π΅ΡˆΠ΅Π½ΠΈ Π·Π° Π½Π΅ΠΊΠΎΠ»ΠΊΡƒ часа. Кога ΠΏΠΈΡˆΡƒΠ²Π°Ρ‚Π΅ Π½Π° мСјлинг листата, Π±ΡƒΠΊΠ²Π°Π»Π½ΠΎ Π²ΠΎ Ρ€ΠΎΠΊ ΠΎΠ΄ Π½Π΅ΠΊΠΎΠ»ΠΊΡƒ ΠΌΠΈΠ½ΡƒΡ‚ΠΈ вСќС ΠΈΠΌΠ° ΠΊΡƒΠΏ ΠΎΠ΄Π³ΠΎΠ²ΠΎΡ€ΠΈ, ΠΊΠΎΠΈ ΠΎΠΏΠΈΡˆΡƒΠ²Π°Π°Ρ‚ ΡˆΡ‚ΠΎ ΠΈ ΠΊΠ°ΠΊΠΎ, ΡˆΡ‚ΠΎ Π΅ ΡˆΡ‚ΠΎ. Π’ΠΎΠ° Π΅ ΠΎΠ΄Π»ΠΈΡ‡Π½ΠΎ. Π—Π° ΠΆΠ°Π», Ρ‚Π°ΠΊΠ²Π° Ρ™ΡƒΠ±Π΅Π·Π½Π°, Π΄ΡƒΡ…ΠΎΠ²Π½Π° Π·Π°Π΅Π΄Π½ΠΈΡ†Π° ја Π½Π΅ΠΌΠ° насСкадС.
    ΠŸΠΎΡΡ‚ΠΎΠΈ GitHub Π·Π° OpenResty, ΠΊΠ°Π΄Π΅ ΡˆΡ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° ΠΎΡ‚Π²ΠΎΡ€ΠΈΡ‚Π΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ Π°ΠΊΠΎ Π½Π΅ΡˆΡ‚ΠΎ Π΅ ΡΠΊΡ€ΡˆΠ΅Π½ΠΎ. Има мСјлинг листа Π½Π° Google Groups, ΠΊΠ°Π΄Π΅ ΡˆΡ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° Ρ€Π°Π·Π³ΠΎΠ²Π°Ρ€Π°Ρ‚Π΅ Π·Π° ΠΎΠΏΡˆΡ‚ΠΈ ΠΏΡ€Π°ΡˆΠ°ΡšΠ°, ΠΈΠΌΠ° мСјлинг листа Π½Π° кинСски - никогаш Π½Π΅ Π·Π½Π°Π΅Ρ‚Π΅, ΠΌΠΎΠΆΠ΅Π±ΠΈ Π½Π΅ Π·Π±ΠΎΡ€ΡƒΠ²Π°Ρ‚Π΅ англиски, Π½ΠΎ Π·Π½Π°Π΅Ρ‚Π΅ кинСски.

Π Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚ΠΈΡ‚Π΅ ΠΎΠ΄

  • Π‘Π΅ Π½Π°Π΄Π΅Π²Π°ΠΌ Π΄Π΅ΠΊΠ° успСав Π΄Π° прСнСсам Π΄Π΅ΠΊΠ° OpenResty Π΅ ΠΌΠ½ΠΎΠ³Ρƒ ΡƒΠ΄ΠΎΠ±Π½Π° Ρ€Π°ΠΌΠΊΠ° ΠΏΡ€ΠΈΠ»Π°Π³ΠΎΠ΄Π΅Π½Π° Π·Π° Π²Π΅Π±.
  • Има ниска Π±Π°Ρ€ΠΈΠ΅Ρ€Π° Π·Π° Π²Π»Π΅Π·, бидСјќи ΠΊΠΎΠ΄ΠΎΡ‚ Π΅ сличСн Π½Π° ΠΎΠ½Π° ΡˆΡ‚ΠΎ Π³ΠΎ ΠΏΠΈΡˆΡƒΠ²Π°ΠΌΠ΅, Ρ˜Π°Π·ΠΈΠΊΠΎΡ‚ Π΅ ΠΏΡ€ΠΈΠ»ΠΈΡ‡Π½ΠΎ СдноставСн ΠΈ минималистички.
  • ΠžΠ±Π΅Π·Π±Π΅Π΄ΡƒΠ²Π° асинхрони Π’/И Π±Π΅Π· ΠΏΠΎΠ²Ρ€Π°Ρ‚Π½ΠΈ ΠΏΠΎΠ²ΠΈΡ†ΠΈ, Π½Π΅ΠΌΠ° Π΄Π° ΠΈΠΌΠ°ΠΌΠ΅ Π½ΠΈΠΊΠ°ΠΊΠ²ΠΈ тСстСнини ΠΊΠ°ΠΊΠΎ ΡˆΡ‚ΠΎ понСкогаш ΠΌΠΎΠΆΠ΅ΠΌΠ΅ Π΄Π° ΠΏΠΈΡˆΡƒΠ²Π°ΠΌΠ΅ Π²ΠΎ NodeJS.
  • Има лСсно Ρ€Π°ΡΠΏΠΎΡ€Π΅Π΄ΡƒΠ²Π°ΡšΠ΅, бидСјќи Π½ΠΈ Ρ‚Ρ€Π΅Π±Π° само NGINX со ΠΏΠΎΡ‚Ρ€Π΅Π±Π½ΠΈΠΎΡ‚ ΠΌΠΎΠ΄ΡƒΠ» ΠΈ Π½Π°ΡˆΠΈΠΎΡ‚ ΠΊΠΎΠ΄, ΠΈ сè Ρ€Π°Π±ΠΎΡ‚ΠΈ вСднаш.
  • Π“ΠΎΠ»Π΅ΠΌΠ° ΠΈ ΠΎΠ΄Π³ΠΎΠ²ΠΎΡ€Π½Π° Π·Π°Π΅Π΄Π½ΠΈΡ†Π°.

НС ΠΊΠ°ΠΆΠ°Π² Π΄Π΅Ρ‚Π°Π»Π½ΠΎ ΠΊΠ°ΠΊΠΎ сС ΠΏΡ€Π°Π²ΠΈ Ρ€ΡƒΡ‚ΠΈΡ€Π°ΡšΠ΅Ρ‚ΠΎ, сС ΠΏΠΎΠΊΠ°ΠΆΠ° Π΄Π΅ΠΊΠ° Π΅ ΠΌΠ½ΠΎΠ³Ρƒ Π΄ΠΎΠ»Π³Π° ΠΏΡ€ΠΈΠΊΠ°Π·Π½Π°.

Π’ΠΈ Π±Π»Π°Π³ΠΎΠ΄Π°Ρ€ΠΈΠΌΠ΅!

Π˜Π³Ρ€Π° Π²ΠΈΠ΄Π΅ΠΎ

Π’Π»Π°Π΄ΠΈΠΌΠΈΡ€ ΠŸΡ€ΠΎΡ‚Π°ΡΠΎΠ² - OpenResty: ΠΏΡ€Π΅Ρ‚Π²ΠΎΡ€Π°ΡšΠ΅ Π½Π° NGINX Π²ΠΎ ΠΏΠΎΠ»Π½ΠΎΠΏΡ€Π°Π²Π΅Π½ сСрвСр Π·Π° Π°ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΠΈ

Π˜Π·Π²ΠΎΡ€: www.habr.com

Π”ΠΎΠ΄Π°Π΄Π΅Ρ‚Π΅ ΠΊΠΎΠΌΠ΅Π½Ρ‚Π°Ρ€