ืื ืืืืคึผื ืฆืืืืึทื ืคืื nginx 1.19.7 ืืื ืืืคืจืืื, ืืื ืืืึธืก ืื ืึทื ืืืืืงืืื ื ืคืื ื ืืึท ืคึฟืขืึดืงืืืื ืืืื (ืืื ืื ืคึผืึทืจืึทืืขื ืืขืฉืืืฆื ืกืืึทืืื ืฆืืืืึทื 1.18, ืืืืื ืขื ืืขืจืื ืืขื ืฉืืึทืืืช ืฆื ืื ืืืืืึทื ืืืฉืึทื ืคืื ืขืจื ืกื ืขืจืจืึธืจืก ืืื ืืืึทืื ืขืจืึทืืืืืืื ืืขื ืขื ืืขืืืื).
ืืืืคึผื ืขื ืืขืจืื ืืขื:
- ืืืขื ืึท ืึทืจืืขืืขืจ ืคึผืจืึธืฆืขืก ืืืืคื ืืืืก ืคืื ืคืจืื ืงืึทื ืขืงืฉืึทื ื, nginx ืืืฆื ืงืืึธืืืื ื ืื ืืืืื ืืขืืขืืืง ืงืึทื ืขืงืฉืึทื ื, ืึธืืขืจ ืืืื ืงืึทื ืขืงืฉืึทื ื ืืืืจืื ืคึฟืึทืจ ืื ืืึธืืขื ืฆื ืคืึทืจืืึทืื ("ืืื ืืืขืจืื ื ื ืึธืขื ื").
- ืืขืจ ืงืฉืจ ืคึผืจืึทืกืขืกืื ื ืงืึธื ืืื ืืืืคึผ / 2 ืืื ื ืึธืขื ื ืฆื ืื ืืืคึผืืึทืืขื ืืืืฉืึทื ืคืื HTTP / 1.x. ืฉืืืฆื ืคึฟืึทืจ ืื ืืืื ืกืขืืืื ืืก "http2_recv_timeout", "http2_idle_timeout" ืืื "http2_max_requests" ืืื ืึธืคึผืืขืฉืืขืื ืืื ืืืืืืข ืคืื โโืื ืึทืืืขืืืื ืข ืืืืจืขืงืืืืื "keepalive_timeout" ืืื "keepalive_requests".
- ืื ืกืขืืืื ืืก "http2_max_field_size" ืืื "http2_max_header_size" ืืขื ืขื ืึทืืืขืงืืขื ืืืขื ืืื "ืืึทืจืืข_ืงืืืขื ื_ืืขืืขืจ_ืืึทืคืขืจื" ืืึธื ืืืื ืืขืืืืื ื ืึทื ืฉืืึธื.
ืืื ืืขืจ ืืขืืืขืจ ืฆืืื, njs 0.5.1, ื ืืืฉืึทืืืึทืกืงืจืืคึผื ืืืืขืจืืขืฆืขืจ ืคึฟืึทืจ ืืืขื ืกืขืจืืืขืจ nginx. ืืขืจ njs ืืื ืืขืจืคึผืจืขืืขืจ ื ืืฆื ECMAScript ืกืืึทื ืืึทืจืื ืืื ืขืจืืืืื ืืืื ืฆื ืคืืจืืจืืืืขืจื nginx'ืก ืคืืจืืื ื ืคึผืจืึทืกืขืกืื ื ืืขืืืขืืงืืืื ื ืืฆื ืืืง ืงืึธื ืคืืืืจืึทืฆืืข ืกืงืจืืคึผืื. ืกืงืจืืคึผืื ืงืขื ืขื ืืขื ืืฆื ืืืขืจื ืืื ืืขืจ ืงืึธื ืคืืืืจืึทืฆืืข ืืขืงืข ืฆื ืืขืคืื ืืจื ืึทืืืึทื ืกืืจืืข ืคืืจืืื ื ืคึผืจืึทืกืขืกืื ื ืืึธืืืง, ืืืฉืขื ืขืจืืจื ืงืึธื ืคืืืืจืึทืฆืืขืก, ืืื ืึทืืืฉ ืืืฉืขื ืขืจืืจื ืขื ืืคึฟืขืจืก, ืืึธืืืคืืฆืืจื ืคืืจืืื ืืขื/ืขื ืืคึฟืขืจืก, ืืืขืจ ืฉื ืขื ืฉืึทืคึฟื ืกืืึทืืก ืฆื ืกืึธืืืืขื ืคึผืจืึธืืืขืืขื ืืื ืืืขื ืึทืคึผืืืงืึทืฆืืขืก.
ืื ื ืืึทืข ืืืขืจืกืืข ืืืกืืฃ ืื "js_header_filter" ืืืจืขืงืืืื, ืืืึธืก ืึทืืึทืื ืืืจ ืฆื ืฉืืขืื ืึท ืืืฉืึทืืืึทืกืงืจืืคึผื ืคึฟืื ืงืฆืืข ืคึฟืึทืจ ืคืืืืขืจืื ื ืืื ืืฉืึทื ืืื ื ืึทืจืืืืจืึทืจืืฉ ืขื ืืคืขืจ ืืขืืขืจื: js_import foo.js; ืึธืจื / {js_header_filter foo.filter; ืคืจืืงืกื_ืคึผืึทืกืก http://127.0.0.1:8081/; } foo.js: ืคึฟืื ืงืฆืืข ืคืืืืขืจ (ืจ) {ืืืึทืจ ืงืืืืขื = r.headersOut ['ืกืขื-ืงืืื']; ืืืึทืจ ืื = ืจ.ืึทืจืืก.ืืขื? ื ืืืขืจ(ืจ.ืึทืจืืก.ืืขื): 0; r.headersOut['Set-Cookie'] = ืงืืืืขื.ืคืืืืขืจ(ืื=>ืื.ืืขื ืื> ืืขื ); } ืึทืจืืืกืคืืจื ืคืขืืืงืืึทื {ืคืืืืขืจ};
ืืืื ืฆืืืขืืืืื ืืื ืื ngx.fetch () ืืืคึฟื, ืืืึธืก ืืืคึผืืึทืืึทื ืฅ ืื Fetch API, ืืืึธืก ืืื ืืืืคึผ ืงืืืขื ื ืคืึทื ืืงืฉืึทื ืึทืืืื. ืืขืจ ืืืคึฟื ืฉืืืฆื ืคึผืจืึทืกืขืกืื ื ืคืื ืืืฃ, ืืขืืขืจื, ืืึทืคืขืจ_ืกืืื ืืื ืืึทืงืก_ืจืขืกืคึผืึธื ืกืข_ืืึธืื_ืกืืื ืึธืคึผืฆืืขืก. ืื ืืืืืขืงืขืจื ืจืขืกืคึผืึธื ืกืข ืืืืคืขืฅ ืฉืืืฆื arrayBuffer (), bodyUsed, json (), ืืขืืขืจื, ok, ืจืืืขืจืขืงื, ืกืืึทืืืก, statusText, text (), ืืืคึผ ืืื URL ืืขืืืึธืืก, ืืื ืื ืืขืืขืจ ืืืืคืขืฅ ืฉืืืฆื ืืึทืงืืืขื (), getAll () ืืื ืืื () ืืขืืืึธืืก . ืคึฟืื ืงืฆืืข ืคืขืืฉ(ืจ) {ngx.fetch('http://nginx.org/') .then(ืขื ืืคืขืจ => ืขื ืืคึฟืขืจ.ืืขืงืกื()) .ืืื(ืืืฃ => ืจ.ืจืขืืืจื(200, ืืืฃ)) .ืืึทืคึผื (E => r.return(501, e.message)); }
ืืืจ ืงืขื ื ืืืื ืฆืืืืขื ืขื ืื ืคืืืืืงืืฆืืข ืกืขืจืืืืจืขืจ NGINX ืืื ืื 1.22, ื ืืืืืื ื ืคืืจื ืืืืคื ืืืขื ืืคืืืงืืฆืืขืก ืืขืฉืจืืื ืืื ืคืืจืฉืืืขื ืข ืคืจืืืจืืืืจื ืฉืคืจืืื (Python, PHP, Perl, Ruby, Go, JavaScript/Node.js, ืืื Java). NGINX ืืื ืื ืงืขื ืืืืืืฆืืืืื ืืืืคื ืงืืืคื ืืคืืืงืืฆืืขืก ืืขืฉืจืืื ืืื ืคืืจืฉืืืขื ืข ืฉืคืจืืื, ืืื ืืืืขืจืข ืืื ืืฉ ืคืืจืืืขืืขืจืก ืงืขื ืขื ืืืขืจื ืืขืืืืฉื ืืื ืืืืฉ ืื ืื ื ืืืืืืขื ืืืงืืื ืฆื ืจืขืืืงืืืจื ืงืื ืคืืืืจืืฆืืข ืืขืงืขืก ืืืขืจ ืจืืกืืืจืื. ืืขืจ ืงืืื ืืื ืืขืฉืจืืื ืืื C ืืื ืืื ืืืฆืขื ืฆืืจื ืืื ืืขืจ ืืขืจ Apache 2.0 ืืืฆืขื ืฅ.
ืื ื ืืืข NGINX ืืื ืื ืืืืกืืืืข ืืื ืืื ืคืืงืืกืืจื ืืืืฃ ืคืืจืืขืกืขืจื ืกืืืืืืืืขื, ืืืืกืืจืืืืขืจื ืืขืกื ืืขืืืขืืงืืืื, ืืื ืคืืจืจืขืืื ืืึทืื. Linux ืืขืจ ืืึทื ืืฆืขืจ ืืื ืืจืืคึผืข ืืื ืืขืจ ืืืขืืืข NGINX Unit ืืืืคื ืืื ืคึผืึทืงืึทืืืฉืึทื ืืขื ืขื ืืขืืืื ืืขืืืึธืจื. ืึทื ืฉืืึธื nobody:nobody, ืืืืคื ืคึผืจืึธืฆืขืกื ืืืฆื ืืื ืืขืจ ืึท ืืึทืืื ืืขืจื ืืึทื ืืฆืขืจ ืืืื ื ืึธืืขื unit ืืื ืืขืจ unit ืืจืืคึผืข. ืงืึธืืคึผืึทืืืืืืึทืื ืืื ืื Stream API ืคึฟืึทืจ ServerRequest ืืื ServerResponse ืึธืืืขืงืื ืคึฟืื ืืขื Node.js ืืึธืืื ืืื ืืขืืึธืจืื ืืขืืืึธืจื. ืงืืืคื ืืืจืขืงืืึธืจืืขืก ืงืขื ืขื ืืืฆื ืกืคึผืขืฆืืคึฟืืฆืืจื ืืืขืจื ืืื ืืขืจ "path" ืึธืคึผืฆืืข ืคึฟืึทืจ ืคึผืืืืึธื ืึทืคึผืืืงืึทืฆืืขืก.
ืืงืืจ: opennet.ru
