changes.xml revision e18a033b
1<?xml version="1.0" ?>
2<!DOCTYPE change_log SYSTEM "../../dtd/changes.dtd" >
3
4
5<change_log title="nginx">
6
7
8<changes ver="1.11.13" date="2017-04-04">
9
10<change type="feature">
11<para lang="ru">
12параметр http_429 в директивах proxy_next_upstream, fastcgi_next_upstream,
13scgi_next_upstream и uwsgi_next_upstream.<br/>
14Спасибо Piotr Sikora.
15</para>
16<para lang="en">
17the "http_429" parameter of the "proxy_next_upstream", "fastcgi_next_upstream",
18"scgi_next_upstream", and "uwsgi_next_upstream" directives.<br/>
19Thanks to Piotr Sikora.
20</para>
21</change>
22
23<change type="bugfix">
24<para lang="ru">
25в обработке ошибок выделения памяти.
26</para>
27<para lang="en">
28in memory allocation error handling.
29</para>
30</change>
31
32<change type="bugfix">
33<para lang="ru">
34при использовании директив sendfile и timer_resolution на Linux
35запросы могли зависать.
36</para>
37<para lang="en">
38requests might hang
39when using the "sendfile" and "timer_resolution" directives on Linux.
40</para>
41</change>
42
43<change type="bugfix">
44<para lang="ru">
45при использовании с подзапросами директив sendfile и aio_write
46запросы могли зависать.
47</para>
48<para lang="en">
49requests might hang
50when using the "sendfile" and "aio_write" directives with subrequests.
51</para>
52</change>
53
54<change type="bugfix">
55<para lang="ru">
56в модуле ngx_http_v2_module.<br/>
57Спасибо Piotr Sikora.
58</para>
59<para lang="en">
60in the ngx_http_v2_module.<br/>
61Thanks to Piotr Sikora.
62</para>
63</change>
64
65<change type="bugfix">
66<para lang="ru">
67при использовании HTTP/2 в рабочем процессе мог произойти segmentation fault.
68</para>
69<para lang="en">
70a segmentation fault might occur in a worker process when using HTTP/2.
71</para>
72</change>
73
74<change type="bugfix">
75<para lang="ru">
76запросы могли зависать
77при использовании с подзапросами директив limit_rate, sendfile_max_chunk,
78limit_req или метода $r->sleep() встроенного перла.
79</para>
80<para lang="en">
81requests might hang
82when using the "limit_rate", "sendfile_max_chunk", "limit_req" directives,
83or the $r->sleep() embedded perl method with subrequests.
84</para>
85</change>
86
87<change type="bugfix">
88<para lang="ru">
89в модуле ngx_http_slice_module.
90</para>
91<para lang="en">
92in the ngx_http_slice_module.
93</para>
94</change>
95
96</changes>
97
98
99<changes ver="1.11.12" date="2017-03-24">
100
101<change type="bugfix">
102<para lang="ru">
103nginx мог нагружать процессор;
104ошибка появилась в 1.11.11.
105</para>
106<para lang="en">
107nginx might hog CPU;
108the bug had appeared in 1.11.11.
109</para>
110</change>
111
112</changes>
113
114
115<changes ver="1.11.11" date="2017-03-21">
116
117<change type="feature">
118<para lang="ru">
119директива worker_shutdown_timeout.
120</para>
121<para lang="en">
122the "worker_shutdown_timeout" directive.
123</para>
124</change>
125
126<change type="feature">
127<para lang="ru">
128улучшения в скриптах подсветки синтаксиса для vim.<br/>
129Спасибо Wei-Ko Kao.
130</para>
131<para lang="en">
132vim syntax highlighting scripts improvements.<br/>
133Thanks to Wei-Ko Kao.
134</para>
135</change>
136
137<change type="bugfix">
138<para lang="ru">
139при попытке установить переменную $limit_rate в пустую строку
140в рабочем процессе мог произойти segmentation fault.
141</para>
142<para lang="en">
143a segmentation fault might occur in a worker process
144if the $limit_rate variable was set to an empty string.
145</para>
146</change>
147
148<change type="bugfix">
149<para lang="ru">
150директивы proxy_cache_background_update, fastcgi_cache_background_update,
151scgi_cache_background_update и uwsgi_cache_background_update
152могли работать некорректно, если использовалась директива if.
153</para>
154<para lang="en">
155the "proxy_cache_background_update", "fastcgi_cache_background_update",
156"scgi_cache_background_update", and "uwsgi_cache_background_update" directives
157might work incorrectly if the "if" directive was used.
158</para>
159</change>
160
161<change type="bugfix">
162<para lang="ru">
163в рабочем процессе мог произойти segmentation fault,
164если количество large_client_header_buffers в виртуальном сервере
165отличалось от такового в сервере по умолчанию.
166</para>
167<para lang="en">
168a segmentation fault might occur in a worker process
169if number of large_client_header_buffers in a virtual server
170was different from the one in the default server.
171</para>
172</change>
173
174<change type="bugfix">
175<para lang="ru">
176в почтовом прокси-сервере.
177</para>
178<para lang="en">
179in the mail proxy server.
180</para>
181</change>
182
183</changes>
184
185
186<changes ver="1.11.10" date="2017-02-14">
187
188<change type="change">
189<para lang="ru">
190формат заголовка кэша был изменен,
191ранее закэшированные ответы будут загружены заново.
192</para>
193<para lang="en">
194cache header format has been changed,
195previously cached responses will be invalidated.
196</para>
197</change>
198
199<change type="feature">
200<para lang="ru">
201поддержка расширений stale-while-revalidate и stale-if-error
202в строке "Cache-Control" в заголовке ответа бэкенда.
203</para>
204<para lang="en">
205support of "stale-while-revalidate" and "stale-if-error" extensions
206in the "Cache-Control" backend response header line.
207</para>
208</change>
209
210<change type="feature">
211<para lang="ru">
212директивы proxy_cache_background_update, fastcgi_cache_background_update,
213scgi_cache_background_update и uwsgi_cache_background_update.
214</para>
215<para lang="en">
216the "proxy_cache_background_update", "fastcgi_cache_background_update",
217"scgi_cache_background_update", and "uwsgi_cache_background_update" directives.
218</para>
219</change>
220
221<change type="feature">
222<para lang="ru">
223теперь nginx может кэшировать ответы
224со строкой Vary заголовка длиной до 128 символов
225(вместо 42 символов в предыдущих версиях).
226</para>
227<para lang="en">
228nginx is now able to cache responses
229with the "Vary" header line up to 128 characters long
230(instead of 42 characters in previous versions).
231</para>
232</change>
233
234<change type="feature">
235<para lang="ru">
236параметр build директивы server_tokens.<br/>
237Спасибо Tom Thorogood.
238</para>
239<para lang="en">
240the "build" parameter of the "server_tokens" directive.<br/>
241Thanks to Tom Thorogood.
242</para>
243</change>
244
245<change type="bugfix">
246<para lang="ru">
247при обработке запросов со строкой "Expect: 100-continue" в заголовке запроса
248в логах могли появляться сообщения "[crit] SSL_write() failed".
249</para>
250<para lang="en">
251"[crit] SSL_write() failed" messages might appear in logs
252when handling requests with the "Expect: 100-continue" request header line.
253</para>
254</change>
255
256<change type="bugfix">
257<para lang="ru">
258модуль ngx_http_slice_module не работал в именованных location'ах.
259</para>
260<para lang="en">
261the ngx_http_slice_module did not work in named locations.
262</para>
263</change>
264
265<change type="bugfix">
266<para lang="ru">
267при использовании AIO после перенаправления запроса с помощью X-Accel-Redirect
268в рабочем процессе мог произойти segmentation fault.
269</para>
270<para lang="en">
271a segmentation fault might occur in a worker process
272when using AIO after an "X-Accel-Redirect" redirection.
273</para>
274</change>
275
276<change type="bugfix">
277<para lang="ru">
278уменьшено потребление памяти для долгоживущих запросов, использующих сжатие.
279</para>
280<para lang="en">
281reduced memory consumption for long-lived requests using gzipping.
282</para>
283</change>
284
285</changes>
286
287
288<changes ver="1.11.9" date="2017-01-24">
289
290<change type="bugfix">
291<para lang="ru">
292при использовании модуля stream nginx мог нагружать процессор;
293ошибка появилась в 1.11.5.
294</para>
295<para lang="en">
296nginx might hog CPU when using the stream module;
297the bug had appeared in 1.11.5.
298</para>
299</change>
300
301<change type="bugfix">
302<para lang="ru">
303метод аутентификации EXTERNAL в почтовом прокси-сервере
304можно было использовать, даже если он не был разрешён в конфигурации.
305</para>
306<para lang="en">
307EXTERNAL authentication mechanism in mail proxy
308was accepted even if it was not enabled in the configuration.
309</para>
310</change>
311
312<change type="bugfix">
313<para lang="ru">
314при использовании директивы ssl_verify_client модуля stream
315в рабочем процессе мог произойти segmentation fault.
316</para>
317<para lang="en">
318a segmentation fault might occur in a worker process
319if the "ssl_verify_client" directive of the stream module was used.
320</para>
321</change>
322
323<change type="bugfix">
324<para lang="ru">
325директива ssl_verify_client модуля stream могла не работать.
326</para>
327<para lang="en">
328the "ssl_verify_client" directive of the stream module might not work.
329</para>
330</change>
331
332<change type="bugfix">
333<para lang="ru">
334при исчерпании рабочим процессом свободных соединений
335keepalive-соединения могли закрываться излишне агрессивно.<br/>
336Спасибо Joel Cunningham.
337</para>
338<para lang="en">
339closing keepalive connections due to no free worker connections
340might be too aggressive.<br/>
341Thanks to Joel Cunningham.
342</para>
343</change>
344
345<change type="bugfix">
346<para lang="ru">
347при использовании директивы sendfile на FreeBSD и macOS
348мог возвращаться некорректный ответ;
349ошибка появилась в 1.7.8.
350</para>
351<para lang="en">
352an incorrect response might be returned
353when using the "sendfile" directive on FreeBSD and macOS;
354the bug had appeared in 1.7.8.
355</para>
356</change>
357
358<change type="bugfix">
359<para lang="ru">
360при использовании директивы aio_write
361ответ мог сохраняться в кэш не полностью.
362</para>
363<para lang="en">
364a truncated response might be stored in cache
365when using the "aio_write" directive.
366</para>
367</change>
368
369<change type="bugfix">
370<para lang="ru">
371при использовании директивы aio_write
372могла происходить утечка сокетов.
373</para>
374<para lang="en">
375a socket leak might occur
376when using the "aio_write" directive.
377</para>
378</change>
379
380</changes>
381
382
383<changes ver="1.11.8" date="2016-12-27">
384
385<change type="feature">
386<para lang="ru">
387директива absolute_redirect.
388</para>
389<para lang="en">
390the "absolute_redirect" directive.
391</para>
392</change>
393
394<change type="feature">
395<para lang="ru">
396параметр escape директивы log_format.
397</para>
398<para lang="en">
399the "escape" parameter of the "log_format" directive.
400</para>
401</change>
402
403<change type="feature">
404<para lang="ru">
405проверка клиентских SSL-сертификатов в модуле stream.
406</para>
407<para lang="en">
408client SSL certificates verification in the stream module.
409</para>
410</change>
411
412<change type="feature">
413<para lang="ru">
414директива ssl_session_ticket_key поддерживает
415шифрование TLS session tickets с помощью AES256
416при использовании с 80-байтными ключами.
417</para>
418<para lang="en">
419the "ssl_session_ticket_key" directive supports
420AES256 encryption of TLS session tickets
421when used with 80-byte keys.
422</para>
423</change>
424
425<change type="feature">
426<para lang="ru">
427поддержка vim-commentary в скриптах для vim.<br/>
428Спасибо Armin Grodon.
429</para>
430<para lang="en">
431vim-commentary support in vim scripts.<br/>
432Thanks to Armin Grodon.
433</para>
434</change>
435
436<change type="bugfix">
437<para lang="ru">
438рекурсия при получении значений переменных не ограничивалась.
439</para>
440<para lang="en">
441recursion when evaluating variables was not limited.
442</para>
443</change>
444
445<change type="bugfix">
446<para lang="ru">
447в модуле ngx_stream_ssl_preread_module.
448</para>
449<para lang="en">
450in the ngx_stream_ssl_preread_module.
451</para>
452</change>
453
454<change type="bugfix">
455<para lang="ru">
456если сервер, описанный в блоке upstream в модуле stream,
457был признан неработающим, то после истечения fail_timeout он
458признавался работающим только после завершения тестового соединения;
459теперь достаточно, чтобы соединение было успешно установлено.
460</para>
461<para lang="en">
462if a server in an upstream in the stream module failed,
463it was considered alive only when a test connection sent
464to it after fail_timeout was closed;
465now a successfully established connection is enough.
466</para>
467</change>
468
469<change type="bugfix">
470<para lang="ru">
471nginx/Windows не собирался с 64-битным Visual Studio.
472</para>
473<para lang="en">
474nginx/Windows could not be built with 64-bit Visual Studio.
475</para>
476</change>
477
478<change type="bugfix">
479<para lang="ru">
480nginx/Windows не собирался с OpenSSL 1.1.0.
481</para>
482<para lang="en">
483nginx/Windows could not be built with OpenSSL 1.1.0.
484</para>
485</change>
486
487</changes>
488
489
490<changes ver="1.11.7" date="2016-12-13">
491
492<change type="change">
493<para lang="ru">
494переменная $ssl_client_verify теперь
495в случае ошибки проверки клиентского сертификата
496содержит строку с описанием ошибки,
497например, "FAILED:certificate has expired".
498</para>
499<para lang="en">
500now in case of a client certificate verification error
501the $ssl_client_verify variable contains a string with the failure reason,
502for example, "FAILED:certificate has expired".
503</para>
504</change>
505
506<change type="feature">
507<para lang="ru">
508переменные $ssl_ciphers, $ssl_curves,
509$ssl_client_v_start, $ssl_client_v_end и $ssl_client_v_remain.
510</para>
511<para lang="en">
512the $ssl_ciphers, $ssl_curves,
513$ssl_client_v_start, $ssl_client_v_end, and $ssl_client_v_remain variables.
514</para>
515</change>
516
517<change type="feature">
518<para lang="ru">
519параметр volatile директивы map.
520</para>
521<para lang="en">
522the "volatile" parameter of the "map" directive.
523</para>
524</change>
525
526<change type="bugfix">
527<para lang="ru">
528при сборке динамических модулей
529не учитывались заданные для модуля зависимости.
530</para>
531<para lang="en">
532dependencies specified for a module
533were ignored while building dynamic modules.
534</para>
535</change>
536
537<change type="bugfix">
538<para lang="ru">
539при использовании HTTP/2 и директив limit_req или auth_request
540тело запроса могло быть повреждено;
541ошибка появилась в 1.11.0.
542</para>
543<para lang="en">
544when using HTTP/2 and the "limit_req" or "auth_request" directives
545client request body might be corrupted;
546the bug had appeared in 1.11.0.
547</para>
548</change>
549
550<change type="bugfix">
551<para lang="ru">
552при использовании HTTP/2 в рабочем процессе мог произойти segmentation fault;
553ошибка появилась в 1.11.3.
554</para>
555<para lang="en">
556a segmentation fault might occur in a worker process when using HTTP/2;
557the bug had appeared in 1.11.3.
558</para>
559</change>
560
561<change type="bugfix">
562<para lang="ru">
563в модуле ngx_http_mp4_module.<br/>
564Спасибо Congcong Hu.
565</para>
566<para lang="en">
567in the ngx_http_mp4_module.<br/>
568Thanks to Congcong Hu.
569</para>
570</change>
571
572<change type="bugfix">
573<para lang="ru">
574в модуле ngx_http_perl_module.
575</para>
576<para lang="en">
577in the ngx_http_perl_module.
578</para>
579</change>
580
581</changes>
582
583
584<changes ver="1.11.6" date="2016-11-15">
585
586<change type="change">
587<para lang="ru">
588формат переменных $ssl_client_s_dn и $ssl_client_i_dn
589изменён на соответствующий RFC 2253 (RFC 4514);
590значения в старом формате доступны через переменные
591$ssl_client_s_dn_legacy и $ssl_client_i_dn_legacy.
592</para>
593<para lang="en">
594format of the $ssl_client_s_dn and $ssl_client_i_dn variables
595has been changed to follow RFC 2253 (RFC 4514);
596values in the old format are available in
597the $ssl_client_s_dn_legacy and $ssl_client_i_dn_legacy variables.
598</para>
599</change>
600
601<change type="change">
602<para lang="ru">
603при сохранении временных файлов в каталоге кэша
604они теперь располагаются не в отдельном подкаталоге для временных файлов,
605а в том же подкаталоге, что и соответствующие файлы в кэше.
606</para>
607<para lang="en">
608when storing temporary files in a cache directory
609they will be stored in the same subdirectories as corresponding cache files
610instead of a separate subdirectory for temporary files.
611</para>
612</change>
613
614<change type="feature">
615<para lang="ru">
616поддержка метода аутентификации EXTERNAL
617в почтовом прокси-сервере.<br/>
618Спасибо Robert Norris.
619</para>
620<para lang="en">
621EXTERNAL authentication mechanism support
622in mail proxy.<br/>
623Thanks to Robert Norris.
624</para>
625</change>
626
627<change type="feature">
628<para lang="ru">
629поддержка WebP в модуле ngx_http_image_filter_module.
630</para>
631<para lang="en">
632WebP support in the ngx_http_image_filter_module.
633</para>
634</change>
635
636<change type="feature">
637<para lang="ru">
638директива proxy_method поддерживает переменные.<br/>
639Спасибо Дмитрию Лазуркину.
640</para>
641<para lang="en">
642variables support in the "proxy_method" directive.<br/>
643Thanks to Dmitry Lazurkin.
644</para>
645</change>
646
647<change type="feature">
648<para lang="ru">
649директива http2_max_requests в модуле ngx_http_v2_module.
650</para>
651<para lang="en">
652the "http2_max_requests" directive in the ngx_http_v2_module.
653</para>
654</change>
655
656<change type="feature">
657<para lang="ru">
658директивы proxy_cache_max_range_offset, fastcgi_cache_max_range_offset,
659scgi_cache_max_range_offset и uwsgi_cache_max_range_offset.
660</para>
661<para lang="en">
662the "proxy_cache_max_range_offset", "fastcgi_cache_max_range_offset",
663"scgi_cache_max_range_offset", and "uwsgi_cache_max_range_offset" directives.
664</para>
665</change>
666
667<change type="bugfix">
668<para lang="ru">
669плавное завершение старых рабочих процессов могло занимать бесконечное время
670при использовании HTTP/2.
671</para>
672<para lang="en">
673graceful shutdown of old worker processes might require infinite time
674when using HTTP/2.
675</para>
676</change>
677
678<change type="bugfix">
679<para lang="ru">
680в модуле ngx_http_mp4_module.
681</para>
682<para lang="en">
683in the ngx_http_mp4_module.
684</para>
685</change>
686
687<change type="bugfix">
688<para lang="ru">
689при проксировании WebSocket-соединений и включённом кэшировании
690в логах могли появляться сообщения "ignore long locked inactive cache entry".
691</para>
692<para lang="en">
693"ignore long locked inactive cache entry" alerts might appear in logs
694when proxying WebSocket connections with caching enabled.
695</para>
696</change>
697
698<change type="bugfix">
699<para lang="ru">
700если во время SSL handshake с бэкендом происходил таймаут,
701nginx ничего не писал в лог
702и возвращал ответ с кодом 502 вместо 504.
703</para>
704<para lang="en">
705nginx did not write anything to log
706and returned a response with code 502 instead of 504
707when a timeout occurred during an SSL handshake to a backend.
708</para>
709</change>
710
711</changes>
712
713
714<changes ver="1.11.5" date="2016-10-11">
715
716<change type="change">
717<para lang="ru">
718параметр configure --with-ipv6 упразднён,
719поддержка IPv6 теперь собирается автоматически.
720</para>
721<para lang="en">
722the --with-ipv6 configure option was removed,
723now IPv6 support is configured automatically.
724</para>
725</change>
726
727<change type="change">
728<para lang="ru">
729теперь, если в блоке upstream не оказалось доступных серверов,
730nginx не сбрасывает статистику ошибок всех серверов, как делал ранее,
731а ожидает истечения fail_timeout.
732</para>
733<para lang="en">
734now if there are no available servers in an upstream,
735nginx will not reset number of failures of all servers as it previously did,
736but will wait for fail_timeout to expire.
737</para>
738</change>
739
740<change type="feature">
741<para lang="ru">
742модуль ngx_stream_ssl_preread_module.
743</para>
744<para lang="en">
745the ngx_stream_ssl_preread_module.
746</para>
747</change>
748
749<change type="feature">
750<para lang="ru">
751директива server в блоке upstream поддерживает параметр max_conns.
752</para>
753<para lang="en">
754the "server" directive in the "upstream" context supports
755the "max_conns" parameter.
756</para>
757</change>
758
759<change type="feature">
760<para lang="ru">
761параметр configure --with-compat.
762</para>
763<para lang="en">
764the --with-compat configure option.
765</para>
766</change>
767
768<change type="feature">
769<para lang="ru">
770параметры manager_files, manager_threshold и manager_sleep
771директив proxy_cache_path, fastcgi_cache_path, scgi_cache_path и
772uwsgi_cache_path.
773</para>
774<para lang="en">
775"manager_files", "manager_threshold", and "manager_sleep" parameters
776of the "proxy_cache_path", "fastcgi_cache_path", "scgi_cache_path", and
777"uwsgi_cache_path" directives.
778</para>
779</change>
780
781<change type="bugfix">
782<para lang="ru">
783при сборке perl-модуля не использовались флаги,
784заданные с помощью параметра configure --with-ld-opt.
785</para>
786<para lang="en">
787flags passed by the --with-ld-opt configure option
788were not used while building perl module.
789</para>
790</change>
791
792<change type="bugfix">
793<para lang="ru">
794в директиве add_after_body при использовании совместно с директивой sub_filter.
795</para>
796<para lang="en">
797in the "add_after_body" directive when used with the "sub_filter" directive.
798</para>
799</change>
800
801<change type="bugfix">
802<para lang="ru">
803в переменной $realip_remote_addr.
804</para>
805<para lang="en">
806in the $realip_remote_addr variable.
807</para>
808</change>
809
810<change type="bugfix">
811<para lang="ru">
812директивы dav_access, proxy_store_access, fastcgi_store_access,
813scgi_store_access и uwsgi_store_access
814игнорировали права, заданные для пользователя.
815</para>
816<para lang="en">
817the "dav_access", "proxy_store_access", "fastcgi_store_access",
818"scgi_store_access", and "uwsgi_store_access" directives
819ignored permissions specified for user.
820</para>
821</change>
822
823<change type="bugfix">
824<para lang="ru">
825unix domain listen-сокеты могли не наследоваться
826при обновлении исполняемого файла на Linux.
827</para>
828<para lang="en">
829unix domain listen sockets might not be inherited
830during binary upgrade on Linux.
831</para>
832</change>
833
834<change type="bugfix">
835<para lang="ru">
836nginx возвращал ошибку 400 на запросы
837с символом "-" в HTTP-методе.
838</para>
839<para lang="en">
840nginx returned the 400 response on requests
841with the "-" character in the HTTP method.
842</para>
843</change>
844
845</changes>
846
847
848<changes ver="1.11.4" date="2016-09-13">
849
850<change type="feature">
851<para lang="ru">
852переменная $upstream_bytes_received.
853</para>
854<para lang="en">
855the $upstream_bytes_received variable.
856</para>
857</change>
858
859<change type="feature">
860<para lang="ru">
861переменные $bytes_received, $session_time, $protocol, $status,
862$upstream_addr, $upstream_bytes_sent, $upstream_bytes_received,
863$upstream_connect_time, $upstream_first_byte_time
864и $upstream_session_time в модуле stream.
865</para>
866<para lang="en">
867the $bytes_received, $session_time, $protocol, $status,
868$upstream_addr, $upstream_bytes_sent, $upstream_bytes_received,
869$upstream_connect_time, $upstream_first_byte_time,
870and $upstream_session_time variables in the stream module.
871</para>
872</change>
873
874<change type="feature">
875<para lang="ru">
876модуль ngx_stream_log_module.
877</para>
878<para lang="en">
879the ngx_stream_log_module.
880</para>
881</change>
882
883<change type="feature">
884<para lang="ru">
885параметр proxy_protocol в директиве listen,
886переменные $proxy_protocol_addr и $proxy_protocol_port
887в модуле stream.
888</para>
889<para lang="en">
890the "proxy_protocol" parameter of the "listen" directive,
891the $proxy_protocol_addr and $proxy_protocol_port variables
892in the stream module.
893</para>
894</change>
895
896<change type="feature">
897<para lang="ru">
898модуль ngx_stream_realip_module.
899</para>
900<para lang="en">
901the ngx_stream_realip_module.
902</para>
903</change>
904
905<change type="bugfix">
906<para lang="ru">
907nginx не собирался с модулем stream и модулем ngx_http_ssl_module,
908но без модуля ngx_stream_ssl_module;
909ошибка появилась в 1.11.3.
910</para>
911<para lang="en">
912nginx could not be built with the stream module and the ngx_http_ssl_module,
913but without ngx_stream_ssl_module;
914the bug had appeared in 1.11.3.
915</para>
916</change>
917
918<change type="feature">
919<para lang="ru">
920опция сокета IP_BIND_ADDRESS_NO_PORT не использовалась;
921ошибка появилась в 1.11.2.
922</para>
923<para lang="en">
924the IP_BIND_ADDRESS_NO_PORT socket option was not used;
925the bug had appeared in 1.11.2.
926</para>
927</change>
928
929<change type="bugfix">
930<para lang="ru">
931в параметре ranges директивы geo.
932</para>
933<para lang="en">
934in the "ranges" parameter of the "geo" directive.
935</para>
936</change>
937
938<change type="bugfix">
939<para lang="ru">
940при использовании директив "aio threads" и sendfile
941мог возвращаться некорректный ответ; ошибка появилась в 1.9.13.
942</para>
943<para lang="en">
944an incorrect response might be returned
945when using the "aio threads" and "sendfile" directives;
946the bug had appeared in 1.9.13.
947</para>
948</change>
949
950</changes>
951
952
953<changes ver="1.11.3" date="2016-07-26">
954
955<change type="change">
956<para lang="ru">
957теперь accept_mutex по умолчанию выключен.
958</para>
959<para lang="en">
960now the "accept_mutex" directive is turned off by default.
961</para>
962</change>
963
964<change type="feature">
965<para lang="ru">
966теперь nginx использует EPOLLEXCLUSIVE на Linux.
967</para>
968<para lang="en">
969now nginx uses EPOLLEXCLUSIVE on Linux.
970</para>
971</change>
972
973<change type="feature">
974<para lang="ru">
975модуль ngx_stream_geo_module.
976</para>
977<para lang="en">
978the ngx_stream_geo_module.
979</para>
980</change>
981
982<change type="feature">
983<para lang="ru">
984модуль ngx_stream_geoip_module.
985</para>
986<para lang="en">
987the ngx_stream_geoip_module.
988</para>
989</change>
990
991<change type="feature">
992<para lang="ru">
993модуль ngx_stream_split_clients_module.
994</para>
995<para lang="en">
996the ngx_stream_split_clients_module.
997</para>
998</change>
999
1000<change type="feature">
1001<para lang="ru">
1002директивы proxy_pass и proxy_ssl_name в модуле stream
1003поддерживают переменные.
1004</para>
1005<para lang="en">
1006variables support
1007in the "proxy_pass" and "proxy_ssl_name" directives in the stream module.
1008</para>
1009</change>
1010
1011<change type="bugfix">
1012<para lang="ru">
1013утечки сокетов при использовании HTTP/2.
1014</para>
1015<para lang="en">
1016socket leak when using HTTP/2.
1017</para>
1018</change>
1019
1020<change type="bugfix">
1021<para lang="ru">
1022в configure.<br/>
1023Спасибо Piotr Sikora.
1024</para>
1025<para lang="en">
1026in configure tests.<br/>
1027Thanks to Piotr Sikora.
1028</para>
1029</change>
1030
1031</changes>
1032
1033
1034<changes ver="1.11.2" date="2016-07-05">
1035
1036<change type="change">
1037<para lang="ru">
1038теперь nginx всегда использует внутренние реализации MD5 и SHA1;
1039параметры configure --with-md5 и --with-sha1 упразднены.
1040</para>
1041<para lang="en">
1042now nginx always uses internal MD5 and SHA1 implementations;
1043the --with-md5 and --with-sha1 configure options were canceled.
1044</para>
1045</change>
1046
1047<change type="feature">
1048<para lang="ru">
1049поддержка переменных в модуле stream.
1050</para>
1051<para lang="en">
1052variables support in the stream module.
1053</para>
1054</change>
1055
1056<change type="feature">
1057<para lang="ru">
1058модуль ngx_stream_map_module.
1059</para>
1060<para lang="en">
1061the ngx_stream_map_module.
1062</para>
1063</change>
1064
1065<change type="feature">
1066<para lang="ru">
1067модуль ngx_stream_return_module.
1068</para>
1069<para lang="en">
1070the ngx_stream_return_module.
1071</para>
1072</change>
1073
1074<change type="feature">
1075<para lang="ru">
1076в директивах proxy_bind, fastcgi_bind, memcached_bind, scgi_bind и uwsgi_bind
1077теперь можно указывать порт.
1078</para>
1079<para lang="en">
1080a port can be specified in the "proxy_bind", "fastcgi_bind",
1081"memcached_bind", "scgi_bind", and "uwsgi_bind" directives.
1082</para>
1083</change>
1084
1085<change type="feature">
1086<para lang="ru">
1087теперь nginx использует опцию сокета IP_BIND_ADDRESS_NO_PORT, если она доступна.
1088</para>
1089<para lang="en">
1090now nginx uses the IP_BIND_ADDRESS_NO_PORT socket option when available.
1091</para>
1092</change>
1093
1094<change type="bugfix">
1095<para lang="ru">
1096при использовании HTTP/2 и директивы proxy_request_buffering
1097в рабочем процессе мог произойти segmentation fault.
1098</para>
1099<para lang="en">
1100a segmentation fault might occur in a worker process
1101when using HTTP/2 and the "proxy_request_buffering" directive.
1102</para>
1103</change>
1104
1105<change type="bugfix">
1106<para lang="ru">
1107при использовании HTTP/2
1108к запросам, передаваемым на бэкенд,
1109всегда добавлялась строка заголовка "Content-Length",
1110даже если у запроса не было тела.
1111</para>
1112<para lang="en">
1113the "Content-Length" request header line
1114was always added to requests passed to backends,
1115including requests without body,
1116when using HTTP/2.
1117</para>
1118</change>
1119
1120<change type="bugfix">
1121<para lang="ru">
1122при использовании HTTP/2
1123в логах могли появляться сообщения "http request count is zero".
1124</para>
1125<para lang="en">
1126"http request count is zero" alerts might appear in logs
1127when using HTTP/2.
1128</para>
1129</change>
1130
1131<change type="bugfix">
1132<para lang="ru">
1133при использовании директивы sub_filter
1134могло буферизироваться больше данных, чем это необходимо;
1135проблема появилась в 1.9.4.
1136</para>
1137<para lang="en">
1138unnecessary buffering might occur
1139when using the "sub_filter" directive;
1140the issue had appeared in 1.9.4.
1141</para>
1142</change>
1143
1144</changes>
1145
1146
1147<changes ver="1.11.1" date="2016-05-31">
1148
1149<change type="security">
1150<para lang="ru">
1151при записи тела специально созданного запроса во временный файл
1152в рабочем процессе мог происходить segmentation fault
1153(CVE-2016-4450);
1154ошибка появилась в 1.3.9.
1155</para>
1156<para lang="en">
1157a segmentation fault might occur in a worker process
1158while writing a specially crafted request body to a temporary file
1159(CVE-2016-4450);
1160the bug had appeared in 1.3.9.
1161</para>
1162</change>
1163
1164</changes>
1165
1166
1167<changes ver="1.11.0" date="2016-05-24">
1168
1169<change type="feature">
1170<para lang="ru">
1171параметр transparent директив proxy_bind, fastcgi_bind,
1172memcached_bind, scgi_bind и uwsgi_bind.
1173</para>
1174<para lang="en">
1175the "transparent" parameter of the "proxy_bind", "fastcgi_bind",
1176"memcached_bind", "scgi_bind", and "uwsgi_bind" directives.
1177</para>
1178</change>
1179
1180<change type="feature">
1181<para lang="ru">
1182переменная $request_id.
1183</para>
1184<para lang="en">
1185the $request_id variable.
1186</para>
1187</change>
1188
1189<change type="feature">
1190<para lang="ru">
1191директива map поддерживает комбинации нескольких переменных
1192в качестве результирующих значений.
1193</para>
1194<para lang="en">
1195the "map" directive supports combinations of multiple variables
1196as resulting values.
1197</para>
1198</change>
1199
1200<change type="feature">
1201<para lang="ru">
1202теперь при использовании метода epoll
1203nginx проверяет, поддерживает ли ядро события EPOLLRDHUP,
1204и соответственно оптимизирует обработку соединений.
1205</para>
1206<para lang="en">
1207now nginx checks if EPOLLRDHUP events are supported by kernel,
1208and optimizes connection handling accordingly
1209if the "epoll" method is used.
1210</para>
1211</change>
1212
1213<change type="feature">
1214<para lang="ru">
1215директивы ssl_certificate и ssl_certificate_key
1216теперь можно указывать несколько раз
1217для загрузки сертификатов разных типов (например, RSA и ECDSA).
1218</para>
1219<para lang="en">
1220the "ssl_certificate" and "ssl_certificate_key" directives
1221can be specified multiple times
1222to load certificates of different types (for example, RSA and ECDSA).
1223</para>
1224</change>
1225
1226<change type="feature">
1227<para lang="ru">
1228при использовании OpenSSL 1.0.2 и новее
1229с помощью директивы ssl_ecdh_curve теперь можно задать список кривых;
1230по умолчанию используется встроенный в OpenSSL список кривых.
1231</para>
1232<para lang="en">
1233the "ssl_ecdh_curve" directive now allows specifying a list of curves
1234when using OpenSSL 1.0.2 or newer;
1235by default a list built into OpenSSL is used.
1236</para>
1237</change>
1238
1239<change type="change">
1240<para lang="ru">
1241для использования DHE-шифров теперь надо явно задавать файл параметров
1242с помощью директивы ssl_dhparam.
1243</para>
1244<para lang="en">
1245to use DHE ciphers it is now required to specify parameters
1246using the "ssl_dhparam" directive.
1247</para>
1248</change>
1249
1250<change type="feature">
1251<para lang="ru">
1252переменная $proxy_protocol_port.
1253</para>
1254<para lang="en">
1255the $proxy_protocol_port variable.
1256</para>
1257</change>
1258
1259<change type="feature">
1260<para lang="ru">
1261переменная $realip_remote_port в модуле ngx_http_realip_module.
1262</para>
1263<para lang="en">
1264the $realip_remote_port variable in the ngx_http_realip_module.
1265</para>
1266</change>
1267
1268<change type="feature">
1269<para lang="ru">
1270модуль ngx_http_realip_module теперь позволяет устанавливать
1271не только адрес, но и порт клиента.
1272</para>
1273<para lang="en">
1274the ngx_http_realip_module is now able to set the client port
1275in addition to the address.
1276</para>
1277</change>
1278
1279<change type="change">
1280<para lang="ru">
1281при попытке запросить виртуальный сервер,
1282отличающийся от согласованного в процессе SSL handshake,
1283теперь возвращается ответ "421 Misdirected Request";
1284это улучшает совместимость с некоторыми HTTP/2-клиентами
1285в случае использования клиентских сертификатов.
1286</para>
1287<para lang="en">
1288the "421 Misdirected Request" response now used
1289when rejecting requests to a virtual server
1290different from one negotiated during an SSL handshake;
1291this improves interoperability with some HTTP/2 clients
1292when using client certificates.
1293</para>
1294</change>
1295
1296<change type="change">
1297<para lang="ru">
1298HTTP/2-клиенты теперь могут сразу присылать тело запроса;
1299директива http2_body_preread_size позволяет указать размер буфера, который
1300будет использоваться до того, как nginx начнёт читать тело.
1301</para>
1302<para lang="en">
1303HTTP/2 clients can now start sending request body immediately;
1304the "http2_body_preread_size" directive controls size of the buffer used
1305before nginx will start reading client request body.
1306</para>
1307</change>
1308
1309<change type="bugfix">
1310<para lang="ru">
1311при использовании директивы proxy_cache_bypass
1312не обновлялись закэшированные ошибочные ответы.
1313</para>
1314<para lang="en">
1315cached error responses were not updated
1316when using the "proxy_cache_bypass" directive.
1317</para>
1318</change>
1319
1320</changes>
1321
1322
1323<changes ver="1.9.15" date="2016-04-19">
1324
1325<change type="bugfix">
1326<para lang="ru">
1327при использовании HHVM в качестве FastCGI-сервера
1328могли возникать ошибки "recv() failed".
1329</para>
1330<para lang="en">
1331"recv() failed" errors might occur
1332when using HHVM as a FastCGI server.
1333</para>
1334</change>
1335
1336<change type="bugfix">
1337<para lang="ru">
1338при использовании HTTP/2 и директив limit_req или auth_request
1339при чтении тела запроса мог произойти таймаут
1340или ошибка "client violated flow control";
1341ошибка появилась в 1.9.14.
1342</para>
1343<para lang="en">
1344when using HTTP/2 and the "limit_req" or "auth_request" directives
1345a timeout or a "client violated flow control" error
1346might occur while reading client request body;
1347the bug had appeared in 1.9.14.
1348</para>
1349</change>
1350
1351<change type="workaround">
1352<para lang="ru">
1353при использовании HTTP/2 ответ мог не показываться некоторыми браузерами,
1354если тело запроса было прочитано не целиком;
1355ошибка появилась в 1.9.14.
1356</para>
1357<para lang="en">
1358a response might not be shown by some browsers
1359if HTTP/2 was used and client request body was not fully read;
1360the bug had appeared in 1.9.14.
1361</para>
1362</change>
1363
1364<change type="bugfix">
1365<para lang="ru">
1366при использовании директивы "aio threads" соединения могли зависать.<br/>
1367Спасибо Mindaugas Rasiukevicius.
1368</para>
1369<para lang="en">
1370connections might hang when using the "aio threads" directive.<br/>
1371Thanks to Mindaugas Rasiukevicius.
1372</para>
1373</change>
1374
1375</changes>
1376
1377
1378<changes ver="1.9.14" date="2016-04-05">
1379
1380<change type="feature">
1381<para lang="ru">
1382совместимость с OpenSSL 1.1.0.
1383</para>
1384<para lang="en">
1385OpenSSL 1.1.0 compatibility.
1386</para>
1387</change>
1388
1389<change type="feature">
1390<para lang="ru">
1391директивы proxy_request_buffering, fastcgi_request_buffering,
1392scgi_request_buffering и uwsgi_request_buffering
1393теперь работают при использовании HTTP/2.
1394</para>
1395<para lang="en">
1396the "proxy_request_buffering", "fastcgi_request_buffering",
1397"scgi_request_buffering", and "uwsgi_request_buffering" directives
1398now work with HTTP/2.
1399</para>
1400</change>
1401
1402<change type="bugfix">
1403<para lang="ru">
1404при использовании HTTP/2
1405в логах могли появляться сообщения "zero size buf in output".
1406</para>
1407<para lang="en">
1408"zero size buf in output" alerts might appear in logs
1409when using HTTP/2.
1410</para>
1411</change>
1412
1413<change type="bugfix">
1414<para lang="ru">
1415при использовании HTTP/2
1416директива client_max_body_size могла работать неверно.
1417</para>
1418<para lang="en">
1419the "client_max_body_size" directive might work incorrectly
1420when using HTTP/2.
1421</para>
1422</change>
1423
1424<change type="bugfix">
1425<para lang="ru">
1426незначительных ошибок логгирования.
1427</para>
1428<para lang="en">
1429of minor bugs in logging.
1430</para>
1431</change>
1432
1433</changes>
1434
1435
1436<changes ver="1.9.13" date="2016-03-29">
1437
1438<change type="change">
1439<para lang="ru">
1440неидемпотентные запросы (POST, LOCK, PATCH)
1441теперь по умолчанию не передаются на другой сервер,
1442если запрос уже был отправлен на бэкенд;
1443параметр non_idempotent директивы proxy_next_upstream
1444явно разрешает повторять такие запросы.
1445</para>
1446<para lang="en">
1447non-idempotent requests (POST, LOCK, PATCH)
1448are no longer passed to the next server by default
1449if a request has been sent to a backend;
1450the "non_idempotent" parameter of the "proxy_next_upstream" directive
1451explicitly allows retrying such requests.
1452</para>
1453</change>
1454
1455<change type="feature">
1456<para lang="ru">
1457модуль ngx_http_perl_module теперь можно собрать динамически.
1458</para>
1459<para lang="en">
1460the ngx_http_perl_module can be built dynamically.
1461</para>
1462</change>
1463
1464<change type="feature">
1465<para lang="ru">
1466поддержка UDP в модуле stream.
1467</para>
1468<para lang="en">
1469UDP support in the stream module.
1470</para>
1471</change>
1472
1473<change type="feature">
1474<para lang="ru">
1475директива aio_write.
1476</para>
1477<para lang="en">
1478the "aio_write" directive.
1479</para>
1480</change>
1481
1482<change type="feature">
1483<para lang="ru">
1484теперь cache manager следит за количеством элементов в кэше
1485и старается не допускать переполнений зоны разделяемой памяти.
1486</para>
1487<para lang="en">
1488now cache manager monitors number of elements in caches
1489and tries to avoid cache keys zone overflows.
1490</para>
1491</change>
1492
1493<change type="bugfix">
1494<para lang="ru">
1495при использовании директив sendfile и aio с подзапросами
1496в логах могли появляться сообщения "task already active" и "second aio post".
1497</para>
1498<para lang="en">
1499"task already active" and "second aio post" alerts might appear in logs
1500when using the "sendfile" and "aio" directives with subrequests.
1501</para>
1502</change>
1503
1504<change type="bugfix">
1505<para lang="ru">
1506при использовании кэширования
1507в логах могли появляться сообщения "zero size buf in output",
1508если клиент закрывал соединение преждевременно.
1509</para>
1510<para lang="en">
1511"zero size buf in output" alerts might appear in logs
1512if caching was used
1513and a client closed a connection prematurely.
1514</para>
1515</change>
1516
1517<change type="bugfix">
1518<para lang="ru">
1519при использовании кэширования
1520соединения с клиентами могли закрываться без необходимости.<br/>
1521Спасибо Justin Li.
1522</para>
1523<para lang="en">
1524connections with clients might be closed needlessly
1525if caching was used.<br/>
1526Thanks to Justin Li.
1527</para>
1528</change>
1529
1530<change type="bugfix">
1531<para lang="ru">
1532nginx мог нагружать процессор
1533при использовании директивы sendfile на Linux и Solaris,
1534если отправляемый файл был изменён в процессе отправки.
1535</para>
1536<para lang="en">
1537nginx might hog CPU
1538if the "sendfile" directive was used on Linux or Solaris
1539and a file being sent was changed during sending.
1540</para>
1541</change>
1542
1543<change type="bugfix">
1544<para lang="ru">
1545при использовании директив sendfile и "aio threads"
1546соединения могли зависать.
1547</para>
1548<para lang="en">
1549connections might hang
1550when using the "sendfile" and "aio threads" directives.
1551</para>
1552</change>
1553
1554<change type="bugfix">
1555<para lang="ru">
1556в директивах proxy_pass, fastcgi_pass, scgi_pass и uwsgi_pass
1557при использовании переменных.<br/>
1558Спасибо Piotr Sikora.
1559</para>
1560<para lang="en">
1561in the "proxy_pass", "fastcgi_pass", "scgi_pass", and "uwsgi_pass" directives
1562when using variables.<br/>
1563Thanks to Piotr Sikora.
1564</para>
1565</change>
1566
1567<change type="bugfix">
1568<para lang="ru">
1569в модуле ngx_http_sub_filter_module.
1570</para>
1571<para lang="en">
1572in the ngx_http_sub_filter_module.
1573</para>
1574</change>
1575
1576<change type="bugfix">
1577<para lang="ru">
1578если в закэшированном соединении к бэкенду происходила ошибка,
1579запрос передавался на другой сервер
1580без учёта директивы proxy_next_upstream.
1581</para>
1582<para lang="en">
1583if an error occurred in a cached backend connection,
1584the request was passed to the next server
1585regardless of the proxy_next_upstream directive.
1586</para>
1587</change>
1588
1589<change type="bugfix">
1590<para lang="ru">
1591ошибки "CreateFile() failed" при создании временных файлов на Windows.
1592</para>
1593<para lang="en">
1594"CreateFile() failed" errors when creating temporary files on Windows.
1595</para>
1596</change>
1597
1598</changes>
1599
1600
1601<changes ver="1.9.12" date="2016-02-24">
1602
1603<change type="feature">
1604<para lang="ru">
1605кодирование Хаффмана заголовков ответов в HTTP/2.<br/>
1606Спасибо Владу Краснову.
1607</para>
1608<para lang="en">
1609Huffman encoding of response headers in HTTP/2.<br/>
1610Thanks to Vlad Krasnov.
1611</para>
1612</change>
1613
1614<change type="feature">
1615<para lang="ru">
1616директива worker_cpu_affinity теперь поддерживает более 64 процессоров.
1617</para>
1618<para lang="en">
1619the "worker_cpu_affinity" directive now supports more than 64 CPUs.
1620</para>
1621</change>
1622
1623<change type="bugfix">
1624<para lang="ru">
1625совместимость со сторонними модулями на C++;
1626ошибка появилась в 1.9.11.<br/>
1627Спасибо Piotr Sikora.
1628</para>
1629<para lang="en">
1630compatibility with 3rd party C++ modules;
1631the bug had appeared in 1.9.11.<br/>
1632Thanks to Piotr Sikora.
1633</para>
1634</change>
1635
1636<change type="bugfix">
1637<para lang="ru">
1638nginx не собирался статически с OpenSSL на Linux;
1639ошибка появилась в 1.9.11.
1640</para>
1641<para lang="en">
1642nginx could not be built statically with OpenSSL on Linux;
1643the bug had appeared in 1.9.11.
1644</para>
1645</change>
1646
1647<change type="bugfix">
1648<para lang="ru">
1649директива "add_header ... always" с пустым значением
1650не удаляла из заголовков ошибочных ответов
1651строки Last-Modified и ETag.
1652</para>
1653<para lang="en">
1654the "add_header ... always" directive with an empty value
1655did not delete "Last-Modified" and "ETag" header lines
1656from error responses.
1657</para>
1658</change>
1659
1660<change type="workaround">
1661<para lang="ru">
1662при использовании OpenSSL 1.0.2f в логах могли появляться
1663сообщения "called a function you should not call" и
1664"shutdown while in init".
1665</para>
1666<para lang="en">
1667"called a function you should not call"
1668and "shutdown while in init" messages might appear in logs
1669when using OpenSSL 1.0.2f.
1670</para>
1671</change>
1672
1673<change type="bugfix">
1674<para lang="ru">
1675ошибочные заголовки могли логгироваться некорректно.
1676</para>
1677<para lang="en">
1678invalid headers might be logged incorrectly.
1679</para>
1680</change>
1681
1682<change type="bugfix">
1683<para lang="ru">
1684утечки сокетов при использовании HTTP/2.
1685</para>
1686<para lang="en">
1687socket leak when using HTTP/2.
1688</para>
1689</change>
1690
1691<change type="bugfix">
1692<para lang="ru">
1693в модуле ngx_http_v2_module.
1694</para>
1695<para lang="en">
1696in the ngx_http_v2_module.
1697</para>
1698</change>
1699
1700</changes>
1701
1702
1703<changes ver="1.9.11" date="2016-02-09">
1704
1705<change type="feature">
1706<para lang="ru">
1707теперь resolver поддерживает TCP.
1708</para>
1709<para lang="en">
1710TCP support in resolver.
1711</para>
1712</change>
1713
1714<change type="feature">
1715<para lang="ru">
1716динамические модули.
1717</para>
1718<para lang="en">
1719dynamic modules.
1720</para>
1721</change>
1722
1723<change type="bugfix">
1724<para lang="ru">
1725при использовании HTTP/2
1726переменная $request_length не учитывала размер заголовков запроса.
1727</para>
1728<para lang="en">
1729the $request_length variable did not include size of request headers
1730when using HTTP/2.
1731</para>
1732</change>
1733
1734<change type="bugfix">
1735<para lang="ru">
1736в модуле ngx_http_v2_module.
1737</para>
1738<para lang="en">
1739in the ngx_http_v2_module.
1740</para>
1741</change>
1742
1743</changes>
1744
1745
1746<changes ver="1.9.10" date="2016-01-26">
1747
1748<change type="security">
1749<para lang="ru">
1750при использовании директивы resolver
1751во время обработки ответов DNS-сервера
1752могло происходить разыменование некорректного адреса,
1753что позволяло атакующему,
1754имеющему возможность подделывать UDP-пакеты от DNS-сервера,
1755вызвать segmentation fault в рабочем процессе (CVE-2016-0742).
1756</para>
1757<para lang="en">
1758invalid pointer dereference might occur
1759during DNS server response processing
1760if the "resolver" directive was used,
1761allowing an attacker who is able to forge UDP packets from the DNS server
1762to cause segmentation fault in a worker process (CVE-2016-0742).
1763</para>
1764</change>
1765
1766<change type="security">
1767<para lang="ru">
1768при использовании директивы resolver
1769во время обработки CNAME-записей
1770могло произойти обращение к ранее освобождённой памяти,
1771что позволяло атакующему,
1772имеющему возможность инициировать преобразование произвольных имён в адреса,
1773вызвать segmentation fault в рабочем процессе,
1774а также потенциально могло иметь другие последствия (CVE-2016-0746).
1775</para>
1776<para lang="en">
1777use-after-free condition might occur
1778during CNAME response processing
1779if the "resolver" directive was used,
1780allowing an attacker who is able to trigger name resolution
1781to cause segmentation fault in a worker process,
1782or might have potential other impact (CVE-2016-0746).
1783</para>
1784</change>
1785
1786<change type="security">
1787<para lang="ru">
1788при использовании директивы resolver
1789во время обработки CNAME-записей
1790не во всех случаях проверялось ограничение
1791на максимальное количество записей в цепочке,
1792что позволяло атакующему,
1793имеющему возможность инициировать преобразование произвольных имён в адреса,
1794вызвать чрезмерное потребление ресурсов рабочими процессами (CVE-2016-0747).
1795</para>
1796<para lang="en">
1797CNAME resolution was insufficiently limited
1798if the "resolver" directive was used,
1799allowing an attacker who is able to trigger arbitrary name resolution
1800to cause excessive resource consumption in worker processes (CVE-2016-0747).
1801</para>
1802</change>
1803
1804<change type="feature">
1805<para lang="ru">
1806параметр auto директивы worker_cpu_affinity.
1807</para>
1808<para lang="en">
1809the "auto" parameter of the "worker_cpu_affinity" directive.
1810</para>
1811</change>
1812
1813<change type="bugfix">
1814<para lang="ru">
1815параметр proxy_protocol директивы listen не работал
1816с IPv6 listen-сокетами.
1817</para>
1818<para lang="en">
1819the "proxy_protocol" parameter of the "listen" directive did not work
1820with IPv6 listen sockets.
1821</para>
1822</change>
1823
1824<change type="bugfix">
1825<para lang="ru">
1826при использовании директивы keepalive
1827соединения к бэкендам могли кэшироваться некорректно.
1828</para>
1829<para lang="en">
1830connections to upstream servers might be cached incorrectly
1831when using the "keepalive" directive.
1832</para>
1833</change>
1834
1835<change type="bugfix">
1836<para lang="ru">
1837после перенаправления запроса с помощью X-Accel-Redirect
1838при проксировании использовался HTTP-метод оригинального запроса.
1839</para>
1840<para lang="en">
1841proxying used the HTTP method of the original request
1842after an "X-Accel-Redirect" redirection.
1843</para>
1844</change>
1845
1846</changes>
1847
1848
1849<changes ver="1.9.9" date="2015-12-09">
1850
1851<change type="bugfix">
1852<para lang="ru">
1853проксирование в unix domain сокеты не работало при использовании переменных;
1854ошибка появилась в 1.9.8.
1855</para>
1856<para lang="en">
1857proxying to unix domain sockets did not work when using variables;
1858the bug had appeared in 1.9.8.
1859</para>
1860</change>
1861
1862</changes>
1863
1864
1865<changes ver="1.9.8" date="2015-12-08">
1866
1867<change type="feature">
1868<para lang="ru">
1869поддержка pwritev().
1870</para>
1871<para lang="en">
1872pwritev() support.
1873</para>
1874</change>
1875
1876<change type="feature">
1877<para lang="ru">
1878директива include в блоке upstream.
1879</para>
1880<para lang="en">
1881the "include" directive inside the "upstream" block.
1882</para>
1883</change>
1884
1885<change type="feature">
1886<para lang="ru">
1887модуль ngx_http_slice_module.
1888</para>
1889<para lang="en">
1890the ngx_http_slice_module.
1891</para>
1892</change>
1893
1894<change type="bugfix">
1895<para lang="ru">
1896при использовании LibreSSL
1897в рабочем процессе мог произойти segmentation fault;
1898ошибка появилась в 1.9.6.
1899</para>
1900<para lang="en">
1901a segmentation fault might occur in a worker process
1902when using LibreSSL;
1903the bug had appeared in 1.9.6.
1904</para>
1905</change>
1906
1907<change type="bugfix">
1908<para lang="ru">
1909nginx мог не собираться на OS X.
1910</para>
1911<para lang="en">
1912nginx could not be built on OS X in some cases.
1913</para>
1914</change>
1915
1916</changes>
1917
1918
1919<changes ver="1.9.7" date="2015-11-17">
1920
1921<change type="feature">
1922<para lang="ru">
1923параметр nohostname логгирования в syslog.
1924</para>
1925<para lang="en">
1926the "nohostname" parameter of logging to syslog.
1927</para>
1928</change>
1929
1930<change type="feature">
1931<para lang="ru">
1932директива proxy_cache_convert_head.
1933</para>
1934<para lang="en">
1935the "proxy_cache_convert_head" directive.
1936</para>
1937</change>
1938
1939<change type="feature">
1940<para lang="ru">
1941переменная $realip_remote_addr в модуле ngx_http_realip_module.
1942</para>
1943<para lang="en">
1944the $realip_remote_addr variable in the ngx_http_realip_module.
1945</para>
1946</change>
1947
1948<change type="bugfix">
1949<para lang="ru">
1950директива expires могла не срабатывать при использовании переменных.
1951</para>
1952<para lang="en">
1953the "expires" directive might not work when using variables.
1954</para>
1955</change>
1956
1957<change type="bugfix">
1958<para lang="ru">
1959при использовании HTTP/2
1960в рабочем процессе мог произойти segmentation fault;
1961ошибка появилась в 1.9.6.
1962</para>
1963<para lang="en">
1964a segmentation fault might occur in a worker process
1965when using HTTP/2;
1966the bug had appeared in 1.9.6.
1967</para>
1968</change>
1969
1970<change type="bugfix">
1971<para lang="ru">
1972если nginx был собран с модулем ngx_http_v2_module,
1973протокол HTTP/2 мог быть использован клиентом,
1974даже если не был указан параметр http2 директивы listen.
1975</para>
1976<para lang="en">
1977if nginx was built with the ngx_http_v2_module
1978it was possible to use the HTTP/2 protocol
1979even if the "http2" parameter of the "listen" directive was not specified.
1980</para>
1981</change>
1982
1983<change type="bugfix">
1984<para lang="ru">
1985в модуле ngx_http_v2_module.
1986</para>
1987<para lang="en">
1988in the ngx_http_v2_module.
1989</para>
1990</change>
1991
1992</changes>
1993
1994
1995<changes ver="1.9.6" date="2015-10-27">
1996
1997<change type="bugfix">
1998<para lang="ru">
1999при использовании HTTP/2
2000в рабочем процессе мог произойти segmentation fault.<br/>
2001Спасибо Piotr Sikora и Denis Andzakovic.
2002</para>
2003<para lang="en">
2004a segmentation fault might occur in a worker process
2005when using HTTP/2.<br/>
2006Thanks to Piotr Sikora and Denis Andzakovic.
2007</para>
2008</change>
2009
2010<change type="bugfix">
2011<para lang="ru">
2012при использовании HTTP/2 переменная $server_protocol была пустой.
2013</para>
2014<para lang="en">
2015the $server_protocol variable was empty when using HTTP/2.
2016</para>
2017</change>
2018
2019<change type="bugfix">
2020<para lang="ru">
2021SSL-соединения к бэкендам в модуле stream
2022могли неожиданно завершаться по таймауту.
2023</para>
2024<para lang="en">
2025backend SSL connections in the stream module
2026might be timed out unexpectedly.
2027</para>
2028</change>
2029
2030<change type="bugfix">
2031<para lang="ru">
2032при использовании различных настроек ssl_session_cache
2033в разных виртуальных серверах
2034в рабочем процессе мог произойти segmentation fault.
2035</para>
2036<para lang="en">
2037a segmentation fault might occur in a worker process
2038if different ssl_session_cache settings were used
2039in different virtual servers.
2040</para>
2041</change>
2042
2043<change type="bugfix">
2044<para lang="ru">
2045nginx/Windows не собирался с MinGW gcc;
2046ошибка появилась в 1.9.4.<br/>
2047Спасибо Kouhei Sutou.
2048</para>
2049<para lang="en">
2050nginx/Windows could not be built with MinGW gcc;
2051the bug had appeared in 1.9.4.<br/>
2052Thanks to Kouhei Sutou.
2053</para>
2054</change>
2055
2056<change type="bugfix">
2057<para lang="ru">
2058при использовании директивы timer_resolution на Windows время не обновлялось.
2059</para>
2060<para lang="en">
2061time was not updated when the timer_resolution directive was used on Windows.
2062</para>
2063</change>
2064
2065<change>
2066<para lang="ru">
2067Незначительные исправления и улучшения.<br/>
2068Спасибо Markus Linnala, Kurtis Nusbaum и Piotr Sikora.
2069</para>
2070<para lang="en">
2071Miscellaneous minor fixes and improvements.<br/>
2072Thanks to Markus Linnala, Kurtis Nusbaum and Piotr Sikora.
2073</para>
2074</change>
2075
2076</changes>
2077
2078
2079<changes ver="1.9.5" date="2015-09-22">
2080
2081<change type="feature">
2082<para lang="ru">
2083модуль ngx_http_v2_module (заменяет модуль ngx_http_spdy_module).<br/>
2084Спасибо Dropbox и Automattic за спонсирование разработки.
2085</para>
2086<para lang="en">
2087the ngx_http_v2_module (replaces ngx_http_spdy_module).<br/>
2088Thanks to Dropbox and Automattic for sponsoring this work.
2089</para>
2090</change>
2091
2092<change type="change">
2093<para lang="ru">
2094теперь по умолчанию директива output_buffers использует два буфера.
2095</para>
2096<para lang="en">
2097now the "output_buffers" directive uses two buffers by default.
2098</para>
2099</change>
2100
2101<change type="change">
2102<para lang="ru">
2103теперь nginx ограничивает максимальную вложенность подзапросов,
2104а не количество одновременных подзапросов.
2105</para>
2106<para lang="en">
2107now nginx limits subrequests recursion,
2108not simultaneous subrequests.
2109</para>
2110</change>
2111
2112<change type="change">
2113<para lang="ru">
2114теперь при возврате ответов из кэша nginx проверяет ключ полностью.<br/>
2115Спасибо Геннадию Махомеду и Сергею Брестеру.
2116</para>
2117<para lang="en">
2118now nginx checks the whole cache key when returning a response from cache.<br/>
2119Thanks to Gena Makhomed and Sergey Brester.
2120</para>
2121</change>
2122
2123<change type="bugfix">
2124<para lang="ru">
2125при использовании кэша
2126в логах могли появляться сообщения "header already sent";
2127ошибка появилась в 1.7.5.
2128</para>
2129<para lang="en">
2130"header already sent" alerts might appear in logs
2131when using cache;
2132the bug had appeared in 1.7.5.
2133</para>
2134</change>
2135
2136<change type="bugfix">
2137<para lang="ru">
2138при использовании CephFS и директивы timer_resolution на Linux
2139в логах могли появляться сообщения
2140"writev() failed (4: Interrupted system call)".
2141</para>
2142<para lang="en">
2143"writev() failed (4: Interrupted system call)"
2144errors might appear in logs
2145when using CephFS and the "timer_resolution" directive on Linux.
2146</para>
2147</change>
2148
2149<change type="bugfix">
2150<para lang="ru">
2151в обработке ошибок конфигурации.<br/>
2152Спасибо Markus Linnala.
2153</para>
2154<para lang="en">
2155in invalid configurations handling.<br/>
2156Thanks to Markus Linnala.
2157</para>
2158</change>
2159
2160<change type="bugfix">
2161<para lang="ru">
2162при использовании директивы sub_filter на уровне http
2163в рабочем процессе происходил segmentation fault;
2164ошибка появилась в 1.9.4.
2165</para>
2166<para lang="en">
2167a segmentation fault occurred in a worker process
2168if the "sub_filter" directive was used at http level;
2169the bug had appeared in 1.9.4.
2170</para>
2171</change>
2172
2173</changes>
2174
2175
2176<changes ver="1.9.4" date="2015-08-18">
2177
2178<change type="change">
2179<para lang="ru">
2180директивы proxy_downstream_buffer и proxy_upstream_buffer в модуле stream
2181заменены директивой proxy_buffer_size.
2182</para>
2183<para lang="en">
2184the "proxy_downstream_buffer" and "proxy_upstream_buffer" directives
2185of the stream module are replaced with the "proxy_buffer_size" directive.
2186</para>
2187</change>
2188
2189<change type="feature">
2190<para lang="ru">
2191директива tcp_nodelay в модуле stream.
2192</para>
2193<para lang="en">
2194the "tcp_nodelay" directive in the stream module.
2195</para>
2196</change>
2197
2198<change type="feature">
2199<para lang="ru">
2200теперь можно указать несколько директив sub_filter одновременно.
2201</para>
2202<para lang="en">
2203multiple "sub_filter" directives can be used simultaneously.
2204</para>
2205</change>
2206
2207<change type="feature">
2208<para lang="ru">
2209директива sub_filter поддерживает переменные в строке поиска.
2210</para>
2211<para lang="en">
2212variables support in the search string of the "sub_filter" directive.
2213</para>
2214</change>
2215
2216<change type="workaround">
2217<para lang="ru">
2218тестирование конфигурации могло не работать под Linux OpenVZ.<br/>
2219Спасибо Геннадию Махомеду.
2220</para>
2221<para lang="en">
2222configuration testing might fail under Linux OpenVZ.<br/>
2223Thanks to Gena Makhomed.
2224</para>
2225</change>
2226
2227<change type="bugfix">
2228<para lang="ru">
2229после переконфигурации старые рабочие процессы могли сильно нагружать процессор
2230при больших значениях worker_connections.
2231</para>
2232<para lang="en">
2233old worker processes might hog CPU after reconfiguration
2234with a large number of worker_connections.
2235</para>
2236</change>
2237
2238<change type="bugfix">
2239<para lang="ru">
2240при совместном использовании директив try_files и alias
2241внутри location'а, заданного регулярным выражением,
2242в рабочем процессе мог произойти segmentation fault;
2243ошибка появилась в 1.7.1.
2244</para>
2245<para lang="en">
2246a segmentation fault might occur in a worker process
2247if the "try_files" and "alias" directives were used
2248inside a location given by a regular expression;
2249the bug had appeared in 1.7.1.
2250</para>
2251</change>
2252
2253<change type="bugfix">
2254<para lang="ru">
2255директива try_files внутри вложенного location'а, заданного регулярным
2256выражением, работала неправильно, если во внешнем location'е использовалась
2257директива alias.
2258</para>
2259<para lang="en">
2260the "try_files" directive inside a nested location
2261given by a regular expression worked incorrectly
2262if the "alias" directive was used in the outer location.
2263</para>
2264</change>
2265
2266<change type="bugfix">
2267<para lang="ru">
2268в обработке ошибок при построении хэш-таблиц.
2269</para>
2270<para lang="en">
2271in hash table initialization error handling.
2272</para>
2273</change>
2274
2275<change type="bugfix">
2276<para lang="ru">
2277nginx не собирался с Visual Studio 2015.
2278</para>
2279<para lang="en">
2280nginx could not be built with Visual Studio 2015.
2281</para>
2282</change>
2283
2284</changes>
2285
2286
2287<changes ver="1.9.3" date="2015-07-14">
2288
2289<change type="change">
2290<para lang="ru">
2291дублирующиеся блоки http, mail и stream теперь запрещены.
2292</para>
2293<para lang="en">
2294duplicate "http", "mail", and "stream" blocks are now disallowed.
2295</para>
2296</change>
2297
2298<change type="feature">
2299<para lang="ru">
2300ограничение количества соединений в модуле stream.
2301</para>
2302<para lang="en">
2303connection limiting in the stream module.
2304</para>
2305</change>
2306
2307<change type="feature">
2308<para lang="ru">
2309ограничение скорости в модуле stream.
2310</para>
2311<para lang="en">
2312data rate limiting in the stream module.
2313</para>
2314</change>
2315
2316<change type="bugfix">
2317<para lang="ru">
2318директива zone в блоке upstream не работала на Windows.
2319</para>
2320<para lang="en">
2321the "zone" directive inside the "upstream" block did not work on Windows.
2322</para>
2323</change>
2324
2325<change type="bugfix">
2326<para lang="ru">
2327совместимость с LibreSSL в модуле stream.<br/>
2328Спасибо Piotr Sikora.
2329</para>
2330<para lang="en">
2331compatibility with LibreSSL in the stream module.<br/>
2332Thanks to Piotr Sikora.
2333</para>
2334</change>
2335
2336<change type="bugfix">
2337<para lang="ru">
2338в параметре --builddir в configure.<br/>
2339Спасибо Piotr Sikora.
2340</para>
2341<para lang="en">
2342in the "--builddir" configure parameter.<br/>
2343Thanks to Piotr Sikora.
2344</para>
2345</change>
2346
2347<change type="bugfix">
2348<para lang="ru">
2349директива ssl_stapling_file не работала;
2350ошибка появилась в 1.9.2.<br/>
2351Спасибо Faidon Liambotis и Brandon Black.
2352</para>
2353<para lang="en">
2354the "ssl_stapling_file" directive did not work;
2355the bug had appeared in 1.9.2.<br/>
2356Thanks to Faidon Liambotis and Brandon Black.
2357</para>
2358</change>
2359
2360<change type="bugfix">
2361<para lang="ru">
2362при использовании директивы ssl_stapling
2363в рабочем процессе мог произойти segmentation fault;
2364ошибка появилась в 1.9.2.<br/>
2365Спасибо Matthew Baldwin.
2366</para>
2367<para lang="en">
2368a segmentation fault might occur in a worker process
2369if the "ssl_stapling" directive was used;
2370the bug had appeared in 1.9.2.<br/>
2371Thanks to Matthew Baldwin.
2372</para>
2373</change>
2374
2375</changes>
2376
2377
2378<changes ver="1.9.2" date="2015-06-16">
2379
2380<change type="feature">
2381<para lang="ru">
2382параметр backlog директивы listen
2383в почтовом прокси-сервере и модуле stream.
2384</para>
2385<para lang="en">
2386the "backlog" parameter of the "listen" directives
2387of the mail proxy and stream modules.
2388</para>
2389</change>
2390
2391<change type="feature">
2392<para lang="ru">
2393директивы allow и deny в модуле stream.
2394</para>
2395<para lang="en">
2396the "allow" and "deny" directives in the stream module.
2397</para>
2398</change>
2399
2400<change type="feature">
2401<para lang="ru">
2402директива proxy_bind в модуле stream.
2403</para>
2404<para lang="en">
2405the "proxy_bind" directive in the stream module.
2406</para>
2407</change>
2408
2409<change type="feature">
2410<para lang="ru">
2411директива proxy_protocol в модуле stream.
2412</para>
2413<para lang="en">
2414the "proxy_protocol" directive in the stream module.
2415</para>
2416</change>
2417
2418<change type="feature">
2419<para lang="ru">
2420ключ -T.
2421</para>
2422<para lang="en">
2423the -T switch.
2424</para>
2425</change>
2426
2427<change type="feature">
2428<para lang="ru">
2429параметр REQUEST_SCHEME добавлен в стандартные конфигурационные файлы
2430fastcgi.conf, fastcgi_params, scgi_params и uwsgi_params.
2431</para>
2432<para lang="en">
2433the REQUEST_SCHEME parameter added to the fastcgi.conf, fastcgi_params,
2434scgi_params, and uwsgi_params standard configuration files.
2435</para>
2436</change>
2437
2438<change type="bugfix">
2439<para lang="ru">
2440параметр reuseport директивы listen в модуле stream
2441не работал.
2442</para>
2443<para lang="en">
2444the "reuseport" parameter of the "listen" directive of the stream module
2445did not work.
2446</para>
2447</change>
2448
2449<change type="bugfix">
2450<para lang="ru">
2451OCSP stapling в некоторых случаях мог вернуть устаревший OCSP-ответ.
2452</para>
2453<para lang="en">
2454OCSP stapling might return an expired OCSP response in some cases.
2455</para>
2456</change>
2457
2458</changes>
2459
2460
2461<changes ver="1.9.1" date="2015-05-26">
2462
2463<change type="change">
2464<para lang="ru">
2465теперь протокол SSLv3 по умолчанию запрещён.
2466</para>
2467<para lang="en">
2468now SSLv3 protocol is disabled by default.
2469</para>
2470</change>
2471
2472<change type="change">
2473<para lang="ru">
2474некоторые давно устаревшие директивы больше не поддерживаются.
2475</para>
2476<para lang="en">
2477some long deprecated directives are not supported anymore.
2478</para>
2479</change>
2480
2481<change type="feature">
2482<para lang="ru">
2483параметр reuseport директивы listen.<br/>
2484Спасибо Yingqi Lu из Intel и Sepherosa Ziehau.
2485</para>
2486<para lang="en">
2487the "reuseport" parameter of the "listen" directive.<br/>
2488Thanks to Yingqi Lu at Intel and Sepherosa Ziehau.
2489</para>
2490</change>
2491
2492<change type="feature">
2493<para lang="ru">
2494переменная $upstream_connect_time.
2495</para>
2496<para lang="en">
2497the $upstream_connect_time variable.
2498</para>
2499</change>
2500
2501<change type="bugfix">
2502<para lang="ru">
2503в директиве hash на big-endian платформах.
2504</para>
2505<para lang="en">
2506in the "hash" directive on big-endian platforms.
2507</para>
2508</change>
2509
2510<change type="bugfix">
2511<para lang="ru">
2512nginx мог не запускаться на некоторых старых версиях Linux;
2513ошибка появилась в 1.7.11.
2514</para>
2515<para lang="en">
2516nginx might fail to start on some old Linux variants;
2517the bug had appeared in 1.7.11.
2518</para>
2519</change>
2520
2521<change type="bugfix">
2522<para lang="ru">
2523в парсинге IP-адресов.<br/>
2524Спасибо Сергею Половко.
2525</para>
2526<para lang="en">
2527in IP address parsing.<br/>
2528Thanks to Sergey Polovko.
2529</para>
2530</change>
2531
2532</changes>
2533
2534
2535<changes ver="1.9.0" date="2015-04-28">
2536
2537<change type="change">
2538<para lang="ru">
2539устаревшие методы обработки соединений aio и rtsig больше не поддерживаются.
2540</para>
2541<para lang="en">
2542obsolete aio and rtsig event methods have been removed.
2543</para>
2544</change>
2545
2546<change type="feature">
2547<para lang="ru">
2548директива zone в блоке upstream.
2549</para>
2550<para lang="en">
2551the "zone" directive inside the "upstream" block.
2552</para>
2553</change>
2554
2555<change type="feature">
2556<para lang="ru">
2557модуль stream.
2558</para>
2559<para lang="en">
2560the stream module.
2561</para>
2562</change>
2563
2564<change type="feature">
2565<para lang="ru">
2566поддержка byte ranges для ответов модуля ngx_http_memcached_module.<br/>
2567Спасибо Martin Mlynář.
2568</para>
2569<para lang="en">
2570byte ranges support in the ngx_http_memcached_module.<br/>
2571Thanks to Martin Mlynář.
2572</para>
2573</change>
2574
2575<change type="feature">
2576<para lang="ru">
2577разделяемую память теперь можно использовать на версиях Windows
2578с рандомизацией адресного пространства.<br/>
2579Спасибо Сергею Брестеру.
2580</para>
2581<para lang="en">
2582shared memory can now be used on Windows versions
2583with address space layout randomization.<br/>
2584Thanks to Sergey Brester.
2585</para>
2586</change>
2587
2588<change type="feature">
2589<para lang="ru">
2590директиву error_log теперь можно использовать
2591на уровнях mail и server в почтовом прокси-сервере.
2592</para>
2593<para lang="en">
2594the "error_log" directive can now be used
2595on mail and server levels in mail proxy.
2596</para>
2597</change>
2598
2599<change type="bugfix">
2600<para lang="ru">
2601параметр proxy_protocol директивы listen не работал,
2602если не был указан в первой директиве listen для данного listen-сокета.
2603</para>
2604<para lang="en">
2605the "proxy_protocol" parameter of the "listen" directive did not work
2606if not specified in the first "listen" directive for a listen socket.
2607</para>
2608</change>
2609
2610</changes>
2611
2612
2613<changes ver="1.7.12" date="2015-04-07">
2614
2615<change type="feature">
2616<para lang="ru">
2617теперь директива tcp_nodelay работает для SSL-соединений с бэкендами.
2618</para>
2619<para lang="en">
2620now the "tcp_nodelay" directive works with backend SSL connections.
2621</para>
2622</change>
2623
2624<change type="feature">
2625<para lang="ru">
2626теперь потоки могут использоваться для чтения заголовков файлов в кэше.
2627</para>
2628<para lang="en">
2629now thread pools can be used to read cache file headers.
2630</para>
2631</change>
2632
2633<change type="bugfix">
2634<para lang="ru">
2635в директиве proxy_request_buffering.
2636</para>
2637<para lang="en">
2638in the "proxy_request_buffering" directive.
2639</para>
2640</change>
2641
2642<change type="bugfix">
2643<para lang="ru">
2644при использовании потоков на Linux
2645в рабочем процессе мог произойти segmentation fault.
2646</para>
2647<para lang="en">
2648a segmentation fault might occur in a worker process
2649when using thread pools on Linux.
2650</para>
2651</change>
2652
2653<change type="bugfix">
2654<para lang="ru">
2655в обработке ошибок при использовании директивы ssl_stapling.<br/>
2656Спасибо Filipe da Silva.
2657</para>
2658<para lang="en">
2659in error handling when using the "ssl_stapling" directive.<br/>
2660Thanks to Filipe da Silva.
2661</para>
2662</change>
2663
2664<change type="bugfix">
2665<para lang="ru">
2666в модуле ngx_http_spdy_module.
2667</para>
2668<para lang="en">
2669in the ngx_http_spdy_module.
2670</para>
2671</change>
2672
2673</changes>
2674
2675
2676<changes ver="1.7.11" date="2015-03-24">
2677
2678<change type="change">
2679<para lang="ru">
2680параметр sendfile директивы aio более не нужен;
2681теперь nginx автоматически использует AIO для подгрузки данных для sendfile,
2682если одновременно используются директивы aio и sendfile.
2683</para>
2684<para lang="en">
2685the "sendfile" parameter of the "aio" directive is deprecated;
2686now nginx automatically uses AIO to pre-load data for sendfile
2687if both "aio" and "sendfile" directives are used.
2688</para>
2689</change>
2690
2691<change type="feature">
2692<para lang="ru">
2693экспериментальная поддержка потоков.
2694</para>
2695<para lang="en">
2696experimental thread pools support.
2697</para>
2698</change>
2699
2700<change type="feature">
2701<para lang="ru">
2702директивы proxy_request_buffering, fastcgi_request_buffering,
2703scgi_request_buffering и uwsgi_request_buffering.
2704</para>
2705<para lang="en">
2706the "proxy_request_buffering", "fastcgi_request_buffering",
2707"scgi_request_buffering", and "uwsgi_request_buffering" directives.
2708</para>
2709</change>
2710
2711<change type="feature">
2712<para lang="ru">
2713экспериментальное API для обработки тела запроса.
2714</para>
2715<para lang="en">
2716request body filters experimental API.
2717</para>
2718</change>
2719
2720<change type="feature">
2721<para lang="ru">
2722проверка клиентских SSL-сертификатов в почтовом прокси-сервере.<br/>
2723Спасибо Sven Peter, Franck Levionnois и Filipe Da Silva.
2724</para>
2725<para lang="en">
2726client SSL certificates support in mail proxy.<br/>
2727Thanks to Sven Peter, Franck Levionnois, and Filipe Da Silva.
2728</para>
2729</change>
2730
2731<change type="feature">
2732<para lang="ru">
2733уменьшение времени запуска
2734при использовании директивы "hash ... consistent" в блоке upstream.<br/>
2735Спасибо Wai Keen Woon.
2736</para>
2737<para lang="en">
2738startup speedup
2739when using the "hash ... consistent" directive in the upstream block.<br/>
2740Thanks to Wai Keen Woon.
2741</para>
2742</change>
2743
2744<change type="feature">
2745<para lang="ru">
2746отладочное логгирование в кольцевой буфер в памяти.
2747</para>
2748<para lang="en">
2749debug logging into a cyclic memory buffer.
2750</para>
2751</change>
2752
2753<change type="bugfix">
2754<para lang="ru">
2755в обработке хэш-таблиц.<br/>
2756Спасибо Chris West.
2757</para>
2758<para lang="en">
2759in hash table handling.<br/>
2760Thanks to Chris West.
2761</para>
2762</change>
2763
2764<change type="bugfix">
2765<para lang="ru">
2766в директиве proxy_cache_revalidate.
2767</para>
2768<para lang="en">
2769in the "proxy_cache_revalidate" directive.
2770</para>
2771</change>
2772
2773<change type="bugfix">
2774<para lang="ru">
2775SSL-соединения могли зависать, если использовался отложенный accept
2776или параметр proxy_protocol директивы listen.<br/>
2777Спасибо James Hamlin.
2778</para>
2779<para lang="en">
2780SSL connections might hang if deferred accept
2781or the "proxy_protocol" parameter of the "listen" directive were used.<br/>
2782Thanks to James Hamlin.
2783</para>
2784</change>
2785
2786<change type="bugfix">
2787<para lang="ru">
2788переменная $upstream_response_time могла содержать неверное значение
2789при использовании директивы image_filter.
2790</para>
2791<para lang="en">
2792the $upstream_response_time variable might contain a wrong value
2793if the "image_filter" directive was used.
2794</para>
2795</change>
2796
2797<change type="bugfix">
2798<para lang="ru">
2799в обработке целочисленных переполнений.<br/>
2800Спасибо Régis Leroy.
2801</para>
2802<para lang="en">
2803in integer overflow handling.<br/>
2804Thanks to Régis Leroy.
2805</para>
2806</change>
2807
2808<change type="bugfix">
2809<para lang="ru">
2810при использовании LibreSSL было невозможно включить поддержку SSLv3.
2811</para>
2812<para lang="en">
2813it was not possible to enable SSLv3 with LibreSSL.
2814</para>
2815</change>
2816
2817<change type="bugfix">
2818<para lang="ru">
2819при использовании LibreSSL в логах появлялись сообщения
2820"ignoring stale global SSL error ... called a function you should not call".
2821</para>
2822<para lang="en">
2823the "ignoring stale global SSL error ... called a function you should not call"
2824alerts appeared in logs when using LibreSSL.
2825</para>
2826</change>
2827
2828<change type="bugfix">
2829<para lang="ru">
2830сертификаты, указанные в директивах ssl_client_certificate и
2831ssl_trusted_certificate, использовались
2832для автоматического построения цепочек сертификатов.
2833</para>
2834<para lang="en">
2835certificates specified by the "ssl_client_certificate" and
2836"ssl_trusted_certificate" directives were inadvertently used
2837to automatically construct certificate chains.
2838</para>
2839</change>
2840
2841</changes>
2842
2843
2844<changes ver="1.7.10" date="2015-02-10">
2845
2846<change type="feature">
2847<para lang="ru">
2848параметр use_temp_path директив proxy_cache_path, fastcgi_cache_path,
2849scgi_cache_path и uwsgi_cache_path.
2850</para>
2851<para lang="en">
2852the "use_temp_path" parameter of the "proxy_cache_path", "fastcgi_cache_path",
2853"scgi_cache_path", and "uwsgi_cache_path" directives.
2854</para>
2855</change>
2856
2857<change type="feature">
2858<para lang="ru">
2859переменная $upstream_header_time.
2860</para>
2861<para lang="en">
2862the $upstream_header_time variable.
2863</para>
2864</change>
2865
2866<change type="workaround">
2867<para lang="ru">
2868теперь при переполнении диска nginx пытается писать error_log'и только
2869раз в секунду.
2870</para>
2871<para lang="en">
2872now on disk overflow nginx tries to write error logs once a second only.
2873</para>
2874</change>
2875
2876<change type="bugfix">
2877<para lang="ru">
2878директива try_files при тестировании каталогов
2879не игнорировала обычные файлы.<br/>
2880Спасибо Damien Tournoud.
2881</para>
2882<para lang="en">
2883the "try_files" directive did not ignore normal files
2884while testing directories.<br/>
2885Thanks to Damien Tournoud.
2886</para>
2887</change>
2888
2889<change type="bugfix">
2890<para lang="ru">
2891при использовании директивы sendfile на OS X
2892возникали ошибки "sendfile() failed";
2893ошибка появилась в nginx 1.7.8.
2894</para>
2895<para lang="en">
2896alerts "sendfile() failed"
2897if the "sendfile" directive was used on OS X;
2898the bug had appeared in 1.7.8.
2899</para>
2900</change>
2901
2902<change type="bugfix">
2903<para lang="ru">
2904в лог могли писаться сообщения "sem_post() failed".
2905</para>
2906<para lang="en">
2907alerts "sem_post() failed" might appear in logs.
2908</para>
2909</change>
2910
2911<change type="bugfix">
2912<para lang="ru">
2913nginx не собирался с musl libc.<br/>
2914Спасибо James Taylor.
2915</para>
2916<para lang="en">
2917nginx could not be built with musl libc.<br/>
2918Thanks to James Taylor.
2919</para>
2920</change>
2921
2922<change type="bugfix">
2923<para lang="ru">
2924nginx не собирался на Tru64 UNIX.<br/>
2925Спасибо Goetz T. Fischer.
2926</para>
2927<para lang="en">
2928nginx could not be built on Tru64 UNIX.<br/>
2929Thanks to Goetz T. Fischer.
2930</para>
2931</change>
2932
2933</changes>
2934
2935
2936<changes ver="1.7.9" date="2014-12-23">
2937
2938<change type="feature">
2939<para lang="ru">
2940директивы proxy_cache, fastcgi_cache, scgi_cache и uwsgi_cache
2941поддерживают переменные.
2942</para>
2943<para lang="en">
2944variables support in the "proxy_cache", "fastcgi_cache", "scgi_cache",
2945and "uwsgi_cache" directives.
2946</para>
2947</change>
2948
2949<change type="feature">
2950<para lang="ru">
2951директива expires поддерживает переменные.
2952</para>
2953<para lang="en">
2954variables support in the "expires" directive.
2955</para>
2956</change>
2957
2958<change type="feature">
2959<para lang="ru">
2960возможность загрузки секретных ключей с аппаратных устройств
2961с помощью OpenSSL engines.<br/>
2962Спасибо Дмитрию Пичулину.
2963</para>
2964<para lang="en">
2965loading of secret keys from hardware tokens
2966with OpenSSL engines.<br/>
2967Thanks to Dmitrii Pichulin.
2968</para>
2969</change>
2970
2971<change type="feature">
2972<para lang="ru">
2973директива autoindex_format.
2974</para>
2975<para lang="en">
2976the "autoindex_format" directive.
2977</para>
2978</change>
2979
2980<change type="bugfix">
2981<para lang="ru">
2982ревалидация элементов кэша теперь используется только для ответов
2983с кодами 200 и 206.<br/>
2984Спасибо Piotr Sikora.
2985</para>
2986<para lang="en">
2987cache revalidation is now only used for responses
2988with 200 and 206 status codes.<br/>
2989Thanks to Piotr Sikora.
2990</para>
2991</change>
2992
2993<change type="bugfix">
2994<para lang="ru">
2995строка "TE" заголовка запроса клиента передавалась на бэкенд при проксировании.
2996</para>
2997<para lang="en">
2998the "TE" client request header line was passed to backends while proxying.
2999</para>
3000</change>
3001
3002<change type="bugfix">
3003<para lang="ru">
3004директивы proxy_pass, fastcgi_pass, scgi_pass и uwsgi_pass
3005могли неправильно работать внутри блоков if и limit_except.
3006</para>
3007<para lang="en">
3008the "proxy_pass", "fastcgi_pass", "scgi_pass", and "uwsgi_pass" directives
3009might not work correctly inside the "if" and "limit_except" blocks.
3010</para>
3011</change>
3012
3013<change type="bugfix">
3014<para lang="ru">
3015директива proxy_store с параметром "on" игнорировалась,
3016если на предыдущем уровне использовалась директива proxy_store
3017с явно заданным путём к файлам.
3018</para>
3019<para lang="en">
3020the "proxy_store" directive with the "on" parameter was ignored
3021if the "proxy_store" directive with an explicitly specified file path
3022was used on a previous level.
3023</para>
3024</change>
3025
3026<change type="bugfix">
3027<para lang="ru">
3028nginx не собирался с BoringSSL.<br/>
3029Спасибо Lukas Tribus.
3030</para>
3031<para lang="en">
3032nginx could not be built with BoringSSL.<br/>
3033Thanks to Lukas Tribus.
3034</para>
3035</change>
3036
3037</changes>
3038
3039
3040<changes ver="1.7.8" date="2014-12-02">
3041
3042<change type="change">
3043<para lang="ru">
3044теперь строки "If-Modified-Since", "If-Range" и им подобные
3045в заголовке запроса клиента передаются бэкенду при включённом кэшировании,
3046если nginx заранее знает, что не будет кэшировать ответ
3047(например, при использовании proxy_cache_min_uses).
3048</para>
3049<para lang="en">
3050now the "If-Modified-Since", "If-Range", etc.
3051client request header lines are passed to a backend while caching
3052if nginx knows in advance that the response will not be cached
3053(e.g., when using proxy_cache_min_uses).
3054</para>
3055</change>
3056
3057<change type="change">
3058<para lang="ru">
3059теперь после истечения proxy_cache_lock_timeout
3060nginx отправляет запрос на бэкенд без кэширования;
3061новые директивы proxy_cache_lock_age, fastcgi_cache_lock_age,
3062scgi_cache_lock_age и uwsgi_cache_lock_age позволяют указать,
3063через какое время блокировка будет принудительно снята
3064и будет сделана ещё одна попытка закэшировать ответ.
3065</para>
3066<para lang="en">
3067now after proxy_cache_lock_timeout
3068nginx sends a request to a backend with caching disabled;
3069the new directives "proxy_cache_lock_age", "fastcgi_cache_lock_age",
3070"scgi_cache_lock_age", and "uwsgi_cache_lock_age" specify a time
3071after which the lock will be released
3072and another attempt to cache a response will be made.
3073</para>
3074</change>
3075
3076<change type="change">
3077<para lang="ru">
3078директива log_format теперь может использоваться только на уровне http.
3079</para>
3080<para lang="en">
3081the "log_format" directive can now be used only at http level.
3082</para>
3083</change>
3084
3085<change type="feature">
3086<para lang="ru">
3087директивы proxy_ssl_certificate, proxy_ssl_certificate_key,
3088proxy_ssl_password_file, uwsgi_ssl_certificate,
3089uwsgi_ssl_certificate_key и uwsgi_ssl_password_file.<br/>
3090Спасибо Piotr Sikora.
3091</para>
3092<para lang="en">
3093the "proxy_ssl_certificate", "proxy_ssl_certificate_key",
3094"proxy_ssl_password_file", "uwsgi_ssl_certificate",
3095"uwsgi_ssl_certificate_key", and "uwsgi_ssl_password_file" directives.<br/>
3096Thanks to Piotr Sikora.
3097</para>
3098</change>
3099
3100<change type="feature">
3101<para lang="ru">
3102теперь с помощью X-Accel-Redirect
3103можно перейти в именованный location.<br/>
3104Спасибо Toshikuni Fukaya.
3105</para>
3106<para lang="en">
3107it is now possible to switch to a named location
3108using "X-Accel-Redirect".<br/>
3109Thanks to Toshikuni Fukaya.
3110</para>
3111</change>
3112
3113<change type="feature">
3114<para lang="ru">
3115теперь директива tcp_nodelay работает для SPDY-соединений.
3116</para>
3117<para lang="en">
3118now the "tcp_nodelay" directive works with SPDY connections.
3119</para>
3120</change>
3121
3122<change type="feature">
3123<para lang="ru">
3124новые директивы в скриптах подсветки синтаксиса для vim.<br/>
3125Спасибо Peter Wu.
3126</para>
3127<para lang="en">
3128new directives in vim syntax highliting scripts.<br/>
3129Thanks to Peter Wu.
3130</para>
3131</change>
3132
3133<change type="bugfix">
3134<para lang="ru">
3135nginx игнорировал значение "s-maxage"
3136в строке "Cache-Control" в заголовке ответа бэкенда.<br/>
3137Спасибо Piotr Sikora.
3138</para>
3139<para lang="en">
3140nginx ignored the "s-maxage" value
3141in the "Cache-Control" backend response header line.<br/>
3142Thanks to Piotr Sikora.
3143</para>
3144</change>
3145
3146<change type="bugfix">
3147<para lang="ru">
3148в модуле ngx_http_spdy_module.<br/>
3149Спасибо Piotr Sikora.
3150</para>
3151<para lang="en">
3152in the ngx_http_spdy_module.<br/>
3153Thanks to Piotr Sikora.
3154</para>
3155</change>
3156
3157<change type="bugfix">
3158<para lang="ru">
3159в директиве ssl_password_file
3160при использовании OpenSSL 0.9.8zc, 1.0.0o, 1.0.1j.
3161</para>
3162<para lang="en">
3163in the "ssl_password_file" directive
3164when using OpenSSL 0.9.8zc, 1.0.0o, 1.0.1j.
3165</para>
3166</change>
3167
3168<change type="bugfix">
3169<para lang="ru">
3170при использовании директивы post_action
3171в лог писались сообщения "header already sent";
3172ошибка появилась в nginx 1.5.4.
3173</para>
3174<para lang="en">
3175alerts "header already sent" appeared in logs
3176if the "post_action" directive was used;
3177the bug had appeared in 1.5.4.
3178</para>
3179</change>
3180
3181<change type="bugfix">
3182<para lang="ru">
3183при использовании директивы "postpone_output 0" с SSI-подзапросами
3184в лог могли писаться сообщения "the http output chain is empty".
3185</para>
3186<para lang="en">
3187alerts "the http output chain is empty" might appear in logs
3188if the "postpone_output 0" directive was used with SSI includes.
3189</para>
3190</change>
3191
3192<change type="bugfix">
3193<para lang="ru">
3194в директиве proxy_cache_lock при использовании SSI-подзапросов.<br/>
3195Спасибо Yichun Zhang.
3196</para>
3197<para lang="en">
3198in the "proxy_cache_lock" directive with SSI subrequests.<br/>
3199Thanks to Yichun Zhang.
3200</para>
3201</change>
3202
3203</changes>
3204
3205
3206<changes ver="1.7.7" date="2014-10-28">
3207
3208<change type="change">
3209<para lang="ru">
3210теперь nginx учитывает при кэшировании строку "Vary"
3211в заголовке ответа бэкенда.
3212</para>
3213<para lang="en">
3214now nginx takes into account the "Vary"
3215header line in a backend response while caching.
3216</para>
3217</change>
3218
3219<change type="feature">
3220<para lang="ru">
3221директивы proxy_force_ranges, fastcgi_force_ranges,
3222scgi_force_ranges и uwsgi_force_ranges.
3223</para>
3224<para lang="en">
3225the "proxy_force_ranges", "fastcgi_force_ranges",
3226"scgi_force_ranges", and "uwsgi_force_ranges" directives.
3227</para>
3228</change>
3229
3230<change type="feature">
3231<para lang="ru">
3232директивы proxy_limit_rate, fastcgi_limit_rate,
3233scgi_limit_rate и uwsgi_limit_rate.
3234</para>
3235<para lang="en">
3236the "proxy_limit_rate", "fastcgi_limit_rate",
3237"scgi_limit_rate", and "uwsgi_limit_rate" directives.
3238</para>
3239</change>
3240
3241<change type="feature">
3242<para lang="ru">
3243параметр Vary директив proxy_ignore_headers, fastcgi_ignore_headers,
3244scgi_ignore_headers и uwsgi_ignore_headers.
3245</para>
3246<para lang="en">
3247the "Vary" parameter of the "proxy_ignore_headers", "fastcgi_ignore_headers",
3248"scgi_ignore_headers", and "uwsgi_ignore_headers" directives.
3249</para>
3250</change>
3251
3252<change type="bugfix">
3253<para lang="ru">
3254последняя часть ответа, полученного от бэкенда
3255при небуферизированном проксировании,
3256могла не отправляться клиенту,
3257если использовались директивы gzip или gunzip.
3258</para>
3259<para lang="en">
3260the last part of a response received from a backend
3261with unbufferred proxy
3262might not be sent to a client
3263if "gzip" or "gunzip" directives were used.
3264</para>
3265</change>
3266
3267<change type="bugfix">
3268<para lang="ru">
3269в директиве proxy_cache_revalidate.<br/>
3270Спасибо Piotr Sikora.
3271</para>
3272<para lang="en">
3273in the "proxy_cache_revalidate" directive.<br/>
3274Thanks to Piotr Sikora.
3275</para>
3276</change>
3277
3278<change type="bugfix">
3279<para lang="ru">
3280в обработке ошибок.<br/>
3281Спасибо Yichun Zhang и Даниилу Бондареву.
3282</para>
3283<para lang="en">
3284in error handling.<br/>
3285Thanks to Yichun Zhang and Daniil Bondarev.
3286</para>
3287</change>
3288
3289<change type="bugfix">
3290<para lang="ru">
3291в директивах
3292proxy_next_upstream_tries и proxy_next_upstream_timeout.<br/>
3293Спасибо Feng Gu.
3294</para>
3295<para lang="en">
3296in the "proxy_next_upstream_tries" and "proxy_next_upstream_timeout"
3297directives.<br/>
3298Thanks to Feng Gu.
3299</para>
3300</change>
3301
3302<change type="bugfix">
3303<para lang="ru">
3304nginx/Windows не собирался с MinGW-w64 gcc.<br/>
3305Спасибо Kouhei Sutou.
3306</para>
3307<para lang="en">
3308nginx/Windows could not be built with MinGW-w64 gcc.<br/>
3309Thanks to Kouhei Sutou.
3310</para>
3311</change>
3312
3313</changes>
3314
3315
3316<changes ver="1.7.6" date="2014-09-30">
3317
3318<change type="change">
3319<para lang="ru">
3320устаревшая директива limit_zone больше не поддерживается.
3321</para>
3322<para lang="en">
3323the deprecated "limit_zone" directive is not supported anymore.
3324</para>
3325</change>
3326
3327<change type="feature">
3328<para lang="ru">
3329в директивах limit_conn_zone и limit_req_zone теперь можно использовать
3330комбинации нескольких переменных.
3331</para>
3332<para lang="en">
3333the "limit_conn_zone" and "limit_req_zone" directives now can be used
3334with combinations of multiple variables.
3335</para>
3336</change>
3337
3338<change type="bugfix">
3339<para lang="ru">
3340при повторной отправке FastCGI-запроса на бэкенд
3341тело запроса могло передаваться неправильно.
3342</para>
3343<para lang="en">
3344request body might be transmitted incorrectly
3345when retrying a FastCGI request to the next upstream server.
3346</para>
3347</change>
3348
3349<change type="bugfix">
3350<para lang="ru">
3351в логгировании в syslog.
3352</para>
3353<para lang="en">
3354in logging to syslog.
3355</para>
3356</change>
3357
3358</changes>
3359
3360
3361<changes ver="1.7.5" date="2014-09-16">
3362
3363<change type="security">
3364<para lang="ru">
3365при использовании общего для нескольких блоков server
3366разделяемого кэша SSL-сессий или общего ключа для шифрования
3367TLS session tickets было возможно повторно использовать
3368SSL-сессию в контексте другого блока server (CVE-2014-3616).<br/>
3369Спасибо Antoine Delignat-Lavaud.
3370</para>
3371<para lang="en">
3372it was possible to reuse SSL sessions in unrelated contexts
3373if a shared SSL session cache or the same TLS session ticket key
3374was used for multiple "server" blocks (CVE-2014-3616).<br/>
3375Thanks to Antoine Delignat-Lavaud.
3376</para>
3377</change>
3378
3379<change type="change">
3380<para lang="ru">
3381директиву stub_status теперь можно указывать без параметров.
3382</para>
3383<para lang="en">
3384now the "stub_status" directive does not require a parameter.
3385</para>
3386</change>
3387
3388<change type="feature">
3389<para lang="ru">
3390параметр always директивы add_header.
3391</para>
3392<para lang="en">
3393the "always" parameter of the "add_header" directive.
3394</para>
3395</change>
3396
3397<change type="feature">
3398<para lang="ru">
3399директивы
3400proxy_next_upstream_tries, proxy_next_upstream_timeout,
3401fastcgi_next_upstream_tries, fastcgi_next_upstream_timeout,
3402memcached_next_upstream_tries, memcached_next_upstream_timeout,
3403scgi_next_upstream_tries, scgi_next_upstream_timeout,
3404uwsgi_next_upstream_tries и uwsgi_next_upstream_timeout.
3405</para>
3406<para lang="en">
3407the
3408"proxy_next_upstream_tries", "proxy_next_upstream_timeout",
3409"fastcgi_next_upstream_tries", "fastcgi_next_upstream_timeout",
3410"memcached_next_upstream_tries", "memcached_next_upstream_timeout",
3411"scgi_next_upstream_tries", "scgi_next_upstream_timeout",
3412"uwsgi_next_upstream_tries", and "uwsgi_next_upstream_timeout"
3413directives.
3414</para>
3415</change>
3416
3417<change type="bugfix">
3418<para lang="ru">
3419в параметре if директивы access_log.
3420</para>
3421<para lang="en">
3422in the "if" parameter of the "access_log" directive.
3423</para>
3424</change>
3425
3426<change type="bugfix">
3427<para lang="ru">
3428в модуле ngx_http_perl_module.<br/>
3429Спасибо Piotr Sikora.
3430</para>
3431<para lang="en">
3432in the ngx_http_perl_module.<br/>
3433Thanks to Piotr Sikora.
3434</para>
3435</change>
3436
3437<change type="bugfix">
3438<para lang="ru">
3439директива listen почтового прокси-сервера
3440не позволяла указать более двух параметров.
3441</para>
3442<para lang="en">
3443the "listen" directive of the mail proxy module
3444did not allow to specify more than two parameters.
3445</para>
3446</change>
3447
3448<change type="bugfix">
3449<para lang="ru">
3450директива sub_filter не работала
3451с заменяемой строкой из одного символа.
3452</para>
3453<para lang="en">
3454the "sub_filter" directive did not work
3455with a string to replace consisting of a single character.
3456</para>
3457</change>
3458
3459<change type="bugfix">
3460<para lang="ru">
3461запросы могли зависать, если использовался resolver
3462и в процессе обращения к DNS-серверу происходил таймаут.
3463</para>
3464<para lang="en">
3465requests might hang if resolver was used
3466and a timeout occurred during a DNS request.
3467</para>
3468</change>
3469
3470<change type="bugfix">
3471<para lang="ru">
3472в модуле ngx_http_spdy_module при использовании совместно с AIO.
3473</para>
3474<para lang="en">
3475in the ngx_http_spdy_module when using with AIO.
3476</para>
3477</change>
3478
3479<change type="bugfix">
3480<para lang="ru">
3481в рабочем процессе мог произойти segmentation fault,
3482если с помощью директивы set изменялись переменные
3483"$http_...", "$sent_http_..." или "$upstream_http_...".
3484</para>
3485<para lang="en">
3486a segmentation fault might occur in a worker process
3487if the "set" directive was used to change the "$http_...",
3488"$sent_http_...", or "$upstream_http_..." variables.
3489</para>
3490</change>
3491
3492<change type="bugfix">
3493<para lang="ru">
3494в обработке ошибок выделения памяти.<br/>
3495Спасибо Markus Linnala и Feng Gu.
3496</para>
3497<para lang="en">
3498in memory allocation error handling.<br/>
3499Thanks to Markus Linnala and Feng Gu.
3500</para>
3501</change>
3502
3503</changes>
3504
3505
3506<changes ver="1.7.4" date="2014-08-05">
3507
3508<change type="security">
3509<para lang="ru">
3510pipelined-команды не отбрасывались
3511после команды STARTTLS в SMTP прокси-сервере (CVE-2014-3556);
3512ошибка появилась в 1.5.6.<br/>
3513Спасибо Chris Boulton.
3514</para>
3515<para lang="en">
3516pipelined commands were not discarded
3517after STARTTLS command in SMTP proxy (CVE-2014-3556);
3518the bug had appeared in 1.5.6.<br/>
3519Thanks to Chris Boulton.
3520</para>
3521</change>
3522
3523<change type="change">
3524<para lang="ru">
3525экранирование символов в URI теперь использует
3526шестнадцатеричные цифры в верхнем регистре.<br/>
3527Спасибо Piotr Sikora.
3528</para>
3529<para lang="en">
3530URI escaping now uses
3531uppercase hexadecimal digits.<br/>
3532Thanks to Piotr Sikora.
3533</para>
3534</change>
3535
3536<change type="feature">
3537<para lang="ru">
3538теперь nginx можно собрать с BoringSSL и LibreSSL.<br/>
3539Спасибо Piotr Sikora.
3540</para>
3541<para lang="en">
3542now nginx can be build with BoringSSL and LibreSSL.<br/>
3543Thanks to Piotr Sikora.
3544</para>
3545</change>
3546
3547<change type="bugfix">
3548<para lang="ru">
3549запросы могли зависать, если использовался resolver
3550и DNS-сервер возвращал некорректный ответ;
3551ошибка появилась в 1.5.8.
3552</para>
3553<para lang="en">
3554requests might hang if resolver was used
3555and a DNS server returned a malformed response;
3556the bug had appeared in 1.5.8.
3557</para>
3558</change>
3559
3560<change type="bugfix">
3561<para lang="ru">
3562в модуле ngx_http_spdy_module.<br/>
3563Спасибо Piotr Sikora.
3564</para>
3565<para lang="en">
3566in the ngx_http_spdy_module.<br/>
3567Thanks to Piotr Sikora.
3568</para>
3569</change>
3570
3571<change type="bugfix">
3572<para lang="ru">
3573переменная $uri могла содержать мусор
3574при возврате ошибок с кодом 400.<br/>
3575Спасибо Сергею Боброву.
3576</para>
3577<para lang="en">
3578the $uri variable might contain garbage
3579when returning errors with code 400.<br/>
3580Thanks to Sergey Bobrov.
3581</para>
3582</change>
3583
3584<change type="bugfix">
3585<para lang="ru">
3586в обработке ошибок в директиве proxy_store
3587и в модуле ngx_http_dav_module.<br/>
3588Спасибо Feng Gu.
3589</para>
3590<para lang="en">
3591in error handling in the "proxy_store" directive
3592and the ngx_http_dav_module.<br/>
3593Thanks to Feng Gu.
3594</para>
3595</change>
3596
3597<change type="bugfix">
3598<para lang="ru">
3599при логгировании ошибок в syslog мог происходить segmentation fault;
3600ошибка появилась в 1.7.1.
3601</para>
3602<para lang="en">
3603a segmentation fault might occur if logging of errors to syslog was used;
3604the bug had appeared in 1.7.1.
3605</para>
3606</change>
3607
3608<change type="bugfix">
3609<para lang="ru">
3610переменные $geoip_latitude, $geoip_longitude, $geoip_dma_code
3611и $geoip_area_code могли не работать.<br/>
3612Спасибо Yichun Zhang.
3613</para>
3614<para lang="en">
3615the $geoip_latitude, $geoip_longitude, $geoip_dma_code,
3616and $geoip_area_code variables might not work.<br/>
3617Thanks to Yichun Zhang.
3618</para>
3619</change>
3620
3621<change type="bugfix">
3622<para lang="ru">
3623в обработке ошибок выделения памяти.<br/>
3624Спасибо Tatsuhiko Kubo и Piotr Sikora.
3625</para>
3626<para lang="en">
3627in memory allocation error handling.<br/>
3628Thanks to Tatsuhiko Kubo and Piotr Sikora.
3629</para>
3630</change>
3631
3632</changes>
3633
3634
3635<changes ver="1.7.3" date="2014-07-08">
3636
3637<change type="feature">
3638<para lang="ru">
3639weak entity tags теперь не удаляются при изменениях ответа,
3640а strong entity tags преобразуются в weak.
3641</para>
3642<para lang="en">
3643weak entity tags are now preserved on response modifications,
3644and strong ones are changed to weak.
3645</para>
3646</change>
3647
3648<change type="feature">
3649<para lang="ru">
3650ревалидация элементов кэша теперь, если это возможно,
3651использует заголовок If-None-Match.
3652</para>
3653<para lang="en">
3654cache revalidation now uses If-None-Match header
3655if possible.
3656</para>
3657</change>
3658
3659<change type="feature">
3660<para lang="ru">
3661директива ssl_password_file.
3662</para>
3663<para lang="en">
3664the "ssl_password_file" directive.
3665</para>
3666</change>
3667
3668<change type="bugfix">
3669<para lang="ru">
3670при возврате ответа из кэша
3671заголовок запроса If-None-Match игнорировался,
3672если в ответе не было заголовка Last-Modified.
3673</para>
3674<para lang="en">
3675the If-None-Match request header line was ignored
3676if there was no Last-Modified header
3677in a response returned from cache.
3678</para>
3679</change>
3680
3681<change type="bugfix">
3682<para lang="ru">
3683сообщения "peer closed connection in SSL handshake"
3684при соединении с бэкендами логгировались на уровне info вместо error.
3685</para>
3686<para lang="en">
3687"peer closed connection in SSL handshake" messages
3688were logged at "info" level instead of "error" while connecting to backends.
3689</para>
3690</change>
3691
3692<change type="bugfix">
3693<para lang="ru">
3694в модуле ngx_http_dav_module в nginx/Windows.
3695</para>
3696<para lang="en">
3697in the ngx_http_dav_module module in nginx/Windows.
3698</para>
3699</change>
3700
3701<change type="bugfix">
3702<para lang="ru">
3703SPDY-соединения могли неожиданно закрываться,
3704если использовалось кэширование.
3705</para>
3706<para lang="en">
3707SPDY connections might be closed prematurely
3708if caching was used.
3709</para>
3710</change>
3711
3712</changes>
3713
3714
3715<changes ver="1.7.2" date="2014-06-17">
3716
3717<change type="feature">
3718<para lang="ru">
3719директива hash в блоке upstream.
3720</para>
3721<para lang="en">
3722the "hash" directive inside the "upstream" block.
3723</para>
3724</change>
3725
3726<change type="feature">
3727<para lang="ru">
3728дефрагментация свободных блоков разделяемой памяти.<br/>
3729Спасибо Wandenberg Peixoto и Yichun Zhang.
3730</para>
3731<para lang="en">
3732defragmentation of free shared memory blocks.<br/>
3733Thanks to Wandenberg Peixoto and Yichun Zhang.
3734</para>
3735</change>
3736
3737<change type="bugfix">
3738<para lang="ru">
3739в рабочем процессе мог произойти segmentation fault,
3740если использовалось значение access_log по умолчанию;
3741ошибка появилась в 1.7.0.<br/>
3742Спасибо Piotr Sikora.
3743</para>
3744<para lang="en">
3745a segmentation fault might occur in a worker process
3746if the default value of the "access_log" directive was used;
3747the bug had appeared in 1.7.0.<br/>
3748Thanks to Piotr Sikora.
3749</para>
3750</change>
3751
3752<change type="bugfix">
3753<para lang="ru">
3754завершающий слэш ошибочно удалялся
3755из последнего параметра директивы try_files.
3756</para>
3757<para lang="en">
3758trailing slash was mistakenly removed
3759from the last parameter of the "try_files" directive.
3760</para>
3761</change>
3762
3763<change type="bugfix">
3764<para lang="ru">
3765nginx мог не собираться на OS X.
3766</para>
3767<para lang="en">
3768nginx could not be built on OS X in some cases.
3769</para>
3770</change>
3771
3772<change type="bugfix">
3773<para lang="ru">
3774в модуле ngx_http_spdy_module.
3775</para>
3776<para lang="en">
3777in the ngx_http_spdy_module.
3778</para>
3779</change>
3780
3781</changes>
3782
3783
3784<changes ver="1.7.1" date="2014-05-27">
3785
3786<change type="feature">
3787<para lang="ru">
3788переменные "$upstream_cookie_...".
3789</para>
3790<para lang="en">
3791the "$upstream_cookie_..." variables.
3792</para>
3793</change>
3794
3795<change type="feature">
3796<para lang="ru">
3797переменная $ssl_client_fingerprint.
3798</para>
3799<para lang="en">
3800the $ssl_client_fingerprint variable.
3801</para>
3802</change>
3803
3804<change type="feature">
3805<para lang="ru">
3806директивы error_log и access_log теперь поддерживают логгирование в syslog.
3807</para>
3808<para lang="en">
3809the "error_log" and "access_log" directives now support logging to syslog.
3810</para>
3811</change>
3812
3813<change type="feature">
3814<para lang="ru">
3815почтовый прокси-сервер теперь логгирует порт клиента при соединении.
3816</para>
3817<para lang="en">
3818the mail proxy now logs client port on connect.
3819</para>
3820</change>
3821
3822<change type="bugfix">
3823<para lang="ru">
3824утечки памяти при использовании директивы "ssl_stapling".<br/>
3825Спасибо Filipe da Silva.
3826</para>
3827<para lang="en">
3828memory leak if the "ssl_stapling" directive was used.<br/>
3829Thanks to Filipe da Silva.
3830</para>
3831</change>
3832
3833<change type="bugfix">
3834<para lang="ru">
3835директива alias внутри location'а, заданного регулярным выражением,
3836работала неправильно, если использовались директивы if или limit_except.
3837</para>
3838<para lang="en">
3839the "alias" directive used inside a location given by a regular expression
3840worked incorrectly if the "if" or "limit_except" directives were used.
3841</para>
3842</change>
3843
3844<change type="bugfix">
3845<para lang="ru">
3846директива charset не ставила кодировку для сжатых ответов бэкендов.
3847</para>
3848<para lang="en">
3849the "charset" directive did not set a charset to encoded backend responses.
3850</para>
3851</change>
3852
3853<change type="bugfix">
3854<para lang="ru">
3855директива proxy_pass без URI могла использовать оригинальный запрос
3856после установки переменной $args.<br/>
3857Спасибо Yichun Zhang.
3858</para>
3859<para lang="en">
3860a "proxy_pass" directive without URI part might use original request
3861after the $args variable was set.<br/>
3862Thanks to Yichun Zhang.
3863</para>
3864</change>
3865
3866<change type="bugfix">
3867<para lang="ru">
3868в работе параметра none директивы smtp_auth;
3869ошибка появилась в 1.5.6.<br/>
3870Спасибо Святославу Никольскому.
3871</para>
3872<para lang="en">
3873in the "none" parameter in the "smtp_auth" directive;
3874the bug had appeared in 1.5.6.<br/>
3875Thanks to Svyatoslav Nikolsky.
3876</para>
3877</change>
3878
3879<change type="bugfix">
3880<para lang="ru">
3881при совместном использовании sub_filter и SSI
3882ответы могли передаваться неверно.
3883</para>
3884<para lang="en">
3885if sub_filter and SSI were used together,
3886then responses might be transferred incorrectly.
3887</para>
3888</change>
3889
3890<change type="bugfix">
3891<para lang="ru">
3892nginx не собирался с параметром --with-file-aio на Linux/aarch64.
3893</para>
3894<para lang="en">
3895nginx could not be built with the --with-file-aio option on Linux/aarch64.
3896</para>
3897</change>
3898
3899</changes>
3900
3901
3902<changes ver="1.7.0" date="2014-04-24">
3903
3904<change type="feature">
3905<para lang="ru">
3906проверка SSL-сертификатов бэкендов.
3907</para>
3908<para lang="en">
3909backend SSL certificate verification.
3910</para>
3911</change>
3912
3913<change type="feature">
3914<para lang="ru">
3915поддержка SNI при работе с бэкендами по SSL.
3916</para>
3917<para lang="en">
3918support for SNI while working with SSL backends.
3919</para>
3920</change>
3921
3922<change type="feature">
3923<para lang="ru">
3924переменная $ssl_server_name.
3925</para>
3926<para lang="en">
3927the $ssl_server_name variable.
3928</para>
3929</change>
3930
3931<change type="feature">
3932<para lang="ru">
3933параметр if директивы access_log.
3934</para>
3935<para lang="en">
3936the "if" parameter of the "access_log" directive.
3937</para>
3938</change>
3939
3940</changes>
3941
3942
3943<changes ver="1.5.13" date="2014-04-08">
3944
3945<change type="change">
3946<para lang="ru">
3947улучшена обработка хэш-таблиц;
3948в директивах variables_hash_max_size и types_hash_bucket_size
3949значения по умолчанию изменены на 1024 и 64 соответственно.
3950</para>
3951<para lang="en">
3952improved hash table handling;
3953the default values of the "variables_hash_max_size" and
3954"types_hash_bucket_size" were changed to 1024 and 64 respectively.
3955</para>
3956</change>
3957
3958<change type="feature">
3959<para lang="ru">
3960модуль ngx_http_mp4_module теперь понимает аргумент end.
3961</para>
3962<para lang="en">
3963the ngx_http_mp4_module now supports the "end" argument.
3964</para>
3965</change>
3966
3967<change type="feature">
3968<para lang="ru">
3969поддержка byte ranges модулем ngx_http_mp4_module и при сохранении
3970ответов в кэш.
3971</para>
3972<para lang="en">
3973byte ranges support in the ngx_http_mp4_module and while saving responses
3974to cache.
3975</para>
3976</change>
3977
3978<change type="bugfix">
3979<para lang="ru">
3980теперь nginx не пишет в лог сообщения "ngx_slab_alloc() failed: no memory"
3981при использовании разделяемой памяти в ssl_session_cache
3982и в модуле ngx_http_limit_req_module.
3983</para>
3984<para lang="en">
3985alerts "ngx_slab_alloc() failed: no memory" no longer logged
3986when using shared memory in the "ssl_session_cache" directive
3987and in the ngx_http_limit_req_module.
3988</para>
3989</change>
3990
3991<change type="bugfix">
3992<para lang="ru">
3993директива underscores_in_headers
3994не разрешала подчёркивание в первом символе заголовка.<br/>
3995Спасибо Piotr Sikora.
3996</para>
3997<para lang="en">
3998the "underscores_in_headers" directive
3999did not allow underscore as a first character of a header.<br/>
4000Thanks to Piotr Sikora.
4001</para>
4002</change>
4003
4004<change type="bugfix">
4005<para lang="ru">
4006cache manager мог нагружать процессор при выходе в nginx/Windows.
4007</para>
4008<para lang="en">
4009cache manager might hog CPU on exit in nginx/Windows.
4010</para>
4011</change>
4012
4013<change type="bugfix">
4014<para lang="ru">
4015при использовании ssl_session_cache с параметром shared
4016рабочий процесс nginx/Windows завершался аварийно.
4017</para>
4018<para lang="en">
4019nginx/Windows terminated abnormally
4020if the "ssl_session_cache" directive was used with the "shared" parameter.
4021</para>
4022</change>
4023
4024<change type="bugfix">
4025<para lang="ru">
4026в модуле ngx_http_spdy_module.
4027</para>
4028<para lang="en">
4029in the ngx_http_spdy_module.
4030</para>
4031</change>
4032
4033</changes>
4034
4035
4036<changes ver="1.5.12" date="2014-03-18">
4037
4038<change type="security">
4039<para lang="ru">
4040при обработке специально созданного запроса модулем ngx_http_spdy_module
4041могло происходить переполнение буфера в рабочем процессе,
4042что потенциально могло приводить к выполнению произвольного кода
4043(CVE-2014-0133).<br/>
4044Спасибо Lucas Molas из Programa STIC, Fundación Dr. Manuel
4045Sadosky, Buenos Aires, Argentina.
4046</para>
4047<para lang="en">
4048a heap memory buffer overflow might occur in a worker process
4049while handling a specially crafted request by ngx_http_spdy_module,
4050potentially resulting in arbitrary code execution
4051(CVE-2014-0133).<br/>
4052Thanks to Lucas Molas, researcher at Programa STIC, Fundación Dr. Manuel
4053Sadosky, Buenos Aires, Argentina.
4054</para>
4055</change>
4056
4057<change type="feature">
4058<para lang="ru">
4059параметр proxy_protocol в директивах listen и real_ip_header,
4060переменная $proxy_protocol_addr.
4061</para>
4062<para lang="en">
4063the "proxy_protocol" parameters of the "listen" and "real_ip_header" directives,
4064the $proxy_protocol_addr variable.
4065</para>
4066</change>
4067
4068<change type="bugfix">
4069<para lang="ru">
4070в директиве fastcgi_next_upstream.<br/>
4071Спасибо Lucas Molas.
4072</para>
4073<para lang="en">
4074in the "fastcgi_next_upstream" directive.<br/>
4075Thanks to Lucas Molas.
4076</para>
4077</change>
4078
4079</changes>
4080
4081
4082<changes ver="1.5.11" date="2014-03-04">
4083
4084<change type="security">
4085<para lang="ru">
4086при обработке специально созданного запроса модулем ngx_http_spdy_module
4087на 32-битных платформах могла повреждаться память рабочего процесса,
4088что потенциально могло приводить к выполнению произвольного кода
4089(CVE-2014-0088);
4090ошибка появилась в 1.5.10.<br/>
4091Спасибо Lucas Molas из Programa STIC, Fundación Dr. Manuel
4092Sadosky, Buenos Aires, Argentina.
4093</para>
4094<para lang="en">
4095memory corruption might occur in a worker process on 32-bit platforms
4096while handling a specially crafted request by ngx_http_spdy_module,
4097potentially resulting in arbitrary code execution (CVE-2014-0088);
4098the bug had appeared in 1.5.10.<br/>
4099Thanks to Lucas Molas, researcher at Programa STIC, Fundación Dr. Manuel
4100Sadosky, Buenos Aires, Argentina.
4101</para>
4102</change>
4103
4104<change type="feature">
4105<para lang="ru">
4106переменная $ssl_session_reused.
4107</para>
4108<para lang="en">
4109the $ssl_session_reused variable.
4110</para>
4111</change>
4112
4113<change type="bugfix">
4114<para lang="ru">
4115директива client_max_body_size могла не работать
4116при чтении тела запроса с использованием chunked transfer encoding;
4117ошибка появилась в 1.3.9.<br/>
4118Спасибо Lucas Molas.
4119</para>
4120<para lang="en">
4121the "client_max_body_size" directive might not work
4122when reading a request body using chunked transfer encoding;
4123the bug had appeared in 1.3.9.<br/>
4124Thanks to Lucas Molas.
4125</para>
4126</change>
4127
4128<change type="bugfix">
4129<para lang="ru">
4130при проксировании WebSocket-соединений
4131в рабочем процессе мог произойти segmentation fault.
4132</para>
4133<para lang="en">
4134a segmentation fault might occur in a worker process
4135when proxying WebSocket connections.
4136</para>
4137</change>
4138
4139<change type="bugfix">
4140<para lang="ru">
4141в рабочем процессе мог произойти segmentation fault,
4142если использовался модуль ngx_http_spdy_module на 32-битных платформах;
4143ошибка появилась в 1.5.10.
4144</para>
4145<para lang="en">
4146a segmentation fault might occur in a worker process
4147if the ngx_http_spdy_module was used on 32-bit platforms;
4148the bug had appeared in 1.5.10.
4149</para>
4150</change>
4151
4152<change type="bugfix">
4153<para lang="ru">
4154значение переменной $upstream_status могло быть неверным,
4155если использовались директивы proxy_cache_use_stale
4156или proxy_cache_revalidate.<br/>
4157Спасибо Piotr Sikora.
4158</para>
4159<para lang="en">
4160the $upstream_status variable might contain wrong data
4161if the "proxy_cache_use_stale" or "proxy_cache_revalidate" directives
4162were used.<br/>
4163Thanks to Piotr Sikora.
4164</para>
4165</change>
4166
4167<change type="bugfix">
4168<para lang="ru">
4169в рабочем процессе мог произойти segmentation fault,
4170если ошибки с кодом 400 с помощью директивы error_page
4171перенаправлялись в именованный location.
4172</para>
4173<para lang="en">
4174a segmentation fault might occur in a worker process
4175if errors with code 400 were redirected to a named location
4176using the "error_page" directive.
4177</para>
4178</change>
4179
4180<change type="bugfix">
4181<para lang="ru">
4182nginx/Windows не собирался с Visual Studio 2013.
4183</para>
4184<para lang="en">
4185nginx/Windows could not be built with Visual Studio 2013.
4186</para>
4187</change>
4188
4189</changes>
4190
4191
4192<changes ver="1.5.10" date="2014-02-04">
4193
4194<change type="feature">
4195<para lang="ru">
4196модуль ngx_http_spdy_module теперь использует протокол SPDY 3.1.<br/>
4197Спасибо Automattic и MaxCDN за спонсирование разработки.
4198</para>
4199<para lang="en">
4200the ngx_http_spdy_module now uses SPDY 3.1 protocol.<br/>
4201Thanks to Automattic and MaxCDN for sponsoring this work.
4202</para>
4203</change>
4204
4205<change type="feature">
4206<para lang="ru">
4207модуль ngx_http_mp4_module теперь пропускает дорожки,
4208имеющие меньшую длину, чем запрошенная перемотка.
4209</para>
4210<para lang="en">
4211the ngx_http_mp4_module now skips tracks
4212too short for a seek requested.
4213</para>
4214</change>
4215
4216<change type="bugfix">
4217<para lang="ru">
4218в рабочем процессе мог произойти segmentation fault,
4219если переменная $ssl_session_id использовалась при логгировании;
4220ошибка появилась в 1.5.9.
4221</para>
4222<para lang="en">
4223a segmentation fault might occur in a worker process
4224if the $ssl_session_id variable was used in logs;
4225the bug had appeared in 1.5.9.
4226</para>
4227</change>
4228
4229<change type="bugfix">
4230<para lang="ru">
4231переменные $date_local и $date_gmt использовали неверный формат
4232вне модуля ngx_http_ssi_filter_module.
4233</para>
4234<para lang="en">
4235the $date_local and $date_gmt variables used wrong format
4236outside of the ngx_http_ssi_filter_module.
4237</para>
4238</change>
4239
4240<change type="bugfix">
4241<para lang="ru">
4242клиентские соединения могли сразу закрываться,
4243если использовался отложенный accept;
4244ошибка появилась в 1.3.15.
4245</para>
4246<para lang="en">
4247client connections might be immediately closed
4248if deferred accept was used;
4249the bug had appeared in 1.3.15.
4250</para>
4251</change>
4252
4253<change type="bugfix">
4254<para lang="ru">
4255сообщения "getsockopt(TCP_FASTOPEN) ... failed" записывались в лог
4256в процессе обновления исполняемого файла на Linux;
4257ошибка появилась в 1.5.8.<br/>
4258Спасибо Piotr Sikora.
4259</para>
4260<para lang="en">
4261alerts "getsockopt(TCP_FASTOPEN) ... failed" appeared in logs
4262during binary upgrade on Linux;
4263the bug had appeared in 1.5.8.<br/>
4264Thanks to Piotr Sikora.
4265</para>
4266</change>
4267
4268</changes>
4269
4270
4271<changes ver="1.5.9" date="2014-01-22">
4272
4273<change type="change">
4274<para lang="ru">
4275теперь в заголовке X-Accel-Redirect nginx ожидает закодированный URI.
4276</para>
4277<para lang="en">
4278now nginx expects escaped URIs in "X-Accel-Redirect" headers.
4279</para>
4280</change>
4281
4282<change type="feature">
4283<para lang="ru">
4284директива ssl_buffer_size.
4285</para>
4286<para lang="en">
4287the "ssl_buffer_size" directive.
4288</para>
4289</change>
4290
4291<change type="feature">
4292<para lang="ru">
4293директиву limit_rate теперь можно использовать для
4294ограничения скорости передачи ответов клиенту в SPDY-соединениях.
4295</para>
4296<para lang="en">
4297the "limit_rate" directive can now be used to
4298rate limit responses sent in SPDY connections.
4299</para>
4300</change>
4301
4302<change type="feature">
4303<para lang="ru">
4304директива spdy_chunk_size.
4305</para>
4306<para lang="en">
4307the "spdy_chunk_size" directive.
4308</para>
4309</change>
4310
4311<change type="feature">
4312<para lang="ru">
4313директива ssl_session_tickets.<br/>
4314Спасибо Dirkjan Bussink.
4315</para>
4316<para lang="en">
4317the "ssl_session_tickets" directive.<br/>
4318Thanks to Dirkjan Bussink.
4319</para>
4320</change>
4321
4322<change type="bugfix">
4323<para lang="ru">
4324переменная $ssl_session_id содержала всю сессию в сериализованном виде
4325вместо её идентификатора.<br/>
4326Спасибо Ivan Ristić.
4327</para>
4328<para lang="en">
4329the $ssl_session_id variable contained full session serialized
4330instead of just a session id.<br/>
4331Thanks to Ivan Ristić.
4332</para>
4333</change>
4334
4335<change type="bugfix">
4336<para lang="ru">
4337nginx неправильно обрабатывал закодированный символ "?" в команде SSI include.
4338</para>
4339<para lang="en">
4340nginx incorrectly handled escaped "?" character in the "include" SSI command.
4341</para>
4342</change>
4343
4344<change type="bugfix">
4345<para lang="ru">
4346модуль ngx_http_dav_module не раскодировал целевой URI при
4347обработке методов COPY и MOVE.
4348</para>
4349<para lang="en">
4350the ngx_http_dav_module did not unescape destination URI
4351of the COPY and MOVE methods.
4352</para>
4353</change>
4354
4355<change type="bugfix">
4356<para lang="ru">
4357resolver не понимал доменные имена с точкой в конце.
4358Спасибо Yichun Zhang.
4359</para>
4360<para lang="en">
4361resolver did not understand domain names with a trailing dot.
4362Thanks to Yichun Zhang.
4363</para>
4364</change>
4365
4366<change type="bugfix">
4367<para lang="ru">
4368при проксировании в логах могли появляться сообщения "zero size buf in output";
4369ошибка появилась в 1.3.9.
4370</para>
4371<para lang="en">
4372alerts "zero size buf in output" might appear in logs while proxying;
4373the bug had appeared in 1.3.9.
4374</para>
4375</change>
4376
4377<change type="bugfix">
4378<para lang="ru">
4379в рабочем процессе мог произойти segmentation fault,
4380если использовался модуль ngx_http_spdy_module.
4381</para>
4382<para lang="en">
4383a segmentation fault might occur in a worker process
4384if the ngx_http_spdy_module was used.
4385</para>
4386</change>
4387
4388<change type="bugfix">
4389<para lang="ru">
4390при использовании методов обработки соединений select, poll и /dev/poll
4391проксируемые WebSocket-соединения могли зависать сразу после открытия.
4392</para>
4393<para lang="en">
4394proxied WebSocket connections might hang right after handshake
4395if the select, poll, or /dev/poll methods were used.
4396</para>
4397</change>
4398
4399<change type="bugfix">
4400<para lang="ru">
4401директива xclient почтового прокси-сервера
4402некорректно передавала IPv6-адреса.
4403</para>
4404<para lang="en">
4405the "xclient" directive of the mail proxy module
4406incorrectly handled IPv6 client addresses.
4407</para>
4408</change>
4409
4410</changes>
4411
4412
4413<changes ver="1.5.8" date="2013-12-17">
4414
4415<change type="feature">
4416<para lang="ru">
4417теперь resolver поддерживает IPv6.
4418</para>
4419<para lang="en">
4420IPv6 support in resolver.
4421</para>
4422</change>
4423
4424<change type="feature">
4425<para lang="ru">
4426директива listen поддерживает параметр fastopen.<br/>
4427Спасибо Mathew Rodley.
4428</para>
4429<para lang="en">
4430the "listen" directive supports the "fastopen" parameter.<br/>
4431Thanks to Mathew Rodley.
4432</para>
4433</change>
4434
4435<change type="feature">
4436<para lang="ru">
4437поддержка SSL в модуле ngx_http_uwsgi_module.<br/>
4438Спасибо Roberto De Ioris.
4439</para>
4440<para lang="en">
4441SSL support in the ngx_http_uwsgi_module.<br/>
4442Thanks to Roberto De Ioris.
4443</para>
4444</change>
4445
4446<change type="feature">
4447<para lang="ru">
4448скрипты подсветки синтаксиса для vim добавлены в contrib.<br/>
4449Спасибо Evan Miller.
4450</para>
4451<para lang="en">
4452vim syntax highlighting scripts were added to contrib.<br/>
4453Thanks to Evan Miller.
4454</para>
4455</change>
4456
4457<change type="bugfix">
4458<para lang="ru">
4459при чтении тела запроса с использованием chunked transfer encoding
4460по SSL-соединению мог произойти таймаут.
4461</para>
4462<para lang="en">
4463a timeout might occur while reading client request body
4464in an SSL connection using chunked transfer encoding.
4465</para>
4466</change>
4467
4468<change type="bugfix">
4469<para lang="ru">
4470директива master_process работала неправильно в nginx/Windows.
4471</para>
4472<para lang="en">
4473the "master_process" directive did not work correctly in nginx/Windows.
4474</para>
4475</change>
4476
4477<change type="bugfix">
4478<para lang="ru">
4479параметр setfib директивы listen мог не работать.
4480</para>
4481<para lang="en">
4482the "setfib" parameter of the "listen" directive might not work.
4483</para>
4484</change>
4485
4486<change type="bugfix">
4487<para lang="ru">
4488в модуле ngx_http_spdy_module.
4489</para>
4490<para lang="en">
4491in the ngx_http_spdy_module.
4492</para>
4493</change>
4494
4495</changes>
4496
4497
4498<changes ver="1.5.7" date="2013-11-19">
4499
4500<change type="security">
4501<para lang="ru">
4502символ, следующий за незакодированным пробелом в строке запроса,
4503обрабатывался неправильно (CVE-2013-4547);
4504ошибка появилась в 0.8.41.<br/>
4505Спасибо Ivan Fratric из Google Security Team.
4506</para>
4507<para lang="en">
4508a character following an unescaped space in a request line
4509was handled incorrectly (CVE-2013-4547);
4510the bug had appeared in 0.8.41.<br/>
4511Thanks to Ivan Fratric of the Google Security Team.
4512</para>
4513</change>
4514
4515<change type="change">
4516<para lang="ru">
4517уровень логгирования ошибок auth_basic об отсутствии пароля
4518понижен с уровня error до info.
4519</para>
4520<para lang="en">
4521a logging level of auth_basic errors about no user/password provided
4522has been lowered from "error" to "info".
4523</para>
4524</change>
4525
4526<change type="feature">
4527<para lang="ru">
4528директивы proxy_cache_revalidate, fastcgi_cache_revalidate,
4529scgi_cache_revalidate и uwsgi_cache_revalidate.
4530</para>
4531<para lang="en">
4532the "proxy_cache_revalidate", "fastcgi_cache_revalidate",
4533"scgi_cache_revalidate", and "uwsgi_cache_revalidate" directives.
4534</para>
4535</change>
4536
4537<change type="feature">
4538<para lang="ru">
4539директива ssl_session_ticket_key.<br/>
4540Спасибо Piotr Sikora.
4541</para>
4542<para lang="en">
4543the "ssl_session_ticket_key" directive.<br/>
4544Thanks to Piotr Sikora.
4545</para>
4546</change>
4547
4548<change type="bugfix">
4549<para lang="ru">
4550директива "add_header Cache-Control ''"
4551добавляла строку заголовка ответа "Cache-Control" с пустым значением.
4552</para>
4553<para lang="en">
4554the directive "add_header Cache-Control ''"
4555added a "Cache-Control" response header line with an empty value.
4556</para>
4557</change>
4558
4559<change type="bugfix">
4560<para lang="ru">
4561директива "satisfy any" могла вернуть ошибку 403 вместо 401
4562при использовании директив auth_request и auth_basic.<br/>
4563Спасибо Jan Marc Hoffmann.
4564</para>
4565<para lang="en">
4566the "satisfy any" directive might return 403 error instead of 401
4567if auth_request and auth_basic directives were used.<br/>
4568Thanks to Jan Marc Hoffmann.
4569</para>
4570</change>
4571
4572<change type="bugfix">
4573<para lang="ru">
4574параметры accept_filter и deferred директивы listen игнорировались
4575для listen-сокетов, создаваемых в процессе обновления исполняемого файла.<br/>
4576Спасибо Piotr Sikora.
4577</para>
4578<para lang="en">
4579the "accept_filter" and "deferred" parameters of the "listen" directive
4580were ignored for listen sockets created during binary upgrade.<br/>
4581Thanks to Piotr Sikora.
4582</para>
4583</change>
4584
4585<change type="bugfix">
4586<para lang="ru">
4587часть данных, полученных от бэкенда при небуферизированном проксировании,
4588могла не отправляться клиенту сразу,
4589если использовались директивы gzip или gunzip.<br/>
4590Спасибо Yichun Zhang.
4591</para>
4592<para lang="en">
4593some data received from a backend with unbufferred proxy
4594might not be sent to a client immediately
4595if "gzip" or "gunzip" directives were used.<br/>
4596Thanks to Yichun Zhang.
4597</para>
4598</change>
4599
4600<change type="bugfix">
4601<para lang="ru">
4602в обработке ошибок в модуле ngx_http_gunzip_filter_module.
4603</para>
4604<para lang="en">
4605in error handling in ngx_http_gunzip_filter_module.
4606</para>
4607</change>
4608
4609<change type="bugfix">
4610<para lang="ru">
4611ответы могли зависать,
4612если использовался модуль ngx_http_spdy_module
4613и директива auth_request.
4614</para>
4615<para lang="en">
4616responses might hang
4617if the ngx_http_spdy_module was used
4618with the "auth_request" directive.
4619</para>
4620</change>
4621
4622<change type="bugfix">
4623<para lang="ru">
4624утечки памяти в nginx/Windows.
4625</para>
4626<para lang="en">
4627memory leak in nginx/Windows.
4628</para>
4629</change>
4630
4631</changes>
4632
4633
4634<changes ver="1.5.6" date="2013-10-01">
4635
4636<change type="feature">
4637<para lang="ru">
4638директива fastcgi_buffering.
4639</para>
4640<para lang="en">
4641the "fastcgi_buffering" directive.
4642</para>
4643</change>
4644
4645<change type="feature">
4646<para lang="ru">
4647директивы proxy_ssl_protocols и proxy_ssl_ciphers.<br/>
4648Спасибо Piotr Sikora.
4649</para>
4650<para lang="en">
4651the "proxy_ssl_protocols" and "proxy_ssl_ciphers" directives.<br/>
4652Thanks to Piotr Sikora.
4653</para>
4654</change>
4655
4656<change type="feature">
4657<para lang="ru">
4658оптимизация SSL handshake при использовании длинных цепочек сертификатов.
4659</para>
4660<para lang="en">
4661optimization of SSL handshakes when using long certificate chains.
4662</para>
4663</change>
4664
4665<change type="feature">
4666<para lang="ru">
4667почтовый прокси-сервер поддерживает SMTP pipelining.
4668</para>
4669<para lang="en">
4670the mail proxy supports SMTP pipelining.
4671</para>
4672</change>
4673
4674<change type="bugfix">
4675<para lang="ru">
4676в модуле ngx_http_auth_basic_module
4677при использовании метода шифрования паролей "$apr1$".<br/>
4678Спасибо Markus Linnala.
4679</para>
4680<para lang="en">
4681in the ngx_http_auth_basic_module
4682when using "$apr1$" password encryption method.<br/>
4683Thanks to Markus Linnala.
4684</para>
4685</change>
4686
4687<change type="bugfix">
4688<para lang="ru">
4689на MacOSX, Cygwin и nginx/Windows
4690для обработки запроса мог использоваться неверный location,
4691если для задания location'ов использовались символы разных регистров.
4692</para>
4693<para lang="en">
4694in MacOSX, Cygwin, and nginx/Windows
4695incorrect location might be used to process a request
4696if locations were given using characters in different cases.
4697</para>
4698</change>
4699
4700<change type="bugfix">
4701<para lang="ru">
4702автоматическое перенаправление с добавлением завершающего слэша
4703для проксированных location'ов могло не работать.
4704</para>
4705<para lang="en">
4706automatic redirect with appended trailing slash
4707for proxied locations might not work.
4708</para>
4709</change>
4710
4711<change type="bugfix">
4712<para lang="ru">
4713в почтовом прокси-сервере.
4714</para>
4715<para lang="en">
4716in the mail proxy server.
4717</para>
4718</change>
4719
4720<change type="bugfix">
4721<para lang="ru">
4722в модуле ngx_http_spdy_module.
4723</para>
4724<para lang="en">
4725in the ngx_http_spdy_module.
4726</para>
4727</change>
4728
4729</changes>
4730
4731
4732<changes ver="1.5.5" date="2013-09-17">
4733
4734<change type="change">
4735<para lang="ru">
4736теперь nginx по умолчанию использует HTTP/1.0,
4737если точно определить протокол не удалось.
4738</para>
4739<para lang="en">
4740now nginx assumes HTTP/1.0 by default
4741if it is not able to detect protocol reliably.
4742</para>
4743</change>
4744
4745<change type="feature">
4746<para lang="ru">
4747директива disable_symlinks теперь использует O_PATH на Linux.
4748</para>
4749<para lang="en">
4750the "disable_symlinks" directive now uses O_PATH on Linux.
4751</para>
4752</change>
4753
4754<change type="feature">
4755<para lang="ru">
4756для определения того, что клиент закрыл соединение,
4757при использовании метода epoll
4758теперь используются события EPOLLRDHUP.
4759</para>
4760<para lang="en">
4761now nginx uses EPOLLRDHUP events
4762to detect premature connection close by clients
4763if the "epoll" method is used.
4764</para>
4765</change>
4766
4767<change type="bugfix">
4768<para lang="ru">
4769в директиве valid_referers при использовании параметра server_names.
4770</para>
4771<para lang="en">
4772in the "valid_referers" directive if the "server_names" parameter was used.
4773</para>
4774</change>
4775
4776<change type="bugfix">
4777<para lang="ru">
4778переменная $request_time не работала в nginx/Windows.
4779</para>
4780<para lang="en">
4781the $request_time variable did not work in nginx/Windows.
4782</para>
4783</change>
4784
4785<change type="bugfix">
4786<para lang="ru">
4787в директиве image_filter.<br/>
4788Спасибо Lanshun Zhou.
4789</para>
4790<para lang="en">
4791in the "image_filter" directive.<br/>
4792Thanks to Lanshun Zhou.
4793</para>
4794</change>
4795
4796<change type="bugfix">
4797<para lang="ru">
4798совместимость с OpenSSL 1.0.1f.<br/>
4799Спасибо Piotr Sikora.
4800</para>
4801<para lang="en">
4802OpenSSL 1.0.1f compatibility.<br/>
4803Thanks to Piotr Sikora.
4804</para>
4805</change>
4806
4807
4808</changes>
4809
4810
4811<changes ver="1.5.4" date="2013-08-27">
4812
4813<change type="change">
4814<para lang="ru">
4815MIME-тип для расширения js изменён на "application/javascript";
4816значение по умолчанию директивы charset_types изменено соответственно.
4817</para>
4818<para lang="en">
4819the "js" extension MIME type has been changed to "application/javascript";
4820default value of the "charset_types" directive was changed accordingly.
4821</para>
4822</change>
4823
4824<change type="change">
4825<para lang="ru">
4826теперь директива image_filter с параметром size
4827возвращает ответ с MIME-типом "application/json".
4828</para>
4829<para lang="en">
4830now the "image_filter" directive with the "size" parameter
4831returns responses with the "application/json" MIME type.
4832</para>
4833</change>
4834
4835<change type="feature">
4836<para lang="ru">
4837модуль ngx_http_auth_request_module.
4838</para>
4839<para lang="en">
4840the ngx_http_auth_request_module.
4841</para>
4842</change>
4843
4844<change type="bugfix">
4845<para lang="ru">
4846на старте или во время переконфигурации мог произойти segmentation fault,
4847если использовалась директива try_files с пустым параметром.
4848</para>
4849<para lang="en">
4850a segmentation fault might occur on start or during reconfiguration
4851if the "try_files" directive was used with an empty parameter.
4852</para>
4853</change>
4854
4855<change type="bugfix">
4856<para lang="ru">
4857утечки памяти при использовании в директивах root и auth_basic_user_file
4858относительных путей, заданных с помощью переменных.
4859</para>
4860<para lang="en">
4861memory leak if relative paths were specified using variables
4862in the "root" or "auth_basic_user_file" directives.
4863</para>
4864</change>
4865
4866<change type="bugfix">
4867<para lang="ru">
4868директива valid_referers неправильно выполняла регулярные выражения,
4869если заголовок Referer начинался с "https://".<br/>
4870Спасибо Liangbin Li.
4871</para>
4872<para lang="en">
4873the "valid_referers" directive incorrectly executed regular expressions
4874if a "Referer" header started with "https://".<br/>
4875Thanks to Liangbin Li.
4876</para>
4877</change>
4878
4879<change type="bugfix">
4880<para lang="ru">
4881ответы могли зависать, если использовались подзапросы и при обработке подзапроса
4882происходила ошибка во время SSL handshake с бэкендом.<br/>
4883Спасибо Aviram Cohen.
4884</para>
4885<para lang="en">
4886responses might hang if subrequests were used
4887and an SSL handshake error happened during subrequest processing.<br/>
4888Thanks to Aviram Cohen.
4889</para>
4890</change>
4891
4892<change type="bugfix">
4893<para lang="ru">
4894в модуле ngx_http_autoindex_module.
4895</para>
4896<para lang="en">
4897in the ngx_http_autoindex_module.
4898</para>
4899</change>
4900
4901<change type="bugfix">
4902<para lang="ru">
4903в модуле ngx_http_spdy_module.
4904</para>
4905<para lang="en">
4906in the ngx_http_spdy_module.
4907</para>
4908</change>
4909
4910</changes>
4911
4912
4913<changes ver="1.5.3" date="2013-07-30">
4914
4915<change>
4916<para lang="ru">
4917Изменение во внутреннем API:
4918теперь при небуферизированной работе с бэкендами
4919u->length по умолчанию устанавливается в -1.
4920</para>
4921<para lang="en">
4922Change in internal API:
4923now u->length defaults to -1
4924if working with backends in unbuffered mode.
4925</para>
4926</change>
4927
4928<change type="change">
4929<para lang="ru">
4930теперь при получении неполного ответа от бэкенда
4931nginx отправляет полученную часть ответа,
4932после чего закрывает соединение с клиентом.
4933</para>
4934<para lang="en">
4935now after receiving an incomplete response from a backend server
4936nginx tries to send an available part of the response to a client,
4937and then closes client connection.
4938</para>
4939</change>
4940
4941<change type="bugfix">
4942<para lang="ru">
4943в рабочем процессе мог произойти segmentation fault,
4944если использовался модуль ngx_http_spdy_module
4945и директива client_body_in_file_only.
4946</para>
4947<para lang="en">
4948a segmentation fault might occur in a worker process
4949if the ngx_http_spdy_module was used
4950with the "client_body_in_file_only" directive.
4951</para>
4952</change>
4953
4954<change type="bugfix">
4955<para lang="ru">
4956параметр so_keepalive директивы listen
4957мог работать некорректно на DragonFlyBSD.<br/>
4958Спасибо Sepherosa Ziehau.
4959</para>
4960<para lang="en">
4961the "so_keepalive" parameter of the "listen" directive
4962might be handled incorrectly on DragonFlyBSD.<br/>
4963Thanks to Sepherosa Ziehau.
4964</para>
4965</change>
4966
4967<change type="bugfix">
4968<para lang="ru">
4969в модуле ngx_http_xslt_filter_module.
4970</para>
4971<para lang="en">
4972in the ngx_http_xslt_filter_module.
4973</para>
4974</change>
4975
4976<change type="bugfix">
4977<para lang="ru">
4978в модуле ngx_http_sub_filter_module.
4979</para>
4980<para lang="en">
4981in the ngx_http_sub_filter_module.
4982</para>
4983</change>
4984
4985</changes>
4986
4987
4988<changes ver="1.5.2" date="2013-07-02">
4989
4990<change type="feature">
4991<para lang="ru">
4992теперь можно использовать несколько директив error_log.
4993</para>
4994<para lang="en">
4995now several "error_log" directives can be used.
4996</para>
4997</change>
4998
4999<change type="bugfix">
5000<para lang="ru">
5001метод $r->header_in() встроенного перла не возвращал значения строк
5002"Cookie" и "X-Forwarded-For" из заголовка запроса;
5003ошибка появилась в 1.3.14.
5004</para>
5005<para lang="en">
5006the $r->header_in() embedded perl method did not return value of the
5007"Cookie" and "X-Forwarded-For" request header lines;
5008the bug had appeared in 1.3.14.
5009</para>
5010</change>
5011
5012<change type="bugfix">
5013<para lang="ru">
5014в модуле ngx_http_spdy_module.<br/>
5015Спасибо Jim Radford.
5016</para>
5017<para lang="en">
5018in the ngx_http_spdy_module.<br/>
5019Thanks to Jim Radford.
5020</para>
5021</change>
5022
5023<change type="bugfix">
5024<para lang="ru">
5025nginx не собирался на Linux при использовании x32 ABI.<br/>
5026Спасибо Сергею Иванцову.
5027</para>
5028<para lang="en">
5029nginx could not be built on Linux with x32 ABI.<br/>
5030Thanks to Serguei Ivantsov.
5031</para>
5032</change>
5033
5034</changes>
5035
5036
5037<changes ver="1.5.1" date="2013-06-04">
5038
5039<change type="feature">
5040<para lang="ru">
5041директивы ssi_last_modified, sub_filter_last_modified и
5042xslt_last_modified.<br/>
5043Спасибо Алексею Колпакову.
5044</para>
5045<para lang="en">
5046the "ssi_last_modified", "sub_filter_last_modified", and
5047"xslt_last_modified" directives.<br/>
5048Thanks to Alexey Kolpakov.
5049</para>
5050</change>
5051
5052<change type="feature">
5053<para lang="ru">
5054параметр http_403 в директивах proxy_next_upstream, fastcgi_next_upstream,
5055scgi_next_upstream и uwsgi_next_upstream.
5056</para>
5057<para lang="en">
5058the "http_403" parameter of the "proxy_next_upstream", "fastcgi_next_upstream",
5059"scgi_next_upstream", and "uwsgi_next_upstream" directives.
5060</para>
5061</change>
5062
5063<change type="feature">
5064<para lang="ru">
5065директивы allow и deny теперь поддерживают unix domain сокеты.
5066</para>
5067<para lang="en">
5068the "allow" and "deny" directives now support unix domain sockets.
5069</para>
5070</change>
5071
5072<change type="bugfix">
5073<para lang="ru">
5074nginx не собирался с модулем ngx_mail_ssl_module,
5075но без модуля ngx_http_ssl_module;
5076ошибка появилась в 1.3.14.
5077</para>
5078<para lang="en">
5079nginx could not be built with the ngx_mail_ssl_module,
5080but without ngx_http_ssl_module;
5081the bug had appeared in 1.3.14.
5082</para>
5083</change>
5084
5085<change type="bugfix">
5086<para lang="ru">
5087в директиве proxy_set_body.<br/>
5088Спасибо Lanshun Zhou.
5089</para>
5090<para lang="en">
5091in the "proxy_set_body" directive.<br/>
5092Thanks to Lanshun Zhou.
5093</para>
5094</change>
5095
5096<change type="bugfix">
5097<para lang="ru">
5098в директиве lingering_time.<br/>
5099Спасибо Lanshun Zhou.
5100</para>
5101<para lang="en">
5102in the "lingering_time" directive.<br/>
5103Thanks to Lanshun Zhou.
5104</para>
5105</change>
5106
5107<change type="bugfix">
5108<para lang="ru">
5109параметр fail_timeout директивы server
5110в блоке upstream мог не работать,
5111если использовался параметр max_fails;
5112ошибка появилась в 1.3.0.
5113</para>
5114<para lang="en">
5115the "fail_timeout" parameter of the "server" directive
5116in the "upstream" context might not work
5117if "max_fails" parameter was used;
5118the bug had appeared in 1.3.0.
5119</para>
5120</change>
5121
5122<change type="bugfix">
5123<para lang="ru">
5124в рабочем процессе мог произойти segmentation fault,
5125если использовалась директива ssl_stapling.<br/>
5126Спасибо Piotr Sikora.
5127</para>
5128<para lang="en">
5129a segmentation fault might occur in a worker process
5130if the "ssl_stapling" directive was used.<br/>
5131Thanks to Piotr Sikora.
5132</para>
5133</change>
5134
5135<change type="bugfix">
5136<para lang="ru">
5137в почтовом прокси-сервере.<br/>
5138Спасибо Filipe Da Silva.
5139</para>
5140<para lang="en">
5141in the mail proxy server.<br/>
5142Thanks to Filipe Da Silva.
5143</para>
5144</change>
5145
5146<change type="bugfix">
5147<para lang="ru">
5148nginx/Windows мог перестать принимать соединения,
5149если использовалось несколько рабочих процессов.
5150</para>
5151<para lang="en">
5152nginx/Windows might stop accepting connections
5153if several worker processes were used.
5154</para>
5155</change>
5156
5157</changes>
5158
5159
5160<changes ver="1.5.0" date="2013-05-07">
5161
5162<change type="security">
5163<para lang="ru">
5164при обработке специально созданного запроса
5165мог перезаписываться стек рабочего процесса,
5166что могло приводить к выполнению произвольного кода (CVE-2013-2028);
5167ошибка появилась в 1.3.9.<br/>
5168Спасибо Greg MacManus, iSIGHT Partners Labs.
5169</para>
5170<para lang="en">
5171a stack-based buffer overflow might occur in a worker process
5172while handling a specially crafted request,
5173potentially resulting in arbitrary code execution (CVE-2013-2028);
5174the bug had appeared in 1.3.9.<br/>
5175Thanks to Greg MacManus, iSIGHT Partners Labs.
5176</para>
5177</change>
5178
5179</changes>
5180
5181
5182<changes ver="1.4.0" date="2013-04-24">
5183
5184<change type="bugfix">
5185<para lang="ru">
5186nginx не собирался с модулем ngx_http_perl_module,
5187если использовался параметр --with-openssl;
5188ошибка появилась в 1.3.16.
5189</para>
5190<para lang="en">
5191nginx could not be built with the ngx_http_perl_module
5192if the --with-openssl option was used;
5193the bug had appeared in 1.3.16.
5194</para>
5195</change>
5196
5197<change type="bugfix">
5198<para lang="ru">
5199в работе с телом запроса из модуля ngx_http_perl_module;
5200ошибка появилась в 1.3.9.
5201</para>
5202<para lang="en">
5203in a request body handling in the ngx_http_perl_module;
5204the bug had appeared in 1.3.9.
5205</para>
5206</change>
5207
5208</changes>
5209
5210
5211<changes ver="1.3.16" date="2013-04-16">
5212
5213<change type="bugfix">
5214<para lang="ru">
5215в рабочем процессе мог произойти segmentation fault,
5216если использовались подзапросы;
5217ошибка появилась в 1.3.9.
5218</para>
5219<para lang="en">
5220a segmentation fault might occur in a worker process
5221if subrequests were used;
5222the bug had appeared in 1.3.9.
5223</para>
5224</change>
5225
5226<change type="bugfix">
5227<para lang="ru">
5228директива tcp_nodelay вызывала ошибку
5229при проксировании WebSocket-соединений в unix domain сокет.
5230</para>
5231<para lang="en">
5232the "tcp_nodelay" directive caused an error
5233if a WebSocket connection was proxied into a unix domain socket.
5234</para>
5235</change>
5236
5237<change type="bugfix">
5238<para lang="ru">
5239переменная $upstream_response_length возвращала значение "0",
5240если не использовалась буферизация.<br/>
5241Спасибо Piotr Sikora.
5242</para>
5243<para lang="en">
5244the $upstream_response_length variable has an incorrect value "0"
5245if buffering was not used.<br/>
5246Thanks to Piotr Sikora.
5247</para>
5248</change>
5249
5250<change type="bugfix">
5251<para lang="ru">
5252в методах обработки соединений eventport и /dev/poll.
5253</para>
5254<para lang="en">
5255in the eventport and /dev/poll methods.
5256</para>
5257</change>
5258
5259</changes>
5260
5261
5262<changes ver="1.3.15" date="2013-03-26">
5263
5264<change type="change">
5265<para lang="ru">
5266открытие и закрытие соединения без отправки в нём каких-либо данных
5267больше не записывается в access_log с кодом ошибки 400.
5268</para>
5269<para lang="en">
5270opening and closing a connection without sending any data in it
5271is no longer logged to access_log with error code 400.
5272</para>
5273</change>
5274
5275<change type="feature">
5276<para lang="ru">
5277модуль ngx_http_spdy_module.<br/>
5278Спасибо Automattic за спонсирование разработки.
5279</para>
5280<para lang="en">
5281the ngx_http_spdy_module.<br/>
5282Thanks to Automattic for sponsoring this work.
5283</para>
5284</change>
5285
5286<change type="feature">
5287<para lang="ru">
5288директивы limit_req_status и limit_conn_status.<br/>
5289Спасибо Nick Marden.
5290</para>
5291<para lang="en">
5292the "limit_req_status" and "limit_conn_status" directives.<br/>
5293Thanks to Nick Marden.
5294</para>
5295</change>
5296
5297<change type="feature">
5298<para lang="ru">
5299директива image_filter_interlace.<br/>
5300Спасибо Ивану Боброву.
5301</para>
5302<para lang="en">
5303the "image_filter_interlace" directive.<br/>
5304Thanks to Ian Babrou.
5305</para>
5306</change>
5307
5308<change type="feature">
5309<para lang="ru">
5310переменная $connections_waiting в модуле ngx_http_stub_status_module.
5311</para>
5312<para lang="en">
5313$connections_waiting variable in the ngx_http_stub_status_module.
5314</para>
5315</change>
5316
5317<change type="feature">
5318<para lang="ru">
5319теперь почтовый прокси-сервер поддерживает IPv6-бэкенды.
5320</para>
5321<para lang="en">
5322the mail proxy module now supports IPv6 backends.
5323</para>
5324</change>
5325
5326<change type="bugfix">
5327<para lang="ru">
5328при повторной отправке запроса на бэкенд
5329тело запроса могло передаваться неправильно;
5330ошибка появилась в 1.3.9.<br/>
5331Спасибо Piotr Sikora.
5332</para>
5333<para lang="en">
5334request body might be transmitted incorrectly
5335when retrying a request to the next upstream server;
5336the bug had appeared in 1.3.9.<br/>
5337Thanks to Piotr Sikora.
5338</para>
5339</change>
5340
5341<change type="bugfix">
5342<para lang="ru">
5343в директиве client_body_in_file_only;
5344ошибка появилась в 1.3.9.
5345</para>
5346<para lang="en">
5347in the "client_body_in_file_only" directive;
5348the bug had appeared in 1.3.9.
5349</para>
5350</change>
5351
5352<change type="bugfix">
5353<para lang="ru">
5354ответы могли зависать,
5355если использовались подзапросы
5356и при обработке подзапроса происходила DNS-ошибка.<br/>
5357Спасибо Lanshun Zhou.
5358</para>
5359<para lang="en">
5360responses might hang
5361if subrequests were used
5362and a DNS error happened during subrequest processing.<br/>
5363Thanks to Lanshun Zhou.
5364</para>
5365</change>
5366
5367<change type="bugfix">
5368<para lang="ru">
5369в процедуре учёта использования бэкендов.
5370</para>
5371<para lang="en">
5372in backend usage accounting.
5373</para>
5374</change>
5375
5376</changes>
5377
5378
5379<changes ver="1.3.14" date="2013-03-05">
5380
5381<change type="feature">
5382<para lang="ru">
5383переменные $connections_active, $connections_reading и $connections_writing
5384в модуле ngx_http_stub_status_module.
5385</para>
5386<para lang="en">
5387$connections_active, $connections_reading, and $connections_writing variables
5388in the ngx_http_stub_status_module.
5389</para>
5390</change>
5391
5392<change type="feature">
5393<para lang="ru">
5394поддержка WebSocket-соединений
5395в модулях ngx_http_uwsgi_module и ngx_http_scgi_module.
5396</para>
5397<para lang="en">
5398support of WebSocket connections
5399in the ngx_http_uwsgi_module and ngx_http_scgi_module.
5400</para>
5401</change>
5402
5403<change type="bugfix">
5404<para lang="ru">
5405в обработке виртуальных серверов при использовании SNI.
5406</para>
5407<para lang="en">
5408in virtual servers handling with SNI.
5409</para>
5410</change>
5411
5412<change type="bugfix">
5413<para lang="ru">
5414при использовании директивы "ssl_session_cache shared"
5415новые сессии могли не сохраняться,
5416если заканчивалось место в разделяемой памяти.<br/>
5417Спасибо Piotr Sikora.
5418</para>
5419<para lang="en">
5420new sessions were not always stored
5421if the "ssl_session_cache shared" directive was used
5422and there was no free space in shared memory.<br/>
5423Thanks to Piotr Sikora.
5424</para>
5425</change>
5426
5427<change type="bugfix">
5428<para lang="ru">
5429несколько заголовков X-Forwarded-For обрабатывались неправильно.<br/>
5430Спасибо Neal Poole за спонсирование разработки.
5431</para>
5432<para lang="en">
5433multiple X-Forwarded-For headers were handled incorrectly.<br/>
5434Thanks to Neal Poole for sponsoring this work.
5435</para>
5436</change>
5437
5438<change type="bugfix">
5439<para lang="ru">
5440в модуле ngx_http_mp4_module.<br/>
5441Спасибо Gernot Vormayr.
5442</para>
5443<para lang="en">
5444in the ngx_http_mp4_module.<br/>
5445Thanks to Gernot Vormayr.
5446</para>
5447</change>
5448
5449</changes>
5450
5451
5452<changes ver="1.3.13" date="2013-02-19">
5453
5454<change type="change">
5455<para lang="ru">
5456теперь для сборки по умолчанию используется компилятор с именем "cc".
5457</para>
5458<para lang="en">
5459a compiler with name "cc" is now used by default.
5460</para>
5461</change>
5462
5463<change type="feature">
5464<para lang="ru">
5465поддержка проксирования WebSocket-соединений.<br/>
5466Спасибо Apcera и CloudBees за спонсирование разработки.
5467</para>
5468<para lang="en">
5469support for proxying of WebSocket connections.<br/>
5470Thanks to Apcera and CloudBees for sponsoring this work.
5471</para>
5472</change>
5473
5474<change type="feature">
5475<para lang="ru">
5476директива auth_basic_user_file поддерживает шифрование паролей
5477методом "{SHA}".<br/>
5478Спасибо Louis Opter.
5479</para>
5480<para lang="en">
5481the "auth_basic_user_file" directive supports "{SHA}"
5482password encryption method.<br/>
5483Thanks to Louis Opter.
5484</para>
5485</change>
5486
5487</changes>
5488
5489
5490<changes ver="1.3.12" date="2013-02-05">
5491
5492<change type="feature">
5493<para lang="ru">
5494директивы proxy_bind, fastcgi_bind, memcached_bind, scgi_bind и uwsgi_bind
5495поддерживают переменные.
5496</para>
5497<para lang="en">
5498variables support in the "proxy_bind", "fastcgi_bind", "memcached_bind",
5499"scgi_bind", and "uwsgi_bind" directives.
5500</para>
5501</change>
5502
5503<change type="feature">
5504<para lang="ru">
5505переменные $pipe, $request_length, $time_iso8601 и $time_local
5506теперь можно использовать не только в директиве log_format.<br/>
5507Спасибо Kiril Kalchev.
5508</para>
5509<para lang="en">
5510the $pipe, $request_length, $time_iso8601, and $time_local variables
5511can now be used not only in the "log_format" directive.
5512Thanks to Kiril Kalchev.
5513</para>
5514</change>
5515
5516<change type="feature">
5517<para lang="ru">
5518поддержка IPv6 в модуле ngx_http_geoip_module.<br/>
5519Спасибо Gregor Kališnik.
5520</para>
5521<para lang="en">
5522IPv6 support in the ngx_http_geoip_module.<br/>
5523Thanks to Gregor Kališnik.
5524</para>
5525</change>
5526
5527<change type="bugfix">
5528<para lang="ru">
5529директива proxy_method работала неверно, если была указана на уровне http.
5530</para>
5531<para lang="en">
5532in the "proxy_method" directive.
5533</para>
5534</change>
5535
5536<change type="bugfix">
5537<para lang="ru">
5538в рабочем процессе мог произойти segmentation fault,
5539если использовался resolver и метод poll.
5540</para>
5541<para lang="en">
5542a segmentation fault might occur in a worker process
5543if resolver was used with the poll method.
5544</para>
5545</change>
5546
5547<change type="bugfix">
5548<para lang="ru">
5549nginx мог нагружать процессор во время SSL handshake с бэкендом
5550при использовании методов обработки соединений select, poll и /dev/poll.
5551</para>
5552<para lang="en">
5553nginx might hog CPU during SSL handshake with a backend
5554if the select, poll, or /dev/poll methods were used.
5555</para>
5556</change>
5557
5558<change type="bugfix">
5559<para lang="ru">
5560ошибка "[crit] SSL_write() failed (SSL:)".
5561</para>
5562<para lang="en">
5563the "[crit] SSL_write() failed (SSL:)" error.
5564</para>
5565</change>
5566
5567<change type="bugfix">
5568<para lang="ru">
5569в директиве client_body_in_file_only;
5570ошибка появилась в 1.3.9.
5571</para>
5572<para lang="en">
5573in the "client_body_in_file_only" directive;
5574the bug had appeared in 1.3.9.
5575</para>
5576</change>
5577
5578<change type="bugfix">
5579<para lang="ru">
5580в директиве fastcgi_keep_conn.
5581</para>
5582<para lang="en">
5583in the "fastcgi_keep_conn" directive.
5584</para>
5585</change>
5586
5587</changes>
5588
5589
5590<changes ver="1.3.11" date="2013-01-10">
5591
5592<change type="bugfix">
5593<para lang="ru">
5594при записи в лог мог происходить segmentation fault;
5595ошибка появилась в 1.3.10.
5596</para>
5597<para lang="en">
5598a segmentation fault might occur if logging was used;
5599the bug had appeared in 1.3.10.
5600</para>
5601</change>
5602
5603<change type="bugfix">
5604<para lang="ru">
5605директива proxy_pass не работала с IP-адресами
5606без явного указания порта;
5607ошибка появилась в 1.3.10.
5608</para>
5609<para lang="en">
5610the "proxy_pass" directive did not work with IP addresses
5611without port specified;
5612the bug had appeared in 1.3.10.
5613</para>
5614</change>
5615
5616<change type="bugfix">
5617<para lang="ru">
5618на старте или во время переконфигурации происходил segmentation fault,
5619если директива keepalive была указана несколько раз
5620в одном блоке upstream.
5621</para>
5622<para lang="en">
5623a segmentation fault occurred on start or during reconfiguration
5624if the "keepalive" directive was specified more than once
5625in a single upstream block.
5626</para>
5627</change>
5628
5629<change type="bugfix">
5630<para lang="ru">
5631параметр default директивы geo не определял значение по умолчанию
5632для IPv6-адресов.
5633</para>
5634<para lang="en">
5635parameter "default" of the "geo" directive did not set default value
5636for IPv6 addresses.
5637</para>
5638</change>
5639
5640</changes>
5641
5642
5643<changes ver="1.3.10" date="2012-12-25">
5644
5645<change type="change">
5646<para lang="ru">
5647для указанных в конфигурационном файле доменных имён теперь
5648используются не только IPv4, но и IPv6 адреса.
5649</para>
5650<para lang="en">
5651domain names specified in configuration file
5652are now resolved to IPv6 addresses as well as IPv4 ones.
5653</para>
5654</change>
5655
5656<change type="change">
5657<para lang="ru">
5658теперь при использовании директивы include с маской на Unix-системах
5659включаемые файлы сортируются в алфавитном порядке.
5660</para>
5661<para lang="en">
5662now if the "include" directive with mask is used on Unix systems,
5663included files are sorted in alphabetical order.
5664</para>
5665</change>
5666
5667<change type="change">
5668<para lang="ru">
5669директива add_header добавляет строки в ответы с кодом 201.
5670</para>
5671<para lang="en">
5672the "add_header" directive adds headers to 201 responses.
5673</para>
5674</change>
5675
5676<change type="feature">
5677<para lang="ru">
5678директива geo теперь поддерживает IPv6 адреса в формате CIDR.
5679</para>
5680<para lang="en">
5681the "geo" directive now supports IPv6 addresses in CIDR notation.
5682</para>
5683</change>
5684
5685<change type="feature">
5686<para lang="ru">
5687параметры flush и gzip в директиве access_log.
5688</para>
5689<para lang="en">
5690the "flush" and "gzip" parameters of the "access_log" directive.
5691</para>
5692</change>
5693
5694<change type="feature">
5695<para lang="ru">
5696директива auth_basic поддерживает переменные.
5697</para>
5698<para lang="en">
5699variables support in the "auth_basic" directive.
5700</para>
5701</change>
5702
5703<change type="bugfix">
5704<para lang="ru">
5705nginx в некоторых случаях не собирался с модулем ngx_http_perl_module.
5706</para>
5707<para lang="en">
5708nginx could not be built with the ngx_http_perl_module in some cases.
5709</para>
5710</change>
5711
5712<change type="bugfix">
5713<para lang="ru">
5714в рабочем процессе мог произойти segmentation fault,
5715если использовался модуль ngx_http_xslt_module.
5716</para>
5717<para lang="en">
5718a segmentation fault might occur in a worker process
5719if the ngx_http_xslt_module was used.
5720</para>
5721</change>
5722
5723<change type="bugfix">
5724<para lang="ru">
5725nginx мог не собираться на MacOSX.<br/>
5726Спасибо Piotr Sikora.
5727</para>
5728<para lang="en">
5729nginx could not be built on MacOSX in some cases.<br/>
5730Thanks to Piotr Sikora.
5731</para>
5732</change>
5733
5734<change type="bugfix">
5735<para lang="ru">
5736при использовании директивы limit_rate с большими значениями скорости
5737на 32-битных системах ответ мог возвращаться не целиком.<br/>
5738Спасибо Алексею Антропову.
5739</para>
5740<para lang="en">
5741the "limit_rate" directive with high rates
5742might result in truncated responses on 32-bit platforms.<br/>
5743Thanks to Alexey Antropov.
5744</para>
5745</change>
5746
5747<change type="bugfix">
5748<para lang="ru">
5749в рабочем процессе мог произойти segmentation fault,
5750если использовалась директива if.<br/>
5751Спасибо Piotr Sikora.
5752</para>
5753<para lang="en">
5754a segmentation fault might occur in a worker process
5755if the "if" directive was used.<br/>
5756Thanks to Piotr Sikora.
5757</para>
5758</change>
5759
5760<change type="bugfix">
5761<para lang="ru">
5762ответ "100 Continue" выдавался
5763вместе с ответом "413 Request Entity Too Large".
5764</para>
5765<para lang="en">
5766a "100 Continue" response was issued
5767with "413 Request Entity Too Large" responses.
5768</para>
5769</change>
5770
5771<change type="bugfix">
5772<para lang="ru">
5773директивы image_filter, image_filter_jpeg_quality и image_filter_sharpen
5774могли наследоваться некорректно.<br/>
5775Спасибо Ивану Боброву.
5776</para>
5777<para lang="en">
5778the "image_filter", "image_filter_jpeg_quality"
5779and "image_filter_sharpen" directives
5780might be inherited incorrectly.<br/>
5781Thanks to Ian Babrou.
5782</para>
5783</change>
5784
5785<change type="bugfix">
5786<para lang="ru">
5787при использовании директивы auth_basic под Linux
5788могли возникать ошибки "crypt_r() failed".
5789</para>
5790<para lang="en">
5791"crypt_r() failed" errors might appear
5792if the "auth_basic" directive was used on Linux.
5793</para>
5794</change>
5795
5796<change type="bugfix">
5797<para lang="ru">
5798в обработке backup-серверов.<br/>
5799Спасибо Thomas Chen.
5800</para>
5801<para lang="en">
5802in backup servers handling.<br/>
5803Thanks to Thomas Chen.
5804</para>
5805</change>
5806
5807<change type="bugfix">
5808<para lang="ru">
5809при проксировании HEAD-запросов мог возвращаться некорректный ответ,
5810если использовалась директива gzip.
5811</para>
5812<para lang="en">
5813proxied HEAD requests might return incorrect response
5814if the "gzip" directive was used.
5815</para>
5816</change>
5817
5818</changes>
5819
5820
5821<changes ver="1.3.9" date="2012-11-27">
5822
5823<change type="feature">
5824<para lang="ru">
5825поддержка chunked transfer encoding при получении тела запроса.
5826</para>
5827<para lang="en">
5828support for chunked transfer encoding while reading client request body.
5829</para>
5830</change>
5831
5832<change type="feature">
5833<para lang="ru">
5834переменные $request_time и $msec
5835теперь можно использовать не только в директиве log_format.
5836</para>
5837<para lang="en">
5838the $request_time and $msec variables
5839can now be used not only in the "log_format" directive.
5840</para>
5841</change>
5842
5843<change type="bugfix">
5844<para lang="ru">
5845cache manager и cache loader могли не запускаться,
5846если использовалось более 512 listen-сокетов.
5847</para>
5848<para lang="en">
5849cache manager and cache loader processes might not be able to start
5850if more than 512 listen sockets were used.
5851</para>
5852</change>
5853
5854<change type="bugfix">
5855<para lang="ru">
5856в модуле ngx_http_dav_module.
5857</para>
5858<para lang="en">
5859in the ngx_http_dav_module.
5860</para>
5861</change>
5862
5863</changes>
5864
5865
5866<changes ver="1.3.8" date="2012-10-30">
5867
5868<change type="feature">
5869<para lang="ru">
5870параметр optional_no_ca директивы ssl_verify_client.<br/>
5871Спасибо Михаилу Казанцеву и Eric O'Connor.
5872</para>
5873<para lang="en">
5874the "optional_no_ca" parameter of the "ssl_verify_client" directive.<br/>
5875Thanks to Mike Kazantsev and Eric O'Connor.
5876</para>
5877</change>
5878
5879<change type="feature">
5880<para lang="ru">
5881переменные $bytes_sent, $connection и $connection_requests
5882теперь можно использовать не только в директиве log_format.<br/>
5883Спасибо Benjamin Grössing.
5884</para>
5885<para lang="en">
5886the $bytes_sent, $connection, and $connection_requests variables
5887can now be used not only in the "log_format" directive.<br/>
5888Thanks to Benjamin Grössing.
5889</para>
5890</change>
5891
5892<change type="feature">
5893<para lang="ru">
5894параметр auto директивы worker_processes.
5895</para>
5896<para lang="en">
5897the "auto" parameter of the "worker_processes" directive.
5898</para>
5899</change>
5900
5901<change type="bugfix">
5902<para lang="ru">
5903сообщения "cache file ... has md5 collision".
5904</para>
5905<para lang="en">
5906"cache file ... has md5 collision" alert.
5907</para>
5908</change>
5909
5910<change type="bugfix">
5911<para lang="ru">
5912в модуле ngx_http_gunzip_filter_module.
5913</para>
5914<para lang="en">
5915in the ngx_http_gunzip_filter_module.
5916</para>
5917</change>
5918
5919<change type="bugfix">
5920<para lang="ru">
5921в директиве ssl_stapling.
5922</para>
5923<para lang="en">
5924in the "ssl_stapling" directive.
5925</para>
5926</change>
5927
5928</changes>
5929
5930
5931<changes ver="1.3.7" date="2012-10-02">
5932
5933<change type="feature">
5934<para lang="ru">
5935поддержка OCSP stapling.<br/>
5936Спасибо Comodo, DigiCert и GlobalSign за спонсирование разработки.
5937</para>
5938<para lang="en">
5939OCSP stapling support.<br/>
5940Thanks to Comodo, DigiCert and GlobalSign for sponsoring this work.
5941</para>
5942</change>
5943
5944<change type="feature">
5945<para lang="ru">
5946директива ssl_trusted_certificate.
5947</para>
5948<para lang="en">
5949the "ssl_trusted_certificate" directive.
5950</para>
5951</change>
5952
5953<change type="feature">
5954<para lang="ru">
5955теперь resolver случайным образом меняет порядок
5956возвращаемых закэшированных адресов.<br/>
5957Спасибо Антону Жулину.
5958</para>
5959<para lang="en">
5960resolver now randomly rotates addresses
5961returned from cache.<br/>
5962Thanks to Anton Jouline.
5963</para>
5964</change>
5965
5966<change type="bugfix">
5967<para lang="ru">
5968совместимость с OpenSSL 0.9.7.
5969</para>
5970<para lang="en">
5971OpenSSL 0.9.7 compatibility.
5972</para>
5973</change>
5974
5975</changes>
5976
5977
5978<changes ver="1.3.6" date="2012-09-12">
5979
5980<change type="feature">
5981<para lang="ru">
5982модуль ngx_http_gunzip_filter_module.
5983</para>
5984<para lang="en">
5985the ngx_http_gunzip_filter_module.
5986</para>
5987</change>
5988
5989<change type="feature">
5990<para lang="ru">
5991директива memcached_gzip_flag.
5992</para>
5993<para lang="en">
5994the "memcached_gzip_flag" directive.
5995</para>
5996</change>
5997
5998<change type="feature">
5999<para lang="ru">
6000параметр always директивы gzip_static.
6001</para>
6002<para lang="en">
6003the "always" parameter of the "gzip_static" directive.
6004</para>
6005</change>
6006
6007<change type="bugfix">
6008<para lang="ru">
6009в директиве "limit_req";
6010ошибка появилась в 1.1.14.<br/>
6011Спасибо Charles Chen.
6012</para>
6013<para lang="en">
6014in the "limit_req" directive;
6015the bug had appeared in 1.1.14.<br/>
6016Thanks to Charles Chen.
6017</para>
6018</change>
6019
6020<change type="bugfix">
6021<para lang="ru">
6022nginx не собирался gcc 4.7 с оптимизацией -O2
6023если использовался параметр --with-ipv6.
6024</para>
6025<para lang="en">
6026nginx could not be built by gcc 4.7 with -O2 optimization
6027if the --with-ipv6 option was used.
6028</para>
6029</change>
6030
6031</changes>
6032
6033
6034<changes ver="1.3.5" date="2012-08-21">
6035
6036<change type="change">
6037<para lang="ru">
6038модуль ngx_http_mp4_module больше не отфильтровывает дорожки
6039в форматах, отличных от H.264 и AAC.
6040</para>
6041<para lang="en">
6042the ngx_http_mp4_module module no longer skips
6043tracks in formats other than H.264 and AAC.
6044</para>
6045</change>
6046
6047<change type="bugfix">
6048<para lang="ru">
6049в рабочем процессе мог произойти segmentation fault,
6050если в директиве map в качестве значений использовались переменные.
6051</para>
6052<para lang="en">
6053a segmentation fault might occur in a worker process
6054if the "map" directive was used with variables as values.
6055</para>
6056</change>
6057
6058<change type="bugfix">
6059<para lang="ru">
6060в рабочем процессе мог произойти segmentation fault
6061при использовании директивы geo с параметром ranges,
6062но без параметра default; ошибка появилась в 0.8.43.<br/>
6063Спасибо Zhen Chen и Weibin Yao.
6064</para>
6065<para lang="en">
6066a segmentation fault might occur in a worker process
6067if the "geo" directive was used with the "ranges" parameter
6068but without the "default" parameter; the bug had appeared in 0.8.43.<br/>
6069Thanks to Zhen Chen and Weibin Yao.
6070</para>
6071</change>
6072
6073<change type="bugfix">
6074<para lang="ru">
6075в обработке параметра командной строки -p.
6076</para>
6077<para lang="en">
6078in the -p command-line parameter handling.
6079</para>
6080</change>
6081
6082<change type="bugfix">
6083<para lang="ru">
6084в почтовом прокси-сервере.
6085</para>
6086<para lang="en">
6087in the mail proxy server.
6088</para>
6089</change>
6090
6091<change type="bugfix">
6092<para lang="ru">
6093незначительных потенциальных ошибок.<br/>
6094Спасибо Coverity.
6095</para>
6096<para lang="en">
6097of minor potential bugs.<br/>
6098Thanks to Coverity.
6099</para>
6100</change>
6101
6102<change type="bugfix">
6103<para lang="ru">
6104nginx/Windows не собирался с Visual Studio 2005 Express.<br/>
6105Спасибо HAYASHI Kentaro.
6106</para>
6107<para lang="en">
6108nginx/Windows could not be built with Visual Studio 2005 Express.<br/>
6109Thanks to HAYASHI Kentaro.
6110</para>
6111</change>
6112
6113</changes>
6114
6115
6116<changes ver="1.3.4" date="2012-07-31">
6117
6118<change type="change">
6119<para lang="ru">
6120теперь на слушающих IPv6-сокетах параметр ipv6only
6121включён по умолчанию.
6122</para>
6123<para lang="en">
6124the "ipv6only" parameter is now turned on by default for
6125listening IPv6 sockets.
6126</para>
6127</change>
6128
6129<change type="feature">
6130<para lang="ru">
6131поддержка компилятора Clang.
6132</para>
6133<para lang="en">
6134the Clang compiler support.
6135</para>
6136</change>
6137
6138<change type="bugfix">
6139<para lang="ru">
6140могли создаваться лишние слушающие сокеты.<br/>
6141Спасибо Роману Одайскому.
6142</para>
6143<para lang="en">
6144extra listening sockets might be created.<br/>
6145Thanks to Roman Odaisky.
6146</para>
6147</change>
6148
6149<change type="bugfix">
6150<para lang="ru">
6151nginx/Windows мог нагружать процессор, если при запуске рабочего процесса
6152происходила ошибка.<br/>
6153Спасибо Ricardo Villalobos Guevara.
6154</para>
6155<para lang="en">
6156nginx/Windows might hog CPU if a worker process failed to start.<br/>
6157Thanks to Ricardo Villalobos Guevara.
6158</para>
6159</change>
6160
6161<change type="bugfix">
6162<para lang="ru">
6163директивы proxy_pass_header, fastcgi_pass_header, scgi_pass_header,
6164uwsgi_pass_header, proxy_hide_header, fastcgi_hide_header,
6165scgi_hide_header и uwsgi_hide_header
6166могли наследоваться некорректно.
6167</para>
6168<para lang="en">
6169the "proxy_pass_header", "fastcgi_pass_header", "scgi_pass_header",
6170"uwsgi_pass_header", "proxy_hide_header", "fastcgi_hide_header",
6171"scgi_hide_header", and "uwsgi_hide_header" directives
6172might be inherited incorrectly.
6173</para>
6174</change>
6175
6176</changes>
6177
6178
6179<changes ver="1.3.3" date="2012-07-10">
6180
6181<change type="feature">
6182<para lang="ru">
6183поддержка entity tags и директива etag.
6184</para>
6185<para lang="en">
6186entity tags support and the "etag" directive.
6187</para>
6188</change>
6189
6190<change type="bugfix">
6191<para lang="ru">
6192при использовании директивы map с параметром hostnames
6193не игнорировалась конечная точка в исходном значении.
6194</para>
6195<para lang="en">
6196trailing dot in a source value was not ignored
6197if the "map" directive was used with the "hostnames" parameter.
6198</para>
6199</change>
6200
6201<change type="bugfix">
6202<para lang="ru">
6203для обработки запроса мог использоваться неверный location,
6204если переход в именованный location происходил
6205после изменения URI с помощью директивы rewrite.
6206</para>
6207<para lang="en">
6208incorrect location might be used to process a request
6209if a URI was changed via a "rewrite" directive
6210before an internal redirect to a named location.
6211</para>
6212</change>
6213
6214</changes>
6215
6216
6217<changes ver="1.3.2" date="2012-06-26">
6218
6219<change type="change">
6220<para lang="ru">
6221параметр single директивы keepalive теперь игнорируется.
6222</para>
6223<para lang="en">
6224the "single" parameter of the "keepalive" directive is now ignored.
6225</para>
6226</change>
6227
6228<change type="change">
6229<para lang="ru">
6230сжатие SSL теперь отключено
6231в том числе при использовании OpenSSL старее 1.0.0.
6232</para>
6233<para lang="en">
6234SSL compression is now disabled when using all versions of OpenSSL,
6235including ones prior to 1.0.0.
6236</para>
6237</change>
6238
6239<change type="feature">
6240<para lang="ru">
6241директиву "ip_hash" теперь можно использовать для балансировки IPv6 клиентов.
6242</para>
6243<para lang="en">
6244it is now possible to use the "ip_hash" directive to balance IPv6 clients.
6245</para>
6246</change>
6247
6248<change type="feature">
6249<para lang="ru">
6250переменную $status теперь можно использовать не только в директиве log_format.
6251</para>
6252<para lang="en">
6253the $status variable can now be used not only in the "log_format" directive.
6254</para>
6255</change>
6256
6257<change type="bugfix">
6258<para lang="ru">
6259при завершении рабочего процесса мог произойти segmentation fault,
6260если использовалась директива resolver.
6261</para>
6262<para lang="en">
6263a segmentation fault might occur in a worker process on shutdown
6264if the "resolver" directive was used.
6265</para>
6266</change>
6267
6268<change type="bugfix">
6269<para lang="ru">
6270в рабочем процессе мог произойти segmentation fault,
6271если использовался модуль ngx_http_mp4_module.
6272</para>
6273<para lang="en">
6274a segmentation fault might occur in a worker process
6275if the ngx_http_mp4_module was used.
6276</para>
6277</change>
6278
6279<change type="bugfix">
6280<para lang="ru">
6281в модуле ngx_http_mp4_module.
6282</para>
6283<para lang="en">
6284in the ngx_http_mp4_module.
6285</para>
6286</change>
6287
6288<change type="bugfix">
6289<para lang="ru">
6290в рабочем процессе мог произойти segmentation fault,
6291если использовались конфликтующие имена серверов с масками.
6292</para>
6293<para lang="en">
6294a segmentation fault might occur in a worker process
6295if conflicting wildcard server names were used.
6296</para>
6297</change>
6298
6299<change type="bugfix">
6300<para lang="ru">
6301на платформе ARM nginx мог аварийно завершаться по сигналу SIGBUS.
6302</para>
6303<para lang="en">
6304nginx might be terminated abnormally on a SIGBUS signal on ARM platform.
6305</para>
6306</change>
6307
6308<change type="bugfix">
6309<para lang="ru">
6310во время переконфигурации на HP-UX в лог
6311записывался alert "sendmsg() failed (9: Bad file number)".
6312</para>
6313<para lang="en">
6314an alert "sendmsg() failed (9: Bad file number)" on HP-UX
6315while reconfiguration.
6316</para>
6317</change>
6318
6319</changes>
6320
6321
6322<changes ver="1.3.1" date="2012-06-05">
6323
6324<change type="security">
6325<para lang="ru">
6326теперь nginx/Windows игнорирует точку в конце компонента URI
6327и не разрешает URI, содержащие последовательность ":$".<br/>
6328Спасибо Владимиру Кочеткову, Positive Research Center.
6329</para>
6330<para lang="en">
6331now nginx/Windows ignores trailing dot in URI path component, and
6332does not allow URIs with ":$" in it.<br/>
6333Thanks to Vladimir Kochetkov, Positive Research Center.
6334</para>
6335</change>
6336
6337<change type="feature">
6338<para lang="ru">
6339директивы proxy_pass, fastcgi_pass, scgi_pass, uwsgi_pass и
6340директива server в блоке upstream
6341теперь поддерживают IPv6-адреса.
6342</para>
6343<para lang="en">
6344the "proxy_pass", "fastcgi_pass", "scgi_pass", "uwsgi_pass" directives, and
6345the "server" directive inside the "upstream" block,
6346now support IPv6 addresses.
6347</para>
6348</change>
6349
6350<change type="feature">
6351<para lang="ru">
6352в директиве resolver теперь можно указывать порт и
6353задавать IPv6-адреса DNS-серверов.
6354</para>
6355<para lang="en">
6356the "resolver" directive now supports IPv6 addresses and
6357an optional port specification.
6358</para>
6359</change>
6360
6361<change type="feature">
6362<para lang="ru">
6363директива least_conn в блоке upstream.
6364</para>
6365<para lang="en">
6366the "least_conn" directive inside the "upstream" block.
6367</para>
6368</change>
6369
6370<change type="feature">
6371<para lang="ru">
6372при использовании директивы ip_hash
6373теперь можно задавать веса серверов.
6374</para>
6375<para lang="en">
6376it is now possible to specify a weight for servers
6377while using the "ip_hash" directive.
6378</para>
6379</change>
6380
6381<change type="bugfix">
6382<para lang="ru">
6383в рабочем процессе мог произойти segmentation fault,
6384если использовалась директива image_filter;
6385ошибка появилась в 1.3.0.
6386</para>
6387<para lang="en">
6388a segmentation fault might occur in a worker process
6389if the "image_filter" directive was used;
6390the bug had appeared in 1.3.0.
6391</para>
6392</change>
6393
6394<change type="bugfix">
6395<para lang="ru">
6396nginx не собирался с модулем ngx_cpp_test_module;
6397ошибка появилась в 1.1.12.
6398</para>
6399<para lang="en">
6400nginx could not be built with ngx_cpp_test_module;
6401the bug had appeared in 1.1.12.
6402</para>
6403</change>
6404
6405<change type="bugfix">
6406<para lang="ru">
6407доступ к переменным из SSI и встроенного перла мог не работать после
6408переконфигурации.<br/>
6409Спасибо Yichun Zhang.
6410</para>
6411<para lang="en">
6412access to variables from SSI and embedded perl module might not work after
6413reconfiguration.<br/>
6414Thanks to Yichun Zhang.
6415</para>
6416</change>
6417
6418<change type="bugfix">
6419<para lang="ru">
6420в модуле ngx_http_xslt_filter_module.<br/>
6421Спасибо Kuramoto Eiji.
6422</para>
6423<para lang="en">
6424in the ngx_http_xslt_filter_module.<br/>
6425Thanks to Kuramoto Eiji.
6426</para>
6427</change>
6428
6429<change type="bugfix">
6430<para lang="ru">
6431утечки памяти при использовании переменной $geoip_org.<br/>
6432Спасибо Денису Латыпову.
6433</para>
6434<para lang="en">
6435memory leak if $geoip_org variable was used.<br/>
6436Thanks to Denis F. Latypoff.
6437</para>
6438</change>
6439
6440<change type="bugfix">
6441<para lang="ru">
6442в директивах proxy_cookie_domain и proxy_cookie_path.
6443</para>
6444<para lang="en">
6445in the "proxy_cookie_domain" and "proxy_cookie_path" directives.
6446</para>
6447</change>
6448
6449</changes>
6450
6451
6452<changes ver="1.3.0" date="2012-05-15">
6453
6454<change type="feature">
6455<para lang="ru">
6456директива debug_connection теперь поддерживает IPv6-адреса
6457и параметр "unix:".
6458</para>
6459<para lang="en">
6460the "debug_connection" directive now supports IPv6 addresses
6461and the "unix:" parameter.
6462</para>
6463</change>
6464
6465<change type="feature">
6466<para lang="ru">
6467директива set_real_ip_from и параметр proxy
6468директивы geo теперь поддерживают IPv6-адреса.
6469</para>
6470<para lang="en">
6471the "set_real_ip_from" directive and the "proxy" parameter
6472of the "geo" directive now support IPv6 addresses.
6473</para>
6474</change>
6475
6476<change type="feature">
6477<para lang="ru">
6478директивы real_ip_recursive, geoip_proxy и geoip_proxy_recursive.
6479</para>
6480<para lang="en">
6481the "real_ip_recursive", "geoip_proxy", and "geoip_proxy_recursive" directives.
6482</para>
6483</change>
6484
6485<change type="feature">
6486<para lang="ru">
6487параметр proxy_recursive директивы geo.
6488</para>
6489<para lang="en">
6490the "proxy_recursive" parameter of the "geo" directive.
6491</para>
6492</change>
6493
6494<change type="bugfix">
6495<para lang="ru">
6496в рабочем процессе мог произойти segmentation fault,
6497если использовалась директива resolver.
6498</para>
6499<para lang="en">
6500a segmentation fault might occur in a worker process
6501if the "resolver" directive was used.
6502</para>
6503</change>
6504
6505<change type="bugfix">
6506<para lang="ru">
6507в рабочем процессе мог произойти segmentation fault,
6508если использовались директивы fastcgi_pass, scgi_pass или uwsgi_pass
6509и бэкенд возвращал некорректный ответ.
6510</para>
6511<para lang="en">
6512a segmentation fault might occur in a worker process
6513if the "fastcgi_pass", "scgi_pass", or "uwsgi_pass" directives were used
6514and backend returned incorrect response.
6515</para>
6516</change>
6517
6518<change type="bugfix">
6519<para lang="ru">
6520в рабочем процессе мог произойти segmentation fault,
6521если использовалась директива rewrite и в новых аргументах запроса в строке
6522замены использовались переменные.
6523</para>
6524<para lang="en">
6525a segmentation fault might occur in a worker process
6526if the "rewrite" directive was used and new request arguments
6527in a replacement used variables.
6528</para>
6529</change>
6530
6531<change type="bugfix">
6532<para lang="ru">
6533nginx мог нагружать процессор,
6534если было достигнуто ограничение на количество открытых файлов.
6535</para>
6536<para lang="en">
6537nginx might hog CPU
6538if the open file resource limit was reached.
6539</para>
6540</change>
6541
6542<change type="bugfix">
6543<para lang="ru">
6544при использовании директивы proxy_next_upstream с параметром http_404
6545nginx мог бесконечно перебирать бэкенды, если в блоке upstream был
6546хотя бы один сервер с флагом backup.
6547</para>
6548<para lang="en">
6549nginx might loop infinitely over backends
6550if the "proxy_next_upstream" directive with the "http_404" parameter was used
6551and there were backup servers specified in an upstream block.
6552</para>
6553</change>
6554
6555<change type="bugfix">
6556<para lang="ru">
6557при использовании директивы ip_hash
6558установка параметра down директивы server
6559могла приводить к ненужному перераспределению клиентов между бэкендами.
6560</para>
6561<para lang="en">
6562adding the "down" parameter of the "server" directive
6563might cause unneeded client redistribution among backend servers
6564if the "ip_hash" directive was used.
6565</para>
6566</change>
6567
6568<change type="bugfix">
6569<para lang="ru">
6570утечки сокетов.<br/>
6571Спасибо Yichun Zhang.
6572</para>
6573<para lang="en">
6574socket leak.<br/>
6575Thanks to Yichun Zhang.
6576</para>
6577</change>
6578
6579<change type="bugfix">
6580<para lang="ru">
6581в модуле ngx_http_fastcgi_module.
6582</para>
6583<para lang="en">
6584in the ngx_http_fastcgi_module.
6585</para>
6586</change>
6587
6588</changes>
6589
6590
6591<changes ver="1.2.0" date="2012-04-23">
6592
6593<change type="bugfix">
6594<para lang="ru">
6595в рабочем процессе мог произойти segmentation fault,
6596если использовалась директива try_files;
6597ошибка появилась в 1.1.19.
6598</para>
6599<para lang="en">
6600a segmentation fault might occur in a worker process
6601if the "try_files" directive was used;
6602the bug had appeared in 1.1.19.
6603</para>
6604</change>
6605
6606<change type="bugfix">
6607<para lang="ru">
6608ответ мог быть передан не полностью,
6609если использовалось больше IOV_MAX буферов.
6610</para>
6611<para lang="en">
6612response might be truncated
6613if there were more than IOV_MAX buffers used.
6614</para>
6615</change>
6616
6617<change type="bugfix">
6618<para lang="ru">
6619в работе параметра crop директивы image_filter.<br/>
6620Спасибо Maxim Bublis.
6621</para>
6622<para lang="en">
6623in the "crop" parameter of the "image_filter" directive.<br/>
6624Thanks to Maxim Bublis.
6625</para>
6626</change>
6627
6628</changes>
6629
6630
6631<changes ver="1.1.19" date="2012-04-12">
6632
6633<change type="security">
6634<para lang="ru">
6635при обработке специально созданного mp4 файла модулем ngx_http_mp4_module
6636могли перезаписываться области памяти рабочего процесса, что могло
6637приводить к выполнению произвольного кода (CVE-2012-2089).<br/>
6638Спасибо Matthew Daley.
6639</para>
6640<para lang="en">
6641specially crafted mp4 file might allow to overwrite
6642memory locations in a worker process
6643if the ngx_http_mp4_module was used,
6644potentially resulting in arbitrary code execution (CVE-2012-2089).<br/>
6645Thanks to Matthew Daley.
6646</para>
6647</change>
6648
6649<change type="bugfix">
6650<para lang="ru">
6651nginx/Windows мог завершаться аварийно.<br/>
6652Спасибо Vincent Lee.
6653</para>
6654<para lang="en">
6655nginx/Windows might be terminated abnormally.<br/>
6656Thanks to Vincent Lee.
6657</para>
6658</change>
6659
6660<change type="bugfix">
6661<para lang="ru">
6662nginx нагружал процессор, если все серверы в upstream'е были помечены
6663флагом backup.
6664</para>
6665<para lang="en">
6666nginx hogged CPU if all servers in an upstream were marked as "backup".
6667</para>
6668</change>
6669
6670<change type="bugfix">
6671<para lang="ru">
6672директивы allow и deny могли наследоваться некорректно,
6673если в них использовались IPv6 адреса.
6674</para>
6675<para lang="en">
6676the "allow" and "deny" directives might be inherited incorrectly
6677if they were used with IPv6 addresses.
6678</para>
6679</change>
6680
6681<change type="bugfix">
6682<para lang="ru">
6683директивы modern_browser и ancient_browser
6684могли наследоваться некорректно.
6685</para>
6686<para lang="en">
6687the "modern_browser" and "ancient_browser" directives
6688might be inherited incorrectly.
6689</para>
6690</change>
6691
6692<change type="bugfix">
6693<para lang="ru">
6694таймауты могли работать некорректно на Solaris/SPARC.
6695</para>
6696<para lang="en">
6697timeouts might be handled incorrectly on Solaris/SPARC.
6698</para>
6699</change>
6700
6701<change type="bugfix">
6702<para lang="ru">
6703в модуле ngx_http_mp4_module.
6704</para>
6705<para lang="en">
6706in the ngx_http_mp4_module.
6707</para>
6708</change>
6709
6710</changes>
6711
6712
6713<changes ver="1.1.18" date="2012-03-28">
6714
6715<change type="change">
6716<para lang="ru">
6717теперь keepalive соединения не запрещены для Safari по умолчанию.
6718</para>
6719<para lang="en">
6720keepalive connections are no longer disabled for Safari by default.
6721</para>
6722</change>
6723
6724<change type="feature">
6725<para lang="ru">
6726переменная $connection_requests.
6727</para>
6728<para lang="en">
6729the $connection_requests variable.
6730</para>
6731</change>
6732
6733<change type="feature">
6734<para lang="ru">
6735переменные $tcpinfo_rtt, $tcpinfo_rttvar, $tcpinfo_snd_cwnd и
6736$tcpinfo_rcv_space.
6737</para>
6738<para lang="en">
6739$tcpinfo_rtt, $tcpinfo_rttvar, $tcpinfo_snd_cwnd and
6740$tcpinfo_rcv_space variables.
6741</para>
6742</change>
6743
6744<change type="feature">
6745<para lang="ru">
6746директива worker_cpu_affinity теперь работает на FreeBSD.
6747</para>
6748<para lang="en">
6749the "worker_cpu_affinity" directive now works on FreeBSD.
6750</para>
6751</change>
6752
6753<change type="feature">
6754<para lang="ru">
6755директивы xslt_param и xslt_string_param.<br/>
6756Спасибо Samuel Behan.
6757</para>
6758<para lang="en">
6759the "xslt_param" and "xslt_string_param" directives.<br/>
6760Thanks to Samuel Behan.
6761</para>
6762</change>
6763
6764<change type="bugfix">
6765<para lang="ru">
6766в configure.<br/>
6767Спасибо Piotr Sikora.
6768</para>
6769<para lang="en">
6770in configure tests.<br/>
6771Thanks to Piotr Sikora.
6772</para>
6773</change>
6774
6775<change type="bugfix">
6776<para lang="ru">
6777в модуле ngx_http_xslt_filter_module.
6778</para>
6779<para lang="en">
6780in the ngx_http_xslt_filter_module.
6781</para>
6782</change>
6783
6784<change type="bugfix">
6785<para lang="ru">
6786nginx не собирался на Debian GNU/Hurd.
6787</para>
6788<para lang="en">
6789nginx could not be built on Debian GNU/Hurd.
6790</para>
6791</change>
6792
6793</changes>
6794
6795
6796<changes ver="1.1.17" date="2012-03-15">
6797
6798<change type="security">
6799<para lang="ru">
6800содержимое ранее освобождённой памяти могло быть отправлено клиенту,
6801если бэкенд возвращал специально созданный ответ.<br/>
6802Спасибо Matthew Daley.
6803</para>
6804<para lang="en">
6805content of previously freed memory might be sent to a client
6806if backend returned specially crafted response.<br/>
6807Thanks to Matthew Daley.
6808</para>
6809</change>
6810
6811<change type="bugfix">
6812<para lang="ru">
6813при использовании встроенного перла из SSI.<br/>
6814Спасибо Matthew Daley.
6815</para>
6816<para lang="en">
6817in the embedded perl module if used from SSI.<br/>
6818Thanks to Matthew Daley.
6819</para>
6820</change>
6821
6822<change type="bugfix">
6823<para lang="ru">
6824в модуле ngx_http_uwsgi_module.
6825</para>
6826<para lang="en">
6827in the ngx_http_uwsgi_module.
6828</para>
6829</change>
6830
6831</changes>
6832
6833
6834<changes ver="1.1.16" date="2012-02-29">
6835
6836<change type="change">
6837<para lang="ru">
6838ограничение на количество одновременных подзапросов поднято до 200.
6839</para>
6840<para lang="en">
6841the simultaneous subrequest limit has been raised to 200.
6842</para>
6843</change>
6844
6845<change type="feature">
6846<para lang="ru">
6847параметр from в директиве disable_symlinks.
6848</para>
6849<para lang="en">
6850the "from" parameter of the "disable_symlinks" directive.
6851</para>
6852</change>
6853
6854<change type="feature">
6855<para lang="ru">
6856директивы return и error_page теперь могут использоваться для возврата
6857перенаправлений с кодом 307.
6858</para>
6859<para lang="en">
6860the "return" and "error_page" directives can now be used to return 307
6861redirections.
6862</para>
6863</change>
6864
6865<change type="bugfix">
6866<para lang="ru">
6867в рабочем процессе мог произойти segmentation fault,
6868если использовалась директива resolver
6869и на глобальном уровне не была задана директива error_log.<br/>
6870Спасибо Роману Арутюняну.
6871</para>
6872<para lang="en">
6873a segmentation fault might occur in a worker process
6874if the "resolver" directive was used
6875and there was no "error_log" directive specified at global level.<br/>
6876Thanks to Roman Arutyunyan.
6877</para>
6878</change>
6879
6880<change type="bugfix">
6881<para lang="ru">
6882в рабочем процессе мог произойти segmentation fault,
6883если использовались директивы "proxy_http_version 1.1" или
6884"fastcgi_keep_conn on".
6885</para>
6886<para lang="en">
6887a segmentation fault might occur in a worker process
6888if the "proxy_http_version 1.1" or "fastcgi_keep_conn on" directives
6889were used.
6890</para>
6891</change>
6892
6893<change type="bugfix">
6894<para lang="ru">
6895утечек памяти.<br/>
6896Спасибо Lanshun Zhou.
6897</para>
6898<para lang="en">
6899memory leaks.<br/>
6900Thanks to Lanshun Zhou.
6901</para>
6902</change>
6903
6904<change type="bugfix">
6905<para lang="ru">
6906в директиве disable_symlinks.
6907</para>
6908<para lang="en">
6909in the "disable_symlinks" directive.
6910</para>
6911</change>
6912
6913<change type="bugfix">
6914<para lang="ru">
6915при использовании ZFS размер кэша на диске мог считаться некорректно;
6916ошибка появилась в 1.0.1.
6917</para>
6918<para lang="en">
6919on ZFS filesystem disk cache size might be calculated incorrectly;
6920the bug had appeared in 1.0.1.
6921</para>
6922</change>
6923
6924<change type="bugfix">
6925<para lang="ru">
6926nginx не собирался компилятором icc 12.1.
6927</para>
6928<para lang="en">
6929nginx could not be built by the icc 12.1 compiler.
6930</para>
6931</change>
6932
6933<change type="bugfix">
6934<para lang="ru">
6935nginx не собирался gcc на Solaris;
6936ошибка появилась в 1.1.15.
6937</para>
6938<para lang="en">
6939nginx could not be built by gcc on Solaris;
6940the bug had appeared in 1.1.15.
6941</para>
6942</change>
6943
6944</changes>
6945
6946
6947<changes ver="1.1.15" date="2012-02-15">
6948
6949<change type="feature">
6950<para lang="ru">
6951директива disable_symlinks.
6952</para>
6953<para lang="en">
6954the "disable_symlinks" directive.
6955</para>
6956</change>
6957
6958<change type="feature">
6959<para lang="ru">
6960директивы proxy_cookie_domain и proxy_cookie_path.
6961</para>
6962<para lang="en">
6963the "proxy_cookie_domain" and "proxy_cookie_path" directives.
6964</para>
6965</change>
6966
6967<change type="bugfix">
6968<para lang="ru">
6969nginx мог некорректно сообщать об ошибке "upstream prematurely closed
6970connection" вместо "upstream sent too big header".<br/>
6971Спасибо Feibo Li.
6972</para>
6973<para lang="en">
6974nginx might log incorrect error "upstream prematurely closed connection"
6975instead of correct "upstream sent too big header" one.<br/>
6976Thanks to Feibo Li.
6977</para>
6978</change>
6979
6980<change type="bugfix">
6981<para lang="ru">
6982nginx не собирался с модулем ngx_http_perl_module,
6983если использовался параметр --with-openssl.
6984</para>
6985<para lang="en">
6986nginx could not be built with the ngx_http_perl_module
6987if the --with-openssl option was used.
6988</para>
6989</change>
6990
6991<change type="bugfix">
6992<para lang="ru">
6993количество внутренних перенаправлений в именованные location'ы
6994не ограничивалось.
6995</para>
6996<para lang="en">
6997the number of internal redirects to named locations was not limited.
6998</para>
6999</change>
7000
7001<change type="bugfix">
7002<para lang="ru">
7003вызов $r->flush() несколько раз подряд мог приводить к ошибкам
7004в модуле ngx_http_gzip_filter_module.
7005</para>
7006<para lang="en">
7007calling $r->flush() multiple times might cause errors
7008in the ngx_http_gzip_filter_module.
7009</para>
7010</change>
7011
7012<change type="bugfix">
7013<para lang="ru">
7014при использовании директивы proxy_store с SSI-подзапросами
7015временные файлы могли не удаляться.
7016</para>
7017<para lang="en">
7018temporary files might be not removed
7019if the "proxy_store" directive was used with SSI includes.
7020</para>
7021</change>
7022
7023<change type="bugfix">
7024<para lang="ru">
7025в некоторых случаях некэшируемые переменные (такие, как $args)
7026возвращали старое пустое закэшированное значение.
7027</para>
7028<para lang="en">
7029in some cases non-cacheable variables (such as the $args variable)
7030returned old empty cached value.
7031</para>
7032</change>
7033
7034<change type="bugfix">
7035<para lang="ru">
7036в рабочем процессе мог произойти segmentation fault,
7037если одновременно создавалось слишком много SSI-подзапросов;
7038ошибка появилась в 0.7.25.
7039</para>
7040<para lang="en">
7041a segmentation fault might occur in a worker process
7042if too many SSI subrequests were issued simultaneously;
7043the bug had appeared in 0.7.25.
7044</para>
7045</change>
7046
7047</changes>
7048
7049
7050<changes ver="1.1.14" date="2012-01-30">
7051
7052<change type="feature">
7053<para lang="ru">
7054теперь можно указать несколько ограничений limit_req одновременно.
7055</para>
7056<para lang="en">
7057multiple "limit_req" limits may be used simultaneously.
7058</para>
7059</change>
7060
7061<change type="bugfix">
7062<para lang="ru">
7063в обработке ошибок при соединении с бэкендом.<br/>
7064Спасибо Piotr Sikora.
7065</para>
7066<para lang="en">
7067in error handling while connecting to a backend.<br/>
7068Thanks to Piotr Sikora.
7069</para>
7070</change>
7071
7072<change type="bugfix">
7073<para lang="ru">
7074в обработке ошибок при использовании AIO на FreeBSD.
7075</para>
7076<para lang="en">
7077in AIO error handling on FreeBSD.
7078</para>
7079</change>
7080
7081<change type="bugfix">
7082<para lang="ru">
7083в инициализации библиотеки OpenSSL.
7084</para>
7085<para lang="en">
7086in the OpenSSL library initialization.
7087</para>
7088</change>
7089
7090<change type="bugfix">
7091<para lang="ru">
7092директивы proxy_redirect могли наследоваться некорректно.
7093</para>
7094<para lang="en">
7095the "proxy_redirect" directives might be inherited incorrectly.
7096</para>
7097</change>
7098
7099<change type="bugfix">
7100<para lang="ru">
7101утечки памяти при переконфигурации, если использовалась директива pcre_jit.
7102</para>
7103<para lang="en">
7104memory leak during reconfiguration if the "pcre_jit" directive was used.
7105</para>
7106</change>
7107
7108</changes>
7109
7110
7111<changes ver="1.1.13" date="2012-01-16">
7112
7113<change type="feature">
7114<para lang="ru">
7115параметры TLSv1.1 и TLSv1.2 в директиве ssl_protocols.
7116</para>
7117<para lang="en">
7118the "TLSv1.1" and "TLSv1.2" parameters of the "ssl_protocols" directive.
7119</para>
7120</change>
7121
7122<change type="bugfix">
7123<para lang="ru">
7124параметры директивы limit_req наследовались некорректно;
7125ошибка появилась в 1.1.12.
7126</para>
7127<para lang="en">
7128the "limit_req" directive parameters were not inherited correctly;
7129the bug had appeared in 1.1.12.
7130</para>
7131</change>
7132
7133<change type="bugfix">
7134<para lang="ru">
7135директива proxy_redirect некорректно обрабатывала заголовок Refresh
7136при использовании регулярных выражений.
7137</para>
7138<para lang="en">
7139the "proxy_redirect" directive incorrectly processed "Refresh" header
7140if regular expression were used.
7141</para>
7142</change>
7143
7144<change type="bugfix">
7145<para lang="ru">
7146директива proxy_cache_use_stale с параметром error не возвращала ответ из
7147кэша, если все бэкенды были признаны неработающими.
7148</para>
7149<para lang="en">
7150the "proxy_cache_use_stale" directive with "error" parameter did not return
7151answer from cache if there were no live upstreams.
7152</para>
7153</change>
7154
7155<change type="bugfix">
7156<para lang="ru">
7157директива worker_cpu_affinity могла не работать.
7158</para>
7159<para lang="en">
7160the "worker_cpu_affinity" directive might not work.
7161</para>
7162</change>
7163
7164<change type="bugfix">
7165<para lang="ru">
7166nginx не собирался на Solaris;
7167ошибка появилась в 1.1.12.
7168</para>
7169<para lang="en">
7170nginx could not be built on Solaris;
7171the bug had appeared in 1.1.12.
7172</para>
7173</change>
7174
7175<change type="bugfix">
7176<para lang="ru">
7177в модуле ngx_http_mp4_module.
7178</para>
7179<para lang="en">
7180in the ngx_http_mp4_module.
7181</para>
7182</change>
7183
7184</changes>
7185
7186
7187<changes ver="1.1.12" date="2011-12-26">
7188
7189<change type="change">
7190<para lang="ru">
7191после перенаправления запроса с помощью директивы error_page
7192директива proxy_pass без URI теперь использует изменённый URI.<br/>
7193Спасибо Lanshun Zhou.
7194</para>
7195<para lang="en">
7196a "proxy_pass" directive without URI part now uses changed URI
7197after redirection with the "error_page" directive.<br/>
7198Thanks to Lanshun Zhou.
7199</para>
7200</change>
7201
7202<change type="feature">
7203<para lang="ru">
7204директивы proxy/fastcgi/scgi/uwsgi_cache_lock,
7205proxy/fastcgi/scgi/uwsgi_cache_lock_timeout.
7206</para>
7207<para lang="en">
7208the "proxy/fastcgi/scgi/uwsgi_cache_lock",
7209"proxy/fastcgi/scgi/uwsgi_cache_lock_timeout" directives.
7210</para>
7211</change>
7212
7213<change type="feature">
7214<para lang="ru">
7215директива pcre_jit.
7216</para>
7217<para lang="en">
7218the "pcre_jit" directive.
7219</para>
7220</change>
7221
7222<change type="feature">
7223<para lang="ru">
7224SSI команда if поддерживает выделения в регулярных выражениях.
7225</para>
7226<para lang="en">
7227the "if" SSI command supports captures in regular expressions.
7228</para>
7229</change>
7230
7231<change type="bugfix">
7232<para lang="ru">
7233SSI команда if не работала внутри команды block.
7234</para>
7235<para lang="en">
7236the "if" SSI command did not work inside the "block" command.
7237</para>
7238</change>
7239
7240<change type="bugfix">
7241<para lang="ru">
7242директивы limit_conn_log_level и limit_req_log_level могли не работать.
7243</para>
7244<para lang="en">
7245the "limit_conn_log_level" and "limit_req_log_level" directives might not work.
7246</para>
7247</change>
7248
7249<change type="bugfix">
7250<para lang="ru">
7251директива limit_rate не позволяла передавать на полной скорости,
7252даже если был указан очень большой лимит.
7253</para>
7254<para lang="en">
7255the "limit_rate" directive did not allow to use full throughput,
7256even if limit value was very high.
7257</para>
7258</change>
7259
7260<change type="bugfix">
7261<para lang="ru">
7262директива sendfile_max_chunk не работала,
7263если использовалась директива limit_rate.
7264</para>
7265<para lang="en">
7266the "sendfile_max_chunk" directive did not work,
7267if the "limit_rate" directive was used.
7268</para>
7269</change>
7270
7271<change type="bugfix">
7272<para lang="ru">
7273если в директиве proxy_pass использовались переменные и не был указан URI,
7274всегда использовался URI исходного запроса.
7275</para>
7276<para lang="en">
7277a "proxy_pass" directive without URI part always used original request URI
7278if variables were used.
7279</para>
7280</change>
7281
7282<change type="bugfix">
7283<para lang="ru">
7284после перенаправления запроса с помощью директивы try_files
7285директива proxy_pass без URI могла использовать URI исходного запроса.<br/>
7286Спасибо Lanshun Zhou.
7287</para>
7288<para lang="en">
7289a "proxy_pass" directive without URI part might use original request
7290after redirection with the "try_files" directive.<br/>
7291Thanks to Lanshun Zhou.
7292</para>
7293</change>
7294
7295<change type="bugfix">
7296<para lang="ru">
7297в модуле ngx_http_scgi_module.
7298</para>
7299<para lang="en">
7300in the ngx_http_scgi_module.
7301</para>
7302</change>
7303
7304<change type="bugfix">
7305<para lang="ru">
7306в модуле ngx_http_mp4_module.
7307</para>
7308<para lang="en">
7309in the ngx_http_mp4_module.
7310</para>
7311</change>
7312
7313<change type="bugfix">
7314<para lang="ru">
7315nginx не собирался на Solaris;
7316ошибка появилась в 1.1.9.
7317</para>
7318<para lang="en">
7319nginx could not be built on Solaris;
7320the bug had appeared in 1.1.9.
7321</para>
7322</change>
7323
7324</changes>
7325
7326
7327<changes ver="1.1.11" date="2011-12-12">
7328
7329<change type="feature">
7330<para lang="ru">
7331параметр so_keepalive в директиве listen.<br/>
7332Спасибо Всеволоду Стахову.
7333</para>
7334<para lang="en">
7335the "so_keepalive" parameter of the "listen" directive.<br/>
7336Thanks to Vsevolod Stakhov.
7337</para>
7338</change>
7339
7340<change type="feature">
7341<para lang="ru">
7342параметр if_not_empty в директивах fastcgi/scgi/uwsgi_param.
7343</para>
7344<para lang="en">
7345the "if_not_empty" parameter of the "fastcgi/scgi/uwsgi_param" directives.
7346</para>
7347</change>
7348
7349<change type="feature">
7350<para lang="ru">
7351переменная $https.
7352</para>
7353<para lang="en">
7354the $https variable.
7355</para>
7356</change>
7357
7358<change type="feature">
7359<para lang="ru">
7360директива proxy_redirect поддерживает переменные в первом параметре.
7361</para>
7362<para lang="en">
7363the "proxy_redirect" directive supports variables in the first parameter.
7364</para>
7365</change>
7366
7367<change type="feature">
7368<para lang="ru">
7369директива proxy_redirect поддерживает регулярные выражения.
7370</para>
7371<para lang="en">
7372the "proxy_redirect" directive supports regular expressions.
7373</para>
7374</change>
7375
7376<change type="bugfix">
7377<para lang="ru">
7378переменная $sent_http_cache_control могла содержать неверное значение при
7379использовании директивы expires.<br/>
7380Спасибо Yichun Zhang.
7381</para>
7382<para lang="en">
7383the $sent_http_cache_control variable might contain a wrong value if the
7384"expires" directive was used.<br/>
7385Thanks to Yichun Zhang.
7386</para>
7387</change>
7388
7389<change type="bugfix">
7390<para lang="ru">
7391директива read_ahead могла не работать при использовании совместно с
7392try_files и open_file_cache.
7393</para>
7394<para lang="en">
7395the "read_ahead" directive might not work combined with "try_files"
7396and "open_file_cache".
7397</para>
7398</change>
7399
7400<change type="bugfix">
7401<para lang="ru">
7402если в параметре inactive директивы proxy_cache_path
7403было указано малое время,
7404в рабочем процессе мог произойти segmentation fault.
7405</para>
7406<para lang="en">
7407a segmentation fault might occur in a worker process
7408if small time was used in the "inactive" parameter of
7409the "proxy_cache_path" directive.
7410</para>
7411</change>
7412
7413<change type="bugfix">
7414<para lang="ru">
7415ответы из кэша могли зависать.
7416</para>
7417<para lang="en">
7418responses from cache might hang.
7419</para>
7420</change>
7421
7422</changes>
7423
7424
7425<changes ver="1.1.10" date="2011-11-30">
7426
7427<change type="bugfix">
7428<para lang="ru">
7429при использовании AIO на Linux в рабочем процессе происходил segmentation fault;
7430ошибка появилась в 1.1.9.
7431</para>
7432<para lang="en">
7433a segmentation fault occurred in a worker process if AIO was used on Linux;
7434the bug had appeared in 1.1.9.
7435</para>
7436</change>
7437
7438</changes>
7439
7440
7441<changes ver="1.1.9" date="2011-11-28">
7442
7443<change type="change">
7444<para lang="ru">
7445теперь двойные кавычки экранируется при выводе SSI-командой echo.<br/>
7446Спасибо Зауру Абасмирзоеву.
7447</para>
7448<para lang="en">
7449now double quotes are encoded in an "echo" SSI-command output.<br/>
7450Thanks to Zaur Abasmirzoev.
7451</para>
7452</change>
7453
7454<change type="feature">
7455<para lang="ru">
7456параметр valid в директиве resolver.  По умолчанию теперь
7457используется TTL, возвращённый DNS-сервером.<br/>
7458Спасибо Кириллу Коринскому.
7459</para>
7460<para lang="en">
7461the "valid" parameter of the "resolver" directive.  By default TTL
7462returned by a DNS server is used.<br/>
7463Thanks to Kirill A. Korinskiy.
7464</para>
7465</change>
7466
7467<change type="bugfix">
7468<para lang="ru">
7469nginx мог перестать отвечать, если рабочий процесс завершался аварийно.
7470</para>
7471<para lang="en">
7472nginx might hang after a worker process abnormal termination.
7473</para>
7474</change>
7475
7476<change type="bugfix">
7477<para lang="ru">
7478в рабочем процессе мог произойти segmentation fault,
7479если использовалось SNI;
7480ошибка появилась в 1.1.2.
7481</para>
7482<para lang="en">
7483a segmentation fault might occur in a worker process
7484if SNI was used;
7485the bug had appeared in 1.1.2.
7486</para>
7487</change>
7488
7489<change type="bugfix">
7490<para lang="ru">
7491в директиве keepalive_disable;
7492ошибка появилась в 1.1.8.<br/>
7493Спасибо Александру Усову.
7494</para>
7495<para lang="en">
7496in the "keepalive_disable" directive;
7497the bug had appeared in 1.1.8.<br/>
7498Thanks to Alexander Usov.
7499</para>
7500</change>
7501
7502<change type="bugfix">
7503<para lang="ru">
7504сигнал SIGWINCH переставал работать после первого обновления исполняемого
7505файла;
7506ошибка появилась в 1.1.1.
7507</para>
7508<para lang="en">
7509SIGWINCH signal did not work after first binary upgrade;
7510the bug had appeared in 1.1.1.
7511</para>
7512</change>
7513
7514<change type="bugfix">
7515<para lang="ru">
7516теперь ответы бэкендов, длина которых не соответствует заголовку
7517Content-Length, не кэширутся.
7518</para>
7519<para lang="en">
7520backend responses with length not matching "Content-Length" header line
7521are no longer cached.
7522</para>
7523</change>
7524
7525<change type="bugfix">
7526<para lang="ru">
7527в директиве scgi_param при использовании составных параметров.
7528</para>
7529<para lang="en">
7530in the "scgi_param" directive, if complex parameters were used.
7531</para>
7532</change>
7533
7534<change type="bugfix">
7535<para lang="ru">
7536в методе epoll.<br/>
7537Спасибо Yichun Zhang.
7538</para>
7539<para lang="en">
7540in the "epoll" event method.<br/>
7541Thanks to Yichun Zhang.
7542</para>
7543</change>
7544
7545<change type="bugfix">
7546<para lang="ru">
7547в модуле ngx_http_flv_module.<br/>
7548Спасибо Piotr Sikora.
7549</para>
7550<para lang="en">
7551in the ngx_http_flv_module.<br/>
7552Thanks to Piotr Sikora.
7553</para>
7554</change>
7555
7556<change type="bugfix">
7557<para lang="ru">
7558в модуле ngx_http_mp4_module.
7559</para>
7560<para lang="en">
7561in the ngx_http_mp4_module.
7562</para>
7563</change>
7564
7565<change type="bugfix">
7566<para lang="ru">
7567теперь nginx понимает IPv6-адреса в строке запроса и в заголовке Host.
7568</para>
7569<para lang="en">
7570IPv6 addresses are now handled properly in a request line and in a "Host"
7571request header line.
7572</para>
7573</change>
7574
7575<change type="bugfix">
7576<para lang="ru">
7577директивы add_header и expires не работали для ответов с кодом 206,
7578если запрос проксировался.
7579</para>
7580<para lang="en">
7581"add_header" and "expires" directives did not work if a request was proxied
7582and response status code was 206.
7583</para>
7584</change>
7585
7586<change type="bugfix">
7587<para lang="ru">
7588nginx не собирался на FreeBSD 10.
7589</para>
7590<para lang="en">
7591nginx could not be built on FreeBSD 10.
7592</para>
7593</change>
7594
7595<change type="bugfix">
7596<para lang="ru">
7597nginx не собирался на AIX.
7598</para>
7599<para lang="en">
7600nginx could not be built on AIX.
7601</para>
7602</change>
7603
7604</changes>
7605
7606
7607<changes ver="1.1.8" date="2011-11-14">
7608
7609<change type="change">
7610<para lang="ru">
7611модуль ngx_http_limit_zone_module переименован в ngx_http_limit_conn_module.
7612</para>
7613<para lang="en">
7614the ngx_http_limit_zone_module was renamed to the ngx_http_limit_conn_module.
7615</para>
7616</change>
7617
7618<change type="change">
7619<para lang="ru">
7620директива limit_zone заменена директивой limit_conn_zone с новым синтаксисом.
7621</para>
7622<para lang="en">
7623the "limit_zone" directive was superseded by the "limit_conn_zone" directive
7624with a new syntax.
7625</para>
7626</change>
7627
7628<change type="feature">
7629<para lang="ru">
7630поддержка ограничения по нескольким limit_conn на одном уровне.
7631</para>
7632<para lang="en">
7633support for multiple "limit_conn" limits on the same level.
7634</para>
7635</change>
7636
7637<change type="feature">
7638<para lang="ru">
7639директива image_filter_sharpen.
7640</para>
7641<para lang="en">
7642the "image_filter_sharpen" directive.
7643</para>
7644</change>
7645
7646<change type="bugfix">
7647<para lang="ru">
7648в рабочем процессе мог произойти segmentation fault,
7649если resolver получил большой DNS-ответ.<br/>
7650Спасибо Ben Hawkes.
7651</para>
7652<para lang="en">
7653a segmentation fault might occur in a worker process
7654if resolver got a big DNS response.<br/>
7655Thanks to Ben Hawkes.
7656</para>
7657</change>
7658
7659<change type="bugfix">
7660<para lang="ru">
7661в вычислении ключа для кэширования,
7662если использовалась внутренняя реализация MD5;
7663ошибка появилась в 1.0.4.
7664</para>
7665<para lang="en">
7666in cache key calculation
7667if internal MD5 implementation was used;
7668the bug had appeared in 1.0.4.
7669</para>
7670</change>
7671
7672<change type="bugfix">
7673<para lang="ru">
7674строки "If-Modified-Since", "If-Range" и им подобные в заголовке запроса
7675клиента могли передаваться бэкенду при кэшировании; или не передаваться при
7676выключенном кэшировании, если кэширование было включено в другой части
7677конфигурации.
7678</para>
7679<para lang="en">
7680the "If-Modified-Since", "If-Range", etc. client request header lines
7681might be passed to backend while caching; or not passed without caching
7682if caching was enabled in another part of the configuration.
7683</para>
7684</change>
7685
7686<change type="bugfix">
7687<para lang="ru">
7688модуль ngx_http_mp4_module выдавал неверную строку "Content-Length"
7689в заголовке ответа, использовался аргумент start.<br/>
7690Спасибо Piotr Sikora.
7691</para>
7692<para lang="en">
7693the module ngx_http_mp4_module sent incorrect "Content-Length" response
7694header line if the "start" argument was used.<br/>
7695Thanks to Piotr Sikora.
7696</para>
7697</change>
7698
7699</changes>
7700
7701
7702<changes ver="1.1.7" date="2011-10-31">
7703
7704<change type="feature">
7705<para lang="ru">
7706поддержка нескольких DNS серверов в директиве "resolver".<br/>
7707Спасибо Кириллу Коринскому.
7708</para>
7709<para lang="en">
7710support of several DNS servers in the "resolver" directive.<br/>
7711Thanks to Kirill A. Korinskiy.
7712</para>
7713</change>
7714
7715<change type="bugfix">
7716<para lang="ru">
7717на старте или во время переконфигурации происходил segmentation fault,
7718если директива ssl использовалась на уровне http и не был указан
7719ssl_certificate.
7720</para>
7721<para lang="en">
7722a segmentation fault occurred on start or during reconfiguration
7723if the "ssl" directive was used at http level and there was
7724no "ssl_certificate" defined.
7725</para>
7726</change>
7727
7728<change type="bugfix">
7729<para lang="ru">
7730уменьшено потребление памяти при проксировании больших файлов,
7731если они буферизировались на диск.
7732</para>
7733<para lang="en">
7734reduced memory consumption while proxying big files
7735if they were buffered to disk.
7736</para>
7737</change>
7738
7739<change type="bugfix">
7740<para lang="ru">
7741в рабочем процессе мог произойти segmentation fault,
7742если использовалась директива "proxy_http_version 1.1".
7743</para>
7744<para lang="en">
7745a segmentation fault might occur in a worker process
7746if "proxy_http_version 1.1" directive was used.
7747</para>
7748</change>
7749
7750<change type="bugfix">
7751<para lang="ru">
7752в директиве "expires @time".
7753</para>
7754<para lang="en">
7755in the "expires @time" directive.
7756</para>
7757</change>
7758
7759</changes>
7760
7761
7762<changes ver="1.1.6" date="2011-10-17">
7763
7764<change>
7765<para lang="ru">
7766Изменение во внутреннем API: теперь при внутреннем редиректе
7767в именованный location контексты модулей очищаются.<br/>
7768По запросу Yichun Zhang.
7769</para>
7770<para lang="en">
7771Change in internal API: now module context data are cleared
7772while internal redirect to named location.<br/>
7773Requested by Yichun Zhang.
7774</para>
7775</change>
7776
7777<change type="change">
7778<para lang="ru">
7779теперь если сервер, описанный в блоке upstream, был признан неработающим,
7780то после истечения fail_timeout на него будет отправлен только один запрос;
7781сервер будет считаться работающим, если успешно ответит на этот запрос.
7782</para>
7783<para lang="en">
7784if a server in an upstream failed, only one request will be sent to it
7785after fail_timeout; the server will be considered alive if it will
7786successfully respond to the request.
7787</para>
7788</change>
7789
7790<change type="change">
7791<para lang="ru">
7792теперь символы 0x7F-0xFF в access_log записываются в виде \xXX.
7793</para>
7794<para lang="en">
7795now the 0x7F-0xFF characters are escaped as \xXX in an access_log.
7796</para>
7797</change>
7798
7799<change type="feature">
7800<para lang="ru">
7801директивы "proxy/fastcgi/scgi/uwsgi_ignore_headers" теперь поддерживают
7802значения X-Accel-Limit-Rate, X-Accel-Buffering и X-Accel-Charset.
7803</para>
7804<para lang="en">
7805"proxy/fastcgi/scgi/uwsgi_ignore_headers" directives support the following
7806additional values: X-Accel-Limit-Rate, X-Accel-Buffering, X-Accel-Charset.
7807</para>
7808</change>
7809
7810<change type="feature">
7811<para lang="ru">
7812уменьшение потребления памяти при использовании SSL.
7813</para>
7814<para lang="en">
7815decrease of memory consumption if SSL is used.
7816</para>
7817</change>
7818
7819<change type="bugfix">
7820<para lang="ru">
7821некоторые UTF-8 символы обрабатывались неправильно.<br/>
7822Спасибо Алексею Куцу.
7823</para>
7824<para lang="en">
7825some UTF-8 characters were processed incorrectly.<br/>
7826Thanks to Alexey Kuts.
7827</para>
7828</change>
7829
7830<change type="bugfix">
7831<para lang="ru">
7832директивы модуля ngx_http_rewrite_module, заданные на уровне server,
7833применялись повторно, если для запроса не находилось ни одного location'а.
7834</para>
7835<para lang="en">
7836the ngx_http_rewrite_module directives specified at "server" level were
7837executed twice if no matching locations were defined.
7838</para>
7839</change>
7840
7841<change type="bugfix">
7842<para lang="ru">
7843при использовании "aio sendfile" могла происходить утечка сокетов.
7844</para>
7845<para lang="en">
7846a socket leak might occurred if "aio sendfile" was used.
7847</para>
7848</change>
7849
7850<change type="bugfix">
7851<para lang="ru">
7852при использовании файлового AIO соединения с быстрыми клиентами
7853могли быть закрыты по истечению send_timeout.
7854</para>
7855<para lang="en">
7856connections with fast clients might be closed after send_timeout
7857if file AIO was used.
7858</para>
7859</change>
7860
7861<change type="bugfix">
7862<para lang="ru">
7863в модуле ngx_http_autoindex_module.
7864</para>
7865<para lang="en">
7866in the ngx_http_autoindex_module.
7867</para>
7868</change>
7869
7870<change type="bugfix">
7871<para lang="ru">
7872модуль ngx_http_mp4_module не поддерживал перемотку на 32-битных платформах.
7873</para>
7874<para lang="en">
7875the module ngx_http_mp4_module did not support seeking on 32-bit platforms.
7876</para>
7877</change>
7878
7879</changes>
7880
7881
7882<changes ver="1.1.5" date="2011-10-05">
7883
7884<change type="feature">
7885<para lang="ru">
7886директивы uwsgi_buffering и scgi_buffering.<br/>
7887Спасибо Peter Smit.
7888</para>
7889<para lang="en">
7890the "uwsgi_buffering" and "scgi_buffering" directives.<br/>
7891Thanks to Peter Smit.
7892</para>
7893</change>
7894
7895<change type="bugfix">
7896<para lang="ru">
7897при использовании proxy_cache_bypass могли быть закэшированы
7898некэшируемые ответы.<br/>
7899Спасибо John Ferlito.
7900</para>
7901<para lang="en">
7902non-cacheable responses might be cached if "proxy_cache_bypass" directive
7903was used.<br/>
7904Thanks to John Ferlito.
7905</para>
7906</change>
7907
7908<change type="bugfix">
7909<para lang="ru">
7910в модуле ngx_http_proxy_module при работе с бэкендами по HTTP/1.1.
7911</para>
7912<para lang="en">
7913in HTTP/1.1 support in the ngx_http_proxy_module.
7914</para>
7915</change>
7916
7917<change type="bugfix">
7918<para lang="ru">
7919закэшированные ответы с пустым телом возвращались некорректно;
7920ошибка появилась в 0.8.31.
7921</para>
7922<para lang="en">
7923cached responses with an empty body were returned incorrectly;
7924the bug had appeared in 0.8.31.
7925</para>
7926</change>
7927
7928<change type="bugfix">
7929<para lang="ru">
7930ответы с кодом 201 модуля ngx_http_dav_module были некорректны;
7931ошибка появилась в 0.8.32.
7932</para>
7933<para lang="en">
7934201 responses of the ngx_http_dav_module were incorrect;
7935the bug had appeared in 0.8.32.
7936</para>
7937</change>
7938
7939<change type="bugfix">
7940<para lang="ru">
7941в директиве return.
7942</para>
7943<para lang="en">
7944in the "return" directive.
7945</para>
7946</change>
7947
7948<change type="bugfix">
7949<para lang="ru">
7950при использовании директивы "ssl_session_cache builtin" происходил
7951segmentation fault;
7952ошибка появилась в 1.1.1.
7953</para>
7954<para lang="en">
7955the "ssl_session_cache builtin" directive caused segmentation fault;
7956the bug had appeared in 1.1.1.
7957</para>
7958</change>
7959
7960</changes>
7961
7962
7963<changes ver="1.1.4" date="2011-09-20">
7964
7965<change type="feature">
7966<para lang="ru">
7967модуль ngx_http_upstream_keepalive.
7968</para>
7969<para lang="en">
7970the ngx_http_upstream_keepalive module.
7971</para>
7972</change>
7973
7974<change type="feature">
7975<para lang="ru">
7976директива proxy_http_version.
7977</para>
7978<para lang="en">
7979the "proxy_http_version" directive.
7980</para>
7981</change>
7982
7983<change type="feature">
7984<para lang="ru">
7985директива fastcgi_keep_conn.
7986</para>
7987<para lang="en">
7988the "fastcgi_keep_conn" directive.
7989</para>
7990</change>
7991
7992<change type="feature">
7993<para lang="ru">
7994директива worker_aio_requests.
7995</para>
7996<para lang="en">
7997the "worker_aio_requests" directive.
7998</para>
7999</change>
8000
8001<change type="bugfix">
8002<para lang="ru">
8003если nginx был собран с файловым AIO,
8004он не мог запускаться на Linux без поддержки AIO.
8005</para>
8006<para lang="en">
8007if nginx was built --with-file-aio it could not be run on Linux
8008kernel which did not support AIO.
8009</para>
8010</change>
8011
8012<change type="bugfix">
8013<para lang="ru">
8014в обработке ошибок при работе с Linux AIO.
8015<br/>
8016Спасибо Hagai Avrahami.
8017</para>
8018<para lang="en">
8019in Linux AIO error processing.
8020<br/>
8021Thanks to Hagai Avrahami.
8022</para>
8023</change>
8024
8025<change type="bugfix">
8026<para lang="ru">
8027уменьшено потребление памяти для долгоживущих запросов.
8028</para>
8029<para lang="en">
8030reduced memory consumption for long-lived requests.
8031</para>
8032</change>
8033
8034<change type="bugfix">
8035<para lang="ru">
8036модуль ngx_http_mp4_module не поддерживал 64-битный MP4-атом co64.
8037</para>
8038<para lang="en">
8039the module ngx_http_mp4_module did not support 64-bit MP4 "co64" atom.
8040</para>
8041</change>
8042
8043</changes>
8044
8045
8046<changes ver="1.1.3" date="2011-09-14">
8047
8048<change type="feature">
8049<para lang="ru">
8050модуль ngx_http_mp4_module.
8051</para>
8052<para lang="en">
8053the module ngx_http_mp4_module.
8054</para>
8055</change>
8056
8057<change type="bugfix">
8058<para lang="ru">
8059в Linux AIO, используемым совместно с open_file_cache.
8060</para>
8061<para lang="en">
8062in Linux AIO combined with open_file_cache.
8063</para>
8064</change>
8065
8066<change type="bugfix">
8067<para lang="ru">
8068open_file_cache не обновлял информацию о файле,
8069если файл был изменён не атомарно.
8070</para>
8071<para lang="en">
8072open_file_cache did not update file info on retest
8073if file was not atomically changed.
8074</para>
8075</change>
8076
8077<change type="bugfix">
8078<para lang="ru">
8079nginx не собирался на MacOSX 10.7.
8080</para>
8081<para lang="en">
8082nginx could not be built on MacOSX 10.7.
8083</para>
8084</change>
8085
8086</changes>
8087
8088
8089<changes ver="1.1.2" date="2011-09-05">
8090
8091<change type="change">
8092<para lang="ru">
8093теперь, если суммарный размер всех диапазонов больше размера исходного ответа,
8094то nginx возвращает только исходный ответ, не обрабатывая диапазоны.
8095</para>
8096<para lang="en">
8097now if total size of all ranges is greater than source response size,
8098then nginx disables ranges and returns just the source response.
8099</para>
8100</change>
8101
8102<change type="feature">
8103<para lang="ru">
8104директива max_ranges.
8105</para>
8106<para lang="en">
8107the "max_ranges" directive.
8108</para>
8109</change>
8110
8111<change type="bugfix">
8112<para lang="ru">
8113директивы ssl_verify_client, ssl_verify_depth и ssl_prefer_server_cipher
8114могли работать некорректно, если использовался SNI.
8115</para>
8116<para lang="en">
8117the "ssl_verify_client", "ssl_verify_depth", and "ssl_prefer_server_ciphers"
8118directives might work incorrectly if SNI was used.
8119</para>
8120</change>
8121
8122<change type="bugfix">
8123<para lang="ru">
8124в директивах proxy/fastcgi/scgi/ uwsgi_ignore_client_abort.
8125</para>
8126<para lang="en">
8127in the "proxy/fastcgi/scgi/uwsgi_ignore_client_abort" directives.
8128</para>
8129</change>
8130
8131</changes>
8132
8133
8134<changes ver="1.1.1" date="2011-08-22">
8135
8136<change type="change">
8137<para lang="ru">
8138теперь загрузчик кэша за каждую итерацию либо обрабатывает число файлов,
8139указанное в параметре load_files, либо работает не дольше времени,
8140указанного в параметре loader_threshold.
8141</para>
8142<para lang="en">
8143now cache loader processes either as many files as specified by "loader_files"
8144parameter or works no longer than time specified by the "loader_threshold"
8145parameter during each iteration.
8146</para>
8147</change>
8148
8149<change type="change">
8150<para lang="ru">
8151SIGWINCH сигнал теперь работает только в режиме демона.
8152</para>
8153<para lang="en">
8154now SIGWINCH signal works only in daemon mode.
8155</para>
8156</change>
8157
8158<change type="feature">
8159<para lang="ru">
8160теперь разделяемые зоны и кэши используют семафоры POSIX на Solaris.<br/>
8161Спасибо Денису Иванову.
8162</para>
8163<para lang="en">
8164now shared zones and caches use POSIX semaphores on Solaris.<br/>
8165Thanks to Den Ivanov.
8166</para>
8167</change>
8168
8169<change type="feature">
8170<para lang="ru">
8171теперь на NetBSD поддерживаются accept фильтры.
8172</para>
8173<para lang="en">
8174accept filters are now supported on NetBSD.
8175</para>
8176</change>
8177
8178<change type="bugfix">
8179<para lang="ru">
8180nginx не собирался на Linux 3.0.
8181</para>
8182<para lang="en">
8183nginx could not be built on Linux 3.0.
8184</para>
8185</change>
8186
8187<change type="bugfix">
8188<para lang="ru">
8189в некоторых случаях nginx не использовал сжатие;
8190ошибка появилась в 1.1.0.
8191</para>
8192<para lang="en">
8193nginx did not use gzipping in some cases;
8194the bug had appeared in 1.1.0.
8195</para>
8196</change>
8197
8198<change type="bugfix">
8199<para lang="ru">
8200обработка тела запроса могла быть неверной, если клиент использовал pipelining.
8201</para>
8202<para lang="en">
8203request body might be processed incorrectly if client used pipelining.
8204</para>
8205</change>
8206
8207<change type="bugfix">
8208<para lang="ru">
8209в директиве request_body_in_single_buf.
8210</para>
8211<para lang="en">
8212in the "request_body_in_single_buf" directive.
8213</para>
8214</change>
8215
8216<change type="bugfix">
8217<para lang="ru">
8218в директивах proxy_set_body и proxy_pass_request_body
8219при использовании SSL-соединения с бэкендом.
8220</para>
8221<para lang="en">
8222in "proxy_set_body" and "proxy_pass_request_body" directives
8223if SSL connection to backend was used.
8224</para>
8225</change>
8226
8227<change type="bugfix">
8228<para lang="ru">
8229nginx нагружал процессор, если все серверы в upstream'е были помечены
8230флагом down.
8231</para>
8232<para lang="en">
8233nginx hogged CPU if all servers in an upstream were marked as "down".
8234</para>
8235</change>
8236
8237<change type="bugfix">
8238<para lang="ru">
8239при переконфигурации мог произойти segmentation fault,
8240если в предыдущей конфигурации был определён, но не использовался
8241ssl_session_cache.
8242</para>
8243<para lang="en">
8244a segmentation fault might occur during reconfiguration
8245if ssl_session_cache was defined but not used in previous configuration.
8246</para>
8247</change>
8248
8249<change type="bugfix">
8250<para lang="ru">
8251при использовании большого количества backup-серверов
8252в рабочем процессе мог произойти segmentation fault.
8253</para>
8254<para lang="en">
8255a segmentation fault might occur in a worker process
8256if many backup servers were used in an upstream.
8257</para>
8258</change>
8259
8260<change type="bugfix">
8261<para lang="ru">
8262при использовании директив fastcgi/scgi/uwsgi_param
8263со значениями, начинающимися со строки "HTTP_",
8264в рабочем процессе мог произойти segmentation fault;
8265ошибка появилась в 0.8.40.
8266</para>
8267<para lang="en">
8268a segmentation fault might occur in a worker process
8269if "fastcgi/scgi/uwsgi_param" directives were used
8270with values starting with "HTTP_";
8271the bug had appeared in 0.8.40.
8272</para>
8273</change>
8274
8275</changes>
8276
8277
8278<changes ver="1.1.0" date="2011-08-01">
8279
8280<change type="feature">
8281<para lang="ru">
8282уменьшение времени работы загрузчика кэша.
8283</para>
8284<para lang="en">
8285cache loader run time decrease.
8286</para>
8287</change>
8288
8289<change type="feature">
8290<para lang="ru">
8291параметры loader_files, loader_sleep и loader_threshold
8292директив proxy/fastcgi/scgi/uwsgi_cache_path.
8293</para>
8294<para lang="en">
8295"loader_files", "loader_sleep", and "loader_threshold" options
8296of the "proxy/fastcgi/scgi/uwsgi_cache_path" directives.
8297</para>
8298</change>
8299
8300<change type="feature">
8301<para lang="ru">
8302уменьшение времени загрузки конфигураций с большим количеством HTTPS серверов.
8303</para>
8304<para lang="en">
8305loading time decrease of configuration with large number of HTTPS sites.
8306</para>
8307</change>
8308
8309<change type="feature">
8310<para lang="ru">
8311теперь nginx поддерживает шифры с обменом ECDHE-ключами.<br/>
8312Спасибо Adrian Kotelba.
8313</para>
8314<para lang="en">
8315now nginx supports ECDHE key exchange ciphers.<br/>
8316Thanks to Adrian Kotelba.
8317</para>
8318</change>
8319
8320<change type="feature">
8321<para lang="ru">
8322директива lingering_close.<br/>
8323Спасибо Максиму Дунину.
8324</para>
8325<para lang="en">
8326the "lingering_close" directive.<br/>
8327Thanks to Maxim Dounin.
8328</para>
8329</change>
8330
8331<change type="bugfix">
8332<para lang="ru">
8333закрытия соединения для pipelined-запросов.<br/>
8334Спасибо Максиму Дунину.
8335</para>
8336<para lang="en">
8337in closing connection for pipelined requests.<br/>
8338Thanks to Maxim Dounin.
8339</para>
8340</change>
8341
8342<change type="bugfix">
8343<para lang="ru">
8344nginx не запрещал сжатие при получении значения "gzip;q=0"
8345в строке "Accept-Encoding" в заголовке запроса клиента.
8346</para>
8347<para lang="en">
8348nginx did not disable gzipping if client sent "gzip;q=0" in
8349"Accept-Encoding" request header line.
8350</para>
8351</change>
8352
8353<change type="bugfix">
8354<para lang="ru">
8355таймаута при небуферизированном проксировании.<br/>
8356Спасибо Максиму Дунину.
8357</para>
8358<para lang="en">
8359in timeout in unbuffered proxied mode.<br/>
8360Thanks to Maxim Dounin.
8361</para>
8362</change>
8363
8364<change type="bugfix">
8365<para lang="ru">
8366утечки памяти при использовании переменных в директиве proxy_pass
8367при работе с бэкендом по HTTPS.<br/>
8368Спасибо Максиму Дунину.
8369</para>
8370<para lang="en">
8371memory leaks when a "proxy_pass" directive contains variables and proxies
8372to an HTTPS backend.<br/>
8373Thanks to Maxim Dounin.
8374</para>
8375</change>
8376
8377<change type="bugfix">
8378<para lang="ru">
8379в проверке параметра директивы proxy_pass, заданного переменными.<br/>
8380Спасибо Lanshun Zhou.
8381</para>
8382<para lang="en">
8383in parameter validation of a "proxy_pass" directive with variables.<br/>
8384Thanks to Lanshun Zhou.
8385</para>
8386</change>
8387
8388<change type="bugfix">
8389<para lang="ru">
8390SSL не работал на QNX.<br/>
8391Спасибо Максиму Дунину.
8392</para>
8393<para lang="en">
8394SSL did not work on QNX.<br/>
8395Thanks to Maxim Dounin.
8396</para>
8397</change>
8398
8399<change type="bugfix">
8400<para lang="ru">
8401SSL модули не собирались gcc 4.6 без параметра --with-debug.
8402</para>
8403<para lang="en">
8404SSL modules could not be built by gcc 4.6 without --with-debug option.
8405</para>
8406</change>
8407
8408</changes>
8409
8410
8411<changes ver="1.0.5" date="2011-07-19">
8412
8413<change type="change">
8414<para lang="ru">
8415теперь по умолчанию используются следующие шифры SSL: "HIGH:!aNULL:!MD5".<br/>
8416Спасибо Rob Stradling.
8417</para>
8418<para lang="en">
8419now default SSL ciphers are "HIGH:!aNULL:!MD5".<br/>
8420Thanks to Rob Stradling.
8421</para>
8422</change>
8423
8424<change type="feature">
8425<para lang="ru">
8426директивы referer_hash_max_size и referer_hash_bucket_size.<br/>
8427Спасибо Witold Filipczyk.
8428</para>
8429<para lang="en">
8430the "referer_hash_max_size" and "referer_hash_bucket_size"
8431directives.<br/>
8432Thanks to Witold Filipczyk.
8433</para>
8434</change>
8435
8436<change type="feature">
8437<para lang="ru">
8438переменная $uid_reset.
8439</para>
8440<para lang="en">
8441$uid_reset variable.
8442</para>
8443</change>
8444
8445<change type="bugfix">
8446<para lang="ru">
8447при использовании кэширования
8448в рабочем процессе мог произойти segmentation fault.<br/>
8449Спасибо Lanshun Zhou.
8450</para>
8451<para lang="en">
8452a segmentation fault might occur in a worker process,
8453if a caching was used.<br/>
8454Thanks to Lanshun Zhou.
8455</para>
8456</change>
8457
8458<change type="bugfix">
8459<para lang="ru">
8460при использовании кэширования рабочие процессы
8461могли зациклиться во время переконфигурации;
8462ошибка появилась в 0.8.48.<br/>
8463Спасибо Максиму Дунину.
8464</para>
8465<para lang="en">
8466worker processes may got caught in an endless loop during reconfiguration,
8467if a caching was used;
8468the bug had appeared in 0.8.48.<br/>
8469Thanks to Maxim Dounin.
8470</para>
8471</change>
8472
8473<change type="bugfix">
8474<para lang="ru">
8475сообщения "stalled cache updating".<br/>
8476Спасибо Максиму Дунину.
8477</para>
8478<para lang="en">
8479"stalled cache updating" alert.<br/>
8480Thanks to Maxim Dounin.
8481</para>
8482</change>
8483
8484</changes>
8485
8486
8487<changes ver="1.0.4" date="2011-06-01">
8488
8489<change type="change">
8490<para lang="ru">
8491теперь в регулярных выражениях в директиве map можно задать
8492чувствительность к регистру с помощью префиксов "~" и "~*".
8493</para>
8494<para lang="en">
8495now regular expressions case sensitivity in the "map" directive
8496is given by prefixes "~" or "~*".
8497</para>
8498</change>
8499
8500<change type="feature">
8501<para lang="ru">
8502теперь разделяемые зоны и кэши используют семафоры POSIX на Linux.<br/>
8503Спасибо Денису Латыпову.
8504</para>
8505<para lang="en">
8506now shared zones and caches use POSIX semaphores on Linux.<br/>
8507Thanks to Denis F. Latypoff.
8508</para>
8509</change>
8510
8511<change type="bugfix">
8512<para lang="ru">
8513сообщения "stalled cache updating".
8514</para>
8515<para lang="en">
8516"stalled cache updating" alert.
8517</para>
8518</change>
8519
8520<change type="bugfix">
8521<para lang="ru">
8522nginx не собирался с параметром --without-http_auth_basic_module;
8523ошибка появилась в 1.0.3.
8524</para>
8525<para lang="en">
8526nginx could not be built --without-http_auth_basic_module;
8527the bug had appeared in 1.0.3.
8528</para>
8529</change>
8530
8531</changes>
8532
8533
8534<changes ver="1.0.3" date="2011-05-25">
8535
8536<change type="feature">
8537<para lang="ru">
8538директива auth_basic_user_file поддерживает шифрование пароля
8539методами "$apr1", "{PLAIN}" и "{SSHA}".<br/>
8540Спасибо Максиму Дунину.
8541</para>
8542<para lang="en">
8543the "auth_basic_user_file" directive supports "$apr1", "{PLAIN}",
8544and "{SSHA}" password encryption methods.<br/>
8545Thanks to Maxim Dounin.
8546</para>
8547</change>
8548
8549<change type="feature">
8550<para lang="ru">
8551директива geoip_org и переменная $geoip_org.<br/>
8552Спасибо Александру Ускову, Arnaud Granal и Денису Латыпову.
8553</para>
8554<para lang="en">
8555the "geoip_org" directive and $geoip_org variable.<br/>
8556Thanks to Alexander Uskov, Arnaud Granal, and Denis F. Latypoff.
8557</para>
8558</change>
8559
8560<change type="feature">
8561<para lang="ru">
8562модули ngx_http_geo_module и ngx_http_geoip_module поддерживают
8563адреса IPv4, отображённые на IPv6 адреса.
8564</para>
8565<para lang="en">
8566ngx_http_geo_module and ngx_http_geoip_module support IPv4 addresses
8567mapped to IPv6 addresses.
8568</para>
8569</change>
8570
8571<change type="bugfix">
8572<para lang="ru">
8573при проверке адреса IPv4, отображённого на адрес IPv6,
8574в рабочем процессе происходил segmentation fault,
8575если директивы access или deny были определены только для адресов IPv6;
8576ошибка появилась в 0.8.22.
8577</para>
8578<para lang="en">
8579a segmentation fault occurred in a worker process
8580during testing IPv4 address mapped to IPv6 address,
8581if access or deny rules were defined only for IPv6;
8582the bug had appeared in 0.8.22.
8583</para>
8584</change>
8585
8586<change type="bugfix">
8587<para lang="ru">
8588закэшированный ответ мог быть испорчен, если значения директив
8589proxy/fastcgi/scgi/uwsgi_cache_bypass и proxy/fastcgi/scgi/ uwsgi_no_cache
8590были разными;
8591ошибка появилась в 0.8.46.
8592</para>
8593<para lang="en">
8594a cached response may be broken if "proxy/fastcgi/scgi/ uwsgi_cache_bypass"
8595and "proxy/fastcgi/scgi/uwsgi_no_cache" directive values were different;
8596the bug had appeared in 0.8.46.
8597</para>
8598</change>
8599
8600</changes>
8601
8602
8603<changes ver="1.0.2" date="2011-05-10">
8604
8605<change type="feature">
8606<para lang="ru">
8607теперь разделяемые зоны и кэши используют семафоры POSIX.
8608</para>
8609<para lang="en">
8610now shared zones and caches use POSIX semaphores.
8611</para>
8612</change>
8613
8614<change type="bugfix">
8615<para lang="ru">
8616в работе параметра rotate директивы image_filter.<br/>
8617Спасибо Adam Bocim.
8618</para>
8619<para lang="en">
8620in the "rotate" parameter of the "image_filter" directive.<br/>
8621Thanks to Adam Bocim.
8622</para>
8623</change>
8624
8625<change type="bugfix">
8626<para lang="ru">
8627nginx не собирался на Solaris;
8628ошибка появилась в 1.0.1.
8629</para>