{"id":35678,"date":"2019-10-31T22:05:43","date_gmt":"2019-10-31T19:05:43","guid":{"rendered":"https:\/\/prohoster.info\/blog\/vypusk-nginx-1-17-1-i-njs-0-3-3\/"},"modified":"2019-10-31T22:05:43","modified_gmt":"2019-10-31T19:05:43","slug":"vypusk-nginx-1-17-1-i-njs-0-3-3","status":"publish","type":"post","link":"https:\/\/prohoster.info\/pt\/blog\/news\/vypusk-nginx-1-17-1-i-njs-0-3-3","title":{"rendered":"Lan\u00e7amento do nginx 1.17.1 e njs 0.3.3","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><noindex><a rel=\"nofollow\" href=\"http:\/\/mailman.nginx.org\/pipermail\/nginx-announce\/2019\/000243.html\">Dispon\u00edvel<\/a><\/noindex> lan\u00e7amento da ramifica\u00e7\u00e3o principal <noindex><a rel=\"nofollow\" href=\"http:\/\/nginx.org\">nginx 1.17.1<\/a><\/noindex>, no qual o desenvolvimento de novas funcionalidades continua (na ramifica\u00e7\u00e3o est\u00e1vel suportada paralelamente <noindex><a rel=\"nofollow\" href=\"https:\/\/www.opennet.ru\/opennews\/art.shtml?num=50561\">branch 1.16<\/a><\/noindex> s\u00e3o feitas apenas altera\u00e7\u00f5es relacionadas \u00e0 corre\u00e7\u00e3o de erros graves e vulnerabilidades.<\/p>\n<p>Principais <noindex><a rel=\"nofollow\" href=\"http:\/\/nginx.org\/en\/CHANGES\">mudan\u00e7as<\/a><\/noindex>:<\/p>\n<ul>\n<li class=\"l\"> Adicionada a diretiva <noindex><a rel=\"nofollow\" href=\"http:\/\/nginx.org\/en\/docs\/http\/ngx_http_limit_req_module.html#limit_req_dry_run\">limit_req_dry_run<\/a><\/noindex>, que ativa o modo de teste, no qual n\u00e3o s\u00e3o aplicadas limita\u00e7\u00f5es na intensidade do processamento de requisi\u00e7\u00f5es (sem rate limit), mas continua a contagem do n\u00famero de requisi\u00e7\u00f5es que excedem os limites na mem\u00f3ria compartilhada;\n<li class=\"l\"> Ao usar a diretiva &#171;upstream&#187; no bloco de configura\u00e7\u00f5es, &#187; para organizar o balanceamento de carga com vincula\u00e7\u00e3o do cliente ao servidor, agora, se o valor da chave estiver vazio, o modo de balanceamento uniforme (round-robin) ser\u00e1 ativado;<noindex><a rel=\"nofollow\" href=\"http:\/\/nginx.org\/en\/docs\/http\/ngx_http_upstream_module.html#hash\">hash<\/a><\/noindex>\u00bb para organizar o balanceamento de carga com vincula\u00e7\u00e3o de cliente ao servidor; agora, se um valor vazio for especificado na chave, o modo de balanceamento uniforme (round-robin) \u00e9 ativado;\n<li class=\"l\"> Foi corrigido o erro do processo ao usar o cache em combina\u00e7\u00e3o com a diretiva &#171;image_filter&#187; e redirecionamento do manipulador de c\u00f3digo de erro 415 usando a diretiva &#171;error_page&#187;;\n<li class=\"l\"> Corrigido um crash do worker que ocorria ao usar o interpretador Perl embutido.\n<\/ul>\n<p>Adicionalmente, pode-se destacar <noindex><a rel=\"nofollow\" href=\"http:\/\/mailman.nginx.org\/pipermail\/nginx-announce\/2019\/000244.html\">lan\u00e7amento<\/a><\/noindex> njs 0.3.3, um interpretador da linguagem JavaScript para o servidor web nginx. O interpretador njs implementa os padr\u00f5es ECMAScript e permite expandir as capacidades do nginx no processamento de requisi\u00e7\u00f5es usando scripts na configura\u00e7\u00e3o. Scripts podem ser usados no arquivo de configura\u00e7\u00e3o para definir l\u00f3gica avan\u00e7ada de processamento de requisi\u00e7\u00f5es, formar a configura\u00e7\u00e3o, gerar respostas dinamicamente, modificar requisi\u00e7\u00f5es\/respostas ou criar rapidamente gambiarras para resolver problemas em aplica\u00e7\u00f5es web. <\/p>\n<p>Na nova vers\u00e3o do njs, foram resolvidos problemas encontrados durante os testes de fuzzing. Uma vari\u00e1vel global &#171;process&#187; foi implementada com par\u00e2metros e vari\u00e1veis de ambiente do processo atual (process.pid, process.env.HOME, etc.). Foi possibilitada a grava\u00e7\u00e3o em todas as propriedades e m\u00e9todos embutidos. A implementa\u00e7\u00e3o de Array.prototype.fill() foi adicionada. O suporte \u00e0 sintaxe proposta no ECMAScript 5 foi implementado. <noindex><a rel=\"nofollow\" href=\"https:\/\/developer.mozilla.org\/en-US\/docs\/Web\/JavaScript\/Reference\/Functions\/get\">getter<\/a><\/noindex> e <noindex><a rel=\"nofollow\" href=\"https:\/\/developer.mozilla.org\/en-US\/docs\/Web\/JavaScript\/Reference\/Functions\/set\">setter<\/a><\/noindex> para vincular a propriedade de um objeto a uma fun\u00e7\u00e3o, por exemplo:<\/p>\n<p>   var o = {a:2};<br \/>\n   Object.defineProperty(o, &#8216;b&#8217;, {get:function(){return 2*this.a}});<\/p>\n<p><noindex><a rel=\"nofollow\" name=\"link\"><\/a><\/noindex><\/p>\n<p>Fonte: <a \ncontent=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/www.opennet.ru\/opennews\/art.shtml?num=50967\">opennet.ru<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u0414\u043e\u0441\u0442\u0443\u043f\u0435\u043d \u0432\u044b\u043f\u0443\u0441\u043a \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u0439 \u0432\u0435\u0442\u043a\u0438 nginx 1.17.1, \u0432 \u0440\u0430\u043c\u043a\u0430\u0445 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0430\u0435\u0442\u0441\u044f \u0440\u0430\u0437\u0432\u0438\u0442\u0438\u0435 \u043d\u043e\u0432\u044b\u0445 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0435\u0439 (\u0432 \u043f\u0430\u0440\u0430\u043b\u043b\u0435\u043b\u044c\u043d\u043e \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u043c\u043e\u0439 \u0441\u0442\u0430\u0431\u0438\u043b\u044c\u043d\u043e\u0439 \u0432\u0435\u0442\u043a\u0435 1.16 \u0432\u043d\u043e\u0441\u044f\u0442\u0441\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f, \u0441\u0432\u044f\u0437\u0430\u043d\u043d\u044b\u0435 \u0441 \u0443\u0441\u0442\u0440\u0430\u043d\u0435\u043d\u0438\u0435\u043c \u0441\u0435\u0440\u044c\u0451\u0437\u043d\u044b\u0445 \u043e\u0448\u0438\u0431\u043e\u043a \u0438 \u0443\u044f\u0437\u0432\u0438\u043c\u043e\u0441\u0442\u0435\u0439. \u041e\u0441\u043d\u043e\u0432\u043d\u044b\u0435 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f: \u0414\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0430 \u0434\u0438\u0440\u0435\u043a\u0442\u0438\u0432\u0430 limit_req_dry_run, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0430\u043a\u0442\u0438\u0432\u0438\u0440\u0443\u0435\u0442 \u0440\u0435\u0436\u0438\u043c \u043f\u0440\u043e\u0431\u043d\u043e\u0433\u043e \u0437\u0430\u043f\u0443\u0441\u043a\u0430, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u043d\u0435 \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u044e\u0442\u0441\u044f \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u044f \u043d\u0430 \u0438\u043d\u0442\u0435\u043d\u0441\u0438\u0432\u043d\u043e\u0441\u0442\u044c \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432 (\u0431\u0435\u0437 rate limit), \u043d\u043e \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0430\u0435\u0442\u0441\u044f \u0443\u0447\u0451\u0442 \u0432\u044b\u0445\u043e\u0434\u044f\u0449\u0435\u0433\u043e [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[702],"tags":[],"class_list":["post-35678","post","type-post","status-publish","format-standard","hentry","category-news"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.3 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u0414\u043e\u0441\u0442\u0443\u043f\u0435\u043d \u0432\u044b\u043f\u0443\u0441\u043a \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u0439 \u0432\u0435\u0442\u043a\u0438 nginx.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/pt\/blog\/news\/vypusk-nginx-1-17-1-i-njs-0-3-3\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.3\" \/>\n\t\t<meta property=\"og:locale\" content=\"pt_PT\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u0412\u044b\u043f\u0443\u0441\u043a nginx 1.17.1 \u0438 njs 0.3.3 | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u0414\u043e\u0441\u0442\u0443\u043f\u0435\u043d \u0432\u044b\u043f\u0443\u0441\u043a \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u0439 \u0432\u0435\u0442\u043a\u0438 nginx.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/pt\/blog\/news\/vypusk-nginx-1-17-1-i-njs-0-3-3\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2019-10-31T19:05:43+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2019-10-31T19:05:43+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47 Lan\u00e7amento do nginx 1.17.1 e njs 0.3.3 | ProHoster","description":"Est\u00e1 dispon\u00edvel o lan\u00e7amento da branch principal do nginx.","canonical_url":"https:\/\/prohoster.info\/pt\/blog\/news\/vypusk-nginx-1-17-1-i-njs-0-3-3","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"pt_PT","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u0412\u044b\u043f\u0443\u0441\u043a nginx 1.17.1 \u0438 njs 0.3.3 | ProHoster","og:description":"\u0414\u043e\u0441\u0442\u0443\u043f\u0435\u043d \u0432\u044b\u043f\u0443\u0441\u043a \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u0439 \u0432\u0435\u0442\u043a\u0438 nginx.","og:url":"https:\/\/prohoster.info\/pt\/blog\/news\/vypusk-nginx-1-17-1-i-njs-0-3-3","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2019-10-31T19:05:43+00:00","article:modified_time":"2019-10-31T19:05:43+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"35678","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":"2026-01-22 00:20:20","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-03-01 01:58:28","updated":"2026-01-22 00:20:20","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/posts\/35678","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/comments?post=35678"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/posts\/35678\/revisions"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/media?parent=35678"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/categories?post=35678"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/tags?post=35678"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}