Π‘ΡΠΎΡΠΌΠΈΡΠΎΠ²Π°Π½ Π²ΡΠΏΡΡΠΊ ΡΠ΅ΡΠ²Π΅ΡΠ° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ NGINX Π΅Π΄ΠΈΠ½ΠΈΡΠ° 1.13, Π²ΠΎ ΡΠΈΠΈ ΡΠ°ΠΌΠΊΠΈ ΡΠ΅ ΡΠ°Π·Π²ΠΈΠ²Π° ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ Π·Π° ΠΎΠ±Π΅Π·Π±Π΅Π΄ΡΠ²Π°ΡΠ΅ Π½Π° Π»Π°Π½ΡΠΈΡΠ°ΡΠ΅ Π½Π° Π²Π΅Π±-Π°ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΠΈ Π½Π° ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΡΠΊΠΈ ΡΠ°Π·ΠΈΡΠΈ (Python, PHP, Perl, Ruby, Go, JavaScript/Node.js ΠΈ Java). ΠΠ΄ΠΈΠ½ΠΈΡΠ°ΡΠ° NGINX ΠΌΠΎΠΆΠ΅ ΠΈΡΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½ΠΎ Π΄Π° ΡΠ°Π±ΠΎΡΠΈ ΠΏΠΎΠ²Π΅ΡΠ΅ Π°ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΠΈ Π½Π° ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΡΠΊΠΈ ΡΠ°Π·ΠΈΡΠΈ, ΡΠΈΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΈ Π·Π° ΡΡΠ°ΡΡΡΠ²Π°ΡΠ΅ ΠΌΠΎΠΆΠ΅ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠΊΠΈ Π΄Π° ΡΠ΅ ΠΌΠ΅Π½ΡΠ²Π°Π°Ρ Π±Π΅Π· ΠΏΠΎΡΡΠ΅Π±Π° ΠΎΠ΄ ΡΡΠ΅Π΄ΡΠ²Π°ΡΠ΅ Π½Π° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡΠΊΠΈΡΠ΅ Π΄Π°ΡΠΎΡΠ΅ΠΊΠΈ ΠΈ ΡΠ΅ΡΡΠ°ΡΡΠΈΡΠ°ΡΠ΅. ΠΠΎΠ΄ΠΎΡ Π΅ Π½Π°ΠΏΠΈΡΠ°Π½ Π²ΠΎ C ΠΈ Π΄ΠΈΡΡΡΠΈΠ±ΡΠΈΡΠ°Π½ΠΈ ΠΎΠ΄ Π»ΠΈΡΠ΅Π½ΡΠΈΡΠ°Π½ ΠΏΠΎΠ΄ Apache 2.0. ΠΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΡΠ΅ Π·Π°ΠΏΠΎΠ·Π½Π°Π΅ΡΠ΅ ΡΠΎ ΠΊΠ°ΡΠ°ΠΊΡΠ΅ΡΠΈΡΡΠΈΠΊΠΈΡΠ΅ Π½Π° Π΅Π΄ΠΈΠ½ΠΈΡΠ°ΡΠ° NGINX Π²ΠΎ Π½Π°ΡΠ°Π²Π° ΠΏΡΠ²ΠΎΡΠΎ ΠΈΠ·Π΄Π°Π½ΠΈΠ΅.
Π Π½ΠΎΠ²ΠΎΠΉ Π²Π΅ΡΡΠΈΠΈ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½Π° ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΡΡΡ Ρ Π½ΠΎΠ²ΠΎΠΉ Π²Π΅ΡΠΊΠΎΠΉ Python 3.8, ΡΠ΅ΡΠ΅Π½Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ ΠΏΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ Ruby 2.6 ΠΈ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° ΠΏΠΎΠ΄Π΄ΡΡΠΊΠ° ΡΠ°Π±ΠΎΡΡ Π² ΡΠ΅ΠΆΠΈΠΌΠ΅ ΠΏΡΠΎΡΡΠΎΠ³ΠΎ ΠΎΠ±ΡΠ°ΡΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΠΊΡΠΈ (reverse proxy). ΠΠ°ΡΡΡΠΎΠΉΠΊΠ° ΠΎΠ±ΡΠ°ΡΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΠΊΡΠΈ ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ²Ρ Β«proxyΒ» Π² ΡΠ΅ΠΊΡΠΈΠΈ Β«actionΒ». ΠΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΡΡΡ ΠΏΡΠΎΠ±ΡΠΎΡ Π·Π°ΠΏΡΠΎΡΠΎΠ² ΡΠ΅ΡΠ΅Π· IPv4, IPv6 ΠΈΠ»ΠΈ unix-ΡΠΎΠΊΠ΅ΡΡ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ:
{
Β«routesΒ»: [
{
"ΡΠΎΠ²ΠΏΠ°ΡΠ°ΡΠ΅": {
Β«uriΒ»: Β«/ipv4/*Β»
},
"Π°ΠΊΡΠΈΡΠ°": {
"ΠΏΡΠΎΠΊΡΠΈ": "http://127.0.0.1:8080"
}
},
{
"ΡΠΎΠ²ΠΏΠ°ΡΠ°ΡΠ΅": {
Β«uriΒ»: Β«/unix/*Β»
},
"Π°ΠΊΡΠΈΡΠ°": {
Β«proxyΒ»: Β«http://unix:/path/to/unix.sockΒ»
}
}
] }
Π Π΄ΠΎΠ»Π³ΠΎΡΡΠΎΡΠ½ΠΎΠΉ ΠΏΠ΅ΡΡΠΏΠ΅ΠΊΡΠΈΠ²Π΅ ΠΏΠ»Π°Π½ΠΈΡΡΠ΅ΡΡΡ ΠΏΡΠ΅Π²ΡΠ°ΡΠΈΡΡ Unit Π² ΡΠ°ΠΌΠΎΠ΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΡΠΉ Π²ΡΡΠΎΠΊΠΎΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΡΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ Π΄Π»Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Ρ Π»ΡΠ±ΡΠΌΠΈ web-ΡΠ΅ΡΠ²ΠΈΡΠ°ΠΌΠΈ. ΠΠ»Ρ Π΄ΠΎΡΡΠΈΠΆΠ΅Π½ΠΈΡ ΡΡΠΎΠΉ ΡΠ΅Π»ΠΈ Π΄Π°Π»ΡΠ½Π΅ΠΉΡΠ°Ρ ΡΠ°Π±ΠΎΡΠ° Π±ΡΠ΄Π΅Ρ ΡΠΎΡΡΠ΅Π΄ΠΎΡΠΎΡΠ΅Π½Π° Π² ΡΠ°ΠΊΠΈΡ
ΠΎΠ±Π»Π°ΡΡΡΡ
, ΠΊΠ°ΠΊ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΠ΅ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ, ΠΈΠ·ΠΎΠ»ΡΡΠΈΠΈ ΠΈ Π·Π°ΡΠΈΡΡ ΠΎΡ DoS, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ Π·Π°ΠΏΡΡΠΊΠ°ΡΡ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ ΡΠΈΠΏΡ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈΡ
ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, Π±Π°Π»Π°Π½ΡΠΈΡΠΎΠ²ΠΊΠ° Π½Π°Π³ΡΡΠ·ΠΊΠΈ ΠΈ ΠΎΡΠΊΠ°Π·ΠΎΡΡΡΠΎΠΉΡΠΈΠ²ΠΎΡΡΡ, ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½Π°Ρ ΠΎΡΠ΄Π°ΡΠ° ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΊΠΎΠ½ΡΠ΅Π½ΡΠ°, ΡΡΠ΅Π΄ΡΡΠ²Π° Π½Π°ΠΊΠΎΠΏΠ»Π΅Π½ΠΈΡ ΡΡΠ°ΡΠΈΡΡΠΈΠΊΠΈ ΠΈ ΠΌΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³.
ΠΠ·Π²ΠΎΡ: opennet.ru