docs/xml/nginx/changes.xml - nginx-1.31.9 nginx/ @ 2a3a19c6f

  1. <?xml version="1.0" ?>
  2. <!DOCTYPE change_log SYSTEM "../../dtd/changes.dtd" >


  3. <change_log title="nginx">


  4. <changes ver="1.31.8" date="2026-10-21">

  5. <change>
  6. <para lang="ru">
  7. Изменение во внутреннем API:
  8. теперь парсер JSON сообщает о строках с escape-последовательностями
  9. отдельными событиями,
  10. а функция ngx_json_unescape_string() декодирует строку в отдельный буфер.
  11. </para>
  12. <para lang="en">
  13. Change in internal API:
  14. now the JSON parser reports strings with escape sequences
  15. as separate events,
  16. and the ngx_json_unescape_string() function decodes a string
  17. into a separate buffer.
  18. </para>
  19. </change>

  20. <change type="change">
  21. <para lang="ru">
  22. теперь путь, указанный в директиве working_directory, определяется
  23. относительно префикса, а не относительно текущего каталога.
  24. </para>
  25. <para lang="en">
  26. now the path specified in the "working_directory" directive is relative
  27. to nginx prefix directory, but not to the current directory.
  28. </para>
  29. </change>

  30. <change type="bugfix">
  31. <para lang="ru">
  32. на старте или во время переконфигурации рабочие процессы завершались,
  33. если в директиве working_directory был указан некорректный каталог.
  34. </para>
  35. <para lang="en">
  36. worker processes exited on start or during reconfiguration
  37. if an invalid directory was specified in the "working_directory" directive.
  38. </para>
  39. </change>

  40. <change type="bugfix">
  41. <para lang="ru">
  42. при использовании HTTP/3 на платформах со строгим выравниванием
  43. рабочие процессы могли завершаться аварийно по сигналу SIGBUS.<br/>
  44. Спасибо Daewoo Choi.
  45. </para>
  46. <para lang="en">
  47. worker processes might be terminated abnormally on a SIGBUS signal
  48. when using HTTP/3 on platforms with strict alignment requirements.<br/>
  49. Thanks to Daewoo Choi.
  50. </para>
  51. </change>

  52. <change type="bugfix">
  53. <para lang="ru">
  54. при использовании kernel TLS с OpenSSL 3.2.0 и более новыми версиями
  55. при закрытии SSL-соединений в логах могли появляться сообщения
  56. "recv() failed (5: Input/output error)".
  57. </para>
  58. <para lang="en">
  59. "recv() failed (5: Input/output error)" alerts might appear in logs
  60. when closing SSL connections
  61. if kernel TLS was used with OpenSSL 3.2.0 or newer.
  62. </para>
  63. </change>

  64. <change type="bugfix">
  65. <para lang="ru">
  66. nginx не собирался на Solaris,
  67. если использовался параметр --with-control-api.
  68. </para>
  69. <para lang="en">
  70. nginx could not be built on Solaris
  71. if the --with-control-api option was used.
  72. </para>
  73. </change>

  74. </changes>


  75. <changes ver="1.31.7" date="2026-10-14">

  76. <change type="security">
  77. <para lang="ru">
  78. при использовании директивы alias
  79. могло произойти переполнение буфера в рабочем процессе,
  80. если URI запроса был изменён директивой rewrite
  81. и затем отображался в путь к файлу
  82. (CVE-2026-15176).
  83. </para>
  84. <para lang="en">
  85. a buffer overflow might occur in a worker process
  86. when using the "alias" directive
  87. if the request URI was changed by the "rewrite" directive
  88. and was then mapped to a file path
  89. (CVE-2026-15176).
  90. </para>
  91. </change>

  92. <change type="security">
  93. <para lang="ru">
  94. при вычислении строковых выражений с переменными
  95. могло произойти переполнение буфера в рабочем процессе,
  96. что затрагивало определение корневого каталога документов
  97. и логгирование запросов в модулях http и stream
  98. (CVE-2026-93479).<br/>
  99. Спасибо Matt Suiche из Tolmo Inc.
  100. </para>
  101. <para lang="en">
  102. a buffer overflow might occur in a worker process
  103. while evaluating string expressions with variables,
  104. which affected the document root calculation
  105. and request logging in the http and stream modules
  106. (CVE-2026-93479).<br/>
  107. Thanks to Matt Suiche of Tolmo Inc.
  108. </para>
  109. </change>

  110. <change type="security">
  111. <para lang="ru">
  112. при использовании HTTP/3 часть неизвестного фрейма
  113. могла быть обработана как тело запроса,
  114. что могло приводить к обходу ограничения client_max_body_size
  115. или к вставке данных в проксируемый запрос
  116. (CVE-2026-95101).<br/>
  117. Спасибо Hansol Lee из GOTROOT.
  118. </para>
  119. <para lang="en">
  120. when using HTTP/3 a part of an unknown frame
  121. might be treated as the request body,
  122. which might result in bypassing the "client_max_body_size" limit
  123. or injecting data in the proxied request
  124. (CVE-2026-95101).<br/>
  125. Thanks to Hansol Lee of GOTROOT.
  126. </para>
  127. </change>

  128. <change type="security">
  129. <para lang="ru">
  130. при использовании ротации ключей TLS session tickets
  131. один из ключей оставался неинициализированным,
  132. что могло позволить подделать сессию
  133. (CVE-2026-97629).<br/>
  134. Спасибо PhiNode Labs.
  135. </para>
  136. <para lang="en">
  137. when using TLS session ticket key rotation,
  138. one of the keys was left uninitialized,
  139. which might allow to forge a session
  140. (CVE-2026-97629).<br/>
  141. Thanks to PhiNode Labs.
  142. </para>
  143. </change>

  144. <change type="security">
  145. <para lang="ru">
  146. при использовании асинхронного файлового ввода-вывода (AIO)
  147. в некоторых конфигурациях
  148. могло произойти обращение к ранее освобождённой памяти,
  149. если на SSI-странице использовались команды "include virtual"
  150. (CVE-2026-97205).<br/>
  151. Спасибо cyberlancer.
  152. </para>
  153. <para lang="en">
  154. when using asynchronous file I/O (AIO),
  155. use-after-free might occur in certain configurations
  156. if the SSI page has "include virtual" commands
  157. (CVE-2026-97205).<br/>
  158. Thanks to cyberlancer.
  159. </para>
  160. </change>

  161. <change type="feature">
  162. <para lang="ru">
  163. модули ngx_http_geoip_module и ngx_stream_geoip_module
  164. теперь поддерживают базы в формате MaxMind DB (MMDB).
  165. </para>
  166. <para lang="en">
  167. the ngx_http_geoip_module and ngx_stream_geoip_module
  168. now support databases in the MaxMind DB (MMDB) format.
  169. </para>
  170. </change>

  171. <change type="feature">
  172. <para lang="ru">
  173. теперь SSL-сертификаты бэкендов
  174. можно проверять по IP-адресу.<br/>
  175. Спасибо Максиму Дунину.
  176. </para>
  177. <para lang="en">
  178. now backend SSL certificates
  179. can be verified by IP address.<br/>
  180. Thanks to Maxim Dounin.
  181. </para>
  182. </change>

  183. <change type="feature">
  184. <para lang="ru">
  185. теперь QUIC поддерживает переконфигурацию
  186. и обновление исполняемого файла
  187. при использовании директивы quic_bpf.
  188. </para>
  189. <para lang="en">
  190. now QUIC supports reconfiguration and binary upgrade
  191. when using the "quic_bpf" directive.
  192. </para>
  193. </change>

  194. <change type="change">
  195. <para lang="ru">
  196. в модуле ngx_http_v2_module
  197. теперь используется схема приоритетов RFC 9218,
  198. а сигналы приоритетов RFC 7540 игнорируются.
  199. </para>
  200. <para lang="en">
  201. the ngx_http_v2_module now uses
  202. the RFC 9218 prioritization scheme,
  203. and RFC 7540 priority signals are ignored.
  204. </para>
  205. </change>

  206. <change type="bugfix">
  207. <para lang="ru">
  208. в рабочем процессе мог произойти segmentation fault
  209. или могли появляться сообщения "request count is zero",
  210. если заголовок "X-Accel-Redirect" попадал в кэш
  211. и закэшированный ответ затем отдавался клиенту.<br/>
  212. Спасибо Jiří Setnička и Максиму Дунину.
  213. </para>
  214. <para lang="en">
  215. a segmentation fault might occur in a worker process
  216. or "request count is zero" alerts might appear in logs
  217. if the "X-Accel-Redirect" header line was cached
  218. and the cached response was then served to a client.<br/>
  219. Thanks to Jiří Setnička and Maxim Dounin.
  220. </para>
  221. </change>

  222. <change type="bugfix">
  223. <para lang="ru">
  224. в рабочем процессе мог произойти segmentation fault,
  225. если модуль ngx_http_dav_module использовался
  226. для обработки методов COPY и MOVE
  227. в location с директивой alias.<br/>
  228. Спасибо Максиму Дунину.
  229. </para>
  230. <para lang="en">
  231. a segmentation fault might occur in a worker process
  232. if the ngx_http_dav_module was used
  233. to handle COPY and MOVE methods
  234. in a location with the "alias" directive.<br/>
  235. Thanks to Maxim Dounin.
  236. </para>
  237. </change>

  238. <change type="bugfix">
  239. <para lang="ru">
  240. QUIC-соединения могли закрываться
  241. с сообщением "quic flood detected" в логах,
  242. если в директиве http3_stream_buffer_size
  243. было указано небольшое значение;
  244. ошибка появилась в 1.27.5.
  245. </para>
  246. <para lang="en">
  247. QUIC connections might be closed
  248. with the "quic flood detected" message in logs
  249. if the "http3_stream_buffer_size" directive
  250. was set to a small value;
  251. the bug had appeared in 1.27.5.
  252. </para>
  253. </change>

  254. <change type="bugfix">
  255. <para lang="ru">
  256. закрытие SSL-соединения без close_notify
  257. считалось корректным завершением работы,
  258. в том числе при сбросе соединения;
  259. теперь в этом случае в логах появляются сообщения "SSL_read() failed".<br/>
  260. Спасибо Максиму Дунину.
  261. </para>
  262. <para lang="en">
  263. closing an SSL connection without close_notify
  264. was treated as a clean shutdown,
  265. including the case when the connection was reset;
  266. now "SSL_read() failed" errors appear in logs in this case.<br/>
  267. Thanks to Maxim Dounin.
  268. </para>
  269. </change>

  270. <change type="bugfix">
  271. <para lang="ru">
  272. в логах могли появляться сообщения "[crit] SSL_write() failed",
  273. если при чтении из SSL-соединения произошла ошибка.
  274. </para>
  275. <para lang="en">
  276. "[crit] SSL_write() failed" messages might appear in logs
  277. when an error occurred while reading from an SSL connection.
  278. </para>
  279. </change>

  280. </changes>


  281. <changes ver="1.31.6" date="2026-09-15">

  282. <change type="security">
  283. <para lang="ru">
  284. при использовании HTTP/3 с OpenSSL 3.5.0 и более ранними версиями
  285. в определённых конфигурациях
  286. могло произойти переполнение буфера в рабочем процессе (CVE-2026-90439).<br/>
  287. Спасибо Banny Liao.
  288. </para>
  289. <para lang="en">
  290. a heap memory buffer overflow might occur in a worker process
  291. under certain configurations
  292. when using HTTP/3 with OpenSSL 3.5.0 and earlier (CVE-2026-90439).<br/>
  293. Thanks to Banny Liao.
  294. </para>
  295. </change>

  296. <change type="change">
  297. <para lang="ru">
  298. теперь расширение QUIC transport parameters, полученное в SSL-соединении,
  299. всегда игнорируется.
  300. </para>
  301. <para lang="en">
  302. now the QUIC transport parameters extension received in an SSL connection
  303. is always ignored.
  304. </para>
  305. </change>

  306. <change type="bugfix">
  307. <para lang="ru">
  308. процедура обновления исполняемого файла не работала,
  309. если был указан сокет control API
  310. и новый исполняемый файл nginx был собран с модулем ngx_http_perl_module.
  311. </para>
  312. <para lang="en">
  313. binary upgrade refused to work
  314. if the control API socket was specified
  315. and the new nginx executable was built with the ngx_http_perl_module.
  316. </para>
  317. </change>

  318. <change type="bugfix">
  319. <para lang="ru">
  320. ошибка при вычислении предиката в предикатном location'е игнорировалась,
  321. и такой предикат считался ложным.
  322. </para>
  323. <para lang="en">
  324. an error while evaluating a predicate in a predicate location was ignored
  325. and the predicate was treated as false.
  326. </para>
  327. </change>

  328. <change type="bugfix">
  329. <para lang="ru">
  330. ошибка при поиске вложенного location'а могла игнорироваться,
  331. если на текущем уровне были настроены location'ы,
  332. заданные регулярными выражениями или предикатами.
  333. </para>
  334. <para lang="en">
  335. an error during a nested location lookup might be ignored
  336. if locations given by regular expressions or predicates
  337. were configured at the current level.
  338. </para>
  339. </change>

  340. <change type="bugfix">
  341. <para lang="ru">
  342. при чтении конфигурации мог произойти segmentation fault,
  343. если использовалась директива geo с параметром ranges
  344. и соответствующий файл бинарной базы был повреждён.
  345. </para>
  346. <para lang="en">
  347. a segmentation fault might occur while reading configuration
  348. if the "geo" directive with the "ranges" parameter was used
  349. and the corresponding binary base file was corrupted.
  350. </para>
  351. </change>

  352. </changes>


  353. <changes ver="1.31.5" date="2026-09-02">

  354. <change type="feature">
  355. <para lang="ru">
  356. control API.
  357. </para>
  358. <para lang="en">
  359. control API.
  360. </para>
  361. </change>

  362. <change type="feature">
  363. <para lang="ru">
  364. предикатные location'ы.
  365. </para>
  366. <para lang="en">
  367. predicate locations.
  368. </para>
  369. </change>

  370. <change type="feature">
  371. <para lang="ru">
  372. модуль ngx_http_json_module.
  373. </para>
  374. <para lang="en">
  375. the ngx_http_json_module.
  376. </para>
  377. </change>

  378. <change type="feature">
  379. <para lang="ru">
  380. директива client_body_early_read.
  381. </para>
  382. <para lang="en">
  383. the "client_body_early_read" directive.
  384. </para>
  385. </change>

  386. <change type="bugfix">
  387. <para lang="ru">
  388. в рабочем процессе могло произойти обращение к ранее освобождённой
  389. памяти, если использовалось проксирование с буферизацией
  390. и при отправке ответа HTTP/2-клиенту произошла ошибка.
  391. </para>
  392. <para lang="en">
  393. use-after-free might occur in a worker process if
  394. proxying with buffering was used and an error occurred
  395. while sending the response to an HTTP/2 client.
  396. </para>
  397. </change>

  398. <change type="bugfix">
  399. <para lang="ru">
  400. рабочий процесс мог не завершиться или в логах могли появляться
  401. сообщения "accept4() failed (9: Bad file descriptor)", если у
  402. рабочего процесса закончились файловые дескрипторы перед его
  403. плавным завершением.
  404. </para>
  405. <para lang="en">
  406. a worker process might not exit or
  407. "accept4() failed (9: Bad file descriptor)" alerts might appear
  408. in logs if the worker process ran out of file descriptors
  409. before graceful shutdown.
  410. </para>
  411. </change>

  412. <change type="bugfix">
  413. <para lang="ru">
  414. запросы к FastCGI- и uwsgi-бэкендам были некорректными,
  415. если имя параметра было слишком длинным.
  416. </para>
  417. <para lang="en">
  418. requests to FastCGI and uwsgi backends were malformed
  419. if a parameter name was too long.
  420. </para>
  421. </change>

  422. <change>
  423. <para lang="ru">
  424. Исправления в HTTP/3, ngx_http_slice_module
  425. и ngx_http_memcached_module.
  426. </para>
  427. <para lang="en">
  428. Bugfixes in HTTP/3, ngx_http_slice_module,
  429. and ngx_http_memcached_module.
  430. </para>
  431. </change>

  432. </changes>


  433. <changes ver="1.31.4" date="2026-08-19">

  434. <change type="feature">
  435. <para lang="ru">
  436. директива proxy_protocol в модулях stream и mail
  437. теперь поддерживает протокол PROXY версии 2.
  438. </para>
  439. <para lang="en">
  440. the "proxy_protocol" directive in the stream and mail modules
  441. now supports the PROXY protocol version 2.
  442. </para>
  443. </change>

  444. <change type="change">
  445. <para lang="ru">
  446. теперь запросы к HTTP/2 и gRPC-бэкендам всегда отправляются
  447. с псевдо-заголовком ":authority",
  448. а запросы к HTTP/1.1-бэкендам - с заголовком "Host".
  449. </para>
  450. <para lang="en">
  451. now HTTP/2 and gRPC requests to backends are always sent
  452. with the ":authority" pseudo-header,
  453. and HTTP/1.1 requests - with the "Host" header.
  454. </para>
  455. </change>

  456. <change type="bugfix">
  457. <para lang="ru">
  458. в рабочем процессе мог произойти segmentation fault,
  459. если использовался метод select.
  460. </para>
  461. <para lang="en">
  462. a segmentation fault might occur in a worker process
  463. if the "select" method was used.
  464. </para>
  465. </change>

  466. <change type="bugfix">
  467. <para lang="ru">
  468. неполные gRPC-ответы с ненулевым заголовком "Content-Length"
  469. теперь считаются некорректными.
  470. </para>
  471. <para lang="en">
  472. incomplete gRPC responses with a non-zero "Content-Length" header line
  473. are now treated as malformed.
  474. </para>
  475. </change>

  476. <change type="bugfix">
  477. <para lang="ru">
  478. в бинарной совместимости со сторонними модулями, использующими script codes;
  479. ошибка появилась в 1.31.3.
  480. </para>
  481. <para lang="en">
  482. in binary compatibility with third-party modules using script codes;
  483. the bug had appeared in 1.31.3.
  484. </para>
  485. </change>

  486. <change type="bugfix">
  487. <para lang="ru">
  488. в модуле ngx_http_perl_module.<br/>
  489. Спасибо David Carlier.
  490. </para>
  491. <para lang="en">
  492. in the ngx_http_perl_module.<br/>
  493. Thanks to David Carlier.
  494. </para>
  495. </change>

  496. <change>
  497. <para lang="ru">
  498. Исправления в HTTP/2, HTTP/3, ngx_http_image_filter_module
  499. и ngx_http_grpc_module.
  500. </para>
  501. <para lang="en">
  502. Bugfixes in HTTP/2, HTTP/3, ngx_http_image_filter_module,
  503. and ngx_http_grpc_module.
  504. </para>
  505. </change>

  506. </changes>


  507. <changes ver="1.31.3" date="2026-07-15">

  508. <change type="security">
  509. <para lang="ru">
  510. при использовании директивы map c регулярными выражениями
  511. могло произойти переполнение буфера в рабочем процессе, если
  512. map-переменная была указана в строковом выражении после выделения,
  513. модифицируемого этим блоком map; похожая проблема могла произойти
  514. при использовании некешируемой переменной в строковом выражении
  515. (CVE-2026-42533).<br/>
  516. Спасибо Mufeed VH из Winfunc Research и Максиму Дунину.
  517. </para>
  518. <para lang="en">
  519. heap buffer overflow might occur in a worker process when using the
  520. map directive with regex matching if the map variable was included
  521. in a string expression after a capture affected by this map;
  522. a similar issue might happen when using a non-cacheable variable in
  523. a string expression (CVE-2026-42533).<br/>
  524. Thanks to Mufeed VH of Winfunc Research and Maxim Dounin.
  525. </para>
  526. </change>

  527. <change type="security">
  528. <para lang="ru">
  529. при использовании неименованных выделений с директивой slice или
  530. фоновым обновлением кэша мог произойти доступ к неинициализированной
  531. памяти, что могло привести к отправке клиенту содержимого памяти
  532. рабочего процесса или вызвать segmentation fault в рабочем процессе
  533. (CVE-2026-60005).
  534. </para>
  535. <para lang="en">
  536. uninitialized memory access might occur when using unnamed regex
  537. captures with the "slice" directive or background cache update, which
  538. could result in worker process memory disclosure or worker process
  539. termination (CVE-2026-60005).
  540. </para>
  541. </change>

  542. <change type="security">
  543. <para lang="ru">
  544. при использовании ngx_http_ssi_filter_module специально созданный
  545. ответ от проксируемого бэкенда мог привести к обращению к ранее
  546. освобождённой памяти (CVE-2026-56434).<br/>
  547. Спасибо P4P3R-HAK.
  548. </para>
  549. <para lang="en">
  550. use-after-free might occur when processing a specially crafted proxied
  551. backend response with the ngx_http_ssi_filter_module (CVE-2026-56434).<br/>
  552. Thanks to P4P3R-HAK.
  553. </para>
  554. </change>

  555. <change type="change">
  556. <para lang="ru">
  557. размер заголовков и трейлеров HTTP/2-ответа
  558. в модуле ngx_http_proxy_v2_module и ngx_http_grpc_module
  559. теперь ограничены директивой proxy_buffer_size и grpc_buffer_size.
  560. </para>
  561. <para lang="en">
  562. the size of headers and trailers in HTTP/2 responses
  563. in the ngx_http_proxy_v2_module and ngx_http_grpc_module
  564. is now limited with "proxy_buffer_size" and "grpc_buffer_size" directives.
  565. </para>
  566. </change>

  567. <change type="change">
  568. <para lang="ru">
  569. загрузка внешних сущностей теперь отключена
  570. в модуле ngx_http_xslt_filter_module.<br/>
  571. Спасибо Максиму Дунину.
  572. </para>
  573. <para lang="en">
  574. loading of external entities is now disabled
  575. in the ngx_http_xslt_filter_module.<br/>
  576. Thanks to Maxim Dounin.
  577. </para>
  578. </change>

  579. <change type="feature">
  580. <para lang="ru">
  581. директива xml_external_entities
  582. в модуле ngx_http_xslt_filter_module.<br/>
  583. Спасибо Максиму Дунину.
  584. </para>
  585. <para lang="en">
  586. the "xml_external_entities" directive
  587. in the ngx_http_xslt_filter_module.<br/>
  588. Thanks to Maxim Dounin.
  589. </para>
  590. </change>

  591. <change type="feature">
  592. <para lang="ru">
  593. директивы proxy_socket_sndbuf, proxy_socket_rcvbuf,
  594. fastcgi_socket_sndbuf, fastcgi_socket_rcvbuf,
  595. grpc_socket_sndbuf, grpc_socket_rcvbuf,
  596. scgi_socket_sndbuf, scgi_socket_rcvbuf,
  597. uwsgi_socket_sndbuf, uwsgi_socket_rcvbuf,
  598. tunnel_socket_sndbuf и tunnel_socket_rcvbuf.
  599. </para>
  600. <para lang="en">
  601. the "proxy_socket_sndbuf", "proxy_socket_rcvbuf",
  602. "fastcgi_socket_sndbuf", "fastcgi_socket_rcvbuf",
  603. "grpc_socket_sndbuf", "grpc_socket_rcvbuf",
  604. "scgi_socket_sndbuf", "scgi_socket_rcvbuf",
  605. "uwsgi_socket_sndbuf", "uwsgi_socket_rcvbuf",
  606. "tunnel_socket_sndbuf", and "tunnel_socket_rcvbuf"
  607. directives.
  608. </para>
  609. </change>

  610. <change type="feature">
  611. <para lang="ru">
  612. определение размера строки кэша процессора для loongarch64.<br/>
  613. Спасибо Miao Wang.
  614. </para>
  615. <para lang="en">
  616. cache line size detection for loongarch64.<br/>
  617. Thanks to Miao Wang.
  618. </para>
  619. </change>

  620. <change type="bugfix">
  621. <para lang="ru">
  622. теперь nginx возвращает ошибку, если в запросе по протоколу
  623. HTTP/2 псевдо-заголовки следуют за обычными заголовками.
  624. </para>
  625. <para lang="en">
  626. now nginx rejects HTTP/2 requests with out-of-order pseudo-headers.
  627. </para>
  628. </change>

  629. <change type="bugfix">
  630. <para lang="ru">
  631. в управлении потоком в модуле ngx_http_v2_module.
  632. </para>
  633. <para lang="en">
  634. in flow control in the ngx_http_v2_module.
  635. </para>
  636. </change>

  637. <change type="bugfix">
  638. <para lang="ru">
  639. при отправке закэшированного ответа HTTP/2
  640. в модуле ngx_http_proxy_v2_module
  641. в логах могли появляться сообщения
  642. "[error] upstream sent frame for unknown stream"
  643. и
  644. "[crit] cache file ... contains invalid header",
  645. если использовалась директива proxy_cache_revalidate.
  646. </para>
  647. <para lang="en">
  648. "[error] upstream sent frame for unknown stream"
  649. and
  650. "[crit] cache file ... contains invalid header"
  651. messages might appear in logs
  652. when sending a cached HTTP/2 response
  653. in the ngx_http_proxy_v2_module
  654. if the "proxy_cache_revalidate" directive was used.
  655. </para>
  656. </change>

  657. <change type="bugfix">
  658. <para lang="ru">
  659. nginx мог передавать заголовок "Upgrade" клиенту в ответе HTTP/2 или HTTP/3.
  660. </para>
  661. <para lang="en">
  662. nginx might send the "Upgrade" header line in HTTP/2 and HTTP/3 responses.
  663. </para>
  664. </change>

  665. <change type="bugfix">
  666. <para lang="ru">
  667. в модуле ngx_http_perl_module.<br/>
  668. Спасибо Максиму Дунину.
  669. </para>
  670. <para lang="en">
  671. in the ngx_http_perl_module.<br/>
  672. Thanks to Maxim Dounin.
  673. </para>
  674. </change>

  675. <change type="bugfix">
  676. <para lang="ru">
  677. запрет фрагментации IPv6 мог не работать
  678. при использовании QUIC на некоторых системах.
  679. </para>
  680. <para lang="en">
  681. IPv6 fragmentation might not be disabled
  682. when using QUIC on some operating systems.
  683. </para>
  684. </change>

  685. <change type="bugfix">
  686. <para lang="ru">
  687. в модуле ngx_http_auth_basic_module на Solaris.
  688. </para>
  689. <para lang="en">
  690. in the ngx_http_auth_basic_module on Solaris.
  691. </para>
  692. </change>

  693. <change>
  694. <para lang="ru">
  695. Исправления и улучшения в модуле ngx_http_tunnel_module.
  696. </para>
  697. <para lang="en">
  698. Bugfixes and improvements in the ngx_http_tunnel_module.
  699. </para>
  700. </change>

  701. </changes>


  702. <changes ver="1.31.2" date="2026-06-17">

  703. <change type="security">
  704. <para lang="ru">
  705. при использовании HTTP/3 обработка специально созданной QUIC-сессии
  706. могла приводить к обращению к ранее освобождённой памяти,
  707. что позволяло атакующему повредить память рабочего процесса
  708. или вызвать segmentation fault в рабочем процессе (CVE-2026-42530).<br/>
  709. Спасибо Trung Nguyen из CyStack.
  710. </para>
  711. <para lang="en">
  712. use-after-free might occur
  713. when using HTTP/3 and processing a specially crafted QUIC session,
  714. allowing an attacker to cause worker process memory corruption
  715. or segmentation fault in a worker process (CVE-2026-42530).<br/>
  716. Thanks to Trung Nguyen of CyStack.
  717. </para>
  718. </change>

  719. <change type="security">
  720. <para lang="ru">
  721. при проксировании специально созданного запроса на HTTP/2 или gRPC-бэкенд
  722. с использованием директив "ignore_invalid_headers off;" и
  723. "large_client_header_buffers" с большим значением
  724. могло происходить переполнение буфера в рабочем процессе,
  725. что позволяло атакующему повредить память рабочего процесса
  726. или вызвать segmentation fault в рабочем процессе (CVE-2026-42055).<br/>
  727. Спасибо Mufeed VH из Winfunc Research.
  728. </para>
  729. <para lang="en">
  730. a heap memory buffer overflow might occur in a worker process
  731. when using a configuration with "ignore_invalid_headers off;"
  732. and "large_client_header_buffers" with large configured values
  733. when proxying a specially crafted request to HTTP/2 or gRPC backend,
  734. allowing an attacker to cause worker process memory corruption
  735. or segmentation fault in a worker process (CVE-2026-42055).<br/>
  736. Thanks to Mufeed VH of Winfunc Research.
  737. </para>
  738. </change>

  739. <change type="security">
  740. <para lang="ru">
  741. при обработке специально переданного ответа с декодированием из UTF-8
  742. через директиву charset_map могло происходить чтение данных
  743. за границами буфера рабочего процесса, что позволяло атакующему
  744. отправить клиенту ограниченное содержимое памяти рабочего процесса
  745. или вызвать segmentation fault в рабочем процессе (CVE-2026-48142).<br/>
  746. Спасибо Han Yan из Xiaomi и p4p3r из CYBERONE.
  747. </para>
  748. <para lang="en">
  749. a heap memory buffer overread might occur in a worker process
  750. while handling a specially sent response with decoding from UTF-8
  751. via the "charset_map" directive, allowing an attacker to cause
  752. a limited disclosure of worker proccess memory
  753. or segmentation fault in a worker process (CVE-2026-48142).<br/>
  754. Thanks to Han Yan of Xiaomi and p4p3r of CYBERONE.
  755. </para>
  756. </change>

  757. <change type="change">
  758. <para lang="ru">
  759. теперь переменная $request_id использует SipHash-2-4.
  760. </para>
  761. <para lang="en">
  762. now the $request_id variable uses SipHash-2-4.
  763. </para>
  764. </change>

  765. <change type="feature">
  766. <para lang="ru">
  767. переменная $ssl_sigalgs.
  768. </para>
  769. <para lang="en">
  770. the $ssl_sigalgs variable.
  771. </para>
  772. </change>

  773. <change type="bugfix">
  774. <para lang="ru">
  775. переменная заданная директивой split_clients могла быть пустой,
  776. если все проценты были заданы явно и их сумма была равна 100%.
  777. </para>
  778. <para lang="en">
  779. a variable defined by the "split_clients" directive might be empty
  780. if all percentages were specified explicitly and summed up to 100%.
  781. </para>
  782. </change>

  783. <change type="bugfix">
  784. <para lang="ru">
  785. сравнение хешей secure_link за константное время.<br/>
  786. Спасибо kodareef5.
  787. </para>
  788. <para lang="en">
  789. constant time "secure_link" hash comparison.<br/>
  790. Thanks to kodareef5.
  791. </para>
  792. </change>

  793. </changes>


  794. <changes ver="1.31.1" date="2026-05-22">

  795. <change type="security">
  796. <para lang="ru">
  797. при использовании конфигурации модуля ngx_http_rewrite_module
  798. с перекрывающимися выделениями
  799. могло происходить переполнение буфера в рабочем процессе,
  800. что потенциально могло приводить к выполнению произвольного кода
  801. (CVE-2026-9256).<br/>
  802. Спасибо Mufeed VH из Winfunc Research.
  803. </para>
  804. <para lang="en">
  805. a heap memory buffer overflow might occur in a worker process
  806. when using a configuration with overlapping captures
  807. in ngx_http_rewrite_module,
  808. potentially resulting in arbitrary code execution
  809. (CVE-2026-9256).<br/>
  810. Thanks to Mufeed VH of Winfunc Research.
  811. </para>
  812. </change>

  813. </changes>


  814. <changes ver="1.31.0" date="2026-05-13">

  815. <change type="security">
  816. <para lang="ru">
  817. при использовании директивы proxy_set_body атакующий мог вставить данные
  818. в проксируемый запрос на HTTP/2-бэкенд (CVE-2026-42926).<br/>
  819. Спасибо Mufeed VH из Winfunc Research.
  820. </para>
  821. <para lang="en">
  822. when using the "proxy_set_body" directive, an attacker might inject data
  823. in the proxied request to an HTTP/2 backend (CVE-2026-42926).<br/>
  824. Thanks to Mufeed VH of Winfunc Research.
  825. </para>
  826. </change>

  827. <change type="security">
  828. <para lang="ru">
  829. при обработке специально созданного запроса модулем ngx_http_rewrite_module
  830. могло происходить переполнение буфера в рабочем процессе,
  831. что потенциально могло приводить к выполнению произвольного кода
  832. (CVE-2026-42945).<br/>
  833. Спасибо Leo Lin.
  834. </para>
  835. <para lang="en">
  836. a heap memory buffer overflow might occur in a worker process
  837. while handling a specially crafted request by ngx_http_rewrite_module,
  838. potentially resulting in arbitrary code execution
  839. (CVE-2026-42945).<br/>
  840. Thanks to Leo Lin.
  841. </para>
  842. </change>

  843. <change type="security">
  844. <para lang="ru">
  845. при обработке специально созданного ответа модулем ngx_http_scgi_module
  846. или ngx_http_uwsgi_module могло происходить чтение данных за границами
  847. буфера рабочего процесса, что позволяло атакующему
  848. отправить клиенту содержимое памяти рабочего процесса
  849. или вызвать segmentation fault в рабочем процессе (CVE-2026-42946).<br/>
  850. Спасибо Leo Lin.
  851. </para>
  852. <para lang="en">
  853. a heap memory buffer overread might occur in a worker process
  854. while handling a specially crafted response by ngx_http_scgi_module
  855. or ngx_http_uwsgi_module, allowing an attacker to cause
  856. a disclosure of worker process memory
  857. or segmentation fault in a worker process (CVE-2026-42946).<br/>
  858. Thanks to Leo Lin.
  859. </para>
  860. </change>

  861. <change type="security">
  862. <para lang="ru">
  863. при обработке специально переданного ответа с декодированием из UTF-8
  864. через директиву charset_map могло происходить чтение данных
  865. за границами буфера рабочего процесса, что позволяло атакующему
  866. отправить клиенту ограниченное содержимое памяти рабочего процесса
  867. или вызвать segmentation fault в рабочем процессе (CVE-2026-42934).<br/>
  868. Спасибо David Carlier.
  869. </para>
  870. <para lang="en">
  871. a heap memory buffer overread might occur in a worker process
  872. while handling a specially sent response with decoding from UTF-8
  873. via the "charset_map" directive, allowing an attacker to cause
  874. a limited disclosure of worker proccess memory
  875. or segmentation fault in a worker process (CVE-2026-42934).<br/>
  876. Thanks to David Carlier.
  877. </para>
  878. </change>

  879. <change type="security">
  880. <para lang="ru">
  881. при использовании HTTP/3 обработка миграции соединения могла приводить
  882. к созданию QUIC-стримов с новым адресом клиента до завершения валидации,
  883. что позволяло атакующему выполнить подмену адреса (CVE-2026-40460).<br/>
  884. Спасибо Rodrigo Laneth.
  885. </para>
  886. <para lang="en">
  887. when using HTTP/3, processing of connection migration might cause
  888. new QUIC streams to receive a new client address before validation,
  889. allowing an attacker to cause address spoofing (CVE-2026-40460).<br/>
  890. Thanks to Rodrigo Laneth.
  891. </para>
  892. </change>

  893. <change type="security">
  894. <para lang="ru">
  895. при использовании директивы ssl_ocsp
  896. во время обработки ответов DNS-сервера
  897. могло произойти обращение к ранее освобождённой памяти,
  898. что позволяло атакующему повредить память рабочего процесса
  899. или вызвать segmentation fault в рабочем процессе (CVE-2026-40701).<br/>
  900. Спасибо Leo Lin.
  901. </para>
  902. <para lang="en">
  903. use-after-free might occur
  904. during DNS server response processing
  905. if the "ssl_ocsp" directive was used,
  906. allowing an attacker to cause worker process memory corruption
  907. or segmentation fault in a worker process (CVE-2026-40701).<br/>
  908. Thanks to Leo Lin.
  909. </para>
  910. </change>

  911. <change type="change">
  912. <para lang="ru">
  913. теперь nginx возвращает ошибку, если в запросе по протоколу
  914. HTTP/2 или HTTP/3 присутствуют строки заголовка "Connection",
  915. "Proxy-Connection", "Keep-Alive", "Transfer-Encoding", "Upgrade",
  916. а также "TE" со значением, отличным от "trailers".
  917. </para>
  918. <para lang="en">
  919. now nginx rejects HTTP/2 and HTTP/3 requests with the "Connection",
  920. "Proxy-Connection", "Keep-Alive", "Transfer-Encoding", "Upgrade"
  921. header lines, and "TE" with any value other than "trailers".
  922. </para>
  923. </change>

  924. <change type="change">
  925. <para lang="ru">
  926. модуль ngx_http_dav_module теперь возвращает ошибку,
  927. если при обработке COPY- или MOVE-запроса
  928. исходные и целевые ресурсы совпадают
  929. или одна коллекция включает в себя другую.
  930. </para>
  931. <para lang="en">
  932. the ngx_http_dav_module now rejects a COPY or MOVE requests
  933. when the source and destination resources are the same
  934. or have a parent-child collection relationship.
  935. </para>
  936. </change>

  937. <change type="change">
  938. <para lang="ru">
  939. уровень логгирования ошибок SSL
  940. "invalid alert", "record layer failure",
  941. а также ошибок "SSL alert number N" для любых значений N
  942. понижен с уровня crit до info.
  943. </para>
  944. <para lang="en">
  945. the logging level of the
  946. "invalid alert" and "record layer failure" SSL errors,
  947. and of the "SSL alert number N" for any alert numbers
  948. has been lowered from "crit" to "info".
  949. </para>
  950. </change>

  951. <change type="change">
  952. <para lang="ru">
  953. теперь сборка модуля sticky может быть выключена
  954. с помощью параметра configure --without-http_upstream_sticky_module;
  955. параметр configure --without-http_upstream_sticky объявлен устаревшим.
  956. </para>
  957. <para lang="en">
  958. now the "sticky" module can be disabled with the
  959. --without-http_upstream_sticky_module configure option;
  960. the --without-http_upstream_sticky configure option is deprecated.
  961. </para>
  962. </change>

  963. <change type="feature">
  964. <para lang="ru">
  965. модуль ngx_http_tunnel_module;
  966. поддержка аутентификации через прокси-серверы
  967. в директивах auth_basic, satisfy и auth_delay.
  968. </para>
  969. <para lang="en">
  970. the ngx_http_tunnel_module;
  971. support for authenticating to proxies
  972. in the "auth_basic", "satisfy", and "auth_delay" directives.
  973. </para>
  974. </change>

  975. <change type="feature">
  976. <para lang="ru">
  977. директива least_time в блоке upstream.
  978. </para>
  979. <para lang="en">
  980. the "least_time" directive inside the "upstream" block.
  981. </para>
  982. </change>

  983. <change type="feature">
  984. <para lang="ru">
  985. директива proxy_ssl_alpn в модуле stream.
  986. </para>
  987. <para lang="en">
  988. the "proxy_ssl_alpn" directive in the stream module.
  989. </para>
  990. </change>

  991. <change type="bugfix">
  992. <para lang="ru">
  993. соединения к HTTP/2-бэкендам могли не кэшироваться
  994. при использовании директив proxy_set_body или proxy_pass_request_body.
  995. </para>
  996. <para lang="en">
  997. connections with HTTP/2 backends might not be cached
  998. when using the "proxy_set_body" or "proxy_pass_request_body" directives.
  999. </para>
  1000. </change>

  1001. <change type="bugfix">
  1002. <para lang="ru">
  1003. проксированные ответы HTTP/0.9, SCGI или uWSGI
  1004. могли передаваться неверно,
  1005. если первая строка была прочитана не целиком.
  1006. </para>
  1007. <para lang="en">
  1008. proxied HTTP/0.9, SCGI, or uWSGI responses
  1009. might be transferred incorrectly
  1010. if the first line was not fully read.
  1011. </para>
  1012. </change>

  1013. </changes>


  1014. <changes ver="1.29.8" date="2026-04-07">

  1015. <change type="feature">
  1016. <para lang="ru">
  1017. директива max_headers.<br/>
  1018. Спасибо Максиму Дунину.
  1019. </para>
  1020. <para lang="en">
  1021. the "max_headers" directive.<br/>
  1022. Thanks to Maxim Dounin.
  1023. </para>
  1024. </change>

  1025. <change type="feature">
  1026. <para lang="ru">
  1027. совместимость с OpenSSL 4.0.
  1028. </para>
  1029. <para lang="en">
  1030. OpenSSL 4.0 compatibility.
  1031. </para>
  1032. </change>

  1033. <change type="feature">
  1034. <para lang="ru">
  1035. теперь директива include внутри блока geo поддерживает маски.
  1036. </para>
  1037. <para lang="en">
  1038. now the "include" directive inside the "geo" block supports wildcards.
  1039. </para>
  1040. </change>

  1041. <change type="bugfix">
  1042. <para lang="ru">
  1043. в обработке ответов с кодом HTTP 103 (Early Hints)
  1044. от проксируемого бэкенда.
  1045. </para>
  1046. <para lang="en">
  1047. in processing of HTTP 103 (Early Hints) responses
  1048. from a proxied backend.
  1049. </para>
  1050. </change>

  1051. <change type="bugfix">
  1052. <para lang="ru">
  1053. переменные $request_port и $is_request_port
  1054. были недоступны в подзапросах.
  1055. </para>
  1056. <para lang="en">
  1057. the $request_port and $is_request_port variables
  1058. were not available in subrequests.
  1059. </para>
  1060. </change>

  1061. </changes>


  1062. <changes ver="1.29.7" date="2026-03-24">

  1063. <change type="security">
  1064. <para lang="ru">
  1065. при обработке COPY- или MOVE-запроса в location'е с включённым
  1066. alias могло произойти переполнение буфера, что позволяло
  1067. атакующему модифицировать исходный или целевой путь за пределы
  1068. document root (CVE-2026-27654).<br/>
  1069. Спасибо Calif.io при содействии Claude и Anthropic Research.
  1070. </para>
  1071. <para lang="en">
  1072. a buffer overflow might occur while handling a COPY or MOVE
  1073. request in a location with "alias", allowing an attacker
  1074. to modify the source or destination path outside of the
  1075. document root (CVE-2026-27654).<br/>
  1076. Thanks to Calif.io in collaboration with Claude and Anthropic Research.
  1077. </para>
  1078. </change>

  1079. <change type="security">
  1080. <para lang="ru">
  1081. обработка специально созданного mp4-файла модулем ngx_http_mp4_module
  1082. на 32-битных платформах могла приводить к падению рабочего процесса,
  1083. а также потенциально могла иметь другие последствия (CVE-2026-27784).<br/>
  1084. Спасибо Prabhav Srinath (sprabhav7).
  1085. </para>
  1086. <para lang="en">
  1087. processing of a specially crafted mp4 file by the ngx_http_mp4_module
  1088. on 32-bit platforms might cause a worker process crash,
  1089. or might have potential other impact (CVE-2026-27784).<br/>
  1090. Thanks to Prabhav Srinath (sprabhav7).
  1091. </para>
  1092. </change>

  1093. <change type="security">
  1094. <para lang="ru">
  1095. обработка специально созданного mp4-файла модулем ngx_http_mp4_module
  1096. могла приводить к падению рабочего процесса, а также потенциально
  1097. могла иметь другие последствия (CVE-2026-32647).<br/>
  1098. Спасибо Xint Code и Pavel Kohout (Aisle Research).
  1099. </para>
  1100. <para lang="en">
  1101. processing of a specially crafted mp4 file by the ngx_http_mp4_module
  1102. might cause a worker process crash, or might have potential
  1103. other impact (CVE-2026-32647).<br/>
  1104. Thanks to Xint Code and Pavel Kohout (Aisle Research).
  1105. </para>
  1106. </change>

  1107. <change type="security">
  1108. <para lang="ru">
  1109. если использовался метод аутентификации CRAM-MD5 или APOP, то
  1110. в рабочем процессе мог произойти segmentation fault,
  1111. если были разрешены повторные попытки аутентификации (CVE-2026-27651).<br/>
  1112. Спасибо Arkadi Vainbrand.
  1113. </para>
  1114. <para lang="en">
  1115. a segmentation fault might occur in a worker process
  1116. if the CRAM-MD5 or APOP authentication methods were used
  1117. and authentication retry was enabled (CVE-2026-27651).<br/>
  1118. Thanks to Arkadi Vainbrand.
  1119. </para>
  1120. </change>

  1121. <change type="security">
  1122. <para lang="ru">
  1123. атакующий мог использовать записи PTR DNS чтобы вставить данные
  1124. в auth_http-запросы, а также в команду XCLIENT в SMTP-соединении
  1125. к бекенду (CVE-2026-28753).<br/>
  1126. Спасибо Asim Viladi Oglu Manizada, Colin Warren,
  1127. Xiao Liu (Yunnan University), Yuan Tan (UC Riverside)
  1128. и Bird Liu (Lanzhou University).
  1129. </para>
  1130. <para lang="en">
  1131. an attacker might use PTR DNS records to inject data in
  1132. auth_http requests, as well as in the XCLIENT command in
  1133. the backend SMTP connection (CVE-2026-28753).<br/>
  1134. Thanks to Asim Viladi Oglu Manizada, Colin Warren,
  1135. Xiao Liu (Yunnan University), Yuan Tan (UC Riverside),
  1136. and Bird Liu (Lanzhou University).
  1137. </para>
  1138. </change>

  1139. <change type="security">
  1140. <para lang="ru">
  1141. SSL handshake мог завершиться успешно при том, что OCSP
  1142. отклонил клиентский сертификат в модуле stream (CVE-2026-28755).<br/>
  1143. Спасибо Mufeed VH из Winfunc Research.
  1144. </para>
  1145. <para lang="en">
  1146. SSL handshake might succeed despite OCSP rejecting a client
  1147. certificate in the stream module (CVE-2026-28755).<br/>
  1148. Thanks to Mufeed VH of Winfunc Research.
  1149. </para>
  1150. </change>

  1151. <change type="feature">
  1152. <para lang="ru">
  1153. параметр multipath директивы listen.
  1154. </para>
  1155. <para lang="en">
  1156. the "multipath" parameter of the "listen" directive.
  1157. </para>
  1158. </change>

  1159. <change type="feature">
  1160. <para lang="ru">
  1161. параметр local директивы keepalive в блоке upstream.
  1162. </para>
  1163. <para lang="en">
  1164. the "local" parameter of the "keepalive" directive
  1165. in the "upstream" block.
  1166. </para>
  1167. </change>

  1168. <change type="change">
  1169. <para lang="ru">
  1170. теперь директива keepalive в блоке upstream включена по умолчанию.
  1171. </para>
  1172. <para lang="en">
  1173. now the "keepalive" directive in the "upstream" block is
  1174. enabled by default.
  1175. </para>
  1176. </change>

  1177. <change type="change">
  1178. <para lang="ru">
  1179. теперь модуль ngx_http_proxy_module поддерживает keepalive по умолчанию;
  1180. значение proxy_http_version по умолчанию равно "1.1";
  1181. proxy заголовок "Connection" по умолчанию больше не посылается.
  1182. </para>
  1183. <para lang="en">
  1184. now ngx_http_proxy_module supports keepalive by default;
  1185. the default value for "proxy_http_version" is "1.1";
  1186. the "Connection" proxy header is not sent by default anymore.
  1187. </para>
  1188. </change>

  1189. <change type="bugfix">
  1190. <para lang="ru">
  1191. некорректный HTTP/2-запрос мог быть отправлен после переключения
  1192. на следующий бэкенд при использовании буферизованного тела в модуле
  1193. ngx_http_grpc_module.
  1194. </para>
  1195. <para lang="en">
  1196. an invalid HTTP/2 request might be sent after switching to the next
  1197. upstream if buffered body was used in the ngx_http_grpc_module.
  1198. </para>
  1199. </change>

  1200. </changes>


  1201. <changes ver="1.29.6" date="2026-03-10">

  1202. <change type="feature">
  1203. <para lang="ru">
  1204. режим привязки сессий;
  1205. директива sticky в блоке upstream модуля http;
  1206. директива server поддерживает параметры route и drain.
  1207. </para>
  1208. <para lang="en">
  1209. session affinity support;
  1210. the "sticky" directive in the "upstream" block of the "http" module;
  1211. the "server" directive supports the "route" and "drain" parameters.
  1212. </para>
  1213. </change>

  1214. <change type="change">
  1215. <para lang="ru">
  1216. теперь nginx ограничивает размер и частоту отправки пакетов
  1217. QUIC stateless reset.
  1218. </para>
  1219. <para lang="en">
  1220. now nginx limits the size and rate of QUIC stateless reset packets.
  1221. </para>
  1222. </change>

  1223. <change type="bugfix">
  1224. <para lang="ru">
  1225. получение QUIC-пакета в другом рабочем процессе
  1226. могло приводить к разрыву соединения.
  1227. </para>
  1228. <para lang="en">
  1229. receiving a QUIC packet by a wrong worker process
  1230. could cause the connection to terminate.
  1231. </para>
  1232. </change>

  1233. <change type="bugfix">
  1234. <para lang="ru">
  1235. при отправке закэшированного ответа HTTP/2
  1236. в логах могли появляться сообщения
  1237. "[crit] cache file ... contains invalid header".
  1238. </para>
  1239. <para lang="en">
  1240. "[crit] cache file ... contains invalid header"
  1241. messages might appear in logs
  1242. when sending a cached HTTP/2 response.
  1243. </para>
  1244. </change>

  1245. <change type="bugfix">
  1246. <para lang="ru">
  1247. проксирование на scgi-бэкенды могло не работать при использовании
  1248. chunked transfer encoding и директивы scgi_request_buffering.<br/>
  1249. Спасибо Mufeed VH.
  1250. </para>
  1251. <para lang="en">
  1252. proxying to scgi backends might not work when using
  1253. chunked transfer encoding and the "scgi_request_buffering" directive.<br/>
  1254. Thanks to Mufeed VH.
  1255. </para>
  1256. </change>

  1257. <change type="bugfix">
  1258. <para lang="ru">
  1259. в модуле ngx_http_mp4_module.<br/>
  1260. Спасибо Andrew Lacambra.
  1261. </para>
  1262. <para lang="en">
  1263. in the ngx_http_mp4_module.<br/>
  1264. Thanks to Andrew Lacambra.
  1265. </para>
  1266. </change>

  1267. <change type="bugfix">
  1268. <para lang="ru">
  1269. nginx считал запятую разделителем в строке "Cookie"
  1270. заголовка запроса при вычислении переменных "$cookie_...".
  1271. </para>
  1272. <para lang="en">
  1273. nginx treated a comma as separator in the "Cookie"
  1274. request header line when evaluating "$cookie_..." variables.
  1275. </para>
  1276. </change>

  1277. <change type="bugfix">
  1278. <para lang="ru">
  1279. в парсинге литеральных аргументов IMAP команд.
  1280. </para>
  1281. <para lang="en">
  1282. in IMAP command literal argument parsing.
  1283. </para>
  1284. </change>

  1285. </changes>


  1286. <changes ver="1.29.5" date="2026-02-04">

  1287. <change type="security">
  1288. <para lang="ru">
  1289. атакующий мог вставить незашифрованные данные в ответ от
  1290. SSL-бэкенда (CVE-2026-1642).
  1291. </para>
  1292. <para lang="en">
  1293. an attacker might inject plain text data in the response from an SSL
  1294. backend (CVE-2026-1642).
  1295. </para>
  1296. </change>

  1297. <change type="bugfix">
  1298. <para lang="ru">
  1299. обращение к ранее освобождённой памяти могло произойти после
  1300. переключения на следующий gRPC- или HTTP/2-бэкенд.
  1301. </para>
  1302. <para lang="en">
  1303. use-after-free might occur after switching to the next
  1304. gRPC or HTTP/2 backend.
  1305. </para>
  1306. </change>

  1307. <change type="bugfix">
  1308. <para lang="ru">
  1309. некорректный HTTP/2-запрос мог быть отправлен после переключения
  1310. на следующий бэкенд.
  1311. </para>
  1312. <para lang="en">
  1313. an invalid HTTP/2 request might be sent after switching to the next
  1314. upstream.
  1315. </para>
  1316. </change>

  1317. <change type="bugfix">
  1318. <para lang="ru">
  1319. ответ с несколькими диапазонами мог быть больше, чем исходный ответ.
  1320. </para>
  1321. <para lang="en">
  1322. a response with multiple ranges might be larger than the source
  1323. response.
  1324. </para>
  1325. </change>

  1326. <change type="bugfix">
  1327. <para lang="ru">
  1328. исправлена установка переменной HTTP_HOST при проксировании на
  1329. FastCGI-, SCGI- и uwsgi-бэкенды.
  1330. </para>
  1331. <para lang="en">
  1332. fixed setting HTTP_HOST when proxying to FastCGI, SCGI,
  1333. and uwsgi backends.
  1334. </para>
  1335. </change>

  1336. <change type="bugfix">
  1337. <para lang="ru">
  1338. устранено предупреждение при компиляции при помощи MSVC 2022 x86.
  1339. </para>
  1340. <para lang="en">
  1341. fixed warning when compiling with MSVC 2022 x86.
  1342. </para>
  1343. </change>

  1344. <change type="change">
  1345. <para lang="ru">
  1346. уровень логгирования ошибки SSL "ech_required"
  1347. понижен с уровня crit до info.
  1348. </para>
  1349. <para lang="en">
  1350. the logging level of the "ech_required" SSL error
  1351. has been lowered from "crit" to "info".
  1352. </para>
  1353. </change>

  1354. </changes>


  1355. <changes ver="1.29.4" date="2025-12-09">

  1356. <change type="feature">
  1357. <para lang="ru">
  1358. модуль ngx_http_proxy_module поддерживает HTTP/2.
  1359. </para>
  1360. <para lang="en">
  1361. the ngx_http_proxy_module supports HTTP/2.
  1362. </para>
  1363. </change>

  1364. <change type="feature">
  1365. <para lang="ru">
  1366. поддержка расширения TLS Encrypted ClientHello
  1367. при использовании ветки разработки ECH OpenSSL;
  1368. директива ssl_ech_file.<br/>
  1369. Спасибо Stephen Farrell.
  1370. </para>
  1371. <para lang="en">
  1372. Encrypted ClientHello TLS extension support
  1373. when using OpenSSL ECH feature branch;
  1374. the "ssl_ech_file" directive.<br/>
  1375. Thanks to Stephen Farrell.
  1376. </para>
  1377. </change>

  1378. <change type="change">
  1379. <para lang="ru">
  1380. валидация хоста и порта в строке запроса,
  1381. в заголовке "Host" и псевдо-заголовке ":authority"
  1382. изменена на соответствующую RFC 3986.
  1383. </para>
  1384. <para lang="en">
  1385. validation of host and port in the request line,
  1386. "Host" header field, and ":authority" pseudo-header field
  1387. has been changed to follow RFC 3986.
  1388. </para>
  1389. </change>

  1390. <change type="change">
  1391. <para lang="ru">
  1392. теперь одиночный символ LF, используемый для перевода строки
  1393. в chunked-теле запроса или ответа, считается ошибкой.
  1394. </para>
  1395. <para lang="en">
  1396. now a single LF used as a line terminator
  1397. in a chunked request or response body is considered an error.
  1398. </para>
  1399. </change>

  1400. <change type="bugfix">
  1401. <para lang="ru">
  1402. при использовании HTTP/3 с OpenSSL 3.5.1 и новее
  1403. в рабочем процессе мог произойти segmentation fault;
  1404. ошибка появилась в 1.29.1.<br/>
  1405. Спасибо Jan Svojanovsky.
  1406. </para>
  1407. <para lang="en">
  1408. when using HTTP/3 with OpenSSL 3.5.1 or newer
  1409. a segmentation fault might occur in a worker process;
  1410. the bug had appeared in 1.29.1.<br/>
  1411. Thanks to Jan Svojanovsky.
  1412. </para>
  1413. </change>

  1414. <change type="bugfix">
  1415. <para lang="ru">
  1416. при совместном использовании директив try_files и proxy_pass с URI
  1417. в рабочем процессе мог произойти segmentation fault.
  1418. </para>
  1419. <para lang="en">
  1420. a segmentation fault might occur in a worker process
  1421. if the "try_files" directive and "proxy_pass" with a URI were used.
  1422. </para>
  1423. </change>

  1424. </changes>


  1425. <changes ver="1.29.3" date="2025-10-28">

  1426. <change type="feature">
  1427. <para lang="ru">
  1428. директивы add_header_inherit и add_trailer_inherit.
  1429. </para>
  1430. <para lang="en">
  1431. the "add_header_inherit" and "add_trailer_inherit" directives.
  1432. </para>
  1433. </change>

  1434. <change type="feature">
  1435. <para lang="ru">
  1436. переменные $request_port и $is_request_port.
  1437. </para>
  1438. <para lang="en">
  1439. the $request_port and $is_request_port variables.
  1440. </para>
  1441. </change>

  1442. <change type="feature">
  1443. <para lang="ru">
  1444. переменные $ssl_sigalg и $ssl_client_sigalg.
  1445. </para>
  1446. <para lang="en">
  1447. the $ssl_sigalg and $ssl_client_sigalg variables.
  1448. </para>
  1449. </change>

  1450. <change type="feature">
  1451. <para lang="ru">
  1452. параметр volatile директивы geo.
  1453. </para>
  1454. <para lang="en">
  1455. the "volatile" parameter of the "geo" directive.
  1456. </para>
  1457. </change>

  1458. <change type="feature">
  1459. <para lang="ru">
  1460. теперь сжатие сертификатов доступно с BoringSSL.
  1461. </para>
  1462. <para lang="en">
  1463. now certificate compression is available with BoringSSL.
  1464. </para>
  1465. </change>

  1466. <change type="bugfix">
  1467. <para lang="ru">
  1468. теперь сжатие сертификатов запрещено при включенном OCSP stapling.
  1469. </para>
  1470. <para lang="en">
  1471. now certificate compression is disabled with OCSP stapling.
  1472. </para>
  1473. </change>

  1474. </changes>


  1475. <changes ver="1.29.2" date="2025-10-07">

  1476. <change type="feature">
  1477. <para lang="ru">
  1478. теперь nginx можно собрать с AWS-LC.<br/>
  1479. Спасибо Samuel Chiang.
  1480. </para>
  1481. <para lang="en">
  1482. now nginx can be built with AWS-LC.<br/>
  1483. Thanks Samuel Chiang.
  1484. </para>
  1485. </change>

  1486. <change type="bugfix">
  1487. <para lang="ru">
  1488. теперь директива ssl_protocols работает
  1489. в виртуальном сервере, отличном от сервера по умолчанию,
  1490. при использовании OpenSSL 1.1.1 и новее.
  1491. </para>
  1492. <para lang="en">
  1493. now the "ssl_protocols" directive works
  1494. in a virtual server different from the default server
  1495. when using OpenSSL 1.1.1 or newer.
  1496. </para>
  1497. </change>

  1498. <change type="bugfix">
  1499. <para lang="ru">
  1500. при использовании TLSv1.3 с OpenSSL и клиентских сертификатов
  1501. SSL handshake всегда завершался ошибкой
  1502. при восстановлении сессии с другим значением SNI;
  1503. ошибка появилась в 1.27.4.
  1504. </para>
  1505. <para lang="en">
  1506. SSL handshake always failed
  1507. when using TLSv1.3 with OpenSSL and client certificates
  1508. and resuming a session with a different SNI value;
  1509. the bug had appeared in 1.27.4.
  1510. </para>
  1511. </change>

  1512. <change type="bugfix">
  1513. <para lang="ru">
  1514. при использовании QUIC и директивы ssl_reject_handshake
  1515. в логах могли появляться сообщения
  1516. "ignoring stale global SSL error";
  1517. ошибка появилась в 1.29.0.<br/>
  1518. Спасибо Владимиру Хомутову.
  1519. </para>
  1520. <para lang="en">
  1521. the "ignoring stale global SSL error"
  1522. alerts might appear in logs
  1523. when using QUIC and the "ssl_reject_handshake" directive;
  1524. the bug had appeared in 1.29.0.<br/>
  1525. Thanks to Vladimir Homutov.
  1526. </para>
  1527. </change>

  1528. <change type="bugfix">
  1529. <para lang="ru">
  1530. в обработке delta-seconds
  1531. в строке "Cache-Control" в заголовке ответа бэкенда.
  1532. </para>
  1533. <para lang="en">
  1534. in delta-seconds processing
  1535. in the "Cache-Control" backend response header line.
  1536. </para>
  1537. </change>

  1538. <change type="bugfix">
  1539. <para lang="ru">
  1540. команда XCLIENT не использовала кодировку xtext.<br/>
  1541. Спасибо Igor Morgenstern из Aisle Research.
  1542. </para>
  1543. <para lang="en">
  1544. an XCLIENT command didn't use the xtext encoding.<br/>
  1545. Thanks to Igor Morgenstern of Aisle Research.
  1546. </para>
  1547. </change>

  1548. <change type="bugfix">
  1549. <para lang="ru">
  1550. в кэшировании SSL-сертификатов во время переконфигурации.
  1551. </para>
  1552. <para lang="en">
  1553. in SSL certificate caching during reconfiguration.
  1554. </para>
  1555. </change>

  1556. </changes>


  1557. <changes ver="1.29.1" date="2025-08-13">

  1558. <change type="security">
  1559. <para lang="ru">
  1560. обработка специально созданного логина/пароля при использовании
  1561. метода аутентификации "none" в модуле ngx_mail_smtp_module
  1562. могла приводить к отправке серверу аутентификации
  1563. части содержимого памяти рабочего процесса (CVE-2025-53859).
  1564. </para>
  1565. <para lang="en">
  1566. processing of a specially crafted login/password when using
  1567. the "none" authentication method in the ngx_mail_smtp_module
  1568. might cause worker process memory disclosure
  1569. to the authentication server (CVE-2025-53859).
  1570. </para>
  1571. </change>

  1572. <change type="change">
  1573. <para lang="ru">
  1574. теперь сжатие сертификатов в протоколе TLSv1.3 по умолчанию запрещено.
  1575. </para>
  1576. <para lang="en">
  1577. now TLSv1.3 certificate compression is disabled by default.
  1578. </para>
  1579. </change>

  1580. <change type="feature">
  1581. <para lang="ru">
  1582. директива ssl_certificate_compression.
  1583. </para>
  1584. <para lang="en">
  1585. the "ssl_certificate_compression" directive.
  1586. </para>
  1587. </change>

  1588. <change type="feature">
  1589. <para lang="ru">
  1590. поддержка 0-RTT в QUIC при использовании OpenSSL 3.5.1 и новее.
  1591. </para>
  1592. <para lang="en">
  1593. support for 0-RTT in QUIC when using OpenSSL 3.5.1 or newer.
  1594. </para>
  1595. </change>

  1596. <change type="bugfix">
  1597. <para lang="ru">
  1598. при использовании HTTP/2 и директивы early_hints
  1599. ответ 103 мог буферизироваться.
  1600. </para>
  1601. <para lang="en">
  1602. the 103 response might be buffered
  1603. when using HTTP/2 and the "early_hints" directive.
  1604. </para>
  1605. </change>

  1606. <change type="bugfix">
  1607. <para lang="ru">
  1608. в обработке заголовков запроса "Host" и ":authority"
  1609. с одинаковыми значениями при использовании HTTP/2;
  1610. ошибка появилась в 1.17.9.
  1611. </para>
  1612. <para lang="en">
  1613. in handling "Host" and ":authority" header lines
  1614. with equal values when using HTTP/2;
  1615. the bug had appeared in 1.17.9.
  1616. </para>
  1617. </change>

  1618. <change type="bugfix">
  1619. <para lang="ru">
  1620. в обработке заголовка запроса "Host" с портом
  1621. при использовании HTTP/3.
  1622. </para>
  1623. <para lang="en">
  1624. in handling "Host" header lines with a port
  1625. when using HTTP/3.
  1626. </para>
  1627. </change>

  1628. <change type="bugfix">
  1629. <para lang="ru">
  1630. nginx не собирался под NetBSD 10.0.
  1631. </para>
  1632. <para lang="en">
  1633. nginx could not be built on NetBSD 10.0.
  1634. </para>
  1635. </change>

  1636. <change type="bugfix">
  1637. <para lang="ru">
  1638. в работе параметра none директивы smtp_auth.
  1639. </para>
  1640. <para lang="en">
  1641. in the "none" parameter of the "smtp_auth" directive.
  1642. </para>
  1643. </change>

  1644. </changes>


  1645. <changes ver="1.29.0" date="2025-06-24">

  1646. <change type="feature">
  1647. <para lang="ru">
  1648. поддержка ответа с кодом 103 от proxy- и gRPC-бэкендов;
  1649. директива early_hints.
  1650. </para>
  1651. <para lang="en">
  1652. support for response code 103 from proxy and gRPC backends;
  1653. the "early_hints" directive.
  1654. </para>
  1655. </change>

  1656. <change type="feature">
  1657. <para lang="ru">
  1658. возможность загрузки секретных ключей с аппаратных устройств
  1659. с помощью OpenSSL provider.
  1660. </para>
  1661. <para lang="en">
  1662. loading of secret keys from hardware tokens
  1663. with OpenSSL provider.
  1664. </para>
  1665. </change>

  1666. <change type="feature">
  1667. <para lang="ru">
  1668. поддержка параметра so_keepalive директивы listen на macOS.
  1669. </para>
  1670. <para lang="en">
  1671. support for the "so_keepalive" parameter of the "listen" directive on macOS.
  1672. </para>
  1673. </change>

  1674. <change type="change">
  1675. <para lang="ru">
  1676. уровень логгирования ошибок SSL в QUIC handshake
  1677. изменён с уровня error на crit для критических ошибок
  1678. и на info для всех остальных;
  1679. уровень логгирования неподдерживаемых транспортных параметров QUIC
  1680. понижен с уровня info до debug.
  1681. </para>
  1682. <para lang="en">
  1683. the logging level of SSL errors in a QUIC handshake
  1684. has been changed from "error" to "crit" for critical errors,
  1685. and to "info" for the rest;
  1686. the logging level of unsupported QUIC transport parameters
  1687. has been lowered from "info" to "debug".
  1688. </para>
  1689. </change>

  1690. <change type="change">
  1691. <para lang="ru">
  1692. бинарная версия nginx/Windows теперь использует для сборки Windows SDK 10.
  1693. </para>
  1694. <para lang="en">
  1695. the native nginx/Windows binary release is now built using Windows SDK 10.
  1696. </para>
  1697. </change>

  1698. <change type="bugfix">
  1699. <para lang="ru">
  1700. nginx не собирался gcc 15,
  1701. если использовались модули ngx_http_v2_module и ngx_http_v3_module.
  1702. </para>
  1703. <para lang="en">
  1704. nginx could not be built by gcc 15
  1705. if ngx_http_v2_module or ngx_http_v3_module modules were used.
  1706. </para>
  1707. </change>

  1708. <change type="bugfix">
  1709. <para lang="ru">
  1710. nginx мог не собираться gcc 14 и новее с оптимизацией -O3 -flto,
  1711. если использовался модуль ngx_http_v3_module.
  1712. </para>
  1713. <para lang="en">
  1714. nginx might not be built by gcc 14 or newer with -O3 -flto optimization
  1715. if ngx_http_v3_module was used.
  1716. </para>
  1717. </change>

  1718. <change>
  1719. <para lang="ru">
  1720. Исправления и улучшения в HTTP/3.
  1721. </para>
  1722. <para lang="en">
  1723. Bugfixes and improvements in HTTP/3.
  1724. </para>
  1725. </change>

  1726. </changes>


  1727. <changes ver="1.27.5" date="2025-04-16">

  1728. <change type="feature">
  1729. <para lang="ru">
  1730. контроль перегрузки CUBIC в соединениях QUIC.
  1731. </para>
  1732. <para lang="en">
  1733. CUBIC congestion control in QUIC connections.
  1734. </para>
  1735. </change>

  1736. <change type="change">
  1737. <para lang="ru">
  1738. ограничение на максимальный размер кэшируемых в разделяемой памяти
  1739. SSL-сессий поднято до 8192.
  1740. </para>
  1741. <para lang="en">
  1742. the maximum size limit for SSL sessions cached in shared memory
  1743. has been raised to 8192.
  1744. </para>
  1745. </change>

  1746. <change type="bugfix">
  1747. <para lang="ru">
  1748. в директивах grpc_ssl_password_file, proxy_ssl_password_file и
  1749. uwsgi_ssl_password_file
  1750. при загрузке SSL-сертификатов и зашифрованных ключей из переменных;
  1751. ошибка появилась в 1.23.1.
  1752. </para>
  1753. <para lang="en">
  1754. in the "grpc_ssl_password_file", "proxy_ssl_password_file", and
  1755. "uwsgi_ssl_password_file" directives
  1756. when loading SSL certificates and encrypted keys from variables;
  1757. the bug had appeared in 1.23.1.
  1758. </para>
  1759. </change>

  1760. <change type="bugfix">
  1761. <para lang="ru">
  1762. в переменных $ssl_curve и $ssl_curves
  1763. при использовании подключаемых кривых в OpenSSL.
  1764. </para>
  1765. <para lang="en">
  1766. in the $ssl_curve and $ssl_curves variables
  1767. when using pluggable curves in OpenSSL.
  1768. </para>
  1769. </change>

  1770. <change type="bugfix">
  1771. <para lang="ru">
  1772. nginx не собирался с musl libc.<br/>
  1773. Спасибо Piotr Sikora.
  1774. </para>
  1775. <para lang="en">
  1776. nginx could not be built with musl libc.<br/>
  1777. Thanks to Piotr Sikora.
  1778. </para>
  1779. </change>

  1780. <change>
  1781. <para lang="ru">
  1782. Улучшения производительности и исправления в HTTP/3.
  1783. </para>
  1784. <para lang="en">
  1785. Performance improvements and bugfixes in HTTP/3.
  1786. </para>
  1787. </change>

  1788. </changes>


  1789. <changes ver="1.27.4" date="2025-02-05">

  1790. <change type="security">
  1791. <para lang="ru">
  1792. недостаточная проверка в обработке виртуальных серверов
  1793. при использовании SNI в TLSv1.3 позволяла повторно использовать
  1794. SSL-сессию в контексте другого виртуального сервера,
  1795. чтобы обойти проверку клиентских SSL-сертификатов (CVE-2025-23419).
  1796. </para>
  1797. <para lang="en">
  1798. insufficient check in virtual servers handling with TLSv1.3 SNI
  1799. allowed to reuse SSL sessions in a different virtual server,
  1800. to bypass client SSL certificates verification (CVE-2025-23419).
  1801. </para>
  1802. </change>

  1803. <change type="feature">
  1804. <para lang="ru">
  1805. директивы ssl_object_cache_inheritable, ssl_certificate_cache,
  1806. proxy_ssl_certificate_cache, grpc_ssl_certificate_cache
  1807. и uwsgi_ssl_certificate_cache.
  1808. </para>
  1809. <para lang="en">
  1810. the "ssl_object_cache_inheritable", "ssl_certificate_cache",
  1811. "proxy_ssl_certificate_cache", "grpc_ssl_certificate_cache",
  1812. and "uwsgi_ssl_certificate_cache" directives.
  1813. </para>
  1814. </change>

  1815. <change type="feature">
  1816. <para lang="ru">
  1817. директива keepalive_min_timeout.
  1818. </para>
  1819. <para lang="en">
  1820. the "keepalive_min_timeout" directive.
  1821. </para>
  1822. </change>

  1823. <change type="workaround">
  1824. <para lang="ru">
  1825. при использовании zlib-ng
  1826. в логах появлялись сообщения "gzip filter failed to use preallocated memory".
  1827. </para>
  1828. <para lang="en">
  1829. "gzip filter failed to use preallocated memory" alerts appeared in logs
  1830. when using zlib-ng.
  1831. </para>
  1832. </change>

  1833. <change type="bugfix">
  1834. <para lang="ru">
  1835. nginx не мог собрать библиотеку libatomic из исходных текстов,
  1836. если использовался параметр --with-libatomic=DIR.
  1837. </para>
  1838. <para lang="en">
  1839. nginx could not build libatomic library using the library sources
  1840. if the --with-libatomic=DIR option was used.
  1841. </para>
  1842. </change>

  1843. <change type="bugfix">
  1844. <para lang="ru">
  1845. могла происходить ошибка установления соединения
  1846. при использовании 0-RTT в QUIC;
  1847. ошибка появилась в 1.27.1.
  1848. </para>
  1849. <para lang="en">
  1850. QUIC connection might not be established when using 0-RTT;
  1851. the bug had appeared in 1.27.1.
  1852. </para>
  1853. </change>

  1854. <change type="bugfix">
  1855. <para lang="ru">
  1856. теперь nginx игнорирует пакеты согласования версий QUIC от клиентов.
  1857. </para>
  1858. <para lang="en">
  1859. nginx now ignores QUIC version negotiation packets from clients.
  1860. </para>
  1861. </change>

  1862. <change type="bugfix">
  1863. <para lang="ru">
  1864. nginx не собирался на Solaris 10 и более ранних
  1865. с модулем ngx_http_v3_module.
  1866. </para>
  1867. <para lang="en">
  1868. nginx could not be built on Solaris 10 and earlier
  1869. with the ngx_http_v3_module.
  1870. </para>
  1871. </change>

  1872. <change>
  1873. <para lang="ru">
  1874. Исправления в HTTP/3.
  1875. </para>
  1876. <para lang="en">
  1877. Bugfixes in HTTP/3.
  1878. </para>
  1879. </change>

  1880. </changes>


  1881. <changes ver="1.27.3" date="2024-11-26">

  1882. <change type="feature">
  1883. <para lang="ru">
  1884. директива server в блоке upstream поддерживает
  1885. параметр resolve.
  1886. </para>
  1887. <para lang="en">
  1888. the "server" directive in the "upstream" block supports
  1889. the "resolve" parameter.
  1890. </para>
  1891. </change>

  1892. <change type="feature">
  1893. <para lang="ru">
  1894. директивы resolver и resolver_timeout в блоке upstream.
  1895. </para>
  1896. <para lang="en">
  1897. the "resolver" and "resolver_timeout" directives in the "upstream" block.
  1898. </para>
  1899. </change>

  1900. <change type="feature">
  1901. <para lang="ru">
  1902. поддержка SmarterMail-специфичного режима
  1903. IMAP LOGIN с нетегированным ответом CAPABILITY
  1904. в почтовом прокси-сервере.
  1905. </para>
  1906. <para lang="en">
  1907. SmarterMail specific mode support
  1908. for IMAP LOGIN with untagged CAPABILITY response
  1909. in the mail proxy module.
  1910. </para>
  1911. </change>

  1912. <change type="change">
  1913. <para lang="ru">
  1914. теперь протоколы TLSv1 и TLSv1.1 по умолчанию запрещены.
  1915. </para>
  1916. <para lang="en">
  1917. now TLSv1 and TLSv1.1 protocols are disabled by default.
  1918. </para>
  1919. </change>

  1920. <change type="change">
  1921. <para lang="ru">
  1922. IPv6-адрес в квадратных скобках без порта теперь можно указывать
  1923. в директивах proxy_bind, fastcgi_bind, grpc_bind, memcached_bind,
  1924. scgi_bind и uwsgi_bind,
  1925. а также как адрес клиента в модуле ngx_http_realip_module.
  1926. </para>
  1927. <para lang="en">
  1928. an IPv6 address in square brackets and no port can be specified
  1929. in the "proxy_bind", "fastcgi_bind", "grpc_bind", "memcached_bind",
  1930. "scgi_bind", and "uwsgi_bind" directives,
  1931. and as client address in ngx_http_realip_module.
  1932. </para>
  1933. </change>

  1934. <change type="bugfix">
  1935. <para lang="ru">
  1936. в модуле ngx_http_mp4_module.<br/>
  1937. Спасибо Nils Bars.
  1938. </para>
  1939. <para lang="en">
  1940. in the ngx_http_mp4_module.<br/>
  1941. Thanks to Nils Bars.
  1942. </para>
  1943. </change>

  1944. <change type="bugfix">
  1945. <para lang="ru">
  1946. параметр so_keepalive директивы listen
  1947. мог работать некорректно на DragonFly BSD.
  1948. </para>
  1949. <para lang="en">
  1950. the "so_keepalive" parameter of the "listen" directive
  1951. might be handled incorrectly on DragonFly BSD.
  1952. </para>
  1953. </change>

  1954. <change type="bugfix">
  1955. <para lang="ru">
  1956. в директиве proxy_store.
  1957. </para>
  1958. <para lang="en">
  1959. in the "proxy_store" directive.
  1960. </para>
  1961. </change>

  1962. </changes>


  1963. <changes ver="1.27.2" date="2024-10-02">

  1964. <change type="feature">
  1965. <para lang="ru">
  1966. SSL-сертификаты, секретные ключи и списки CRL теперь кэшируются
  1967. на старте или во время переконфигурации.
  1968. </para>
  1969. <para lang="en">
  1970. SSL certificates, secret keys, and CRLs are now cached
  1971. on start or during reconfiguration.
  1972. </para>
  1973. </change>

  1974. <change type="feature">
  1975. <para lang="ru">
  1976. проверка клиентских сертификатов с помощью OCSP в модуле stream.
  1977. </para>
  1978. <para lang="en">
  1979. client certificate validation with OCSP in the stream module.
  1980. </para>
  1981. </change>

  1982. <change type="feature">
  1983. <para lang="ru">
  1984. поддержка OCSP stapling в модуле stream.
  1985. </para>
  1986. <para lang="en">
  1987. OCSP stapling support in the stream module.
  1988. </para>
  1989. </change>

  1990. <change type="feature">
  1991. <para lang="ru">
  1992. директива proxy_pass_trailers в модуле ngx_http_proxy_module.
  1993. </para>
  1994. <para lang="en">
  1995. the "proxy_pass_trailers" directive in the ngx_http_proxy_module.
  1996. </para>
  1997. </change>

  1998. <change type="feature">
  1999. <para lang="ru">
  2000. директива ssl_client_certificate теперь поддерживает сертификаты
  2001. с дополнительными данными.
  2002. </para>
  2003. <para lang="en">
  2004. the "ssl_client_certificate" directive now supports certificates
  2005. with auxiliary information.
  2006. </para>
  2007. </change>

  2008. <change type="change">
  2009. <para lang="ru">
  2010. теперь наличие директивы ssl_client_certificate не обязательно
  2011. для проверки клиентских SSL-сертификатов.
  2012. </para>
  2013. <para lang="en">
  2014. now the "ssl_client_certificate" directive is not required
  2015. for client SSL certificates verification.
  2016. </para>
  2017. </change>

  2018. </changes>


  2019. <changes ver="1.27.1" date="2024-08-14">

  2020. <change type="security">
  2021. <para lang="ru">
  2022. обработка специально созданного mp4-файла модулем ngx_http_mp4_module
  2023. могла приводить к падению рабочего процесса (CVE-2024-7347).<br/>
  2024. Спасибо Nils Bars.
  2025. </para>
  2026. <para lang="en">
  2027. processing of a specially crafted mp4 file by the ngx_http_mp4_module
  2028. might cause a worker process crash (CVE-2024-7347).<br/>
  2029. Thanks to Nils Bars.
  2030. </para>
  2031. </change>

  2032. <change type="change">
  2033. <para lang="ru">
  2034. теперь обработчик в модуле stream не является обязательным.
  2035. </para>
  2036. <para lang="en">
  2037. now the stream module handler is not mandatory.
  2038. </para>
  2039. </change>

  2040. <change type="bugfix">
  2041. <para lang="ru">
  2042. новые HTTP/2-соединения могли игнорировать
  2043. плавное завершение старых рабочих процессов.<br/>
  2044. Спасибо Kasei Wang.
  2045. </para>
  2046. <para lang="en">
  2047. new HTTP/2 connections might ignore
  2048. graceful shutdown of old worker processes.<br/>
  2049. Thanks to Kasei Wang.
  2050. </para>
  2051. </change>

  2052. <change>
  2053. <para lang="ru">
  2054. Исправления в HTTP/3.
  2055. </para>
  2056. <para lang="en">
  2057. Bugfixes in HTTP/3.
  2058. </para>
  2059. </change>

  2060. </changes>


  2061. <changes ver="1.27.0" date="2024-05-29">

  2062. <change type="security">
  2063. <para lang="ru">
  2064. при использовании HTTP/3 обработка специально созданной QUIC-сессии могла
  2065. приводить к падению рабочего процесса, отправке клиенту содержимого памяти
  2066. рабочего процесса на системах с MTU больше 4096 байт, а также потенциально
  2067. могла иметь другие последствия
  2068. (CVE-2024-32760, CVE-2024-31079, CVE-2024-35200, CVE-2024-34161).<br/>
  2069. Спасибо Nils Bars из CISPA.
  2070. </para>
  2071. <para lang="en">
  2072. when using HTTP/3, processing of a specially crafted QUIC session might
  2073. cause a worker process crash, worker process memory disclosure on systems
  2074. with MTU larger than 4096 bytes, or might have potential other impact
  2075. (CVE-2024-32760, CVE-2024-31079, CVE-2024-35200, CVE-2024-34161).<br/>
  2076. Thanks to Nils Bars of CISPA.
  2077. </para>
  2078. </change>

  2079. <change type="feature">
  2080. <para lang="ru">
  2081. директивы proxy_limit_rate, fastcgi_limit_rate,
  2082. scgi_limit_rate и uwsgi_limit_rate поддерживают переменные.
  2083. </para>
  2084. <para lang="en">
  2085. variables support
  2086. in the "proxy_limit_rate", "fastcgi_limit_rate", "scgi_limit_rate",
  2087. and "uwsgi_limit_rate" directives.
  2088. </para>
  2089. </change>

  2090. <change type="bugfix">
  2091. <para lang="ru">
  2092. уменьшено потребление памяти для долгоживущих запросов,
  2093. если используются директивы gzip, gunzip, ssi, sub_filter или grpc_pass.
  2094. </para>
  2095. <para lang="en">
  2096. reduced memory consumption for long-lived requests
  2097. if "gzip", "gunzip", "ssi", "sub_filter", or "grpc_pass" directives are used.
  2098. </para>
  2099. </change>

  2100. <change type="bugfix">
  2101. <para lang="ru">
  2102. nginx не собирался gcc 14,
  2103. если использовался параметр --with-libatomic.<br/>
  2104. Спасибо Edgar Bonet.
  2105. </para>
  2106. <para lang="en">
  2107. nginx could not be built by gcc 14
  2108. if the --with-libatomic option was used.<br/>
  2109. Thanks to Edgar Bonet.
  2110. </para>
  2111. </change>

  2112. <change>
  2113. <para lang="ru">
  2114. Исправления в HTTP/3.
  2115. </para>
  2116. <para lang="en">
  2117. Bugfixes in HTTP/3.
  2118. </para>
  2119. </change>

  2120. </changes>


  2121. <changes ver="1.25.5" date="2024-04-16">

  2122. <change type="feature">
  2123. <para lang="ru">
  2124. виртуальные сервера в модуле stream.
  2125. </para>
  2126. <para lang="en">
  2127. virtual servers in the stream module.
  2128. </para>
  2129. </change>

  2130. <change type="feature">
  2131. <para lang="ru">
  2132. модуль ngx_stream_pass_module.
  2133. </para>
  2134. <para lang="en">
  2135. the ngx_stream_pass_module.
  2136. </para>
  2137. </change>

  2138. <change type="feature">
  2139. <para lang="ru">
  2140. параметры deferred, accept_filter и setfib директивы listen в модуле stream.
  2141. </para>
  2142. <para lang="en">
  2143. the "deferred", "accept_filter", and "setfib" parameters of the "listen"
  2144. directive in the stream module.
  2145. </para>
  2146. </change>

  2147. <change type="feature">
  2148. <para lang="ru">
  2149. определение размера строки кэша процессора для некоторых архитектур.<br/>
  2150. Спасибо Piotr Sikora.
  2151. </para>
  2152. <para lang="en">
  2153. cache line size detection for some architectures.<br/>
  2154. Thanks to Piotr Sikora.
  2155. </para>
  2156. </change>

  2157. <change type="feature">
  2158. <para lang="ru">
  2159. поддержка Homebrew на Apple Silicon.<br/>
  2160. Спасибо Piotr Sikora.
  2161. </para>
  2162. <para lang="en">
  2163. support for Homebrew on Apple Silicon.<br/>
  2164. Thanks to Piotr Sikora.
  2165. </para>
  2166. </change>

  2167. <change type="bugfix">
  2168. <para lang="ru">
  2169. улучшения и исправления кросс-компиляции для Windows.<br/>
  2170. Спасибо Piotr Sikora.
  2171. </para>
  2172. <para lang="en">
  2173. Windows cross-compilation bugfixes and improvements.<br/>
  2174. Thanks to Piotr Sikora.
  2175. </para>
  2176. </change>

  2177. <change type="bugfix">
  2178. <para lang="ru">
  2179. неожиданное закрытие соединения при использовании 0-RTT в QUIC.<br/>
  2180. Спасибо Владимиру Хомутову.
  2181. </para>
  2182. <para lang="en">
  2183. unexpected connection closure while using 0-RTT in QUIC.<br/>
  2184. Thanks to Vladimir Khomutov.
  2185. </para>
  2186. </change>

  2187. </changes>


  2188. <changes ver="1.25.4" date="2024-02-14">

  2189. <change type="security">
  2190. <para lang="ru">
  2191. при использовании HTTP/3 в рабочем процессе мог произойти segmentation fault
  2192. во время обработки специально созданной QUIC-сессии
  2193. (CVE-2024-24989, CVE-2024-24990).
  2194. </para>
  2195. <para lang="en">
  2196. when using HTTP/3 a segmentation fault might occur in a worker process
  2197. while processing a specially crafted QUIC session
  2198. (CVE-2024-24989, CVE-2024-24990).
  2199. </para>
  2200. </change>

  2201. <change type="bugfix">
  2202. <para lang="ru">
  2203. соединения с незавершенными AIO-операциями могли закрываться преждевременно
  2204. во время плавного завершения старых рабочих процессов.
  2205. </para>
  2206. <para lang="en">
  2207. connections with pending AIO operations might be closed prematurely
  2208. during graceful shutdown of old worker processes.
  2209. </para>
  2210. </change>

  2211. <change type="bugfix">
  2212. <para lang="ru">
  2213. теперь nginx не пишет в лог сообщения об утечке сокетов,
  2214. если во время плавного завершения старых рабочих процессов
  2215. было запрошено быстрое завершение.
  2216. </para>
  2217. <para lang="en">
  2218. socket leak alerts no longer logged when fast shutdown
  2219. was requested after graceful shutdown of old worker processes.
  2220. </para>
  2221. </change>

  2222. <change type="bugfix">
  2223. <para lang="ru">
  2224. при использовании AIO в подзапросе могла происходить
  2225. ошибка на сокете, утечка сокетов,
  2226. либо segmentation fault в рабочем процессе (при SSL-проксировании).
  2227. </para>
  2228. <para lang="en">
  2229. a socket descriptor error, a socket leak,
  2230. or a segmentation fault in a worker process (for SSL proxying)
  2231. might occur if AIO was used in a subrequest.
  2232. </para>
  2233. </change>

  2234. <change type="bugfix">
  2235. <para lang="ru">
  2236. в рабочем процессе мог произойти segmentation fault,
  2237. если использовалось SSL-проксирование и директива image_filter,
  2238. а ошибки с кодом 415 перенаправлялись с помощью директивы error_page.
  2239. </para>
  2240. <para lang="en">
  2241. a segmentation fault might occur in a worker process
  2242. if SSL proxying was used along with the "image_filter" directive
  2243. and errors with code 415 were redirected with the "error_page" directive.
  2244. </para>
  2245. </change>

  2246. <change>
  2247. <para lang="ru">
  2248. Исправления и улучшения в HTTP/3.
  2249. </para>
  2250. <para lang="en">
  2251. Bugfixes and improvements in HTTP/3.
  2252. </para>
  2253. </change>

  2254. </changes>


  2255. <changes ver="1.25.3" date="2023-10-24">

  2256. <change type="change">
  2257. <para lang="ru">
  2258. улучшено детектирование некорректного поведения клиентов
  2259. при использовании HTTP/2.
  2260. </para>
  2261. <para lang="en">
  2262. improved detection of misbehaving clients
  2263. when using HTTP/2.
  2264. </para>
  2265. </change>

  2266. <change type="feature">
  2267. <para lang="ru">
  2268. уменьшение времени запуска
  2269. при использовании большого количества location'ов.<br/>
  2270. Спасибо Yusuke Nojima.
  2271. </para>
  2272. <para lang="en">
  2273. startup speedup
  2274. when using a large number of locations.<br/>
  2275. Thanks to Yusuke Nojima.
  2276. </para>
  2277. </change>

  2278. <change type="bugfix">
  2279. <para lang="ru">
  2280. при использовании HTTP/2 без SSL
  2281. в рабочем процессе мог произойти segmentation fault;
  2282. ошибка появилась в 1.25.1.
  2283. </para>
  2284. <para lang="en">
  2285. a segmentation fault might occur in a worker process
  2286. when using HTTP/2 without SSL;
  2287. the bug had appeared in 1.25.1.
  2288. </para>
  2289. </change>

  2290. <change type="bugfix">
  2291. <para lang="ru">
  2292. строка "Status" в заголовке ответа бэкенда с пустой поясняющей фразой
  2293. обрабатывалась некорректно.
  2294. </para>
  2295. <para lang="en">
  2296. the "Status" backend response header line with an empty reason phrase
  2297. was handled incorrectly.
  2298. </para>
  2299. </change>

  2300. <change type="bugfix">
  2301. <para lang="ru">
  2302. утечки памяти во время переконфигурации
  2303. при использовании библиотеки PCRE2.<br/>
  2304. Спасибо ZhenZhong Wu.
  2305. </para>
  2306. <para lang="en">
  2307. memory leak during reconfiguration
  2308. when using the PCRE2 library.<br/>
  2309. Thanks to ZhenZhong Wu.
  2310. </para>
  2311. </change>

  2312. <change>
  2313. <para lang="ru">
  2314. Исправления и улучшения в HTTP/3.
  2315. </para>
  2316. <para lang="en">
  2317. Bugfixes and improvements in HTTP/3.
  2318. </para>
  2319. </change>

  2320. </changes>


  2321. <changes ver="1.25.2" date="2023-08-15">

  2322. <change type="feature">
  2323. <para lang="ru">
  2324. path MTU discovery при использовании HTTP/3.
  2325. </para>
  2326. <para lang="en">
  2327. path MTU discovery when using HTTP/3.
  2328. </para>
  2329. </change>

  2330. <change type="feature">
  2331. <para lang="ru">
  2332. поддержка шифра TLS_AES_128_CCM_SHA256 при использовании HTTP/3.
  2333. </para>
  2334. <para lang="en">
  2335. TLS_AES_128_CCM_SHA256 cipher suite support when using HTTP/3.
  2336. </para>
  2337. </change>

  2338. <change type="change">
  2339. <para lang="ru">
  2340. теперь при загрузке конфигурации OpenSSL
  2341. nginx использует appname "nginx".
  2342. </para>
  2343. <para lang="en">
  2344. now nginx uses appname "nginx"
  2345. when loading OpenSSL configuration.
  2346. </para>
  2347. </change>

  2348. <change type="change">
  2349. <para lang="ru">
  2350. теперь nginx не пытается загружать конфигурацию OpenSSL,
  2351. если для сборки OpenSSL использовался параметр --with-openssl
  2352. и переменная окружения OPENSSL_CONF не установлена.
  2353. </para>
  2354. <para lang="en">
  2355. now nginx does not try to load OpenSSL configuration
  2356. if the --with-openssl option was used to built OpenSSL
  2357. and the OPENSSL_CONF environment variable is not set.
  2358. </para>
  2359. </change>

  2360. <change type="bugfix">
  2361. <para lang="ru">
  2362. в переменной $body_bytes_sent при использовании HTTP/3.
  2363. </para>
  2364. <para lang="en">
  2365. in the $body_bytes_sent variable when using HTTP/3.
  2366. </para>
  2367. </change>

  2368. <change type="bugfix">
  2369. <para lang="ru">
  2370. в HTTP/3.
  2371. </para>
  2372. <para lang="en">
  2373. in HTTP/3.
  2374. </para>
  2375. </change>

  2376. </changes>


  2377. <changes ver="1.25.1" date="2023-06-13">

  2378. <change type="feature">
  2379. <para lang="ru">
  2380. директива http2, позволяющая включать HTTP/2 в отдельных блоках server;
  2381. параметр http2 директивы listen объявлен устаревшим.
  2382. </para>
  2383. <para lang="en">
  2384. the "http2" directive, which enables HTTP/2 on a per-server basis;
  2385. the "http2" parameter of the "listen" directive is now deprecated.
  2386. </para>
  2387. </change>

  2388. <change type="change">
  2389. <para lang="ru">
  2390. поддержка HTTP/2 server push упразднена.
  2391. </para>
  2392. <para lang="en">
  2393. HTTP/2 server push support has been removed.
  2394. </para>
  2395. </change>

  2396. <change type="change">
  2397. <para lang="ru">
  2398. устаревшая директива ssl больше не поддерживается.
  2399. </para>
  2400. <para lang="en">
  2401. the deprecated "ssl" directive is not supported anymore.
  2402. </para>
  2403. </change>

  2404. <change type="bugfix">
  2405. <para lang="ru">
  2406. в HTTP/3 при использовании OpenSSL.
  2407. </para>
  2408. <para lang="en">
  2409. in HTTP/3 when using OpenSSL.
  2410. </para>
  2411. </change>

  2412. </changes>


  2413. <changes ver="1.25.0" date="2023-05-23">

  2414. <change type="feature">
  2415. <para lang="ru">
  2416. экспериментальная поддержка HTTP/3.
  2417. </para>
  2418. <para lang="en">
  2419. experimental HTTP/3 support.
  2420. </para>
  2421. </change>

  2422. </changes>


  2423. <changes ver="1.23.4" date="2023-03-28">

  2424. <change type="change">
  2425. <para lang="ru">
  2426. теперь протокол TLSv1.3 разрешён по умолчанию.
  2427. </para>
  2428. <para lang="en">
  2429. now TLSv1.3 protocol is enabled by default.
  2430. </para>
  2431. </change>

  2432. <change type="change">
  2433. <para lang="ru">
  2434. теперь nginx выдаёт предупреждение
  2435. при переопределении параметров listen-сокета, задающих используемые протоколы.
  2436. </para>
  2437. <para lang="en">
  2438. now nginx issues a warning
  2439. if protocol parameters of a listening socket are redefined.
  2440. </para>
  2441. </change>

  2442. <change type="change">
  2443. <para lang="ru">
  2444. теперь, если клиент использует pipelining,
  2445. nginx закрывает соединения с ожиданием дополнительных данных (lingering close).
  2446. </para>
  2447. <para lang="en">
  2448. now nginx closes connections with lingering
  2449. if pipelining was used by the client.
  2450. </para>
  2451. </change>

  2452. <change type="feature">
  2453. <para lang="ru">
  2454. поддержка byte ranges для ответов модуля ngx_http_gzip_static_module.
  2455. </para>
  2456. <para lang="en">
  2457. byte ranges support in the ngx_http_gzip_static_module.
  2458. </para>
  2459. </change>

  2460. <change type="bugfix">
  2461. <para lang="ru">
  2462. диапазоны портов в директиве listen не работали;
  2463. ошибка появилась в 1.23.3.<br/>
  2464. Спасибо Валентину Бартеневу.
  2465. </para>
  2466. <para lang="en">
  2467. port ranges in the "listen" directive did not work;
  2468. the bug had appeared in 1.23.3.<br/>
  2469. Thanks to Valentin Bartenev.
  2470. </para>
  2471. </change>

  2472. <change type="bugfix">
  2473. <para lang="ru">
  2474. для обработки запроса мог быть выбран неверный location,
  2475. если в конфигурации использовался
  2476. префиксный location длиннее 255 символов.
  2477. </para>
  2478. <para lang="en">
  2479. incorrect location might be chosen to process a request
  2480. if a prefix location longer than 255 characters
  2481. was used in the configuration.
  2482. </para>
  2483. </change>

  2484. <change type="bugfix">
  2485. <para lang="ru">
  2486. не-ASCII символы в именах файлов на Windows
  2487. не поддерживались модулями ngx_http_autoindex_module и
  2488. ngx_http_dav_module, а также директивой include.
  2489. </para>
  2490. <para lang="en">
  2491. non-ASCII characters in file names on Windows were not supported
  2492. by the ngx_http_autoindex_module, the ngx_http_dav_module,
  2493. and the "include" directive.
  2494. </para>
  2495. </change>

  2496. <change type="change">
  2497. <para lang="ru">
  2498. уровень логгирования ошибок SSL
  2499. "data length too long", "length too short", "bad legacy version",
  2500. "no shared signature algorithms", "bad digest length",
  2501. "missing sigalgs extension", "encrypted length too long",
  2502. "bad length", "bad key update", "mixed handshake and non handshake data",
  2503. "ccs received early", "data between ccs and finished",
  2504. "packet length too long", "too many warn alerts", "record too small",
  2505. и "got a fin before a ccs"
  2506. понижен с уровня crit до info.
  2507. </para>
  2508. <para lang="en">
  2509. the logging level of the
  2510. "data length too long", "length too short", "bad legacy version",
  2511. "no shared signature algorithms", "bad digest length",
  2512. "missing sigalgs extension", "encrypted length too long",
  2513. "bad length", "bad key update", "mixed handshake and non handshake data",
  2514. "ccs received early", "data between ccs and finished",
  2515. "packet length too long", "too many warn alerts", "record too small",
  2516. and "got a fin before a ccs" SSL errors
  2517. has been lowered from "crit" to "info".
  2518. </para>
  2519. </change>

  2520. <change type="bugfix">
  2521. <para lang="ru">
  2522. при использовании HTTP/2 и директивы error_page
  2523. для перенаправления ошибок с кодом 400
  2524. могла происходить утечка сокетов.
  2525. </para>
  2526. <para lang="en">
  2527. a socket leak might occur
  2528. when using HTTP/2 and the "error_page" directive
  2529. to redirect errors with code 400.
  2530. </para>
  2531. </change>

  2532. <change type="bugfix">
  2533. <para lang="ru">
  2534. сообщения об ошибках записи в syslog
  2535. не содержали информации о том, что
  2536. ошибки происходили в процессе записи в syslog.<br/>
  2537. Спасибо Safar Safarly.
  2538. </para>
  2539. <para lang="en">
  2540. messages about logging to syslog errors
  2541. did not contain information
  2542. that the errors happened while logging to syslog.<br/>
  2543. Thanks to Safar Safarly.
  2544. </para>
  2545. </change>

  2546. <change type="workaround">
  2547. <para lang="ru">
  2548. при использовании zlib-ng
  2549. в логах появлялись сообщения "gzip filter failed to use preallocated memory".
  2550. </para>
  2551. <para lang="en">
  2552. "gzip filter failed to use preallocated memory" alerts appeared in logs
  2553. when using zlib-ng.
  2554. </para>
  2555. </change>

  2556. <change type="bugfix">
  2557. <para lang="ru">
  2558. в почтовом прокси-сервере.
  2559. </para>
  2560. <para lang="en">
  2561. in the mail proxy server.
  2562. </para>
  2563. </change>

  2564. </changes>


  2565. <changes ver="1.23.3" date="2022-12-13">

  2566. <change type="bugfix">
  2567. <para lang="ru">
  2568. при чтении заголовка протокола PROXY версии 2, содержащего
  2569. большое количество TLV, могла возникать ошибка.
  2570. </para>
  2571. <para lang="en">
  2572. an error might occur when reading PROXY protocol version 2 header
  2573. with large number of TLVs.
  2574. </para>
  2575. </change>

  2576. <change type="bugfix">
  2577. <para lang="ru">
  2578. при использовании SSI для обработки подзапросов, созданных другими модулями,
  2579. в рабочем процессе мог произойти segmentation fault.<br/>
  2580. Спасибо Ciel Zhao.
  2581. </para>
  2582. <para lang="en">
  2583. a segmentation fault might occur in a worker process
  2584. if SSI was used to process subrequests created by other modules.<br/>
  2585. Thanks to Ciel Zhao.
  2586. </para>
  2587. </change>

  2588. <change type="workaround">
  2589. <para lang="ru">
  2590. теперь, если при преобразовании в адреса имени хоста,
  2591. указанного в директиве listen, возвращается несколько адресов,
  2592. nginx игнорирует дубликаты среди этих адресов.
  2593. </para>
  2594. <para lang="en">
  2595. when a hostname used in the "listen" directive
  2596. resolves to multiple addresses,
  2597. nginx now ignores duplicates within these addresses.
  2598. </para>
  2599. </change>

  2600. <change type="bugfix">
  2601. <para lang="ru">
  2602. nginx мог нагружать процессор
  2603. при небуферизированном проксировании,
  2604. если использовались SSL-соединения с бэкендами.
  2605. </para>
  2606. <para lang="en">
  2607. nginx might hog CPU
  2608. during unbuffered proxying
  2609. if SSL connections to backends were used.
  2610. </para>
  2611. </change>

  2612. </changes>


  2613. <changes ver="1.23.2" date="2022-10-19">

  2614. <change type="security">
  2615. <para lang="ru">
  2616. обработка специально созданного mp4-файла модулем ngx_http_mp4_module
  2617. могла приводить к падению рабочего процесса,
  2618. отправке клиенту части содержимого памяти рабочего процесса,
  2619. а также потенциально могла иметь другие последствия
  2620. (CVE-2022-41741, CVE-2022-41742).
  2621. </para>
  2622. <para lang="en">
  2623. processing of a specially crafted mp4 file by the ngx_http_mp4_module
  2624. might cause a worker process crash,
  2625. worker process memory disclosure,
  2626. or might have potential other impact
  2627. (CVE-2022-41741, CVE-2022-41742).
  2628. </para>
  2629. </change>

  2630. <change type="feature">
  2631. <para lang="ru">
  2632. переменные "$proxy_protocol_tlv_...".
  2633. </para>
  2634. <para lang="en">
  2635. the "$proxy_protocol_tlv_..." variables.
  2636. </para>
  2637. </change>

  2638. <change type="feature">
  2639. <para lang="ru">
  2640. ключи шифрования TLS session tickets теперь автоматически меняются
  2641. при использовании разделяемой памяти в ssl_session_cache.
  2642. </para>
  2643. <para lang="en">
  2644. TLS session tickets encryption keys are now automatically rotated
  2645. when using shared memory in the "ssl_session_cache" directive.
  2646. </para>
  2647. </change>

  2648. <change type="change">
  2649. <para lang="ru">
  2650. уровень логгирования ошибок SSL "bad record type"
  2651. понижен с уровня crit до info.<br/>
  2652. Спасибо Murilo Andrade.
  2653. </para>
  2654. <para lang="en">
  2655. the logging level of the "bad record type" SSL errors
  2656. has been lowered from "crit" to "info".<br/>
  2657. Thanks to Murilo Andrade.
  2658. </para>
  2659. </change>

  2660. <change type="change">
  2661. <para lang="ru">
  2662. теперь при использовании разделяемой памяти в ssl_session_cache
  2663. сообщения "could not allocate new session"
  2664. логгируются на уровне warn вместо alert
  2665. и не чаще одного раза в секунду.
  2666. </para>
  2667. <para lang="en">
  2668. now when using shared memory in the "ssl_session_cache" directive
  2669. the "could not allocate new session" errors
  2670. are logged at the "warn" level instead of "alert"
  2671. and not more often than once per second.
  2672. </para>
  2673. </change>

  2674. <change type="bugfix">
  2675. <para lang="ru">
  2676. nginx/Windows не собирался с OpenSSL 3.0.x.
  2677. </para>
  2678. <para lang="en">
  2679. nginx/Windows could not be built with OpenSSL 3.0.x.
  2680. </para>
  2681. </change>

  2682. <change type="bugfix">
  2683. <para lang="ru">
  2684. в логгировании ошибок протокола PROXY.<br/>
  2685. Спасибо Сергею Брестеру.
  2686. </para>
  2687. <para lang="en">
  2688. in logging of the PROXY protocol errors.<br/>
  2689. Thanks to Sergey Brester.
  2690. </para>
  2691. </change>

  2692. <change type="workaround">
  2693. <para lang="ru">
  2694. при использовании TLSv1.3 с OpenSSL
  2695. разделяемая память из ssl_session_cache расходовалась
  2696. в том числе на сессии, использующие TLS session tickets.
  2697. </para>
  2698. <para lang="en">
  2699. shared memory from the "ssl_session_cache" directive
  2700. was spent on sessions using TLS session tickets
  2701. when using TLSv1.3 with OpenSSL.
  2702. </para>
  2703. </change>

  2704. <change type="workaround">
  2705. <para lang="ru">
  2706. таймаут, заданный с помощью директивы ssl_session_timeout,
  2707. не работал при использовании TLSv1.3 с OpenSSL или BoringSSL.
  2708. </para>
  2709. <para lang="en">
  2710. timeout specified with the "ssl_session_timeout" directive
  2711. did not work when using TLSv1.3 with OpenSSL or BoringSSL.
  2712. </para>
  2713. </change>

  2714. </changes>


  2715. <changes ver="1.23.1" date="2022-07-19">

  2716. <change type="feature">
  2717. <para lang="ru">
  2718. оптимизация использования памяти
  2719. в конфигурациях с SSL-проксированием.
  2720. </para>
  2721. <para lang="en">
  2722. memory usage optimization
  2723. in configurations with SSL proxying.
  2724. </para>
  2725. </change>

  2726. <change type="feature">
  2727. <para lang="ru">
  2728. теперь с помощью параметра "ipv4=off" директивы "resolver"
  2729. можно запретить поиск IPv4-адресов при преобразовании имён в адреса.
  2730. </para>
  2731. <para lang="en">
  2732. looking up of IPv4 addresses while resolving now can be disabled
  2733. with the "ipv4=off" parameter of the "resolver" directive.
  2734. </para>
  2735. </change>

  2736. <change type="change">
  2737. <para lang="ru">
  2738. уровень логгирования ошибок SSL "bad key share", "bad extension",
  2739. "bad cipher" и "bad ecpoint"
  2740. понижен с уровня crit до info.
  2741. </para>
  2742. <para lang="en">
  2743. the logging level of the "bad key share", "bad extension",
  2744. "bad cipher", and "bad ecpoint" SSL errors
  2745. has been lowered from "crit" to "info".
  2746. </para>
  2747. </change>

  2748. <change type="bugfix">
  2749. <para lang="ru">
  2750. при возврате диапазонов
  2751. nginx не удалял строку заголовка "Content-Range",
  2752. если она присутствовала в исходном ответе бэкенда.
  2753. </para>
  2754. <para lang="en">
  2755. while returning byte ranges
  2756. nginx did not remove the "Content-Range" header line
  2757. if it was present in the original backend response.
  2758. </para>
  2759. </change>

  2760. <change type="bugfix">
  2761. <para lang="ru">
  2762. проксированный ответ мог быть отправлен не полностью
  2763. при переконфигурации на Linux;
  2764. ошибка появилась в 1.17.5.
  2765. </para>
  2766. <para lang="en">
  2767. a proxied response might be truncated
  2768. during reconfiguration on Linux;
  2769. the bug had appeared in 1.17.5.
  2770. </para>
  2771. </change>

  2772. </changes>


  2773. <changes ver="1.23.0" date="2022-06-21">

  2774. <change>
  2775. <para lang="ru">
  2776. Изменение во внутреннем API:
  2777. теперь строки заголовков представлены связными списками.
  2778. </para>
  2779. <para lang="en">
  2780. Change in internal API:
  2781. now header lines are represented as linked lists.
  2782. </para>
  2783. </change>

  2784. <change type="change">
  2785. <para lang="ru">
  2786. теперь nginx объединяет произвольные строки заголовков с одинаковыми именами
  2787. при отправке на FastCGI-, SCGI- и uwsgi-бэкенды,
  2788. в методе $r->header_in() модуля ngx_http_perl_module,
  2789. и при доступе через переменные "$http_...", "$sent_http_...",
  2790. "$sent_trailer_...", "$upstream_http_..." и "$upstream_trailer_...".
  2791. </para>
  2792. <para lang="en">
  2793. now nginx combines arbitrary header lines with identical names
  2794. when sending to FastCGI, SCGI, and uwsgi backends,
  2795. in the $r->header_in() method of the ngx_http_perl_module,
  2796. and during lookup of the "$http_...", "$sent_http_...",
  2797. "$sent_trailer_...", "$upstream_http_...", and "$upstream_trailer_..."
  2798. variables.
  2799. </para>
  2800. </change>

  2801. <change type="bugfix">
  2802. <para lang="ru">
  2803. если в заголовке ответа бэкенда было несколько строк "Vary",
  2804. при кэшировании nginx учитывал только последнюю из них.
  2805. </para>
  2806. <para lang="en">
  2807. if there were multiple "Vary" header lines in the backend response,
  2808. nginx only used the last of them when caching.
  2809. </para>
  2810. </change>

  2811. <change type="bugfix">
  2812. <para lang="ru">
  2813. если в заголовке ответа бэкенда было несколько строк "WWW-Authenticate"
  2814. и использовался перехват ошибок с кодом 401 от бэкенда
  2815. или директива auth_request,
  2816. nginx пересылал клиенту только первую из этих строк.
  2817. </para>
  2818. <para lang="en">
  2819. if there were multiple "WWW-Authenticate" header lines in the backend response
  2820. and errors with code 401 were intercepted
  2821. or the "auth_request" directive was used,
  2822. nginx only sent the first of the header lines to the client.
  2823. </para>
  2824. </change>

  2825. <change type="change">
  2826. <para lang="ru">
  2827. уровень логгирования ошибок SSL "application data after close notify"
  2828. понижен с уровня crit до info.
  2829. </para>
  2830. <para lang="en">
  2831. the logging level of the "application data after close notify" SSL errors
  2832. has been lowered from "crit" to "info".
  2833. </para>
  2834. </change>

  2835. <change type="bugfix">
  2836. <para lang="ru">
  2837. соединения могли зависать, если nginx был собран на Linux 2.6.17 и новее,
  2838. а использовался на системах без поддержки EPOLLRDHUP, в частности, на
  2839. системах с эмуляцией epoll;
  2840. ошибка появилась в 1.17.5.<br/>
  2841. Спасибо Marcus Ball.
  2842. </para>
  2843. <para lang="en">
  2844. connections might hang if nginx was built on Linux 2.6.17 or newer,
  2845. but was used on systems without EPOLLRDHUP support, notably with epoll
  2846. emulation layers;
  2847. the bug had appeared in 1.17.5.<br/>
  2848. Thanks to Marcus Ball.
  2849. </para>
  2850. </change>

  2851. <change type="bugfix">
  2852. <para lang="ru">
  2853. nginx не кэшировал ответ,
  2854. если строка заголовка ответа "Expires" запрещала кэширование,
  2855. а последующая строка заголовка "Cache-Control" разрешала кэширование.
  2856. </para>
  2857. <para lang="en">
  2858. nginx did not cache the response
  2859. if the "Expires" response header line disabled caching,
  2860. but following "Cache-Control" header line enabled caching.
  2861. </para>
  2862. </change>

  2863. </changes>


  2864. <changes ver="1.21.6" date="2022-01-25">

  2865. <change type="bugfix">
  2866. <para lang="ru">
  2867. при использование EPOLLEXCLUSIVE на Linux
  2868. распределение клиентских соединений между рабочими процессами
  2869. было неравномерным.
  2870. </para>
  2871. <para lang="en">
  2872. when using EPOLLEXCLUSIVE on Linux
  2873. client connections were unevenly distributed
  2874. among worker processes.
  2875. </para>
  2876. </change>

  2877. <change type="bugfix">
  2878. <para lang="ru">
  2879. во время плавного завершения старых рабочих процессов
  2880. nginx возвращал в ответах строку заголовка "Connection: keep-alive".
  2881. </para>
  2882. <para lang="en">
  2883. nginx returned the "Connection: keep-alive" header line in responses
  2884. during graceful shutdown of old worker processes.
  2885. </para>
  2886. </change>

  2887. <change type="bugfix">
  2888. <para lang="ru">
  2889. в директиве ssl_session_ticket_key при использовании TLSv1.3.
  2890. </para>
  2891. <para lang="en">
  2892. in the "ssl_session_ticket_key" when using TLSv1.3.
  2893. </para>
  2894. </change>

  2895. </changes>


  2896. <changes ver="1.21.5" date="2021-12-28">

  2897. <change type="change">
  2898. <para lang="ru">
  2899. теперь nginx по умолчанию собирается с библиотекой PCRE2.
  2900. </para>
  2901. <para lang="en">
  2902. now nginx is built with the PCRE2 library by default.
  2903. </para>
  2904. </change>

  2905. <change type="change">
  2906. <para lang="ru">
  2907. теперь nginx всегда использует sendfile(SF_NODISKIO) на FreeBSD.
  2908. </para>
  2909. <para lang="en">
  2910. now nginx always uses sendfile(SF_NODISKIO) on FreeBSD.
  2911. </para>
  2912. </change>

  2913. <change type="feature">
  2914. <para lang="ru">
  2915. поддержка sendfile(SF_NOCACHE) на FreeBSD.
  2916. </para>
  2917. <para lang="en">
  2918. support for sendfile(SF_NOCACHE) on FreeBSD.
  2919. </para>
  2920. </change>

  2921. <change type="feature">
  2922. <para lang="ru">
  2923. переменная $ssl_curve.
  2924. </para>
  2925. <para lang="en">
  2926. the $ssl_curve variable.
  2927. </para>
  2928. </change>

  2929. <change type="bugfix">
  2930. <para lang="ru">
  2931. при использовании HTTP/2 без SSL вместе с директивами sendfile и aio
  2932. соединения могли зависать.
  2933. </para>
  2934. <para lang="en">
  2935. connections might hang
  2936. when using HTTP/2 without SSL with the "sendfile" and "aio" directives.
  2937. </para>
  2938. </change>

  2939. </changes>


  2940. <changes ver="1.21.4" date="2021-11-02">

  2941. <change type="change">
  2942. <para lang="ru">
  2943. поддержка NPN вместо ALPN для установления HTTP/2-соединений
  2944. упразднена.
  2945. </para>
  2946. <para lang="en">
  2947. support for NPN instead of ALPN to establish HTTP/2 connections
  2948. has been removed.
  2949. </para>
  2950. </change>

  2951. <change type="change">
  2952. <para lang="ru">
  2953. теперь nginx закрывает SSL соединение, если клиент использует ALPN,
  2954. но nginx не поддерживает ни один из присланных клиентом протоколов.
  2955. </para>
  2956. <para lang="en">
  2957. now nginx rejects SSL connections if ALPN is used by the client,
  2958. but no supported protocols can be negotiated.
  2959. </para>
  2960. </change>

  2961. <change type="change">
  2962. <para lang="ru">
  2963. в директиве sendfile_max_chunk значение по умолчанию
  2964. изменено на 2 мегабайта.
  2965. </para>
  2966. <para lang="en">
  2967. the default value of the "sendfile_max_chunk" directive
  2968. was changed to 2 megabytes.
  2969. </para>
  2970. </change>

  2971. <change type="feature">
  2972. <para lang="ru">
  2973. директива proxy_half_close в модуле stream.
  2974. </para>
  2975. <para lang="en">
  2976. the "proxy_half_close" directive in the stream module.
  2977. </para>
  2978. </change>

  2979. <change type="feature">
  2980. <para lang="ru">
  2981. директива ssl_alpn в модуле stream.
  2982. </para>
  2983. <para lang="en">
  2984. the "ssl_alpn" directive in the stream module.
  2985. </para>
  2986. </change>

  2987. <change type="feature">
  2988. <para lang="ru">
  2989. переменная $ssl_alpn_protocol.
  2990. </para>
  2991. <para lang="en">
  2992. the $ssl_alpn_protocol variable.
  2993. </para>
  2994. </change>

  2995. <change type="feature">
  2996. <para lang="ru">
  2997. поддержка SSL_sendfile() при использовании OpenSSL 3.0.
  2998. </para>
  2999. <para lang="en">
  3000. support for SSL_sendfile() when using OpenSSL 3.0.
  3001. </para>
  3002. </change>

  3003. <change type="feature">
  3004. <para lang="ru">
  3005. директива mp4_start_key_frame в модуле ngx_http_mp4_module.<br/>
  3006. Спасибо Tracey Jaquith.
  3007. </para>
  3008. <para lang="en">
  3009. the "mp4_start_key_frame" directive in the ngx_http_mp4_module.<br/>
  3010. Thanks to Tracey Jaquith.
  3011. </para>
  3012. </change>

  3013. <change type="bugfix">
  3014. <para lang="ru">
  3015. в переменной $content_length при использовании chunked transfer encoding.
  3016. </para>
  3017. <para lang="en">
  3018. in the $content_length variable when using chunked transfer encoding.
  3019. </para>
  3020. </change>

  3021. <change type="bugfix">
  3022. <para lang="ru">
  3023. при получении ответа некорректной длины от проксируемого бэкенда
  3024. nginx мог тем не менее закэшировать соединение.<br/>
  3025. Спасибо Awdhesh Mathpal.
  3026. </para>
  3027. <para lang="en">
  3028. after receiving a response with incorrect length from a proxied backend
  3029. nginx might nevertheless cache the connection.<br/>
  3030. Thanks to Awdhesh Mathpal.
  3031. </para>
  3032. </change>

  3033. <change type="bugfix">
  3034. <para lang="ru">
  3035. некорректные заголовки от бэкендов
  3036. логгировались на уровне info вместо error;
  3037. ошибка появилась в 1.21.1.
  3038. </para>
  3039. <para lang="en">
  3040. invalid headers from backends
  3041. were logged at the "info" level instead of "error";
  3042. the bug had appeared in 1.21.1.
  3043. </para>
  3044. </change>

  3045. <change type="bugfix">
  3046. <para lang="ru">
  3047. при использовании HTTP/2 и директивы aio_write
  3048. запросы могли зависать.
  3049. </para>
  3050. <para lang="en">
  3051. requests might hang
  3052. when using HTTP/2 and the "aio_write" directive.
  3053. </para>
  3054. </change>

  3055. </changes>


  3056. <changes ver="1.21.3" date="2021-09-07">

  3057. <change type="change">
  3058. <para lang="ru">
  3059. оптимизация чтения тела запроса
  3060. при использовании HTTP/2.
  3061. </para>
  3062. <para lang="en">
  3063. optimization of client request body reading
  3064. when using HTTP/2.
  3065. </para>
  3066. </change>

  3067. <change type="bugfix">
  3068. <para lang="ru">
  3069. во внутреннем API для обработки тела запроса
  3070. при использовании HTTP/2 и буферизации обрабатываемых данных.
  3071. </para>
  3072. <para lang="en">
  3073. in request body filters internal API
  3074. when using HTTP/2 and buffering of the data being processed.
  3075. </para>
  3076. </change>

  3077. </changes>


  3078. <changes ver="1.21.2" date="2021-08-31">

  3079. <change type="change">
  3080. <para lang="ru">
  3081. теперь nginx возвращает ошибку,
  3082. если в запросе по протоколу HTTP/1.0 присутствует
  3083. строка заголовка "Transfer-Encoding".
  3084. </para>
  3085. <para lang="en">
  3086. now nginx rejects HTTP/1.0 requests
  3087. with the "Transfer-Encoding" header line.
  3088. </para>
  3089. </change>

  3090. <change type="change">
  3091. <para lang="ru">
  3092. экспортные шифры больше не поддерживаются.
  3093. </para>
  3094. <para lang="en">
  3095. export ciphers are no longer supported.
  3096. </para>
  3097. </change>

  3098. <change type="feature">
  3099. <para lang="ru">
  3100. совместимость с OpenSSL 3.0.
  3101. </para>
  3102. <para lang="en">
  3103. OpenSSL 3.0 compatibility.
  3104. </para>
  3105. </change>

  3106. <change type="feature">
  3107. <para lang="ru">
  3108. теперь серверу аутентификации почтового прокси-сервера
  3109. передаются строки заголовка "Auth-SSL-Protocol" и "Auth-SSL-Cipher".<br/>
  3110. Спасибо Rob Mueller.
  3111. </para>
  3112. <para lang="en">
  3113. the "Auth-SSL-Protocol" and "Auth-SSL-Cipher" header lines
  3114. are now passed to the mail proxy authentication server.<br/>
  3115. Thanks to Rob Mueller.
  3116. </para>
  3117. </change>

  3118. <change type="feature">
  3119. <para lang="ru">
  3120. API для обработки тела запроса
  3121. теперь позволяет буферизировать обрабатываемые данные.
  3122. </para>
  3123. <para lang="en">
  3124. request body filters API
  3125. now permits buffering of the data being processed.
  3126. </para>
  3127. </change>

  3128. <change type="bugfix">
  3129. <para lang="ru">
  3130. SSL-соединения к бэкендам в модуле stream
  3131. могли зависать после SSL handshake.
  3132. </para>
  3133. <para lang="en">
  3134. backend SSL connections in the stream module
  3135. might hang after an SSL handshake.
  3136. </para>
  3137. </change>

  3138. <change type="bugfix">
  3139. <para lang="ru">
  3140. уровень безопасности, доступный в OpenSSL 1.1.0 и новее,
  3141. не учитывался при загрузке сертификатов сервера,
  3142. если был задан через "@SECLEVEL=N" в директиве ssl_ciphers.
  3143. </para>
  3144. <para lang="en">
  3145. the security level, which is available in OpenSSL 1.1.0 or newer,
  3146. did not affect loading of the server certificates
  3147. when set with "@SECLEVEL=N" in the "ssl_ciphers" directive.
  3148. </para>
  3149. </change>

  3150. <change type="bugfix">
  3151. <para lang="ru">
  3152. SSL-соединения с gRPC-бэкендами могли зависать,
  3153. если использовались методы select, poll или /dev/poll.
  3154. </para>
  3155. <para lang="en">
  3156. SSL connections with gRPC backends might hang
  3157. if select, poll, or /dev/poll methods were used.
  3158. </para>
  3159. </change>

  3160. <change type="bugfix">
  3161. <para lang="ru">
  3162. при использовании HTTP/2
  3163. тело запроса всегда записывалось на диск,
  3164. если в запросе не было строки заголовка "Content-Length".
  3165. </para>
  3166. <para lang="en">
  3167. when using HTTP/2
  3168. client request body was always written to disk
  3169. if the "Content-Length" header line was not present in the request.
  3170. </para>
  3171. </change>

  3172. </changes>


  3173. <changes ver="1.21.1" date="2021-07-06">

  3174. <change type="change">
  3175. <para lang="ru">
  3176. теперь nginx для метода CONNECT всегда возвращает ошибку.
  3177. </para>
  3178. <para lang="en">
  3179. now nginx always returns an error for the CONNECT method.
  3180. </para>
  3181. </change>

  3182. <change type="change">
  3183. <para lang="ru">
  3184. теперь nginx всегда возвращает ошибку,
  3185. если в запросе одновременно присутствуют строки заголовка "Content-Length"
  3186. и "Transfer-Encoding".
  3187. </para>
  3188. <para lang="en">
  3189. now nginx always returns an error
  3190. if both "Content-Length" and "Transfer-Encoding" header lines
  3191. are present in the request.
  3192. </para>
  3193. </change>

  3194. <change type="change">
  3195. <para lang="ru">
  3196. теперь nginx всегда возвращает ошибку,
  3197. если в строке запроса используются пробелы или управляющие символы.
  3198. </para>
  3199. <para lang="en">
  3200. now nginx always returns an error
  3201. if spaces or control characters are used in the request line.
  3202. </para>
  3203. </change>

  3204. <change type="change">
  3205. <para lang="ru">
  3206. теперь nginx всегда возвращает ошибку,
  3207. если в имени заголовка используются пробелы или управляющие символы.
  3208. </para>
  3209. <para lang="en">
  3210. now nginx always returns an error
  3211. if spaces or control characters are used in a header name.
  3212. </para>
  3213. </change>

  3214. <change type="change">
  3215. <para lang="ru">
  3216. теперь nginx всегда возвращает ошибку,
  3217. если в строке "Host" заголовка запроса
  3218. используются пробелы или управляющие символы.
  3219. </para>
  3220. <para lang="en">
  3221. now nginx always returns an error
  3222. if spaces or control characters
  3223. are used in the "Host" request header line.
  3224. </para>
  3225. </change>

  3226. <change type="change">
  3227. <para lang="ru">
  3228. оптимизация тестирования конфигурации
  3229. при использовании большого количества listen-сокетов.
  3230. </para>
  3231. <para lang="en">
  3232. optimization of configuration testing
  3233. when using many listening sockets.
  3234. </para>
  3235. </change>

  3236. <change type="bugfix">
  3237. <para lang="ru">
  3238. nginx не экранировал
  3239. символы """, "&lt;", ">", "\", "^", "`", "{", "|", и "}"
  3240. при проксировании с изменением URI запроса.
  3241. </para>
  3242. <para lang="en">
  3243. nginx did not escape
  3244. """, "&lt;", ">", "\", "^", "`", "{", "|", and "}" characters
  3245. when proxying with changed URI.
  3246. </para>
  3247. </change>

  3248. <change type="bugfix">
  3249. <para lang="ru">
  3250. SSL-переменные могли быть пустыми при записи в лог;
  3251. ошибка появилась в 1.19.5.
  3252. </para>
  3253. <para lang="en">
  3254. SSL variables might be empty when used in logs;
  3255. the bug had appeared in 1.19.5.
  3256. </para>
  3257. </change>

  3258. <change type="bugfix">
  3259. <para lang="ru">
  3260. keepalive-соединения с gRPC-бэкендами могли не закрываться
  3261. после получения GOAWAY-фрейма.
  3262. </para>
  3263. <para lang="en">
  3264. keepalive connections with gRPC backends might not be closed
  3265. after receiving a GOAWAY frame.
  3266. </para>
  3267. </change>

  3268. <change type="bugfix">
  3269. <para lang="ru">
  3270. уменьшено потребление памяти для долгоживущих запросов
  3271. при проксировании с использованием более 64 буферов.
  3272. </para>
  3273. <para lang="en">
  3274. reduced memory consumption for long-lived requests
  3275. when proxying with more than 64 buffers.
  3276. </para>
  3277. </change>

  3278. </changes>


  3279. <changes ver="1.21.0" date="2021-05-25">

  3280. <change type="security">
  3281. <para lang="ru">
  3282. при использовании директивы resolver
  3283. во время обработки ответа DNS-сервера
  3284. могла происходить перезапись одного байта памяти,
  3285. что позволяло атакующему,
  3286. имеющему возможность подделывать UDP-пакеты от DNS-сервера,
  3287. вызвать падение рабочего процесса
  3288. или, потенциально, выполнение произвольного кода (CVE-2021-23017).
  3289. </para>
  3290. <para lang="en">
  3291. 1-byte memory overwrite might occur
  3292. during DNS server response processing
  3293. if the "resolver" directive was used,
  3294. allowing an attacker
  3295. who is able to forge UDP packets from the DNS server
  3296. to cause worker process crash
  3297. or, potentially, arbitrary code execution (CVE-2021-23017).
  3298. </para>
  3299. </change>

  3300. <change type="feature">
  3301. <para lang="ru">
  3302. директивы proxy_ssl_certificate, proxy_ssl_certificate_key,
  3303. grpc_ssl_certificate, grpc_ssl_certificate_key,
  3304. uwsgi_ssl_certificate и uwsgi_ssl_certificate_key
  3305. поддерживают переменные.
  3306. </para>
  3307. <para lang="en">
  3308. variables support
  3309. in the "proxy_ssl_certificate", "proxy_ssl_certificate_key"
  3310. "grpc_ssl_certificate", "grpc_ssl_certificate_key",
  3311. "uwsgi_ssl_certificate", and "uwsgi_ssl_certificate_key" directives.
  3312. </para>
  3313. </change>

  3314. <change type="feature">
  3315. <para lang="ru">
  3316. директива max_errors в почтовом прокси-сервере.
  3317. </para>
  3318. <para lang="en">
  3319. the "max_errors" directive in the mail proxy module.
  3320. </para>
  3321. </change>

  3322. <change type="feature">
  3323. <para lang="ru">
  3324. почтовый прокси-сервер поддерживает POP3 и IMAP pipelining.
  3325. </para>
  3326. <para lang="en">
  3327. the mail proxy module supports POP3 and IMAP pipelining.
  3328. </para>
  3329. </change>

  3330. <change type="feature">
  3331. <para lang="ru">
  3332. параметр fastopen директивы listen в модуле stream.<br/>
  3333. Спасибо Anbang Wen.
  3334. </para>
  3335. <para lang="en">
  3336. the "fastopen" parameter of the "listen" directive in the stream module.<br/>
  3337. Thanks to Anbang Wen.
  3338. </para>
  3339. </change>

  3340. <change type="bugfix">
  3341. <para lang="ru">
  3342. специальные символы не экранировались
  3343. при автоматическом перенаправлении с добавлением завершающего слэша.
  3344. </para>
  3345. <para lang="en">
  3346. special characters were not escaped
  3347. during automatic redirect with appended trailing slash.
  3348. </para>
  3349. </change>

  3350. <change type="bugfix">
  3351. <para lang="ru">
  3352. при использовании SMTP pipelining
  3353. соединения с клиентами в почтовом прокси-сервере
  3354. могли неожиданно закрываться.
  3355. </para>
  3356. <para lang="en">
  3357. connections with clients in the mail proxy module
  3358. might be closed unexpectedly
  3359. when using SMTP pipelining.
  3360. </para>
  3361. </change>

  3362. </changes>


  3363. <changes ver="1.19.10" date="2021-04-13">

  3364. <change type="change">
  3365. <para lang="ru">
  3366. в директиве keepalive_requests значение по умолчанию изменено на 1000.
  3367. </para>
  3368. <para lang="en">
  3369. the default value of the "keepalive_requests" directive was changed to 1000.
  3370. </para>
  3371. </change>

  3372. <change type="feature">
  3373. <para lang="ru">
  3374. директива keepalive_time.
  3375. </para>
  3376. <para lang="en">
  3377. the "keepalive_time" directive.
  3378. </para>
  3379. </change>

  3380. <change type="feature">
  3381. <para lang="ru">
  3382. переменная $connection_time.
  3383. </para>
  3384. <para lang="en">
  3385. the $connection_time variable.
  3386. </para>
  3387. </change>

  3388. <change type="workaround">
  3389. <para lang="ru">
  3390. при использовании zlib-ng
  3391. в логах появлялись сообщения "gzip filter failed to use preallocated memory".
  3392. </para>
  3393. <para lang="en">
  3394. "gzip filter failed to use preallocated memory" alerts appeared in logs
  3395. when using zlib-ng.
  3396. </para>
  3397. </change>

  3398. </changes>


  3399. <changes ver="1.19.9" date="2021-03-30">

  3400. <change type="bugfix">
  3401. <para lang="ru">
  3402. nginx не собирался с почтовым прокси-сервером,
  3403. но без модуля ngx_mail_ssl_module;
  3404. ошибка появилась в 1.19.8.
  3405. </para>
  3406. <para lang="en">
  3407. nginx could not be built with the mail proxy module,
  3408. but without the ngx_mail_ssl_module;
  3409. the bug had appeared in 1.19.8.
  3410. </para>
  3411. </change>

  3412. <change type="bugfix">
  3413. <para lang="ru">
  3414. при работе с gRPC-бэкендами могли возникать ошибки
  3415. "upstream sent response body larger than indicated content length";
  3416. ошибка появилась в 1.19.1.
  3417. </para>
  3418. <para lang="en">
  3419. "upstream sent response body larger than indicated content length"
  3420. errors might occur when working with gRPC backends;
  3421. the bug had appeared in 1.19.1.
  3422. </para>
  3423. </change>

  3424. <change type="bugfix">
  3425. <para lang="ru">
  3426. если клиент закрывал соединение в момент отбрасывания тела запроса,
  3427. nginx мог не закрыть соединение до истечения keepalive-таймаута.
  3428. </para>
  3429. <para lang="en">
  3430. nginx might not close a connection till keepalive timeout expiration
  3431. if the connection was closed by the client while discarding the request body.
  3432. </para>
  3433. </change>

  3434. <change type="bugfix">
  3435. <para lang="ru">
  3436. при ожидании задержки limit_req или auth_delay, а также при работе с бэкендами
  3437. nginx мог не обнаружить, что соединение уже закрыто клиентом.
  3438. </para>
  3439. <para lang="en">
  3440. nginx might not detect that a connection was already closed by the client
  3441. when waiting for auth_delay or limit_req delay, or when working with backends.
  3442. </para>
  3443. </change>

  3444. <change type="bugfix">
  3445. <para lang="ru">
  3446. в методе обработки соединений eventport.
  3447. </para>
  3448. <para lang="en">
  3449. in the eventport method.
  3450. </para>
  3451. </change>

  3452. </changes>


  3453. <changes ver="1.19.8" date="2021-03-09">

  3454. <change type="feature">
  3455. <para lang="ru">
  3456. в директиве proxy_cookie_flags теперь
  3457. флаги можно задавать с помощью переменных.
  3458. </para>
  3459. <para lang="en">
  3460. flags in the "proxy_cookie_flags" directive
  3461. can now contain variables.
  3462. </para>
  3463. </change>

  3464. <change type="feature">
  3465. <para lang="ru">
  3466. параметр proxy_protocol в директиве listen,
  3467. директивы proxy_protocol и set_real_ip_from
  3468. в почтовом прокси-сервере.
  3469. </para>
  3470. <para lang="en">
  3471. the "proxy_protocol" parameter of the "listen" directive,
  3472. the "proxy_protocol" and "set_real_ip_from" directives
  3473. in mail proxy.
  3474. </para>
  3475. </change>

  3476. <change type="bugfix">
  3477. <para lang="ru">
  3478. HTTP/2-соединения сразу закрывались
  3479. при использовании "keepalive_timeout 0";
  3480. ошибка появилась в 1.19.7.
  3481. </para>
  3482. <para lang="en">
  3483. HTTP/2 connections were immediately closed
  3484. when using "keepalive_timeout 0";
  3485. the bug had appeared in 1.19.7.
  3486. </para>
  3487. </change>

  3488. <change type="bugfix">
  3489. <para lang="ru">
  3490. некоторые ошибки логгировались как неизвестные,
  3491. если nginx был собран с glibc 2.32.
  3492. </para>
  3493. <para lang="en">
  3494. some errors were logged as unknown
  3495. if nginx was built with glibc 2.32.
  3496. </para>
  3497. </change>

  3498. <change type="bugfix">
  3499. <para lang="ru">
  3500. в методе обработки соединений eventport.
  3501. </para>
  3502. <para lang="en">
  3503. in the eventport method.
  3504. </para>
  3505. </change>

  3506. </changes>


  3507. <changes ver="1.19.7" date="2021-02-16">

  3508. <change type="change">
  3509. <para lang="ru">
  3510. обработка соединений в HTTP/2 была изменена
  3511. и теперь более соответствует HTTP/1.x;
  3512. директивы http2_recv_timeout, http2_idle_timeout
  3513. и http2_max_requests упразднены,
  3514. вместо них следует использовать директивы
  3515. keepalive_timeout и keepalive_requests.
  3516. </para>
  3517. <para lang="en">
  3518. connections handling in HTTP/2 has been changed
  3519. to better match HTTP/1.x;
  3520. the "http2_recv_timeout", "http2_idle_timeout",
  3521. and "http2_max_requests" directives have been removed,
  3522. the "keepalive_timeout" and "keepalive_requests" directives
  3523. should be used instead.
  3524. </para>
  3525. </change>

  3526. <change type="change">
  3527. <para lang="ru">
  3528. директивы http2_max_field_size и http2_max_header_size упразднены,
  3529. вместо них следует использовать директиву large_client_header_buffers.
  3530. </para>
  3531. <para lang="en">
  3532. the "http2_max_field_size" and "http2_max_header_size" directives
  3533. have been removed,
  3534. the "large_client_header_buffers" directive should be used instead.
  3535. </para>
  3536. </change>

  3537. <change type="feature">
  3538. <para lang="ru">
  3539. теперь при исчерпании свободных соединений
  3540. nginx закрывает не только keepalive-соединения,
  3541. но и соединения в lingering close.
  3542. </para>
  3543. <para lang="en">
  3544. now, if free worker connections are exhausted,
  3545. nginx starts closing not only keepalive connections,
  3546. but also connections in lingering close.
  3547. </para>
  3548. </change>

  3549. <change type="bugfix">
  3550. <para lang="ru">
  3551. в логах могли появляться сообщения "zero size buf in output",
  3552. если бэкенд возвращал некорректный ответ
  3553. при небуферизированном проксировании;
  3554. ошибка появилась в 1.19.1.
  3555. </para>
  3556. <para lang="en">
  3557. "zero size buf in output" alerts might appear in logs
  3558. if an upstream server returned an incorrect response
  3559. during unbuffered proxying;
  3560. the bug had appeared in 1.19.1.
  3561. </para>
  3562. </change>

  3563. <change type="bugfix">
  3564. <para lang="ru">
  3565. при использовании директивы return
  3566. вместе с image_filter или xslt_stylesheet
  3567. HEAD-запросы обрабатывались некорректно.
  3568. </para>
  3569. <para lang="en">
  3570. HEAD requests were handled incorrectly
  3571. if the "return" directive was used
  3572. with the "image_filter" or "xslt_stylesheet" directives.
  3573. </para>
  3574. </change>

  3575. <change type="bugfix">
  3576. <para lang="ru">
  3577. в директиве add_trailer.
  3578. </para>
  3579. <para lang="en">
  3580. in the "add_trailer" directive.
  3581. </para>
  3582. </change>

  3583. </changes>


  3584. <changes ver="1.19.6" date="2020-12-15">

  3585. <change type="bugfix">
  3586. <para lang="ru">
  3587. ошибки "no live upstreams",
  3588. если server в блоке upstream был помечен как down.
  3589. </para>
  3590. <para lang="en">
  3591. "no live upstreams" errors
  3592. if a "server" inside "upstream" block was marked as "down".
  3593. </para>
  3594. </change>

  3595. <change type="bugfix">
  3596. <para lang="ru">
  3597. при использовании HTTPS в рабочем процессе мог произойти segmentation fault;
  3598. ошибка появилась в 1.19.5.
  3599. </para>
  3600. <para lang="en">
  3601. a segmentation fault might occur in a worker process if HTTPS was used;
  3602. the bug had appeared in 1.19.5.
  3603. </para>
  3604. </change>

  3605. <change type="bugfix">
  3606. <para lang="ru">
  3607. nginx возвращал ошибку 400 на запросы вида
  3608. <nobr>"GET http://example.com?args HTTP/1.0"</nobr>.
  3609. </para>
  3610. <para lang="en">
  3611. nginx returned the 400 response on requests like
  3612. <nobr>"GET http://example.com?args HTTP/1.0"</nobr>.
  3613. </para>
  3614. </change>

  3615. <change type="bugfix">
  3616. <para lang="ru">
  3617. в модулях ngx_http_flv_module и ngx_http_mp4_module.<br/>
  3618. Спасибо Chris Newton.
  3619. </para>
  3620. <para lang="en">
  3621. in the ngx_http_flv_module and ngx_http_mp4_module.<br/>
  3622. Thanks to Chris Newton.
  3623. </para>
  3624. </change>

  3625. </changes>


  3626. <changes ver="1.19.5" date="2020-11-24">

  3627. <change type="feature">
  3628. <para lang="ru">
  3629. ключ -e.
  3630. </para>
  3631. <para lang="en">
  3632. the -e switch.
  3633. </para>
  3634. </change>

  3635. <change type="feature">
  3636. <para lang="ru">
  3637. при сборке дополнительных модулей
  3638. теперь можно указывать одни и те же исходные файлы в разных модулях.
  3639. </para>
  3640. <para lang="en">
  3641. the same source files can now be specified in different modules
  3642. while building addon modules.
  3643. </para>
  3644. </change>

  3645. <change type="bugfix">
  3646. <para lang="ru">
  3647. SSL shutdown не работал
  3648. при закрытии соединений с ожиданием дополнительных данных (lingering close).
  3649. </para>
  3650. <para lang="en">
  3651. SSL shutdown did not work
  3652. when lingering close was used.
  3653. </para>
  3654. </change>

  3655. <change type="bugfix">
  3656. <para lang="ru">
  3657. при работе с gRPC-бэкендами
  3658. могли возникать ошибки "upstream sent frame for closed stream".
  3659. </para>
  3660. <para lang="en">
  3661. "upstream sent frame for closed stream" errors might occur
  3662. when working with gRPC backends.
  3663. </para>
  3664. </change>

  3665. <change type="bugfix">
  3666. <para lang="ru">
  3667. во внутреннем API для обработки тела запроса.
  3668. </para>
  3669. <para lang="en">
  3670. in request body filters internal API.
  3671. </para>
  3672. </change>

  3673. </changes>


  3674. <changes ver="1.19.4" date="2020-10-27">

  3675. <change type="feature">
  3676. <para lang="ru">
  3677. директивы ssl_conf_command, proxy_ssl_conf_command, grpc_ssl_conf_command
  3678. и uwsgi_ssl_conf_command.
  3679. </para>
  3680. <para lang="en">
  3681. the "ssl_conf_command", "proxy_ssl_conf_command", "grpc_ssl_conf_command",
  3682. and "uwsgi_ssl_conf_command" directives.
  3683. </para>
  3684. </change>

  3685. <change type="feature">
  3686. <para lang="ru">
  3687. директива ssl_reject_handshake.
  3688. </para>
  3689. <para lang="en">
  3690. the "ssl_reject_handshake" directive.
  3691. </para>
  3692. </change>

  3693. <change type="feature">
  3694. <para lang="ru">
  3695. директива proxy_smtp_auth в почтовом прокси-сервере.
  3696. </para>
  3697. <para lang="en">
  3698. the "proxy_smtp_auth" directive in mail proxy.
  3699. </para>
  3700. </change>

  3701. </changes>


  3702. <changes ver="1.19.3" date="2020-09-29">

  3703. <change type="feature">
  3704. <para lang="ru">
  3705. модуль ngx_stream_set_module.
  3706. </para>
  3707. <para lang="en">
  3708. the ngx_stream_set_module.
  3709. </para>
  3710. </change>

  3711. <change type="feature">
  3712. <para lang="ru">
  3713. директива proxy_cookie_flags.
  3714. </para>
  3715. <para lang="en">
  3716. the "proxy_cookie_flags" directive.
  3717. </para>
  3718. </change>

  3719. <change type="feature">
  3720. <para lang="ru">
  3721. директива userid_flags.
  3722. </para>
  3723. <para lang="en">
  3724. the "userid_flags" directive.
  3725. </para>
  3726. </change>

  3727. <change type="bugfix">
  3728. <para lang="ru">
  3729. расширение управления кэшированием stale-if-error
  3730. ошибочно применялось, если бэкенд возвращал ответ
  3731. с кодом 500, 502, 503, 504, 403, 404 или 429.
  3732. </para>
  3733. <para lang="en">
  3734. the "stale-if-error" cache control extension
  3735. was erroneously applied if backend returned a response
  3736. with status code 500, 502, 503, 504, 403, 404, or 429.
  3737. </para>
  3738. </change>

  3739. <change type="bugfix">
  3740. <para lang="ru">
  3741. если использовалось кэширование
  3742. и бэкенд возвращал ответы с строкой заголовка Vary,
  3743. в логах могли появляться сообщения "[crit] cache file ... has too long header".
  3744. </para>
  3745. <para lang="en">
  3746. "[crit] cache file ... has too long header" messages might appear in logs
  3747. if caching was used
  3748. and the backend returned responses with the "Vary" header line.
  3749. </para>
  3750. </change>

  3751. <change type="workaround">
  3752. <para lang="ru">
  3753. при использовании OpenSSL 1.1.1
  3754. в логах могли появляться сообщения "[crit] SSL_write() failed".
  3755. </para>
  3756. <para lang="en">
  3757. "[crit] SSL_write() failed" messages might appear in logs
  3758. when using OpenSSL 1.1.1.
  3759. </para>
  3760. </change>

  3761. <change type="bugfix">
  3762. <para lang="ru">
  3763. в логах могли появляться сообщения
  3764. "SSL_shutdown() failed (SSL: ... bad write retry)";
  3765. ошибка появилась в 1.19.2.
  3766. </para>
  3767. <para lang="en">
  3768. "SSL_shutdown() failed (SSL: ... bad write retry)"
  3769. messages might appear in logs;
  3770. the bug had appeared in 1.19.2.
  3771. </para>
  3772. </change>

  3773. <change type="bugfix">
  3774. <para lang="ru">
  3775. при использовании HTTP/2
  3776. в рабочем процессе мог произойти segmentation fault,
  3777. если ошибки с кодом 400 с помощью директивы error_page
  3778. перенаправлялись в проксируемый location.
  3779. </para>
  3780. <para lang="en">
  3781. a segmentation fault might occur in a worker process
  3782. when using HTTP/2
  3783. if errors with code 400 were redirected to a proxied location
  3784. using the "error_page" directive.
  3785. </para>
  3786. </change>

  3787. <change type="bugfix">
  3788. <para lang="ru">
  3789. утечки сокетов при использовании HTTP/2 и подзапросов в модуле njs.
  3790. </para>
  3791. <para lang="en">
  3792. socket leak when using HTTP/2 and subrequests in the njs module.
  3793. </para>
  3794. </change>

  3795. </changes>


  3796. <changes ver="1.19.2" date="2020-08-11">

  3797. <change type="change">
  3798. <para lang="ru">
  3799. теперь nginx начинает закрывать keepalive-соединения,
  3800. не дожидаясь исчерпания всех свободных соединений,
  3801. а также пишет об этом предупреждение в лог ошибок.
  3802. </para>
  3803. <para lang="en">
  3804. now nginx starts closing keepalive connections
  3805. before all free worker connections are exhausted,
  3806. and logs a warning about this to the error log.
  3807. </para>
  3808. </change>

  3809. <change type="change">
  3810. <para lang="ru">
  3811. оптимизация чтения тела запроса
  3812. при использовании chunked transfer encoding.
  3813. </para>
  3814. <para lang="en">
  3815. optimization of client request body reading
  3816. when using chunked transfer encoding.
  3817. </para>
  3818. </change>

  3819. <change type="bugfix">
  3820. <para lang="ru">
  3821. утечки памяти при использовании директивы ssl_ocsp.
  3822. </para>
  3823. <para lang="en">
  3824. memory leak if the "ssl_ocsp" directive was used.
  3825. </para>
  3826. </change>

  3827. <change type="bugfix">
  3828. <para lang="ru">
  3829. в логах могли появляться сообщения "zero size buf in output",
  3830. если FastCGI-сервер возвращал некорректный ответ;
  3831. ошибка появилась в 1.19.1.
  3832. </para>
  3833. <para lang="en">
  3834. "zero size buf in output" alerts might appear in logs
  3835. if a FastCGI server returned an incorrect response;
  3836. the bug had appeared in 1.19.1.
  3837. </para>
  3838. </change>

  3839. <change type="bugfix">
  3840. <para lang="ru">
  3841. в рабочем процессе мог произойти segmentation fault,
  3842. если размеры large_client_header_buffers отличались
  3843. в разных виртуальных серверах.
  3844. </para>
  3845. <para lang="en">
  3846. a segmentation fault might occur in a worker process
  3847. if different large_client_header_buffers sizes were used
  3848. in different virtual servers.
  3849. </para>
  3850. </change>

  3851. <change type="bugfix">
  3852. <para lang="ru">
  3853. SSL shutdown мог не работать.
  3854. </para>
  3855. <para lang="en">
  3856. SSL shutdown might not work.
  3857. </para>
  3858. </change>

  3859. <change type="bugfix">
  3860. <para lang="ru">
  3861. в логах могли появляться сообщения
  3862. "SSL_shutdown() failed (SSL: ... bad write retry)".
  3863. </para>
  3864. <para lang="en">
  3865. "SSL_shutdown() failed (SSL: ... bad write retry)"
  3866. messages might appear in logs.
  3867. </para>
  3868. </change>

  3869. <change type="bugfix">
  3870. <para lang="ru">
  3871. в модуле ngx_http_slice_module.
  3872. </para>
  3873. <para lang="en">
  3874. in the ngx_http_slice_module.
  3875. </para>
  3876. </change>

  3877. <change type="bugfix">
  3878. <para lang="ru">
  3879. в модуле ngx_http_xslt_filter_module.
  3880. </para>
  3881. <para lang="en">
  3882. in the ngx_http_xslt_filter_module.
  3883. </para>
  3884. </change>

  3885. </changes>


  3886. <changes ver="1.19.1" date="2020-07-07">

  3887. <change type="change">
  3888. <para lang="ru">
  3889. директивы lingering_close, lingering_time и lingering_timeout
  3890. теперь работают при использовании HTTP/2.
  3891. </para>
  3892. <para lang="en">
  3893. the "lingering_close", "lingering_time", and "lingering_timeout" directives
  3894. now work when using HTTP/2.
  3895. </para>
  3896. </change>

  3897. <change type="change">
  3898. <para lang="ru">
  3899. теперь лишние данные, присланные бэкендом, всегда отбрасываются.
  3900. </para>
  3901. <para lang="en">
  3902. now extra data sent by a backend are always discarded.
  3903. </para>
  3904. </change>

  3905. <change type="change">
  3906. <para lang="ru">
  3907. теперь при получении слишком короткого ответа от FastCGI-сервера
  3908. nginx пытается отправить клиенту доступную часть ответа,
  3909. после чего закрывает соединение с клиентом.
  3910. </para>
  3911. <para lang="en">
  3912. now after receiving a too short response from a FastCGI server
  3913. nginx tries to send the available part of the response to the client,
  3914. and then closes the client connection.
  3915. </para>
  3916. </change>

  3917. <change type="change">
  3918. <para lang="ru">
  3919. теперь при получении ответа некорректной длины от gRPC-бэкенда
  3920. nginx прекращает обработку ответа с ошибкой.
  3921. </para>
  3922. <para lang="en">
  3923. now after receiving a response with incorrect length from a gRPC backend
  3924. nginx stops response processing with an error.
  3925. </para>
  3926. </change>

  3927. <change type="feature">
  3928. <para lang="ru">
  3929. параметр min_free в директивах proxy_cache_path, fastcgi_cache_path,
  3930. scgi_cache_path и uwsgi_cache_path.<br/>
  3931. Спасибо Adam Bambuch.
  3932. </para>
  3933. <para lang="en">
  3934. the "min_free" parameter of the "proxy_cache_path", "fastcgi_cache_path",
  3935. "scgi_cache_path", and "uwsgi_cache_path" directives.<br/>
  3936. Thanks to Adam Bambuch.
  3937. </para>
  3938. </change>

  3939. <change type="bugfix">
  3940. <para lang="ru">
  3941. nginx не удалял unix domain listen-сокеты
  3942. при плавном завершении по сигналу SIGQUIT.
  3943. </para>
  3944. <para lang="en">
  3945. nginx did not delete unix domain listen sockets
  3946. during graceful shutdown on the SIGQUIT signal.
  3947. </para>
  3948. </change>

  3949. <change type="bugfix">
  3950. <para lang="ru">
  3951. UDP-пакеты нулевого размера не проксировались.
  3952. </para>
  3953. <para lang="en">
  3954. zero length UDP datagrams were not proxied.
  3955. </para>
  3956. </change>

  3957. <change type="bugfix">
  3958. <para lang="ru">
  3959. проксирование на uwsgi-бэкенды с использованием SSL могло не работать.<br/>
  3960. Спасибо Guanzhong Chen.
  3961. </para>
  3962. <para lang="en">
  3963. proxying to uwsgi backends using SSL might not work.<br/>
  3964. Thanks to Guanzhong Chen.
  3965. </para>
  3966. </change>

  3967. <change type="bugfix">
  3968. <para lang="ru">
  3969. в обработке ошибок при использовании директивы ssl_ocsp.
  3970. </para>
  3971. <para lang="en">
  3972. in error handling when using the "ssl_ocsp" directive.
  3973. </para>
  3974. </change>

  3975. <change type="bugfix">
  3976. <para lang="ru">
  3977. при использовании файловых систем XFS и NFS
  3978. размер кэша на диске мог считаться некорректно.
  3979. </para>
  3980. <para lang="en">
  3981. on XFS and NFS file systems
  3982. disk cache size might be calculated incorrectly.
  3983. </para>
  3984. </change>

  3985. <change type="bugfix">
  3986. <para lang="ru">
  3987. если сервер memcached возвращал некорректный ответ,
  3988. в логах могли появляться сообщения "negative size buf in writer".
  3989. </para>
  3990. <para lang="en">
  3991. "negative size buf in writer" alerts might appear in logs
  3992. if a memcached server returned a malformed response.
  3993. </para>
  3994. </change>

  3995. </changes>


  3996. <changes ver="1.19.0" date="2020-05-26">

  3997. <change type="feature">
  3998. <para lang="ru">
  3999. проверка клиентских сертификатов с помощью OCSP.
  4000. </para>
  4001. <para lang="en">
  4002. client certificate validation with OCSP.
  4003. </para>
  4004. </change>

  4005. <change type="bugfix">
  4006. <para lang="ru">
  4007. при работе с gRPC-бэкендами
  4008. могли возникать ошибки "upstream sent frame for closed stream".
  4009. </para>
  4010. <para lang="en">
  4011. "upstream sent frame for closed stream" errors might occur
  4012. when working with gRPC backends.
  4013. </para>
  4014. </change>

  4015. <change type="bugfix">
  4016. <para lang="ru">
  4017. OCSP stapling мог не работать,
  4018. если не была указана директива resolver.
  4019. </para>
  4020. <para lang="en">
  4021. OCSP stapling might not work
  4022. if the "resolver" directive was not specified.
  4023. </para>
  4024. </change>

  4025. <change type="bugfix">
  4026. <para lang="ru">
  4027. соединения с некорректным HTTP/2 preface не логгировались.
  4028. </para>
  4029. <para lang="en">
  4030. connections with incorrect HTTP/2 preface were not logged.
  4031. </para>
  4032. </change>

  4033. </changes>


  4034. <changes ver="1.17.10" date="2020-04-14">

  4035. <change type="feature">
  4036. <para lang="ru">
  4037. директива auth_delay.
  4038. </para>
  4039. <para lang="en">
  4040. the "auth_delay" directive.
  4041. </para>
  4042. </change>

  4043. </changes>


  4044. <changes ver="1.17.9" date="2020-03-03">

  4045. <change type="change">
  4046. <para lang="ru">
  4047. теперь nginx не разрешает
  4048. несколько строк "Host" в заголовке запроса.
  4049. </para>
  4050. <para lang="en">
  4051. now nginx does not allow
  4052. several "Host" request header lines.
  4053. </para>
  4054. </change>

  4055. <change type="bugfix">
  4056. <para lang="ru">
  4057. nginx игнорировал дополнительные
  4058. строки "Transfer-Encoding" в заголовке запроса.
  4059. </para>
  4060. <para lang="en">
  4061. nginx ignored additional
  4062. "Transfer-Encoding" request header lines.
  4063. </para>
  4064. </change>

  4065. <change type="bugfix">
  4066. <para lang="ru">
  4067. утечки сокетов при использовании HTTP/2.
  4068. </para>
  4069. <para lang="en">
  4070. socket leak when using HTTP/2.
  4071. </para>
  4072. </change>

  4073. <change type="bugfix">
  4074. <para lang="ru">
  4075. в рабочем процессе мог произойти segmentation fault,
  4076. если использовался OCSP stapling.
  4077. </para>
  4078. <para lang="en">
  4079. a segmentation fault might occur in a worker process
  4080. if OCSP stapling was used.
  4081. </para>
  4082. </change>

  4083. <change type="bugfix">
  4084. <para lang="ru">
  4085. в модуле ngx_http_mp4_module.
  4086. </para>
  4087. <para lang="en">
  4088. in the ngx_http_mp4_module.
  4089. </para>
  4090. </change>

  4091. <change type="bugfix">
  4092. <para lang="ru">
  4093. при перенаправлении ошибок с кодом 494 с помощью директивы error_page
  4094. nginx возвращал ответ с кодом 494 вместо 400.
  4095. </para>
  4096. <para lang="en">
  4097. nginx used status code 494 instead of 400
  4098. if errors with code 494 were redirected with the "error_page" directive.
  4099. </para>
  4100. </change>

  4101. <change type="bugfix">
  4102. <para lang="ru">
  4103. утечки сокетов при использовании подзапросов в модуле njs и директивы aio.
  4104. </para>
  4105. <para lang="en">
  4106. socket leak when using subrequests in the njs module and the "aio" directive.
  4107. </para>
  4108. </change>

  4109. </changes>


  4110. <changes ver="1.17.8" date="2020-01-21">

  4111. <change type="feature">
  4112. <para lang="ru">
  4113. директива grpc_pass поддерживает переменные.
  4114. </para>
  4115. <para lang="en">
  4116. variables support in the "grpc_pass" directive.
  4117. </para>
  4118. </change>

  4119. <change type="bugfix">
  4120. <para lang="ru">
  4121. при обработке pipelined-запросов по SSL-соединению мог произойти таймаут;
  4122. ошибка появилась в 1.17.5.
  4123. </para>
  4124. <para lang="en">
  4125. a timeout might occur while handling pipelined requests in an SSL connection;
  4126. the bug had appeared in 1.17.5.
  4127. </para>
  4128. </change>

  4129. <change type="bugfix">
  4130. <para lang="ru">
  4131. в директиве debug_points при использовании HTTP/2.<br/>
  4132. Спасибо Даниилу Бондареву.
  4133. </para>
  4134. <para lang="en">
  4135. in the "debug_points" directive when using HTTP/2.<br/>
  4136. Thanks to Daniil Bondarev.
  4137. </para>
  4138. </change>

  4139. </changes>


  4140. <changes ver="1.17.7" date="2019-12-24">

  4141. <change type="bugfix">
  4142. <para lang="ru">
  4143. на старте или во время переконфигурации мог произойти segmentation fault,
  4144. если в конфигурации использовалась
  4145. директива rewrite с пустой строкой замены.
  4146. </para>
  4147. <para lang="en">
  4148. a segmentation fault might occur on start or during reconfiguration
  4149. if the "rewrite" directive with an empty replacement string
  4150. was used in the configuration.
  4151. </para>
  4152. </change>

  4153. <change type="bugfix">
  4154. <para lang="ru">
  4155. в рабочем процессе мог произойти segmentation fault,
  4156. если директива break использовалась совместно с директивой alias
  4157. или директивой proxy_pass с URI.
  4158. </para>
  4159. <para lang="en">
  4160. a segmentation fault might occur in a worker process
  4161. if the "break" directive was used with the "alias" directive
  4162. or with the "proxy_pass" directive with a URI.
  4163. </para>
  4164. </change>

  4165. <change type="bugfix">
  4166. <para lang="ru">
  4167. строка Location заголовка ответа могла содержать мусор,
  4168. если URI запроса был изменён на URI, содержащий нулевой символ.
  4169. </para>
  4170. <para lang="en">
  4171. the "Location" response header line might contain garbage
  4172. if the request URI was rewritten to the one containing a null character.
  4173. </para>
  4174. </change>

  4175. <change type="bugfix">
  4176. <para lang="ru">
  4177. при возврате перенаправлений с помощью директивы error_page
  4178. запросы с телом обрабатывались некорректно;
  4179. ошибка появилась в 0.7.12.
  4180. </para>
  4181. <para lang="en">
  4182. requests with bodies were handled incorrectly
  4183. when returning redirections with the "error_page" directive;
  4184. the bug had appeared in 0.7.12.
  4185. </para>
  4186. </change>

  4187. <change type="bugfix">
  4188. <para lang="ru">
  4189. утечки сокетов при использовании HTTP/2.
  4190. </para>
  4191. <para lang="en">
  4192. socket leak when using HTTP/2.
  4193. </para>
  4194. </change>

  4195. <change type="bugfix">
  4196. <para lang="ru">
  4197. при обработке pipelined-запросов по SSL-соединению мог произойти таймаут;
  4198. ошибка появилась в 1.17.5.
  4199. </para>
  4200. <para lang="en">
  4201. a timeout might occur while handling pipelined requests in an SSL connection;
  4202. the bug had appeared in 1.17.5.
  4203. </para>
  4204. </change>

  4205. <change type="bugfix">
  4206. <para lang="ru">
  4207. в модуле ngx_http_dav_module.
  4208. </para>
  4209. <para lang="en">
  4210. in the ngx_http_dav_module.
  4211. </para>
  4212. </change>

  4213. </changes>


  4214. <changes ver="1.17.6" date="2019-11-19">

  4215. <change type="feature">
  4216. <para lang="ru">
  4217. переменные $proxy_protocol_server_addr и $proxy_protocol_server_port.
  4218. </para>
  4219. <para lang="en">
  4220. the $proxy_protocol_server_addr and $proxy_protocol_server_port variables.
  4221. </para>
  4222. </change>

  4223. <change type="feature">
  4224. <para lang="ru">
  4225. директива limit_conn_dry_run.
  4226. </para>
  4227. <para lang="en">
  4228. the "limit_conn_dry_run" directive.
  4229. </para>
  4230. </change>

  4231. <change type="feature">
  4232. <para lang="ru">
  4233. переменные $limit_req_status и $limit_conn_status.
  4234. </para>
  4235. <para lang="en">
  4236. the $limit_req_status and $limit_conn_status variables.
  4237. </para>
  4238. </change>

  4239. </changes>


  4240. <changes ver="1.17.5" date="2019-10-22">

  4241. <change type="feature">
  4242. <para lang="ru">
  4243. теперь nginx использует вызов ioctl(FIONREAD), если он доступен,
  4244. чтобы избежать чтения из быстрого соединения в течение долгого времени.
  4245. </para>
  4246. <para lang="en">
  4247. now nginx uses ioctl(FIONREAD), if available,
  4248. to avoid reading from a fast connection for a long time.
  4249. </para>
  4250. </change>

  4251. <change type="bugfix">
  4252. <para lang="ru">
  4253. неполные закодированные символы в конце URI запроса игнорировались.
  4254. </para>
  4255. <para lang="en">
  4256. incomplete escaped characters at the end of the request URI were ignored.
  4257. </para>
  4258. </change>

  4259. <change type="bugfix">
  4260. <para lang="ru">
  4261. "/." и "/.." в конце URI запроса не нормализовывались.
  4262. </para>
  4263. <para lang="en">
  4264. "/." and "/.." at the end of the request URI were not normalized.
  4265. </para>
  4266. </change>

  4267. <change type="bugfix">
  4268. <para lang="ru">
  4269. в директиве merge_slashes.
  4270. </para>
  4271. <para lang="en">
  4272. in the "merge_slashes" directive.
  4273. </para>
  4274. </change>

  4275. <change type="bugfix">
  4276. <para lang="ru">
  4277. в директиве ignore_invalid_headers.<br/>
  4278. Спасибо Alan Kemp.
  4279. </para>
  4280. <para lang="en">
  4281. in the "ignore_invalid_headers" directive.<br/>
  4282. Thanks to Alan Kemp.
  4283. </para>
  4284. </change>

  4285. <change type="bugfix">
  4286. <para lang="ru">
  4287. nginx не собирался с MinGW-w64 gcc 8.1 и новее.
  4288. </para>
  4289. <para lang="en">
  4290. nginx could not be built with MinGW-w64 gcc 8.1 or newer.
  4291. </para>
  4292. </change>

  4293. </changes>


  4294. <changes ver="1.17.4" date="2019-09-24">

  4295. <change type="change">
  4296. <para lang="ru">
  4297. улучшено детектирование некорректного поведения клиентов в HTTP/2.
  4298. </para>
  4299. <para lang="en">
  4300. better detection of incorrect client behavior in HTTP/2.
  4301. </para>
  4302. </change>

  4303. <change type="change">
  4304. <para lang="ru">
  4305. в обработке непрочитанного тела запроса
  4306. при возврате ошибок в HTTP/2.
  4307. </para>
  4308. <para lang="en">
  4309. in handling of not fully read client request body
  4310. when returning errors in HTTP/2.
  4311. </para>
  4312. </change>

  4313. <change type="bugfix">
  4314. <para lang="ru">
  4315. директива worker_shutdown_timeout могла не работать
  4316. при использовании HTTP/2.
  4317. </para>
  4318. <para lang="en">
  4319. the "worker_shutdown_timeout" directive might not work
  4320. when using HTTP/2.
  4321. </para>
  4322. </change>

  4323. <change type="bugfix">
  4324. <para lang="ru">
  4325. при использовании HTTP/2 и директивы proxy_request_buffering
  4326. в рабочем процессе мог произойти segmentation fault.
  4327. </para>
  4328. <para lang="en">
  4329. a segmentation fault might occur in a worker process
  4330. when using HTTP/2 and the "proxy_request_buffering" directive.
  4331. </para>
  4332. </change>

  4333. <change type="bugfix">
  4334. <para lang="ru">
  4335. на Windows при использовании SSL
  4336. уровень записи в лог ошибки ECONNABORTED был "crit" вместо "error".
  4337. </para>
  4338. <para lang="en">
  4339. the ECONNABORTED error log level was "crit" instead of "error"
  4340. on Windows when using SSL.
  4341. </para>
  4342. </change>

  4343. <change type="bugfix">
  4344. <para lang="ru">
  4345. nginx игнорировал лишние данные при использовании chunked transfer encoding.
  4346. </para>
  4347. <para lang="en">
  4348. nginx ignored extra data when using chunked transfer encoding.
  4349. </para>
  4350. </change>

  4351. <change type="bugfix">
  4352. <para lang="ru">
  4353. если использовалась директива return и
  4354. при чтении тела запроса возникала ошибка,
  4355. nginx всегда возвращал ошибку 500.
  4356. </para>
  4357. <para lang="en">
  4358. nginx always returned the 500 error
  4359. if the "return" directive was used
  4360. and an error occurred during reading client request body.
  4361. </para>
  4362. </change>

  4363. <change type="bugfix">
  4364. <para lang="ru">
  4365. в обработке ошибок выделения памяти.
  4366. </para>
  4367. <para lang="en">
  4368. in memory allocation error handling.
  4369. </para>
  4370. </change>

  4371. </changes>


  4372. <changes ver="1.17.3" date="2019-08-13">

  4373. <change type="security">
  4374. <para lang="ru">
  4375. при использовании HTTP/2 клиент мог вызвать
  4376. чрезмерное потребление памяти и ресурсов процессора
  4377. (CVE-2019-9511, CVE-2019-9513, CVE-2019-9516).
  4378. </para>
  4379. <para lang="en">
  4380. when using HTTP/2 a client might cause
  4381. excessive memory consumption and CPU usage
  4382. (CVE-2019-9511, CVE-2019-9513, CVE-2019-9516).
  4383. </para>
  4384. </change>

  4385. <change type="bugfix">
  4386. <para lang="ru">
  4387. при использовании сжатия в логах могли появляться сообщения "zero size buf";
  4388. ошибка появилась в 1.17.2.
  4389. </para>
  4390. <para lang="en">
  4391. "zero size buf" alerts might appear in logs when using gzipping;
  4392. the bug had appeared in 1.17.2.
  4393. </para>
  4394. </change>

  4395. <change type="bugfix">
  4396. <para lang="ru">
  4397. при использовании директивы resolver в SMTP прокси-сервере
  4398. в рабочем процессе мог произойти segmentation fault.
  4399. </para>
  4400. <para lang="en">
  4401. a segmentation fault might occur in a worker process
  4402. if the "resolver" directive was used in SMTP proxy.
  4403. </para>
  4404. </change>

  4405. </changes>


  4406. <changes ver="1.17.2" date="2019-07-23">

  4407. <change type="change">
  4408. <para lang="ru">
  4409. минимальная поддерживаемая версия zlib&mdash;1.2.0.4.<br/>
  4410. Спасибо Илье Леошкевичу.
  4411. </para>
  4412. <para lang="en">
  4413. minimum supported zlib version is 1.2.0.4.<br/>
  4414. Thanks to Ilya Leoshkevich.
  4415. </para>
  4416. </change>

  4417. <change type="change">
  4418. <para lang="ru">
  4419. метод $r->internal_redirect() встроенного перла
  4420. теперь ожидает закодированный URI.
  4421. </para>
  4422. <para lang="en">
  4423. the $r->internal_redirect() embedded perl method
  4424. now expects escaped URIs.
  4425. </para>
  4426. </change>

  4427. <change type="feature">
  4428. <para lang="ru">
  4429. теперь с помощью метода $r->internal_redirect() встроенного перла
  4430. можно перейти в именованный location.
  4431. </para>
  4432. <para lang="en">
  4433. it is now possible to switch to a named location
  4434. using the $r->internal_redirect() embedded perl method.
  4435. </para>
  4436. </change>

  4437. <change type="bugfix">
  4438. <para lang="ru">
  4439. в обработке ошибок во встроенном перле.
  4440. </para>
  4441. <para lang="en">
  4442. in error handling in embedded perl.
  4443. </para>
  4444. </change>

  4445. <change type="bugfix">
  4446. <para lang="ru">
  4447. на старте или во время переконфигурации мог произойти segmentation fault,
  4448. если в конфигурации использовалось значение hash bucket size больше 64 килобайт.
  4449. </para>
  4450. <para lang="en">
  4451. a segmentation fault might occur on start or during reconfiguration
  4452. if hash bucket size larger than 64 kilobytes was used in the configuration.
  4453. </para>
  4454. </change>

  4455. <change type="bugfix">
  4456. <para lang="ru">
  4457. при использовании методов обработки соединений select, poll и /dev/poll
  4458. nginx мог нагружать процессор во время небуферизованного проксирования
  4459. и при проксировании WebSocket-соединений.
  4460. </para>
  4461. <para lang="en">
  4462. nginx might hog CPU during unbuffered proxying
  4463. and when proxying WebSocket connections
  4464. if the select, poll, or /dev/poll methods were used.
  4465. </para>
  4466. </change>

  4467. <change type="bugfix">
  4468. <para lang="ru">
  4469. в модуле ngx_http_xslt_filter_module.
  4470. </para>
  4471. <para lang="en">
  4472. in the ngx_http_xslt_filter_module.
  4473. </para>
  4474. </change>

  4475. <change type="bugfix">
  4476. <para lang="ru">
  4477. в модуле ngx_http_ssi_filter_module.
  4478. </para>
  4479. <para lang="en">
  4480. in the ngx_http_ssi_filter_module.
  4481. </para>
  4482. </change>

  4483. </changes>


  4484. <changes ver="1.17.1" date="2019-06-25">

  4485. <change type="feature">
  4486. <para lang="ru">
  4487. директива limit_req_dry_run.
  4488. </para>
  4489. <para lang="en">
  4490. the "limit_req_dry_run" directive.
  4491. </para>
  4492. </change>

  4493. <change type="feature">
  4494. <para lang="ru">
  4495. при использовании директивы hash в блоке upstream
  4496. пустой ключ хэширования теперь приводит к переключению
  4497. на round-robin балансировку.<br/>
  4498. Спасибо Niklas Keller.
  4499. </para>
  4500. <para lang="en">
  4501. when using the "hash" directive inside the "upstream" block
  4502. an empty hash key now triggers round-robin balancing.<br/>
  4503. Thanks to Niklas Keller.
  4504. </para>
  4505. </change>

  4506. <change type="bugfix">
  4507. <para lang="ru">
  4508. в рабочем процессе мог произойти segmentation fault,
  4509. если использовалось кэширование и директива image_filter,
  4510. а ошибки с кодом 415 перенаправлялись с помощью директивы error_page;
  4511. ошибка появилась в 1.11.10.
  4512. </para>
  4513. <para lang="en">
  4514. a segmentation fault might occur in a worker process
  4515. if caching was used along with the "image_filter" directive,
  4516. and errors with code 415 were redirected with the "error_page" directive;
  4517. the bug had appeared in 1.11.10.
  4518. </para>
  4519. </change>

  4520. <change type="bugfix">
  4521. <para lang="ru">
  4522. в рабочем процессе мог произойти segmentation fault,
  4523. если использовался встроенный перл;
  4524. ошибка появилась в 1.7.3.
  4525. </para>
  4526. <para lang="en">
  4527. a segmentation fault might occur in a worker process
  4528. if embedded perl was used;
  4529. the bug had appeared in 1.7.3.
  4530. </para>
  4531. </change>

  4532. </changes>


  4533. <changes ver="1.17.0" date="2019-05-21">

  4534. <change type="feature">
  4535. <para lang="ru">
  4536. директивы limit_rate и limit_rate_after поддерживают переменные.
  4537. </para>
  4538. <para lang="en">
  4539. variables support in the "limit_rate" and "limit_rate_after" directives.
  4540. </para>
  4541. </change>

  4542. <change type="feature">
  4543. <para lang="ru">
  4544. директивы proxy_upload_rate и proxy_download_rate в модуле stream
  4545. поддерживают переменные.
  4546. </para>
  4547. <para lang="en">
  4548. variables support
  4549. in the "proxy_upload_rate" and "proxy_download_rate" directives
  4550. in the stream module.
  4551. </para>
  4552. </change>

  4553. <change type="change">
  4554. <para lang="ru">
  4555. минимальная поддерживаемая версия OpenSSL&mdash;0.9.8.
  4556. </para>
  4557. <para lang="en">
  4558. minimum supported OpenSSL version is 0.9.8.
  4559. </para>
  4560. </change>

  4561. <change type="change">
  4562. <para lang="ru">
  4563. теперь postpone-фильтр собирается всегда.
  4564. </para>
  4565. <para lang="en">
  4566. now the postpone filter is always built.
  4567. </para>
  4568. </change>

  4569. <change type="bugfix">
  4570. <para lang="ru">
  4571. директива include не работала в блоках if и limit_except.
  4572. </para>
  4573. <para lang="en">
  4574. the "include" directive did not work inside the "if" and "limit_except" blocks.
  4575. </para>
  4576. </change>

  4577. <change type="bugfix">
  4578. <para lang="ru">
  4579. в обработке byte ranges.
  4580. </para>
  4581. <para lang="en">
  4582. in byte ranges processing.
  4583. </para>
  4584. </change>

  4585. </changes>


  4586. <changes ver="1.15.12" date="2019-04-16">

  4587. <change type="bugfix">
  4588. <para lang="ru">
  4589. в рабочем процессе мог произойти segmentation fault,
  4590. если в директивах ssl_certificate или ssl_certificate_key
  4591. использовались переменные
  4592. и был включён OCSP stapling.
  4593. </para>
  4594. <para lang="en">
  4595. a segmentation fault might occur in a worker process
  4596. if variables were used
  4597. in the "ssl_certificate" or "ssl_certificate_key" directives
  4598. and OCSP stapling was enabled.
  4599. </para>
  4600. </change>

  4601. </changes>


  4602. <changes ver="1.15.11" date="2019-04-09">

  4603. <change type="bugfix">
  4604. <para lang="ru">
  4605. в директиве ssl_stapling_file на Windows.
  4606. </para>
  4607. <para lang="en">
  4608. in the "ssl_stapling_file" directive on Windows.
  4609. </para>
  4610. </change>

  4611. </changes>


  4612. <changes ver="1.15.10" date="2019-03-26">

  4613. <change type="change">
  4614. <para lang="ru">
  4615. теперь при использовании имени хоста в директиве listen
  4616. nginx создаёт listen-сокеты для всех адресов,
  4617. соответствующих этому имени
  4618. (ранее использовался только первый адрес).
  4619. </para>
  4620. <para lang="en">
  4621. when using a hostname in the "listen" directive
  4622. nginx now creates listening sockets
  4623. for all addresses the hostname resolves to
  4624. (previously, only the first address was used).
  4625. </para>
  4626. </change>

  4627. <change type="feature">
  4628. <para lang="ru">
  4629. диапазоны портов в директиве listen.
  4630. </para>
  4631. <para lang="en">
  4632. port ranges in the "listen" directive.
  4633. </para>
  4634. </change>

  4635. <change type="feature">
  4636. <para lang="ru">
  4637. возможность загрузки SSL-сертификатов и секретных ключей из переменных.
  4638. </para>
  4639. <para lang="en">
  4640. loading of SSL certificates and secret keys from variables.
  4641. </para>
  4642. </change>

  4643. <change type="workaround">
  4644. <para lang="ru">
  4645. переменная $ssl_server_name могла быть пустой
  4646. при использовании OpenSSL 1.1.1.
  4647. </para>
  4648. <para lang="en">
  4649. the $ssl_server_name variable might be empty
  4650. when using OpenSSL 1.1.1.
  4651. </para>
  4652. </change>

  4653. <change type="bugfix">
  4654. <para lang="ru">
  4655. nginx/Windows не собирался с Visual Studio 2015 и новее;
  4656. ошибка появилась в 1.15.9.
  4657. </para>
  4658. <para lang="en">
  4659. nginx/Windows could not be built with Visual Studio 2015 or newer;
  4660. the bug had appeared in 1.15.9.
  4661. </para>
  4662. </change>

  4663. </changes>


  4664. <changes ver="1.15.9" date="2019-02-26">

  4665. <change type="feature">
  4666. <para lang="ru">
  4667. директивы ssl_certificate и ssl_certificate_key
  4668. поддерживают переменные.
  4669. </para>
  4670. <para lang="en">
  4671. variables support
  4672. in the "ssl_certificate" and "ssl_certificate_key" directives.
  4673. </para>
  4674. </change>

  4675. <change type="feature">
  4676. <para lang="ru">
  4677. метод poll теперь доступен на Windows
  4678. при использовании Windows Vista и новее.
  4679. </para>
  4680. <para lang="en">
  4681. the "poll" method is now available on Windows
  4682. when using Windows Vista or newer.
  4683. </para>
  4684. </change>

  4685. <change type="bugfix">
  4686. <para lang="ru">
  4687. если при использовании метода select на Windows
  4688. происходила ошибка при установлении соединения с бэкендом,
  4689. nginx ожидал истечения таймаута на установление соединения.
  4690. </para>
  4691. <para lang="en">
  4692. if the "select" method was used on Windows
  4693. and an error occurred while establishing a backend connection,
  4694. nginx waited for the connection establishment timeout to expire.
  4695. </para>
  4696. </change>

  4697. <change type="bugfix">
  4698. <para lang="ru">
  4699. директивы proxy_upload_rate и proxy_download_rate
  4700. в модуле stream
  4701. работали некорректно при проксировании UDP-пакетов.
  4702. </para>
  4703. <para lang="en">
  4704. the "proxy_upload_rate" and "proxy_download_rate" directives
  4705. in the stream module
  4706. worked incorrectly when proxying UDP datagrams.
  4707. </para>
  4708. </change>

  4709. </changes>


  4710. <changes ver="1.15.8" date="2018-12-25">

  4711. <change type="feature">
  4712. <para lang="ru">
  4713. переменная $upstream_bytes_sent.<br/>
  4714. Спасибо Piotr Sikora.
  4715. </para>
  4716. <para lang="en">
  4717. the $upstream_bytes_sent variable.<br/>
  4718. Thanks to Piotr Sikora.
  4719. </para>
  4720. </change>

  4721. <change type="feature">
  4722. <para lang="ru">
  4723. новые директивы в скриптах подсветки синтаксиса для vim.<br/>
  4724. Спасибо Геннадию Махомеду.
  4725. </para>
  4726. <para lang="en">
  4727. new directives in vim syntax highlighting scripts.<br/>
  4728. Thanks to Gena Makhomed.
  4729. </para>
  4730. </change>

  4731. <change type="bugfix">
  4732. <para lang="ru">
  4733. в директиве proxy_cache_background_update.
  4734. </para>
  4735. <para lang="en">
  4736. in the "proxy_cache_background_update" directive.
  4737. </para>
  4738. </change>

  4739. <change type="bugfix">
  4740. <para lang="ru">
  4741. в директиве geo при использовании unix domain listen-сокетов.
  4742. </para>
  4743. <para lang="en">
  4744. in the "geo" directive when using unix domain listen sockets.
  4745. </para>
  4746. </change>

  4747. <change type="workaround">
  4748. <para lang="ru">
  4749. при использовании директивы ssl_early_data с OpenSSL
  4750. в логах могли появляться сообщения
  4751. "ignoring stale global SSL error ... bad length".
  4752. </para>
  4753. <para lang="en">
  4754. the "ignoring stale global SSL error ... bad length"
  4755. alerts might appear in logs
  4756. when using the "ssl_early_data" directive with OpenSSL.
  4757. </para>
  4758. </change>

  4759. <change type="bugfix">
  4760. <para lang="ru">
  4761. в nginx/Windows.
  4762. </para>
  4763. <para lang="en">
  4764. in nginx/Windows.
  4765. </para>
  4766. </change>

  4767. <change type="bugfix">
  4768. <para lang="ru">
  4769. в модуле ngx_http_autoindex_module на 32-битных платформах.
  4770. </para>
  4771. <para lang="en">
  4772. in the ngx_http_autoindex_module on 32-bit platforms.
  4773. </para>
  4774. </change>

  4775. </changes>


  4776. <changes ver="1.15.7" date="2018-11-27">

  4777. <change type="feature">
  4778. <para lang="ru">
  4779. директива proxy_requests в модуле stream.
  4780. </para>
  4781. <para lang="en">
  4782. the "proxy_requests" directive in the stream module.
  4783. </para>
  4784. </change>

  4785. <change type="feature">
  4786. <para lang="ru">
  4787. параметр "delay" директивы "limit_req".<br/>
  4788. Спасибо Владиславу Шабанову и Петру Щучкину.
  4789. </para>
  4790. <para lang="en">
  4791. the "delay" parameter of the "limit_req" directive.<br/>
  4792. Thanks to Vladislav Shabanov and Peter Shchuchkin.
  4793. </para>
  4794. </change>

  4795. <change type="bugfix">
  4796. <para lang="ru">
  4797. утечки памяти в случае ошибок при переконфигурации.
  4798. </para>
  4799. <para lang="en">
  4800. memory leak on errors during reconfiguration.
  4801. </para>
  4802. </change>

  4803. <change type="bugfix">
  4804. <para lang="ru">
  4805. в переменных $upstream_response_time, $upstream_connect_time и
  4806. $upstream_header_time.
  4807. </para>
  4808. <para lang="en">
  4809. in the $upstream_response_time, $upstream_connect_time, and
  4810. $upstream_header_time variables.
  4811. </para>
  4812. </change>

  4813. <change type="bugfix">
  4814. <para lang="ru">
  4815. в рабочем процессе мог произойти segmentation fault,
  4816. если использовался модуль ngx_http_mp4_module на 32-битных платформах.
  4817. </para>
  4818. <para lang="en">
  4819. a segmentation fault might occur in a worker process
  4820. if the ngx_http_mp4_module was used on 32-bit platforms.
  4821. </para>
  4822. </change>

  4823. </changes>


  4824. <changes ver="1.15.6" date="2018-11-06">

  4825. <change type="security">
  4826. <para lang="ru">
  4827. при использовании HTTP/2 клиент мог вызвать
  4828. чрезмерное потреблению памяти (CVE-2018-16843)
  4829. и ресурсов процессора (CVE-2018-16844).
  4830. </para>
  4831. <para lang="en">
  4832. when using HTTP/2 a client might cause
  4833. excessive memory consumption (CVE-2018-16843)
  4834. and CPU usage (CVE-2018-16844).
  4835. </para>
  4836. </change>

  4837. <change type="security">
  4838. <para lang="ru">
  4839. при обработке специально созданного mp4-файла модулем ngx_http_mp4_module
  4840. содержимое памяти рабочего процесса могло быть отправлено клиенту
  4841. (CVE-2018-16845).
  4842. </para>
  4843. <para lang="en">
  4844. processing of a specially crafted mp4 file with the ngx_http_mp4_module
  4845. might result in worker process memory disclosure
  4846. (CVE-2018-16845).
  4847. </para>
  4848. </change>

  4849. <change type="feature">
  4850. <para lang="ru">
  4851. директивы proxy_socket_keepalive, fastcgi_socket_keepalive,
  4852. grpc_socket_keepalive, memcached_socket_keepalive,
  4853. scgi_socket_keepalive и uwsgi_socket_keepalive.
  4854. </para>
  4855. <para lang="en">
  4856. the "proxy_socket_keepalive", "fastcgi_socket_keepalive",
  4857. "grpc_socket_keepalive", "memcached_socket_keepalive",
  4858. "scgi_socket_keepalive", and "uwsgi_socket_keepalive" directives.
  4859. </para>
  4860. </change>

  4861. <change type="bugfix">
  4862. <para lang="ru">
  4863. если nginx был собран с OpenSSL 1.1.0, а использовался с OpenSSL 1.1.1,
  4864. протокол TLS 1.3 всегда был разрешён.
  4865. </para>
  4866. <para lang="en">
  4867. if nginx was built with OpenSSL 1.1.0 and used with OpenSSL 1.1.1,
  4868. the TLS 1.3 protocol was always enabled.
  4869. </para>
  4870. </change>

  4871. <change type="bugfix">
  4872. <para lang="ru">
  4873. при работе с gRPC-бэкендами могло расходоваться большое количество памяти.
  4874. </para>
  4875. <para lang="en">
  4876. working with gRPC backends might result in excessive memory consumption.
  4877. </para>
  4878. </change>

  4879. </changes>


  4880. <changes ver="1.15.5" date="2018-10-02">

  4881. <change type="bugfix">
  4882. <para lang="ru">
  4883. при использовании OpenSSL 1.1.0h и новее
  4884. в рабочем процессе мог произойти segmentation fault;
  4885. ошибка появилась в 1.15.4.
  4886. </para>
  4887. <para lang="en">
  4888. a segmentation fault might occur in a worker process
  4889. when using OpenSSL 1.1.0h or newer;
  4890. the bug had appeared in 1.15.4.
  4891. </para>
  4892. </change>

  4893. <change type="bugfix">
  4894. <para lang="ru">
  4895. незначительных потенциальных ошибок.
  4896. </para>
  4897. <para lang="en">
  4898. of minor potential bugs.
  4899. </para>
  4900. </change>

  4901. </changes>


  4902. <changes ver="1.15.4" date="2018-09-25">

  4903. <change type="feature">
  4904. <para lang="ru">
  4905. теперь директиву ssl_early_data можно использовать с OpenSSL.
  4906. </para>
  4907. <para lang="en">
  4908. now the "ssl_early_data" directive can be used with OpenSSL.
  4909. </para>
  4910. </change>

  4911. <change type="bugfix">
  4912. <para lang="ru">
  4913. в модуле ngx_http_uwsgi_module.<br/>
  4914. Спасибо Chris Caputo.
  4915. </para>
  4916. <para lang="en">
  4917. in the ngx_http_uwsgi_module.<br/>
  4918. Thanks to Chris Caputo.
  4919. </para>
  4920. </change>

  4921. <change type="bugfix">
  4922. <para lang="ru">
  4923. соединения к некоторым gRPC-бэкендам могли не кэшироваться
  4924. при использовании директивы keepalive.
  4925. </para>
  4926. <para lang="en">
  4927. connections with some gRPC backends might not be cached
  4928. when using the "keepalive" directive.
  4929. </para>
  4930. </change>

  4931. <change type="bugfix">
  4932. <para lang="ru">
  4933. при использовании директивы error_page для перенаправления ошибок,
  4934. возникающих на ранних этапах обработки запроса,
  4935. в частности ошибок с кодом 400,
  4936. могла происходить утечка сокетов.
  4937. </para>
  4938. <para lang="en">
  4939. a socket leak might occur
  4940. when using the "error_page" directive
  4941. to redirect early request processing errors,
  4942. notably errors with code 400.
  4943. </para>
  4944. </change>

  4945. <change type="bugfix">
  4946. <para lang="ru">
  4947. директива return при возврате ошибок не изменяла код ответа,
  4948. если запрос был перенаправлен с помощью директивы error_page.
  4949. </para>
  4950. <para lang="en">
  4951. the "return" directive did not change the response code when returning errors
  4952. if the request was redirected by the "error_page" directive.
  4953. </para>
  4954. </change>

  4955. <change type="bugfix">
  4956. <para lang="ru">
  4957. стандартные сообщения об ошибках и ответы модуля ngx_http_autoindex_module
  4958. содержали атрибут bgcolor, что могло приводить к их некорректному отображению
  4959. при использовании пользовательских настроек цветов в браузерах.<br/>
  4960. Спасибо Nova DasSarma.
  4961. </para>
  4962. <para lang="en">
  4963. standard error pages and responses of the ngx_http_autoindex_module module
  4964. used the "bgcolor" attribute, and might be displayed incorrectly when using
  4965. custom color settings in browsers.<br/>
  4966. Thanks to Nova DasSarma.
  4967. </para>
  4968. </change>

  4969. <change type="change">
  4970. <para lang="ru">
  4971. уровень логгирования ошибок SSL "no suitable key share" и
  4972. "no suitable signature algorithm"
  4973. понижен с уровня crit до info.
  4974. </para>
  4975. <para lang="en">
  4976. the logging level of the "no suitable key share" and
  4977. "no suitable signature algorithm" SSL errors
  4978. has been lowered from "crit" to "info".
  4979. </para>
  4980. </change>

  4981. </changes>


  4982. <changes ver="1.15.3" date="2018-08-28">

  4983. <change type="feature">
  4984. <para lang="ru">
  4985. теперь TLSv1.3 можно использовать с BoringSSL.
  4986. </para>
  4987. <para lang="en">
  4988. now TLSv1.3 can be used with BoringSSL.
  4989. </para>
  4990. </change>

  4991. <change type="feature">
  4992. <para lang="ru">
  4993. директива ssl_early_data,
  4994. сейчас доступна при использовании BoringSSL.
  4995. </para>
  4996. <para lang="en">
  4997. the "ssl_early_data" directive,
  4998. currently available with BoringSSL.
  4999. </para>
  5000. </change>

  5001. <change type="feature">
  5002. <para lang="ru">
  5003. директивы keepalive_timeout и keepalive_requests
  5004. в блоке upstream.
  5005. </para>
  5006. <para lang="en">
  5007. the "keepalive_timeout" and "keepalive_requests" directives
  5008. in the "upstream" block.
  5009. </para>
  5010. </change>

  5011. <change type="bugfix">
  5012. <para lang="ru">
  5013. модуль ngx_http_dav_module
  5014. при копировании файла поверх существующего файла с помощью метода COPY
  5015. не обнулял целевой файл.
  5016. </para>
  5017. <para lang="en">
  5018. the ngx_http_dav_module
  5019. did not truncate destination file when copying a file over an existing one
  5020. with the COPY method.
  5021. </para>
  5022. </change>

  5023. <change type="bugfix">
  5024. <para lang="ru">
  5025. модуль ngx_http_dav_module
  5026. при перемещении файла между файловыми системами с помощью метода MOVE
  5027. устанавливал нулевые права доступа на результирующий файл
  5028. и не сохранял время изменения файла.
  5029. </para>
  5030. <para lang="en">
  5031. the ngx_http_dav_module
  5032. used zero access rights on the destination file
  5033. and did not preserve file modification time
  5034. when moving a file between different file systems with the MOVE method.
  5035. </para>
  5036. </change>

  5037. <change type="bugfix">
  5038. <para lang="ru">
  5039. модуль ngx_http_dav_module
  5040. при копировании файла с помощью метода COPY
  5041. для результирующего файла использовал права доступа по умолчанию.
  5042. </para>
  5043. <para lang="en">
  5044. the ngx_http_dav_module
  5045. used default access rights
  5046. when copying a file with the COPY method.
  5047. </para>
  5048. </change>

  5049. <change type="workaround">
  5050. <para lang="ru">
  5051. некоторые клиенты могли не работать при использовании HTTP/2;
  5052. ошибка появилась в 1.13.5.
  5053. </para>
  5054. <para lang="en">
  5055. some clients might not work when using HTTP/2;
  5056. the bug had appeared in 1.13.5.
  5057. </para>
  5058. </change>

  5059. <change type="bugfix">
  5060. <para lang="ru">
  5061. nginx не собирался с LibreSSL 2.8.0.
  5062. </para>
  5063. <para lang="en">
  5064. nginx could not be built with LibreSSL 2.8.0.
  5065. </para>
  5066. </change>

  5067. </changes>


  5068. <changes ver="1.15.2" date="2018-07-24">

  5069. <change type="feature">
  5070. <para lang="ru">
  5071. переменная $ssl_preread_protocol
  5072. в модуле ngx_stream_ssl_preread_module.
  5073. </para>
  5074. <para lang="en">
  5075. the $ssl_preread_protocol variable
  5076. in the ngx_stream_ssl_preread_module.
  5077. </para>
  5078. </change>

  5079. <change type="feature">
  5080. <para lang="ru">
  5081. теперь при использовании директивы reset_timedout_connection
  5082. nginx сбрасывает соединения, закрываемые с кодом 444.
  5083. </para>
  5084. <para lang="en">
  5085. now when using the "reset_timedout_connection" directive
  5086. nginx will reset connections being closed with the 444 code.
  5087. </para>
  5088. </change>

  5089. <change type="change">
  5090. <para lang="ru">
  5091. уровень логгирования ошибок SSL "http request", "https proxy request",
  5092. "unsupported protocol" и "version too low"
  5093. понижен с уровня crit до info.
  5094. </para>
  5095. <para lang="en">
  5096. a logging level of the "http request", "https proxy request",
  5097. "unsupported protocol", and "version too low" SSL errors
  5098. has been lowered from "crit" to "info".
  5099. </para>
  5100. </change>

  5101. <change type="bugfix">
  5102. <para lang="ru">
  5103. запросы к DNS-серверу не отправлялись повторно,
  5104. если при первой попытке отправки происходила ошибка.
  5105. </para>
  5106. <para lang="en">
  5107. DNS requests were not resent
  5108. if initial sending of a request failed.
  5109. </para>
  5110. </change>

  5111. <change type="bugfix">
  5112. <para lang="ru">
  5113. параметр reuseport директивы listen игнорировался,
  5114. если количество рабочих процессов было задано после директивы listen.
  5115. </para>
  5116. <para lang="en">
  5117. the "reuseport" parameter of the "listen" directive was ignored
  5118. if the number of worker processes was specified after the "listen" directive.
  5119. </para>
  5120. </change>

  5121. <change type="bugfix">
  5122. <para lang="ru">
  5123. при использовании OpenSSL 1.1.0 и новее
  5124. директиву ssl_prefer_server_ciphers нельзя было выключить
  5125. в виртуальном сервере, если она была включена в сервере по умолчанию.
  5126. </para>
  5127. <para lang="en">
  5128. when using OpenSSL 1.1.0 or newer
  5129. it was not possible to switch off "ssl_prefer_server_ciphers" in
  5130. a virtual server if it was switched on in the default server.
  5131. </para>
  5132. </change>

  5133. <change type="bugfix">
  5134. <para lang="ru">
  5135. повторное использование SSL-сессий к бэкендам
  5136. не работало с протоколом TLS 1.3.
  5137. </para>
  5138. <para lang="en">
  5139. SSL session reuse with upstream servers
  5140. did not work with the TLS 1.3 protocol.
  5141. </para>
  5142. </change>

  5143. </changes>


  5144. <changes ver="1.15.1" date="2018-07-03">

  5145. <change type="feature">
  5146. <para lang="ru">
  5147. директива random в блоке upstream.
  5148. </para>
  5149. <para lang="en">
  5150. the "random" directive inside the "upstream" block.
  5151. </para>
  5152. </change>

  5153. <change type="feature">
  5154. <para lang="ru">
  5155. улучшена производительность при использовании директив hash и ip_hash
  5156. совместно с директивой zone.
  5157. </para>
  5158. <para lang="en">
  5159. improved performance when using the "hash" and "ip_hash" directives
  5160. with the "zone" directive.
  5161. </para>
  5162. </change>

  5163. <change type="feature">
  5164. <para lang="ru">
  5165. параметр reuseport директивы listen
  5166. теперь использует SO_REUSEPORT_LB на FreeBSD 12.
  5167. </para>
  5168. <para lang="en">
  5169. the "reuseport" parameter of the "listen" directive
  5170. now uses SO_REUSEPORT_LB on FreeBSD 12.
  5171. </para>
  5172. </change>

  5173. <change type="bugfix">
  5174. <para lang="ru">
  5175. HTTP/2 server push не работал, если SSL терминировался прокси-сервером
  5176. перед nginx'ом.
  5177. </para>
  5178. <para lang="en">
  5179. HTTP/2 server push did not work if SSL was terminated by a proxy server
  5180. in front of nginx.
  5181. </para>
  5182. </change>

  5183. <change type="bugfix">
  5184. <para lang="ru">
  5185. директива tcp_nopush всегда использовалась для соединений к бэкендам.
  5186. </para>
  5187. <para lang="en">
  5188. the "tcp_nopush" directive was always used on backend connections.
  5189. </para>
  5190. </change>

  5191. <change type="bugfix">
  5192. <para lang="ru">
  5193. при отправке сохранённого на диск тела запроса на gRPC-бэкенд
  5194. могли возникать ошибки.
  5195. </para>
  5196. <para lang="en">
  5197. sending a disk-buffered request body to a gRPC backend
  5198. might fail.
  5199. </para>
  5200. </change>

  5201. </changes>


  5202. <changes ver="1.15.0" date="2018-06-05">

  5203. <change type="change">
  5204. <para lang="ru">
  5205. директива "ssl" теперь считается устаревшей;
  5206. вместо неё следует использовать параметр ssl директивы listen.
  5207. </para>
  5208. <para lang="en">
  5209. the "ssl" directive is deprecated;
  5210. the "ssl" parameter of the "listen" directive should be used instead.
  5211. </para>
  5212. </change>

  5213. <change type="change">
  5214. <para lang="ru">
  5215. теперь при использовании директивы listen с параметром ssl
  5216. nginx определяет отсутствие SSL-сертификатов при тестировании конфигурации.
  5217. </para>
  5218. <para lang="en">
  5219. now nginx detects missing SSL certificates during configuration testing
  5220. when using the "ssl" parameter of the "listen" directive.
  5221. </para>
  5222. </change>

  5223. <change type="feature">
  5224. <para lang="ru">
  5225. теперь модуль stream умеет обрабатывать
  5226. несколько входящих UDP-пакетов от клиента в рамках одной сессии.
  5227. </para>
  5228. <para lang="en">
  5229. now the stream module can handle
  5230. multiple incoming UDP datagrams from a client within a single session.
  5231. </para>
  5232. </change>

  5233. <change type="bugfix">
  5234. <para lang="ru">
  5235. в директиве proxy_cache_valid
  5236. можно было указать некорректный код ответа.
  5237. </para>
  5238. <para lang="en">
  5239. it was possible to specify an incorrect response code
  5240. in the "proxy_cache_valid" directive.
  5241. </para>
  5242. </change>

  5243. <change type="bugfix">
  5244. <para lang="ru">
  5245. nginx не собирался gcc 8.1.
  5246. </para>
  5247. <para lang="en">
  5248. nginx could not be built by gcc 8.1.
  5249. </para>
  5250. </change>

  5251. <change type="bugfix">
  5252. <para lang="ru">
  5253. логгирование в syslog останавливалось при изменении локального IP-адреса.
  5254. </para>
  5255. <para lang="en">
  5256. logging to syslog stopped on local IP address changes.
  5257. </para>
  5258. </change>

  5259. <change type="bugfix">
  5260. <para lang="ru">
  5261. nginx не собирался компилятором clang, если был установлен CUDA SDK;
  5262. ошибка появилась в 1.13.8.
  5263. </para>
  5264. <para lang="en">
  5265. nginx could not be built by clang with CUDA SDK installed;
  5266. the bug had appeared in 1.13.8.
  5267. </para>
  5268. </change>

  5269. <change type="bugfix">
  5270. <para lang="ru">
  5271. при использовании unix domain listen-сокетов на FreeBSD
  5272. в процессе обновления исполняемого файла
  5273. в логе могли появляться сообщения "getsockopt(TCP_FASTOPEN) ... failed".
  5274. </para>
  5275. <para lang="en">
  5276. "getsockopt(TCP_FASTOPEN) ... failed" messages might appear in logs
  5277. during binary upgrade
  5278. when using unix domain listen sockets on FreeBSD.
  5279. </para>
  5280. </change>

  5281. <change type="bugfix">
  5282. <para lang="ru">
  5283. nginx не собирался на Fedora 28 Linux.
  5284. </para>
  5285. <para lang="en">
  5286. nginx could not be built on Fedora 28 Linux.
  5287. </para>
  5288. </change>

  5289. <change type="bugfix">
  5290. <para lang="ru">
  5291. при использовании директивы limit_req
  5292. заданная скорость обработки запросов могла не соблюдаться.
  5293. </para>
  5294. <para lang="en">
  5295. request processing rate might exceed configured rate
  5296. when using the "limit_req" directive.
  5297. </para>
  5298. </change>

  5299. <change type="bugfix">
  5300. <para lang="ru">
  5301. в обработке адресов клиентов при использовании unix domain listen-сокетов
  5302. для работы с датаграммами на Linux.
  5303. </para>
  5304. <para lang="en">
  5305. in handling of client addresses when using unix domain listen sockets
  5306. to work with datagrams on Linux.
  5307. </para>
  5308. </change>

  5309. <change type="bugfix">
  5310. <para lang="ru">
  5311. в обработке ошибок выделения памяти.
  5312. </para>
  5313. <para lang="en">
  5314. in memory allocation error handling.
  5315. </para>
  5316. </change>

  5317. </changes>


  5318. <changes ver="1.13.12" date="2018-04-10">

  5319. <change type="bugfix">
  5320. <para lang="ru">
  5321. при возврате большого ответа
  5322. соединения с gRPC-бэкендами могли неожиданно закрываться.
  5323. </para>
  5324. <para lang="en">
  5325. connections with gRPC backends might be closed unexpectedly
  5326. when returning a large response.
  5327. </para>
  5328. </change>

  5329. </changes>


  5330. <changes ver="1.13.11" date="2018-04-03">

  5331. <change type="feature">
  5332. <para lang="ru">
  5333. параметр proxy_protocol директивы listen
  5334. теперь поддерживает протокол PROXY версии 2.
  5335. </para>
  5336. <para lang="en">
  5337. the "proxy_protocol" parameter of the "listen" directive
  5338. now supports the PROXY protocol version 2.
  5339. </para>
  5340. </change>

  5341. <change type="bugfix">
  5342. <para lang="ru">
  5343. nginx не собирался с OpenSSL 1.1.1 статически на Linux.
  5344. </para>
  5345. <para lang="en">
  5346. nginx could not be built with OpenSSL 1.1.1 statically on Linux.
  5347. </para>
  5348. </change>

  5349. <change type="bugfix">
  5350. <para lang="ru">
  5351. в параметрах http_404, http_500 и им подобных
  5352. директивы proxy_next_upstream.
  5353. </para>
  5354. <para lang="en">
  5355. in the "http_404", "http_500", etc. parameters
  5356. of the "proxy_next_upstream" directive.
  5357. </para>
  5358. </change>

  5359. </changes>


  5360. <changes ver="1.13.10" date="2018-03-20">

  5361. <change type="feature">
  5362. <para lang="ru">
  5363. теперь параметр set в SSI-директиве include
  5364. позволяет сохранять в переменную любые ответы;
  5365. максимальный размер ответа задаётся директивой subrequest_output_buffer_size.
  5366. </para>
  5367. <para lang="en">
  5368. the "set" parameter of the "include" SSI directive now allows
  5369. writing arbitrary responses to a variable;
  5370. the "subrequest_output_buffer_size" directive defines maximum response size.
  5371. </para>
  5372. </change>

  5373. <change type="feature">
  5374. <para lang="ru">
  5375. теперь nginx использует вызов clock_gettime(CLOCK_MONOTONIC), если он доступен,
  5376. что позволяет избежать некорректного срабатывания таймаутов
  5377. при изменениях системного времени.
  5378. </para>
  5379. <para lang="en">
  5380. now nginx uses clock_gettime(CLOCK_MONOTONIC) if available,
  5381. to avoid timeouts being incorrectly triggered
  5382. on system time changes.
  5383. </para>
  5384. </change>

  5385. <change type="feature">
  5386. <para lang="ru">
  5387. параметр "escape=none" директивы log_format.<br/>
  5388. Спасибо Johannes Baiter и Calin Don.
  5389. </para>
  5390. <para lang="en">
  5391. the "escape=none" parameter of the "log_format" directive.<br/>
  5392. Thanks to Johannes Baiter and Calin Don.
  5393. </para>
  5394. </change>

  5395. <change type="feature">
  5396. <para lang="ru">
  5397. переменная $ssl_preread_alpn_protocols
  5398. в модуле ngx_stream_ssl_preread_module.
  5399. </para>
  5400. <para lang="en">
  5401. the $ssl_preread_alpn_protocols variable
  5402. in the ngx_stream_ssl_preread_module.
  5403. </para>
  5404. </change>

  5405. <change type="feature">
  5406. <para lang="ru">
  5407. модуль ngx_http_grpc_module.
  5408. </para>
  5409. <para lang="en">
  5410. the ngx_http_grpc_module.
  5411. </para>
  5412. </change>

  5413. <change type="bugfix">
  5414. <para lang="ru">
  5415. в обработке ошибок выделения памяти в директиве geo.
  5416. </para>
  5417. <para lang="en">
  5418. in memory allocation error handling in the "geo" directive.
  5419. </para>
  5420. </change>

  5421. <change type="bugfix">
  5422. <para lang="ru">
  5423. при использовании переменных в директиве auth_basic_user_file
  5424. в лог мог выводиться символ '\0'.<br/>
  5425. Спасибо Вадиму Филимонову.
  5426. </para>
  5427. <para lang="en">
  5428. when using variables in the "auth_basic_user_file" directive
  5429. a null character might appear in logs.<br/>
  5430. Thanks to Vadim Filimonov.
  5431. </para>
  5432. </change>

  5433. </changes>


  5434. <changes ver="1.13.9" date="2018-02-20">

  5435. <change type="feature">
  5436. <para lang="ru">
  5437. поддержка HTTP/2 server push;
  5438. директивы http2_push и http2_push_preload.
  5439. </para>
  5440. <para lang="en">
  5441. HTTP/2 server push support;
  5442. the "http2_push" and "http2_push_preload" directives.
  5443. </para>
  5444. </change>

  5445. <change type="bugfix">
  5446. <para lang="ru">
  5447. при использовании кэша
  5448. в логах могли появляться сообщения "header already sent";
  5449. ошибка появилась в 1.9.13.
  5450. </para>
  5451. <para lang="en">
  5452. "header already sent" alerts might appear in logs
  5453. when using cache;
  5454. the bug had appeared in 1.9.13.
  5455. </para>
  5456. </change>

  5457. <change type="bugfix">
  5458. <para lang="ru">
  5459. при использовании директивы ssl_verify_client
  5460. в рабочем процессе мог произойти segmentation fault,
  5461. если в виртуальном сервере не был указан SSL-сертификат.
  5462. </para>
  5463. <para lang="en">
  5464. a segmentation fault might occur in a worker process
  5465. if the "ssl_verify_client" directive was used
  5466. and no SSL certificate was specified in a virtual server.
  5467. </para>
  5468. </change>

  5469. <change type="bugfix">
  5470. <para lang="ru">
  5471. в модуле ngx_http_v2_module.
  5472. </para>
  5473. <para lang="en">
  5474. in the ngx_http_v2_module.
  5475. </para>
  5476. </change>

  5477. <change type="bugfix">
  5478. <para lang="ru">
  5479. в модуле ngx_http_dav_module.
  5480. </para>
  5481. <para lang="en">
  5482. in the ngx_http_dav_module.
  5483. </para>
  5484. </change>

  5485. </changes>


  5486. <changes ver="1.13.8" date="2017-12-26">

  5487. <change type="feature">
  5488. <para lang="ru">
  5489. теперь при использовании параметра transparent директив proxy_bind,
  5490. fastcgi_bind, memcached_bind, scgi_bind и uwsgi_bind
  5491. nginx автоматически сохраняет capability CAP_NET_RAW в рабочих процессах.
  5492. </para>
  5493. <para lang="en">
  5494. now nginx automatically preserves the CAP_NET_RAW capability in worker processes
  5495. when using the "transparent" parameter of the "proxy_bind",
  5496. "fastcgi_bind", "memcached_bind", "scgi_bind", and "uwsgi_bind" directives.
  5497. </para>
  5498. </change>

  5499. <change type="feature">
  5500. <para lang="ru">
  5501. улучшения в определении размера строки кэша процессора.<br/>
  5502. Спасибо Debayan Ghosh.
  5503. </para>
  5504. <para lang="en">
  5505. improved CPU cache line size detection.<br/>
  5506. Thanks to Debayan Ghosh.
  5507. </para>
  5508. </change>

  5509. <change type="feature">
  5510. <para lang="ru">
  5511. новые директивы в скриптах подсветки синтаксиса для vim.<br/>
  5512. Спасибо Геннадию Махомеду.
  5513. </para>
  5514. <para lang="en">
  5515. new directives in vim syntax highlighting scripts.<br/>
  5516. Thanks to Gena Makhomed.
  5517. </para>
  5518. </change>

  5519. <change type="bugfix">
  5520. <para lang="ru">
  5521. процедура обновления исполняемого файла не работала,
  5522. если после завершения родительского процесса
  5523. новым родительским процессом nginx'а становился процесс с PID, отличным от 1.
  5524. </para>
  5525. <para lang="en">
  5526. binary upgrade refused to work
  5527. if nginx was re-parented to a process with PID different from 1
  5528. after its parent process has finished.
  5529. </para>
  5530. </change>

  5531. <change type="bugfix">
  5532. <para lang="ru">
  5533. модуль ngx_http_autoindex_module неправильно обрабатывал запросы с телом.
  5534. </para>
  5535. <para lang="en">
  5536. the ngx_http_autoindex_module incorrectly handled requests with bodies.
  5537. </para>
  5538. </change>

  5539. <change type="bugfix">
  5540. <para lang="ru">
  5541. в директиве proxy_limit_rate при использовании с директивой keepalive.
  5542. </para>
  5543. <para lang="en">
  5544. in the "proxy_limit_rate" directive when used with the "keepalive" directive.
  5545. </para>
  5546. </change>

  5547. <change type="bugfix">
  5548. <para lang="ru">
  5549. при использовании "proxy_buffering off" часть ответа могла буферизироваться,
  5550. если клиентское соединение использовало SSL.<br/>
  5551. Спасибо Patryk Lesiewicz.
  5552. </para>
  5553. <para lang="en">
  5554. some parts of a response might be buffered when using "proxy_buffering off"
  5555. if the client connection used SSL.<br/>
  5556. Thanks to Patryk Lesiewicz.
  5557. </para>
  5558. </change>

  5559. <change type="bugfix">
  5560. <para lang="ru">
  5561. в директиве proxy_cache_background_update.
  5562. </para>
  5563. <para lang="en">
  5564. in the "proxy_cache_background_update" directive.
  5565. </para>
  5566. </change>

  5567. <change type="bugfix">
  5568. <para lang="ru">
  5569. переменную вида "${name}" с именем в фигурных скобках
  5570. нельзя было использовать в начале параметра
  5571. не заключив весь параметр в кавычки.
  5572. </para>
  5573. <para lang="en">
  5574. it was not possible to start a parameter
  5575. with a variable in the "${name}" form with the name in curly brackets
  5576. without enclosing the parameter into single or double quotes.
  5577. </para>
  5578. </change>

  5579. </changes>


  5580. <changes ver="1.13.7" date="2017-11-21">

  5581. <change type="bugfix">
  5582. <para lang="ru">
  5583. в переменной $upstream_status.
  5584. </para>
  5585. <para lang="en">
  5586. in the $upstream_status variable.
  5587. </para>
  5588. </change>

  5589. <change type="bugfix">
  5590. <para lang="ru">
  5591. в рабочем процессе мог произойти segmentation fault,
  5592. если бэкенд возвращал ответ "101 Switching Protocols" на подзапрос.
  5593. </para>
  5594. <para lang="en">
  5595. a segmentation fault might occur in a worker process
  5596. if a backend returned a "101 Switching Protocols" response to a subrequest.
  5597. </para>
  5598. </change>

  5599. <change type="bugfix">
  5600. <para lang="ru">
  5601. если при переконфигурации изменялся размер зоны разделяемой памяти
  5602. и переконфигурация завершалась неудачно,
  5603. то в главном процессе происходил segmentation fault.
  5604. </para>
  5605. <para lang="en">
  5606. a segmentation fault occurred in a master process
  5607. if a shared memory zone size was changed during a reconfiguration
  5608. and the reconfiguration failed.
  5609. </para>
  5610. </change>

  5611. <change type="bugfix">
  5612. <para lang="ru">
  5613. в модуле ngx_http_fastcgi_module.
  5614. </para>
  5615. <para lang="en">
  5616. in the ngx_http_fastcgi_module.
  5617. </para>
  5618. </change>

  5619. <change type="bugfix">
  5620. <para lang="ru">
  5621. nginx возвращал ошибку 500,
  5622. если в директиве xslt_stylesheet
  5623. были заданы параметры без использования переменных.
  5624. </para>
  5625. <para lang="en">
  5626. nginx returned the 500 error
  5627. if parameters without variables were specified
  5628. in the "xslt_stylesheet" directive.
  5629. </para>
  5630. </change>

  5631. <change type="workaround">
  5632. <para lang="ru">
  5633. при использовании варианта библиотеки zlib от Intel
  5634. в лог писались сообщения "gzip filter failed to use preallocated memory".
  5635. </para>
  5636. <para lang="en">
  5637. "gzip filter failed to use preallocated memory" alerts appeared in logs
  5638. when using a zlib library variant from Intel.
  5639. </para>
  5640. </change>

  5641. <change type="bugfix">
  5642. <para lang="ru">
  5643. директива worker_shutdown_timeout не работала
  5644. при использовании почтового прокси-сервера
  5645. и при проксировании WebSocket-соединений.
  5646. </para>
  5647. <para lang="en">
  5648. the "worker_shutdown_timeout" directive did not work
  5649. when using mail proxy and when proxying WebSocket connections.
  5650. </para>
  5651. </change>

  5652. </changes>


  5653. <changes ver="1.13.6" date="2017-10-10">

  5654. <change type="bugfix">
  5655. <para lang="ru">
  5656. при использовании директивы ssl_preread
  5657. в модуле stream не работало переключение на следующий бэкенд.
  5658. </para>
  5659. <para lang="en">
  5660. switching to the next upstream server in the stream module did not work
  5661. when using the "ssl_preread" directive.
  5662. </para>
  5663. </change>

  5664. <change type="bugfix">
  5665. <para lang="ru">
  5666. в модуле ngx_http_v2_module.<br/>
  5667. Спасибо Piotr Sikora.
  5668. </para>
  5669. <para lang="en">
  5670. in the ngx_http_v2_module.<br/>
  5671. Thanks to Piotr Sikora.
  5672. </para>
  5673. </change>

  5674. <change type="bugfix">
  5675. <para lang="ru">
  5676. nginx не поддерживал даты после 2038 года
  5677. на 32-битных платформах с 64-битным time_t.
  5678. </para>
  5679. <para lang="en">
  5680. nginx did not support dates after the year 2038
  5681. on 32-bit platforms with 64-bit time_t.
  5682. </para>
  5683. </change>

  5684. <change type="bugfix">
  5685. <para lang="ru">
  5686. в обработке дат до 1970 года и после 10000 года.
  5687. </para>
  5688. <para lang="en">
  5689. in handling of dates prior to the year 1970 and after the year 10000.
  5690. </para>
  5691. </change>

  5692. <change type="bugfix">
  5693. <para lang="ru">
  5694. в модуле stream таймауты ожидания UDP-пакетов от бэкендов
  5695. не логгировались или логгировались на уровне info вместо error.
  5696. </para>
  5697. <para lang="en">
  5698. in the stream module timeouts waiting for UDP datagrams from upstream servers
  5699. were not logged or logged at the "info" level instead of "error".
  5700. </para>
  5701. </change>

  5702. <change type="bugfix">
  5703. <para lang="ru">
  5704. при использовании HTTP/2 nginx мог вернуть ошибку 400,
  5705. не указав в логе причину.
  5706. </para>
  5707. <para lang="en">
  5708. when using HTTP/2 nginx might return the 400 response
  5709. without logging the reason.
  5710. </para>
  5711. </change>

  5712. <change type="bugfix">
  5713. <para lang="ru">
  5714. в обработке повреждённых файлов кэша.
  5715. </para>
  5716. <para lang="en">
  5717. in processing of corrupted cache files.
  5718. </para>
  5719. </change>

  5720. <change type="bugfix">
  5721. <para lang="ru">
  5722. при кэшировании ошибок, перехваченных error_page,
  5723. не учитывались заголовки управления кэшированием.
  5724. </para>
  5725. <para lang="en">
  5726. cache control headers were ignored
  5727. when caching errors intercepted by error_page.
  5728. </para>
  5729. </change>

  5730. <change type="bugfix">
  5731. <para lang="ru">
  5732. при использовании HTTP/2 тело запроса могло быть повреждено.
  5733. </para>
  5734. <para lang="en">
  5735. when using HTTP/2 client request body might be corrupted.
  5736. </para>
  5737. </change>

  5738. <change type="bugfix">
  5739. <para lang="ru">
  5740. в обработке адресов клиентов при использовании unix domain сокетов.
  5741. </para>
  5742. <para lang="en">
  5743. in handling of client addresses when using unix domain sockets.
  5744. </para>
  5745. </change>

  5746. <change type="bugfix">
  5747. <para lang="ru">
  5748. при использовании директивы "hash ... consistent" в блоке upstream
  5749. nginx нагружал процессор, если использовались большие веса
  5750. и все или почти все бэкенды были недоступны.
  5751. </para>
  5752. <para lang="en">
  5753. nginx hogged CPU
  5754. when using the "hash ... consistent" directive in the upstream block
  5755. if large weights were used and all or most of the servers were unavailable.
  5756. </para>
  5757. </change>

  5758. </changes>


  5759. <changes ver="1.13.5" date="2017-09-05">

  5760. <change type="feature">
  5761. <para lang="ru">
  5762. переменная $ssl_client_escaped_cert.
  5763. </para>
  5764. <para lang="en">
  5765. the $ssl_client_escaped_cert variable.
  5766. </para>
  5767. </change>

  5768. <change type="bugfix">
  5769. <para lang="ru">
  5770. директива ssl_session_ticket_key и параметр include директивы geo
  5771. не работали на Windows.
  5772. </para>
  5773. <para lang="en">
  5774. the "ssl_session_ticket_key" directive and
  5775. the "include" parameter of the "geo" directive did not work on Windows.
  5776. </para>
  5777. </change>

  5778. <change type="bugfix">
  5779. <para lang="ru">
  5780. на 32-битных платформах
  5781. при запросе более 4 гигабайт с помощью нескольких диапазонов
  5782. возвращалась некорректная длина ответа.
  5783. </para>
  5784. <para lang="en">
  5785. incorrect response length was returned
  5786. on 32-bit platforms when requesting more than 4 gigabytes
  5787. with multiple ranges.
  5788. </para>
  5789. </change>

  5790. <change type="bugfix">
  5791. <para lang="ru">
  5792. директива "expires modified" и
  5793. обработка строки If-Range заголовка запроса
  5794. не учитывали время последнего изменения ответа,
  5795. если использовалось проксирование без кэширования.
  5796. </para>
  5797. <para lang="en">
  5798. the "expires modified" directive and
  5799. processing of the "If-Range" request header line
  5800. did not use the response last modification time
  5801. if proxying without caching was used.
  5802. </para>
  5803. </change>

  5804. </changes>


  5805. <changes ver="1.13.4" date="2017-08-08">

  5806. <change type="feature">
  5807. <para lang="ru">
  5808. модуль ngx_http_mirror_module.
  5809. </para>
  5810. <para lang="en">
  5811. the ngx_http_mirror_module.
  5812. </para>
  5813. </change>

  5814. <change type="bugfix">
  5815. <para lang="ru">
  5816. клиентские соединения могли сбрасываться при тестировании конфигурации,
  5817. если использовался параметр reuseport директивы listen на Linux.
  5818. </para>
  5819. <para lang="en">
  5820. client connections might be dropped during configuration testing
  5821. when using the "reuseport" parameter of the "listen" directive on Linux.
  5822. </para>
  5823. </change>

  5824. <change type="bugfix">
  5825. <para lang="ru">
  5826. тело запроса могло быть недоступно в подзапросах,
  5827. если оно было сохранено в файл и использовалось проксирование.
  5828. </para>
  5829. <para lang="en">
  5830. request body might not be available in subrequests
  5831. if it was saved to a file and proxying was used.
  5832. </para>
  5833. </change>

  5834. <change type="bugfix">
  5835. <para lang="ru">
  5836. очистка кэша по max_size не работала на Windows.
  5837. </para>
  5838. <para lang="en">
  5839. cleaning cache based on the "max_size" parameter did not work on Windows.
  5840. </para>
  5841. </change>

  5842. <change type="bugfix">
  5843. <para lang="ru">
  5844. любое выделение разделяемой памяти на Windows требовало 4096 байт памяти.
  5845. </para>
  5846. <para lang="en">
  5847. any shared memory allocation required 4096 bytes on Windows.
  5848. </para>
  5849. </change>

  5850. <change type="bugfix">
  5851. <para lang="ru">
  5852. при использовании директивы zone в блоке upstream на Windows
  5853. рабочий процесс мог завершаться аварийно.
  5854. </para>
  5855. <para lang="en">
  5856. nginx worker might be terminated abnormally
  5857. when using the "zone" directive inside the "upstream" block on Windows.
  5858. </para>
  5859. </change>

  5860. </changes>


  5861. <changes ver="1.13.3" date="2017-07-11">

  5862. <change type="security">
  5863. <para lang="ru">
  5864. специально созданный запрос мог вызвать целочисленное переполнение
  5865. в range-фильтре и последующую некорректную обработку запрошенных диапазонов,
  5866. что потенциально могло привести к утечке конфиденциальной информации
  5867. (CVE-2017-7529).
  5868. </para>
  5869. <para lang="en">
  5870. a specially crafted request might result in an integer overflow
  5871. and incorrect processing of ranges in the range filter,
  5872. potentially resulting in sensitive information leak
  5873. (CVE-2017-7529).
  5874. </para>
  5875. </change>

  5876. </changes>


  5877. <changes ver="1.13.2" date="2017-06-27">

  5878. <change type="change">
  5879. <para lang="ru">
  5880. теперь при запросе диапазона, начинающегося с 0, из пустого файла
  5881. nginx возвращает ответ 200 вместо 416.
  5882. </para>
  5883. <para lang="en">
  5884. nginx now returns 200 instead of 416
  5885. when a range starting with 0 is requested from an empty file.
  5886. </para>
  5887. </change>

  5888. <change type="feature">
  5889. <para lang="ru">
  5890. директива add_trailer.<br/>
  5891. Спасибо Piotr Sikora.
  5892. </para>
  5893. <para lang="en">
  5894. the "add_trailer" directive.<br/>
  5895. Thanks to Piotr Sikora.
  5896. </para>
  5897. </change>

  5898. <change type="bugfix">
  5899. <para lang="ru">
  5900. nginx не собирался под Cygwin и NetBSD;
  5901. ошибка появилась в 1.13.0.
  5902. </para>
  5903. <para lang="en">
  5904. nginx could not be built on Cygwin and NetBSD;
  5905. the bug had appeared in 1.13.0.
  5906. </para>
  5907. </change>

  5908. <change type="bugfix">
  5909. <para lang="ru">
  5910. nginx не собирался под MSYS2 / MinGW 64-bit.<br/>
  5911. Спасибо Orgad Shaneh.
  5912. </para>
  5913. <para lang="en">
  5914. nginx could not be built under MSYS2 / MinGW 64-bit.<br/>
  5915. Thanks to Orgad Shaneh.
  5916. </para>
  5917. </change>

  5918. <change type="bugfix">
  5919. <para lang="ru">
  5920. при использовании SSI с большим количеством подзапросов
  5921. и proxy_pass с переменными
  5922. в рабочем процессе мог произойти segmentation fault.
  5923. </para>
  5924. <para lang="en">
  5925. a segmentation fault might occur in a worker process
  5926. when using SSI with many includes
  5927. and proxy_pass with variables.
  5928. </para>
  5929. </change>

  5930. <change type="bugfix">
  5931. <para lang="ru">
  5932. в модуле ngx_http_v2_module.<br/>
  5933. Спасибо Piotr Sikora.
  5934. </para>
  5935. <para lang="en">
  5936. in the ngx_http_v2_module.<br/>
  5937. Thanks to Piotr Sikora.
  5938. </para>
  5939. </change>

  5940. </changes>


  5941. <changes ver="1.13.1" date="2017-05-30">

  5942. <change type="feature">
  5943. <para lang="ru">
  5944. теперь в качестве параметра директивы set_real_ip_from
  5945. можно указывать имя хоста.
  5946. </para>
  5947. <para lang="en">
  5948. now a hostname can be used
  5949. as the "set_real_ip_from" directive parameter.
  5950. </para>
  5951. </change>

  5952. <change type="feature">
  5953. <para lang="ru">
  5954. улучшения в скриптах подсветки синтаксиса для vim.
  5955. </para>
  5956. <para lang="en">
  5957. vim syntax highlighting scripts improvements.
  5958. </para>
  5959. </change>

  5960. <change type="feature">
  5961. <para lang="ru">
  5962. директива worker_cpu_affinity теперь работает на DragonFly BSD.<br/>
  5963. Спасибо Sepherosa Ziehau.
  5964. </para>
  5965. <para lang="en">
  5966. the "worker_cpu_affinity" directive now works on DragonFly BSD.<br/>
  5967. Thanks to Sepherosa Ziehau.
  5968. </para>
  5969. </change>

  5970. <change type="bugfix">
  5971. <para lang="ru">
  5972. SSL renegotiation в соединениях к бэкендам
  5973. не работал при использовании OpenSSL до 1.1.0.
  5974. </para>
  5975. <para lang="en">
  5976. SSL renegotiation on backend connections
  5977. did not work when using OpenSSL before 1.1.0.
  5978. </para>
  5979. </change>

  5980. <change type="workaround">
  5981. <para lang="ru">
  5982. nginx не собирался с Oracle Developer Studio 12.5.
  5983. </para>
  5984. <para lang="en">
  5985. nginx could not be built with Oracle Developer Studio 12.5.
  5986. </para>
  5987. </change>

  5988. <change type="workaround">
  5989. <para lang="ru">
  5990. теперь cache manager пропускает заблокированные записи
  5991. при очистке кэша по max_size.
  5992. </para>
  5993. <para lang="en">
  5994. now cache manager ignores long locked cache entries
  5995. when cleaning cache based on the "max_size" parameter.
  5996. </para>
  5997. </change>

  5998. <change type="bugfix">
  5999. <para lang="ru">
  6000. клиентские SSL-соединения сразу закрывались, если использовался
  6001. отложенный accept и параметр proxy_protocol директивы listen.
  6002. </para>
  6003. <para lang="en">
  6004. client SSL connections were immediately closed if deferred accept
  6005. and the "proxy_protocol" parameter of the "listen" directive were used.
  6006. </para>
  6007. </change>

  6008. <change type="bugfix">
  6009. <para lang="ru">
  6010. в директиве proxy_cache_background_update.
  6011. </para>
  6012. <para lang="en">
  6013. in the "proxy_cache_background_update" directive.
  6014. </para>
  6015. </change>

  6016. <change type="workaround">
  6017. <para lang="ru">
  6018. теперь директива tcp_nodelay
  6019. устанавливает опцию TCP_NODELAY перед SSL handshake.
  6020. </para>
  6021. <para lang="en">
  6022. now the "tcp_nodelay" directive
  6023. sets the TCP_NODELAY option before an SSL handshake.
  6024. </para>
  6025. </change>

  6026. </changes>


  6027. <changes ver="1.13.0" date="2017-04-25">

  6028. <change type="change">
  6029. <para lang="ru">
  6030. теперь SSL renegotiation допускается в соединениях к бэкендам.
  6031. </para>
  6032. <para lang="en">
  6033. SSL renegotiation is now allowed on backend connections.
  6034. </para>
  6035. </change>

  6036. <change type="feature">
  6037. <para lang="ru">
  6038. параметры rcvbuf и sndbuf директив listen
  6039. в почтовом прокси-сервере и модуле stream.
  6040. </para>
  6041. <para lang="en">
  6042. the "rcvbuf" and "sndbuf" parameters of the "listen" directives
  6043. of the mail proxy and stream modules.
  6044. </para>
  6045. </change>

  6046. <change type="feature">
  6047. <para lang="ru">
  6048. директивы return и error_page теперь могут использоваться для возврата
  6049. перенаправлений с кодом 308.<br/>
  6050. Спасибо Simon Leblanc.
  6051. </para>
  6052. <para lang="en">
  6053. the "return" and "error_page" directives can now be used to return 308
  6054. redirections.<br/>
  6055. Thanks to Simon Leblanc.
  6056. </para>
  6057. </change>

  6058. <change type="feature">
  6059. <para lang="ru">
  6060. параметр TLSv1.3 в директиве ssl_protocols.
  6061. </para>
  6062. <para lang="en">
  6063. the "TLSv1.3" parameter of the "ssl_protocols" directive.
  6064. </para>
  6065. </change>

  6066. <change type="feature">
  6067. <para lang="ru">
  6068. при логгировании сигналов теперь указывается PID отправившего сигнал процесса.
  6069. </para>
  6070. <para lang="en">
  6071. when logging signals nginx now logs PID of the process which sent the signal.
  6072. </para>
  6073. </change>

  6074. <change type="bugfix">
  6075. <para lang="ru">
  6076. в обработке ошибок выделения памяти.
  6077. </para>
  6078. <para lang="en">
  6079. in memory allocation error handling.
  6080. </para>
  6081. </change>

  6082. <change type="bugfix">
  6083. <para lang="ru">
  6084. если сервер в модуле stream слушал на wildcard-адресе,
  6085. исходящий адрес ответного UDP-пакета
  6086. мог отличаться от адреса назначения исходного пакета.
  6087. </para>
  6088. <para lang="en">
  6089. if a server in the stream module listened on a wildcard address,
  6090. the source address of a response UDP datagram could differ
  6091. from the original datagram destination address.
  6092. </para>
  6093. </change>

  6094. </changes>


  6095. <changes ver="1.11.13" date="2017-04-04">

  6096. <change type="feature">
  6097. <para lang="ru">
  6098. параметр http_429 в директивах proxy_next_upstream, fastcgi_next_upstream,
  6099. scgi_next_upstream и uwsgi_next_upstream.<br/>
  6100. Спасибо Piotr Sikora.
  6101. </para>
  6102. <para lang="en">
  6103. the "http_429" parameter of the "proxy_next_upstream", "fastcgi_next_upstream",
  6104. "scgi_next_upstream", and "uwsgi_next_upstream" directives.<br/>
  6105. Thanks to Piotr Sikora.
  6106. </para>
  6107. </change>

  6108. <change type="bugfix">
  6109. <para lang="ru">
  6110. в обработке ошибок выделения памяти.
  6111. </para>
  6112. <para lang="en">
  6113. in memory allocation error handling.
  6114. </para>
  6115. </change>

  6116. <change type="bugfix">
  6117. <para lang="ru">
  6118. при использовании директив sendfile и timer_resolution на Linux
  6119. запросы могли зависать.
  6120. </para>
  6121. <para lang="en">
  6122. requests might hang
  6123. when using the "sendfile" and "timer_resolution" directives on Linux.
  6124. </para>
  6125. </change>

  6126. <change type="bugfix">
  6127. <para lang="ru">
  6128. при использовании с подзапросами директив sendfile и aio_write
  6129. запросы могли зависать.
  6130. </para>
  6131. <para lang="en">
  6132. requests might hang
  6133. when using the "sendfile" and "aio_write" directives with subrequests.
  6134. </para>
  6135. </change>

  6136. <change type="bugfix">
  6137. <para lang="ru">
  6138. в модуле ngx_http_v2_module.<br/>
  6139. Спасибо Piotr Sikora.
  6140. </para>
  6141. <para lang="en">
  6142. in the ngx_http_v2_module.<br/>
  6143. Thanks to Piotr Sikora.
  6144. </para>
  6145. </change>

  6146. <change type="bugfix">
  6147. <para lang="ru">
  6148. при использовании HTTP/2 в рабочем процессе мог произойти segmentation fault.
  6149. </para>
  6150. <para lang="en">
  6151. a segmentation fault might occur in a worker process when using HTTP/2.
  6152. </para>
  6153. </change>

  6154. <change type="bugfix">
  6155. <para lang="ru">
  6156. запросы могли зависать
  6157. при использовании с подзапросами директив limit_rate, sendfile_max_chunk,
  6158. limit_req или метода $r->sleep() встроенного перла.
  6159. </para>
  6160. <para lang="en">
  6161. requests might hang
  6162. when using the "limit_rate", "sendfile_max_chunk", "limit_req" directives,
  6163. or the $r->sleep() embedded perl method with subrequests.
  6164. </para>
  6165. </change>

  6166. <change type="bugfix">
  6167. <para lang="ru">
  6168. в модуле ngx_http_slice_module.
  6169. </para>
  6170. <para lang="en">
  6171. in the ngx_http_slice_module.
  6172. </para>
  6173. </change>

  6174. </changes>


  6175. <changes ver="1.11.12" date="2017-03-24">

  6176. <change type="bugfix">
  6177. <para lang="ru">
  6178. nginx мог нагружать процессор;
  6179. ошибка появилась в 1.11.11.
  6180. </para>
  6181. <para lang="en">
  6182. nginx might hog CPU;
  6183. the bug had appeared in 1.11.11.
  6184. </para>
  6185. </change>

  6186. </changes>


  6187. <changes ver="1.11.11" date="2017-03-21">

  6188. <change type="feature">
  6189. <para lang="ru">
  6190. директива worker_shutdown_timeout.
  6191. </para>
  6192. <para lang="en">
  6193. the "worker_shutdown_timeout" directive.
  6194. </para>
  6195. </change>

  6196. <change type="feature">
  6197. <para lang="ru">
  6198. улучшения в скриптах подсветки синтаксиса для vim.<br/>
  6199. Спасибо Wei-Ko Kao.
  6200. </para>
  6201. <para lang="en">
  6202. vim syntax highlighting scripts improvements.<br/>
  6203. Thanks to Wei-Ko Kao.
  6204. </para>
  6205. </change>

  6206. <change type="bugfix">
  6207. <para lang="ru">
  6208. при попытке установить переменную $limit_rate в пустую строку
  6209. в рабочем процессе мог произойти segmentation fault.
  6210. </para>
  6211. <para lang="en">
  6212. a segmentation fault might occur in a worker process
  6213. if the $limit_rate variable was set to an empty string.
  6214. </para>
  6215. </change>

  6216. <change type="bugfix">
  6217. <para lang="ru">
  6218. директивы proxy_cache_background_update, fastcgi_cache_background_update,
  6219. scgi_cache_background_update и uwsgi_cache_background_update
  6220. могли работать некорректно, если использовалась директива if.
  6221. </para>
  6222. <para lang="en">
  6223. the "proxy_cache_background_update", "fastcgi_cache_background_update",
  6224. "scgi_cache_background_update", and "uwsgi_cache_background_update" directives
  6225. might work incorrectly if the "if" directive was used.
  6226. </para>
  6227. </change>

  6228. <change type="bugfix">
  6229. <para lang="ru">
  6230. в рабочем процессе мог произойти segmentation fault,
  6231. если количество large_client_header_buffers в виртуальном сервере
  6232. отличалось от такового в сервере по умолчанию.
  6233. </para>
  6234. <para lang="en">
  6235. a segmentation fault might occur in a worker process
  6236. if number of large_client_header_buffers in a virtual server
  6237. was different from the one in the default server.
  6238. </para>
  6239. </change>

  6240. <change type="bugfix">
  6241. <para lang="ru">
  6242. в почтовом прокси-сервере.
  6243. </para>
  6244. <para lang="en">
  6245. in the mail proxy server.
  6246. </para>
  6247. </change>

  6248. </changes>


  6249. <changes ver="1.11.10" date="2017-02-14">

  6250. <change type="change">
  6251. <para lang="ru">
  6252. формат заголовка кэша был изменен,
  6253. ранее закэшированные ответы будут загружены заново.
  6254. </para>
  6255. <para lang="en">
  6256. cache header format has been changed,
  6257. previously cached responses will be invalidated.
  6258. </para>
  6259. </change>

  6260. <change type="feature">
  6261. <para lang="ru">
  6262. поддержка расширений stale-while-revalidate и stale-if-error
  6263. в строке "Cache-Control" в заголовке ответа бэкенда.
  6264. </para>
  6265. <para lang="en">
  6266. support of "stale-while-revalidate" and "stale-if-error" extensions
  6267. in the "Cache-Control" backend response header line.
  6268. </para>
  6269. </change>

  6270. <change type="feature">
  6271. <para lang="ru">
  6272. директивы proxy_cache_background_update, fastcgi_cache_background_update,
  6273. scgi_cache_background_update и uwsgi_cache_background_update.
  6274. </para>
  6275. <para lang="en">
  6276. the "proxy_cache_background_update", "fastcgi_cache_background_update",
  6277. "scgi_cache_background_update", and "uwsgi_cache_background_update" directives.
  6278. </para>
  6279. </change>

  6280. <change type="feature">
  6281. <para lang="ru">
  6282. теперь nginx может кэшировать ответы
  6283. со строкой Vary заголовка длиной до 128 символов
  6284. (вместо 42 символов в предыдущих версиях).
  6285. </para>
  6286. <para lang="en">
  6287. nginx is now able to cache responses
  6288. with the "Vary" header line up to 128 characters long
  6289. (instead of 42 characters in previous versions).
  6290. </para>
  6291. </change>

  6292. <change type="feature">
  6293. <para lang="ru">
  6294. параметр build директивы server_tokens.<br/>
  6295. Спасибо Tom Thorogood.
  6296. </para>
  6297. <para lang="en">
  6298. the "build" parameter of the "server_tokens" directive.<br/>
  6299. Thanks to Tom Thorogood.
  6300. </para>
  6301. </change>

  6302. <change type="bugfix">
  6303. <para lang="ru">
  6304. при обработке запросов со строкой "Expect: 100-continue" в заголовке запроса
  6305. в логах могли появляться сообщения "[crit] SSL_write() failed".
  6306. </para>
  6307. <para lang="en">
  6308. "[crit] SSL_write() failed" messages might appear in logs
  6309. when handling requests with the "Expect: 100-continue" request header line.
  6310. </para>
  6311. </change>

  6312. <change type="bugfix">
  6313. <para lang="ru">
  6314. модуль ngx_http_slice_module не работал в именованных location'ах.
  6315. </para>
  6316. <para lang="en">
  6317. the ngx_http_slice_module did not work in named locations.
  6318. </para>
  6319. </change>

  6320. <change type="bugfix">
  6321. <para lang="ru">
  6322. при использовании AIO после перенаправления запроса с помощью X-Accel-Redirect
  6323. в рабочем процессе мог произойти segmentation fault.
  6324. </para>
  6325. <para lang="en">
  6326. a segmentation fault might occur in a worker process
  6327. when using AIO after an "X-Accel-Redirect" redirection.
  6328. </para>
  6329. </change>

  6330. <change type="bugfix">
  6331. <para lang="ru">
  6332. уменьшено потребление памяти для долгоживущих запросов, использующих сжатие.
  6333. </para>
  6334. <para lang="en">
  6335. reduced memory consumption for long-lived requests using gzipping.
  6336. </para>
  6337. </change>

  6338. </changes>


  6339. <changes ver="1.11.9" date="2017-01-24">

  6340. <change type="bugfix">
  6341. <para lang="ru">
  6342. при использовании модуля stream nginx мог нагружать процессор;
  6343. ошибка появилась в 1.11.5.
  6344. </para>
  6345. <para lang="en">
  6346. nginx might hog CPU when using the stream module;
  6347. the bug had appeared in 1.11.5.
  6348. </para>
  6349. </change>

  6350. <change type="bugfix">
  6351. <para lang="ru">
  6352. метод аутентификации EXTERNAL в почтовом прокси-сервере
  6353. можно было использовать, даже если он не был разрешён в конфигурации.
  6354. </para>
  6355. <para lang="en">
  6356. EXTERNAL authentication mechanism in mail proxy
  6357. was accepted even if it was not enabled in the configuration.
  6358. </para>
  6359. </change>

  6360. <change type="bugfix">
  6361. <para lang="ru">
  6362. при использовании директивы ssl_verify_client модуля stream
  6363. в рабочем процессе мог произойти segmentation fault.
  6364. </para>
  6365. <para lang="en">
  6366. a segmentation fault might occur in a worker process
  6367. if the "ssl_verify_client" directive of the stream module was used.
  6368. </para>
  6369. </change>

  6370. <change type="bugfix">
  6371. <para lang="ru">
  6372. директива ssl_verify_client модуля stream могла не работать.
  6373. </para>
  6374. <para lang="en">
  6375. the "ssl_verify_client" directive of the stream module might not work.
  6376. </para>
  6377. </change>

  6378. <change type="bugfix">
  6379. <para lang="ru">
  6380. при исчерпании рабочим процессом свободных соединений
  6381. keepalive-соединения могли закрываться излишне агрессивно.<br/>
  6382. Спасибо Joel Cunningham.
  6383. </para>
  6384. <para lang="en">
  6385. closing keepalive connections due to no free worker connections
  6386. might be too aggressive.<br/>
  6387. Thanks to Joel Cunningham.
  6388. </para>
  6389. </change>

  6390. <change type="bugfix">
  6391. <para lang="ru">
  6392. при использовании директивы sendfile на FreeBSD и macOS
  6393. мог возвращаться некорректный ответ;
  6394. ошибка появилась в 1.7.8.
  6395. </para>
  6396. <para lang="en">
  6397. an incorrect response might be returned
  6398. when using the "sendfile" directive on FreeBSD and macOS;
  6399. the bug had appeared in 1.7.8.
  6400. </para>
  6401. </change>

  6402. <change type="bugfix">
  6403. <para lang="ru">
  6404. при использовании директивы aio_write
  6405. ответ мог сохраняться в кэш не полностью.
  6406. </para>
  6407. <para lang="en">
  6408. a truncated response might be stored in cache
  6409. when using the "aio_write" directive.
  6410. </para>
  6411. </change>

  6412. <change type="bugfix">
  6413. <para lang="ru">
  6414. при использовании директивы aio_write
  6415. могла происходить утечка сокетов.
  6416. </para>
  6417. <para lang="en">
  6418. a socket leak might occur
  6419. when using the "aio_write" directive.
  6420. </para>
  6421. </change>

  6422. </changes>


  6423. <changes ver="1.11.8" date="2016-12-27">

  6424. <change type="feature">
  6425. <para lang="ru">
  6426. директива absolute_redirect.
  6427. </para>
  6428. <para lang="en">
  6429. the "absolute_redirect" directive.
  6430. </para>
  6431. </change>

  6432. <change type="feature">
  6433. <para lang="ru">
  6434. параметр escape директивы log_format.
  6435. </para>
  6436. <para lang="en">
  6437. the "escape" parameter of the "log_format" directive.
  6438. </para>
  6439. </change>

  6440. <change type="feature">
  6441. <para lang="ru">
  6442. проверка клиентских SSL-сертификатов в модуле stream.
  6443. </para>
  6444. <para lang="en">
  6445. client SSL certificates verification in the stream module.
  6446. </para>
  6447. </change>

  6448. <change type="feature">
  6449. <para lang="ru">
  6450. директива ssl_session_ticket_key поддерживает
  6451. шифрование TLS session tickets с помощью AES256
  6452. при использовании с 80-байтными ключами.
  6453. </para>
  6454. <para lang="en">
  6455. the "ssl_session_ticket_key" directive supports
  6456. AES256 encryption of TLS session tickets
  6457. when used with 80-byte keys.
  6458. </para>
  6459. </change>

  6460. <change type="feature">
  6461. <para lang="ru">
  6462. поддержка vim-commentary в скриптах для vim.<br/>
  6463. Спасибо Armin Grodon.
  6464. </para>
  6465. <para lang="en">
  6466. vim-commentary support in vim scripts.<br/>
  6467. Thanks to Armin Grodon.
  6468. </para>
  6469. </change>

  6470. <change type="bugfix">
  6471. <para lang="ru">
  6472. рекурсия при получении значений переменных не ограничивалась.
  6473. </para>
  6474. <para lang="en">
  6475. recursion when evaluating variables was not limited.
  6476. </para>
  6477. </change>

  6478. <change type="bugfix">
  6479. <para lang="ru">
  6480. в модуле ngx_stream_ssl_preread_module.
  6481. </para>
  6482. <para lang="en">
  6483. in the ngx_stream_ssl_preread_module.
  6484. </para>
  6485. </change>

  6486. <change type="bugfix">
  6487. <para lang="ru">
  6488. если сервер, описанный в блоке upstream в модуле stream,
  6489. был признан неработающим, то после истечения fail_timeout он
  6490. признавался работающим только после завершения тестового соединения;
  6491. теперь достаточно, чтобы соединение было успешно установлено.
  6492. </para>
  6493. <para lang="en">
  6494. if a server in an upstream in the stream module failed,
  6495. it was considered alive only when a test connection sent
  6496. to it after fail_timeout was closed;
  6497. now a successfully established connection is enough.
  6498. </para>
  6499. </change>

  6500. <change type="bugfix">
  6501. <para lang="ru">
  6502. nginx/Windows не собирался с 64-битным Visual Studio.
  6503. </para>
  6504. <para lang="en">
  6505. nginx/Windows could not be built with 64-bit Visual Studio.
  6506. </para>
  6507. </change>

  6508. <change type="bugfix">
  6509. <para lang="ru">
  6510. nginx/Windows не собирался с OpenSSL 1.1.0.
  6511. </para>
  6512. <para lang="en">
  6513. nginx/Windows could not be built with OpenSSL 1.1.0.
  6514. </para>
  6515. </change>

  6516. </changes>


  6517. <changes ver="1.11.7" date="2016-12-13">

  6518. <change type="change">
  6519. <para lang="ru">
  6520. переменная $ssl_client_verify теперь
  6521. в случае ошибки проверки клиентского сертификата
  6522. содержит строку с описанием ошибки,
  6523. например, "FAILED:certificate has expired".
  6524. </para>
  6525. <para lang="en">
  6526. now in case of a client certificate verification error
  6527. the $ssl_client_verify variable contains a string with the failure reason,
  6528. for example, "FAILED:certificate has expired".
  6529. </para>
  6530. </change>

  6531. <change type="feature">
  6532. <para lang="ru">
  6533. переменные $ssl_ciphers, $ssl_curves,
  6534. $ssl_client_v_start, $ssl_client_v_end и $ssl_client_v_remain.
  6535. </para>
  6536. <para lang="en">
  6537. the $ssl_ciphers, $ssl_curves,
  6538. $ssl_client_v_start, $ssl_client_v_end, and $ssl_client_v_remain variables.
  6539. </para>
  6540. </change>

  6541. <change type="feature">
  6542. <para lang="ru">
  6543. параметр volatile директивы map.
  6544. </para>
  6545. <para lang="en">
  6546. the "volatile" parameter of the "map" directive.
  6547. </para>
  6548. </change>

  6549. <change type="bugfix">
  6550. <para lang="ru">
  6551. при сборке динамических модулей
  6552. не учитывались заданные для модуля зависимости.
  6553. </para>
  6554. <para lang="en">
  6555. dependencies specified for a module
  6556. were ignored while building dynamic modules.
  6557. </para>
  6558. </change>

  6559. <change type="bugfix">
  6560. <para lang="ru">
  6561. при использовании HTTP/2 и директив limit_req или auth_request
  6562. тело запроса могло быть повреждено;
  6563. ошибка появилась в 1.11.0.
  6564. </para>
  6565. <para lang="en">
  6566. when using HTTP/2 and the "limit_req" or "auth_request" directives
  6567. client request body might be corrupted;
  6568. the bug had appeared in 1.11.0.
  6569. </para>
  6570. </change>

  6571. <change type="bugfix">
  6572. <para lang="ru">
  6573. при использовании HTTP/2 в рабочем процессе мог произойти segmentation fault;
  6574. ошибка появилась в 1.11.3.
  6575. </para>
  6576. <para lang="en">
  6577. a segmentation fault might occur in a worker process when using HTTP/2;
  6578. the bug had appeared in 1.11.3.
  6579. </para>
  6580. </change>

  6581. <change type="bugfix">
  6582. <para lang="ru">
  6583. в модуле ngx_http_mp4_module.<br/>
  6584. Спасибо Congcong Hu.
  6585. </para>
  6586. <para lang="en">
  6587. in the ngx_http_mp4_module.<br/>
  6588. Thanks to Congcong Hu.
  6589. </para>
  6590. </change>

  6591. <change type="bugfix">
  6592. <para lang="ru">
  6593. в модуле ngx_http_perl_module.
  6594. </para>
  6595. <para lang="en">
  6596. in the ngx_http_perl_module.
  6597. </para>
  6598. </change>

  6599. </changes>


  6600. <changes ver="1.11.6" date="2016-11-15">

  6601. <change type="change">
  6602. <para lang="ru">
  6603. формат переменных $ssl_client_s_dn и $ssl_client_i_dn
  6604. изменён на соответствующий RFC 2253 (RFC 4514);
  6605. значения в старом формате доступны через переменные
  6606. $ssl_client_s_dn_legacy и $ssl_client_i_dn_legacy.
  6607. </para>
  6608. <para lang="en">
  6609. format of the $ssl_client_s_dn and $ssl_client_i_dn variables
  6610. has been changed to follow RFC 2253 (RFC 4514);
  6611. values in the old format are available in
  6612. the $ssl_client_s_dn_legacy and $ssl_client_i_dn_legacy variables.
  6613. </para>
  6614. </change>

  6615. <change type="change">
  6616. <para lang="ru">
  6617. при сохранении временных файлов в каталоге кэша
  6618. они теперь располагаются не в отдельном подкаталоге для временных файлов,
  6619. а в том же подкаталоге, что и соответствующие файлы в кэше.
  6620. </para>
  6621. <para lang="en">
  6622. when storing temporary files in a cache directory
  6623. they will be stored in the same subdirectories as corresponding cache files
  6624. instead of a separate subdirectory for temporary files.
  6625. </para>
  6626. </change>

  6627. <change type="feature">
  6628. <para lang="ru">
  6629. поддержка метода аутентификации EXTERNAL
  6630. в почтовом прокси-сервере.<br/>
  6631. Спасибо Robert Norris.
  6632. </para>
  6633. <para lang="en">
  6634. EXTERNAL authentication mechanism support
  6635. in mail proxy.<br/>
  6636. Thanks to Robert Norris.
  6637. </para>
  6638. </change>

  6639. <change type="feature">
  6640. <para lang="ru">
  6641. поддержка WebP в модуле ngx_http_image_filter_module.
  6642. </para>
  6643. <para lang="en">
  6644. WebP support in the ngx_http_image_filter_module.
  6645. </para>
  6646. </change>

  6647. <change type="feature">
  6648. <para lang="ru">
  6649. директива proxy_method поддерживает переменные.<br/>
  6650. Спасибо Дмитрию Лазуркину.
  6651. </para>
  6652. <para lang="en">
  6653. variables support in the "proxy_method" directive.<br/>
  6654. Thanks to Dmitry Lazurkin.
  6655. </para>
  6656. </change>

  6657. <change type="feature">
  6658. <para lang="ru">
  6659. директива http2_max_requests в модуле ngx_http_v2_module.
  6660. </para>
  6661. <para lang="en">
  6662. the "http2_max_requests" directive in the ngx_http_v2_module.
  6663. </para>
  6664. </change>

  6665. <change type="feature">
  6666. <para lang="ru">
  6667. директивы proxy_cache_max_range_offset, fastcgi_cache_max_range_offset,
  6668. scgi_cache_max_range_offset и uwsgi_cache_max_range_offset.
  6669. </para>
  6670. <para lang="en">
  6671. the "proxy_cache_max_range_offset", "fastcgi_cache_max_range_offset",
  6672. "scgi_cache_max_range_offset", and "uwsgi_cache_max_range_offset" directives.
  6673. </para>
  6674. </change>

  6675. <change type="bugfix">
  6676. <para lang="ru">
  6677. плавное завершение старых рабочих процессов могло занимать бесконечное время
  6678. при использовании HTTP/2.
  6679. </para>
  6680. <para lang="en">
  6681. graceful shutdown of old worker processes might require infinite time
  6682. when using HTTP/2.
  6683. </para>
  6684. </change>

  6685. <change type="bugfix">
  6686. <para lang="ru">
  6687. в модуле ngx_http_mp4_module.
  6688. </para>
  6689. <para lang="en">
  6690. in the ngx_http_mp4_module.
  6691. </para>
  6692. </change>

  6693. <change type="bugfix">
  6694. <para lang="ru">
  6695. при проксировании WebSocket-соединений и включённом кэшировании
  6696. в логах могли появляться сообщения "ignore long locked inactive cache entry".
  6697. </para>
  6698. <para lang="en">
  6699. "ignore long locked inactive cache entry" alerts might appear in logs
  6700. when proxying WebSocket connections with caching enabled.
  6701. </para>
  6702. </change>

  6703. <change type="bugfix">
  6704. <para lang="ru">
  6705. если во время SSL handshake с бэкендом происходил таймаут,
  6706. nginx ничего не писал в лог
  6707. и возвращал ответ с кодом 502 вместо 504.
  6708. </para>
  6709. <para lang="en">
  6710. nginx did not write anything to log
  6711. and returned a response with code 502 instead of 504
  6712. when a timeout occurred during an SSL handshake to a backend.
  6713. </para>
  6714. </change>

  6715. </changes>


  6716. <changes ver="1.11.5" date="2016-10-11">

  6717. <change type="change">
  6718. <para lang="ru">
  6719. параметр configure --with-ipv6 упразднён,
  6720. поддержка IPv6 теперь собирается автоматически.
  6721. </para>
  6722. <para lang="en">
  6723. the --with-ipv6 configure option was removed,
  6724. now IPv6 support is configured automatically.
  6725. </para>
  6726. </change>

  6727. <change type="change">
  6728. <para lang="ru">
  6729. теперь, если в блоке upstream не оказалось доступных серверов,
  6730. nginx не сбрасывает статистику ошибок всех серверов, как делал ранее,
  6731. а ожидает истечения fail_timeout.
  6732. </para>
  6733. <para lang="en">
  6734. now if there are no available servers in an upstream,
  6735. nginx will not reset number of failures of all servers as it previously did,
  6736. but will wait for fail_timeout to expire.
  6737. </para>
  6738. </change>

  6739. <change type="feature">
  6740. <para lang="ru">
  6741. модуль ngx_stream_ssl_preread_module.
  6742. </para>
  6743. <para lang="en">
  6744. the ngx_stream_ssl_preread_module.
  6745. </para>
  6746. </change>

  6747. <change type="feature">
  6748. <para lang="ru">
  6749. директива server в блоке upstream поддерживает параметр max_conns.
  6750. </para>
  6751. <para lang="en">
  6752. the "server" directive in the "upstream" context supports
  6753. the "max_conns" parameter.
  6754. </para>
  6755. </change>

  6756. <change type="feature">
  6757. <para lang="ru">
  6758. параметр configure --with-compat.
  6759. </para>
  6760. <para lang="en">
  6761. the --with-compat configure option.
  6762. </para>
  6763. </change>

  6764. <change type="feature">
  6765. <para lang="ru">
  6766. параметры manager_files, manager_threshold и manager_sleep
  6767. директив proxy_cache_path, fastcgi_cache_path, scgi_cache_path и
  6768. uwsgi_cache_path.
  6769. </para>
  6770. <para lang="en">
  6771. "manager_files", "manager_threshold", and "manager_sleep" parameters
  6772. of the "proxy_cache_path", "fastcgi_cache_path", "scgi_cache_path", and
  6773. "uwsgi_cache_path" directives.
  6774. </para>
  6775. </change>

  6776. <change type="bugfix">
  6777. <para lang="ru">
  6778. при сборке perl-модуля не использовались флаги,
  6779. заданные с помощью параметра configure --with-ld-opt.
  6780. </para>
  6781. <para lang="en">
  6782. flags passed by the --with-ld-opt configure option
  6783. were not used while building perl module.
  6784. </para>
  6785. </change>

  6786. <change type="bugfix">
  6787. <para lang="ru">
  6788. в директиве add_after_body при использовании совместно с директивой sub_filter.
  6789. </para>
  6790. <para lang="en">
  6791. in the "add_after_body" directive when used with the "sub_filter" directive.
  6792. </para>
  6793. </change>

  6794. <change type="bugfix">
  6795. <para lang="ru">
  6796. в переменной $realip_remote_addr.
  6797. </para>
  6798. <para lang="en">
  6799. in the $realip_remote_addr variable.
  6800. </para>
  6801. </change>

  6802. <change type="bugfix">
  6803. <para lang="ru">
  6804. директивы dav_access, proxy_store_access, fastcgi_store_access,
  6805. scgi_store_access и uwsgi_store_access
  6806. игнорировали права, заданные для пользователя.
  6807. </para>
  6808. <para lang="en">
  6809. the "dav_access", "proxy_store_access", "fastcgi_store_access",
  6810. "scgi_store_access", and "uwsgi_store_access" directives
  6811. ignored permissions specified for user.
  6812. </para>
  6813. </change>

  6814. <change type="bugfix">
  6815. <para lang="ru">
  6816. unix domain listen-сокеты могли не наследоваться
  6817. при обновлении исполняемого файла на Linux.
  6818. </para>
  6819. <para lang="en">
  6820. unix domain listen sockets might not be inherited
  6821. during binary upgrade on Linux.
  6822. </para>
  6823. </change>

  6824. <change type="bugfix">
  6825. <para lang="ru">
  6826. nginx возвращал ошибку 400 на запросы
  6827. с символом "-" в HTTP-методе.
  6828. </para>
  6829. <para lang="en">
  6830. nginx returned the 400 response on requests
  6831. with the "-" character in the HTTP method.
  6832. </para>
  6833. </change>

  6834. </changes>


  6835. <changes ver="1.11.4" date="2016-09-13">

  6836. <change type="feature">
  6837. <para lang="ru">
  6838. переменная $upstream_bytes_received.
  6839. </para>
  6840. <para lang="en">
  6841. the $upstream_bytes_received variable.
  6842. </para>
  6843. </change>

  6844. <change type="feature">
  6845. <para lang="ru">
  6846. переменные $bytes_received, $session_time, $protocol, $status,
  6847. $upstream_addr, $upstream_bytes_sent, $upstream_bytes_received,
  6848. $upstream_connect_time, $upstream_first_byte_time
  6849. и $upstream_session_time в модуле stream.
  6850. </para>
  6851. <para lang="en">
  6852. the $bytes_received, $session_time, $protocol, $status,
  6853. $upstream_addr, $upstream_bytes_sent, $upstream_bytes_received,
  6854. $upstream_connect_time, $upstream_first_byte_time,
  6855. and $upstream_session_time variables in the stream module.
  6856. </para>
  6857. </change>

  6858. <change type="feature">
  6859. <para lang="ru">
  6860. модуль ngx_stream_log_module.
  6861. </para>
  6862. <para lang="en">
  6863. the ngx_stream_log_module.
  6864. </para>
  6865. </change>

  6866. <change type="feature">
  6867. <para lang="ru">
  6868. параметр proxy_protocol в директиве listen,
  6869. переменные $proxy_protocol_addr и $proxy_protocol_port
  6870. в модуле stream.
  6871. </para>
  6872. <para lang="en">
  6873. the "proxy_protocol" parameter of the "listen" directive,
  6874. the $proxy_protocol_addr and $proxy_protocol_port variables
  6875. in the stream module.
  6876. </para>
  6877. </change>

  6878. <change type="feature">
  6879. <para lang="ru">
  6880. модуль ngx_stream_realip_module.
  6881. </para>
  6882. <para lang="en">
  6883. the ngx_stream_realip_module.
  6884. </para>
  6885. </change>

  6886. <change type="bugfix">
  6887. <para lang="ru">
  6888. nginx не собирался с модулем stream и модулем ngx_http_ssl_module,
  6889. но без модуля ngx_stream_ssl_module;
  6890. ошибка появилась в 1.11.3.
  6891. </para>
  6892. <para lang="en">
  6893. nginx could not be built with the stream module and the ngx_http_ssl_module,
  6894. but without ngx_stream_ssl_module;
  6895. the bug had appeared in 1.11.3.
  6896. </para>
  6897. </change>

  6898. <change type="feature">
  6899. <para lang="ru">
  6900. опция сокета IP_BIND_ADDRESS_NO_PORT не использовалась;
  6901. ошибка появилась в 1.11.2.
  6902. </para>
  6903. <para lang="en">
  6904. the IP_BIND_ADDRESS_NO_PORT socket option was not used;
  6905. the bug had appeared in 1.11.2.
  6906. </para>
  6907. </change>

  6908. <change type="bugfix">
  6909. <para lang="ru">
  6910. в параметре ranges директивы geo.
  6911. </para>
  6912. <para lang="en">
  6913. in the "ranges" parameter of the "geo" directive.
  6914. </para>
  6915. </change>

  6916. <change type="bugfix">
  6917. <para lang="ru">
  6918. при использовании директив "aio threads" и sendfile
  6919. мог возвращаться некорректный ответ; ошибка появилась в 1.9.13.
  6920. </para>
  6921. <para lang="en">
  6922. an incorrect response might be returned
  6923. when using the "aio threads" and "sendfile" directives;
  6924. the bug had appeared in 1.9.13.
  6925. </para>
  6926. </change>

  6927. </changes>


  6928. <changes ver="1.11.3" date="2016-07-26">

  6929. <change type="change">
  6930. <para lang="ru">
  6931. теперь accept_mutex по умолчанию выключен.
  6932. </para>
  6933. <para lang="en">
  6934. now the "accept_mutex" directive is turned off by default.
  6935. </para>
  6936. </change>

  6937. <change type="feature">
  6938. <para lang="ru">
  6939. теперь nginx использует EPOLLEXCLUSIVE на Linux.
  6940. </para>
  6941. <para lang="en">
  6942. now nginx uses EPOLLEXCLUSIVE on Linux.
  6943. </para>
  6944. </change>

  6945. <change type="feature">
  6946. <para lang="ru">
  6947. модуль ngx_stream_geo_module.
  6948. </para>
  6949. <para lang="en">
  6950. the ngx_stream_geo_module.
  6951. </para>
  6952. </change>

  6953. <change type="feature">
  6954. <para lang="ru">
  6955. модуль ngx_stream_geoip_module.
  6956. </para>
  6957. <para lang="en">
  6958. the ngx_stream_geoip_module.
  6959. </para>
  6960. </change>

  6961. <change type="feature">
  6962. <para lang="ru">
  6963. модуль ngx_stream_split_clients_module.
  6964. </para>
  6965. <para lang="en">
  6966. the ngx_stream_split_clients_module.
  6967. </para>
  6968. </change>

  6969. <change type="feature">
  6970. <para lang="ru">
  6971. директивы proxy_pass и proxy_ssl_name в модуле stream
  6972. поддерживают переменные.
  6973. </para>
  6974. <para lang="en">
  6975. variables support
  6976. in the "proxy_pass" and "proxy_ssl_name" directives in the stream module.
  6977. </para>
  6978. </change>

  6979. <change type="bugfix">
  6980. <para lang="ru">
  6981. утечки сокетов при использовании HTTP/2.
  6982. </para>
  6983. <para lang="en">
  6984. socket leak when using HTTP/2.
  6985. </para>
  6986. </change>

  6987. <change type="bugfix">
  6988. <para lang="ru">
  6989. в configure.<br/>
  6990. Спасибо Piotr Sikora.
  6991. </para>
  6992. <para lang="en">
  6993. in configure tests.<br/>
  6994. Thanks to Piotr Sikora.
  6995. </para>
  6996. </change>

  6997. </changes>


  6998. <changes ver="1.11.2" date="2016-07-05">

  6999. <change type="change">
  7000. <para lang="ru">
  7001. теперь nginx всегда использует внутренние реализации MD5 и SHA1;
  7002. параметры configure --with-md5 и --with-sha1 упразднены.
  7003. </para>
  7004. <para lang="en">
  7005. now nginx always uses internal MD5 and SHA1 implementations;
  7006. the --with-md5 and --with-sha1 configure options were canceled.
  7007. </para>
  7008. </change>

  7009. <change type="feature">
  7010. <para lang="ru">
  7011. поддержка переменных в модуле stream.
  7012. </para>
  7013. <para lang="en">
  7014. variables support in the stream module.
  7015. </para>
  7016. </change>

  7017. <change type="feature">
  7018. <para lang="ru">
  7019. модуль ngx_stream_map_module.
  7020. </para>
  7021. <para lang="en">
  7022. the ngx_stream_map_module.
  7023. </para>
  7024. </change>

  7025. <change type="feature">
  7026. <para lang="ru">
  7027. модуль ngx_stream_return_module.
  7028. </para>
  7029. <para lang="en">
  7030. the ngx_stream_return_module.
  7031. </para>
  7032. </change>

  7033. <change type="feature">
  7034. <para lang="ru">
  7035. в директивах proxy_bind, fastcgi_bind, memcached_bind, scgi_bind и uwsgi_bind
  7036. теперь можно указывать порт.
  7037. </para>
  7038. <para lang="en">
  7039. a port can be specified in the "proxy_bind", "fastcgi_bind",
  7040. "memcached_bind", "scgi_bind", and "uwsgi_bind" directives.
  7041. </para>
  7042. </change>

  7043. <change type="feature">
  7044. <para lang="ru">
  7045. теперь nginx использует опцию сокета IP_BIND_ADDRESS_NO_PORT, если она доступна.
  7046. </para>
  7047. <para lang="en">
  7048. now nginx uses the IP_BIND_ADDRESS_NO_PORT socket option when available.
  7049. </para>
  7050. </change>

  7051. <change type="bugfix">
  7052. <para lang="ru">
  7053. при использовании HTTP/2 и директивы proxy_request_buffering
  7054. в рабочем процессе мог произойти segmentation fault.
  7055. </para>
  7056. <para lang="en">
  7057. a segmentation fault might occur in a worker process
  7058. when using HTTP/2 and the "proxy_request_buffering" directive.
  7059. </para>
  7060. </change>

  7061. <change type="bugfix">
  7062. <para lang="ru">
  7063. при использовании HTTP/2
  7064. к запросам, передаваемым на бэкенд,
  7065. всегда добавлялась строка заголовка "Content-Length",
  7066. даже если у запроса не было тела.
  7067. </para>
  7068. <para lang="en">
  7069. the "Content-Length" request header line
  7070. was always added to requests passed to backends,
  7071. including requests without body,
  7072. when using HTTP/2.
  7073. </para>
  7074. </change>

  7075. <change type="bugfix">
  7076. <para lang="ru">
  7077. при использовании HTTP/2
  7078. в логах могли появляться сообщения "http request count is zero".
  7079. </para>
  7080. <para lang="en">
  7081. "http request count is zero" alerts might appear in logs
  7082. when using HTTP/2.
  7083. </para>
  7084. </change>

  7085. <change type="bugfix">
  7086. <para lang="ru">
  7087. при использовании директивы sub_filter
  7088. могло буферизироваться больше данных, чем это необходимо;
  7089. проблема появилась в 1.9.4.
  7090. </para>
  7091. <para lang="en">
  7092. unnecessary buffering might occur
  7093. when using the "sub_filter" directive;
  7094. the issue had appeared in 1.9.4.
  7095. </para>
  7096. </change>

  7097. </changes>


  7098. <changes ver="1.11.1" date="2016-05-31">

  7099. <change type="security">
  7100. <para lang="ru">
  7101. при записи тела специально созданного запроса во временный файл
  7102. в рабочем процессе мог происходить segmentation fault
  7103. (CVE-2016-4450);
  7104. ошибка появилась в 1.3.9.
  7105. </para>
  7106. <para lang="en">
  7107. a segmentation fault might occur in a worker process
  7108. while writing a specially crafted request body to a temporary file
  7109. (CVE-2016-4450);
  7110. the bug had appeared in 1.3.9.
  7111. </para>
  7112. </change>

  7113. </changes>


  7114. <changes ver="1.11.0" date="2016-05-24">

  7115. <change type="feature">
  7116. <para lang="ru">
  7117. параметр transparent директив proxy_bind, fastcgi_bind,
  7118. memcached_bind, scgi_bind и uwsgi_bind.
  7119. </para>
  7120. <para lang="en">
  7121. the "transparent" parameter of the "proxy_bind", "fastcgi_bind",
  7122. "memcached_bind", "scgi_bind", and "uwsgi_bind" directives.
  7123. </para>
  7124. </change>

  7125. <change type="feature">
  7126. <para lang="ru">
  7127. переменная $request_id.
  7128. </para>
  7129. <para lang="en">
  7130. the $request_id variable.
  7131. </para>
  7132. </change>

  7133. <change type="feature">
  7134. <para lang="ru">
  7135. директива map поддерживает комбинации нескольких переменных
  7136. в качестве результирующих значений.
  7137. </para>
  7138. <para lang="en">
  7139. the "map" directive supports combinations of multiple variables
  7140. as resulting values.
  7141. </para>
  7142. </change>

  7143. <change type="feature">
  7144. <para lang="ru">
  7145. теперь при использовании метода epoll
  7146. nginx проверяет, поддерживает ли ядро события EPOLLRDHUP,
  7147. и соответственно оптимизирует обработку соединений.
  7148. </para>
  7149. <para lang="en">
  7150. now nginx checks if EPOLLRDHUP events are supported by kernel,
  7151. and optimizes connection handling accordingly
  7152. if the "epoll" method is used.
  7153. </para>
  7154. </change>

  7155. <change type="feature">
  7156. <para lang="ru">
  7157. директивы ssl_certificate и ssl_certificate_key
  7158. теперь можно указывать несколько раз
  7159. для загрузки сертификатов разных типов (например, RSA и ECDSA).
  7160. </para>
  7161. <para lang="en">
  7162. the "ssl_certificate" and "ssl_certificate_key" directives
  7163. can be specified multiple times
  7164. to load certificates of different types (for example, RSA and ECDSA).
  7165. </para>
  7166. </change>

  7167. <change type="feature">
  7168. <para lang="ru">
  7169. при использовании OpenSSL 1.0.2 и новее
  7170. с помощью директивы ssl_ecdh_curve теперь можно задать список кривых;
  7171. по умолчанию используется встроенный в OpenSSL список кривых.
  7172. </para>
  7173. <para lang="en">
  7174. the "ssl_ecdh_curve" directive now allows specifying a list of curves
  7175. when using OpenSSL 1.0.2 or newer;
  7176. by default a list built into OpenSSL is used.
  7177. </para>
  7178. </change>

  7179. <change type="change">
  7180. <para lang="ru">
  7181. для использования DHE-шифров теперь надо явно задавать файл параметров
  7182. с помощью директивы ssl_dhparam.
  7183. </para>
  7184. <para lang="en">
  7185. to use DHE ciphers it is now required to specify parameters
  7186. using the "ssl_dhparam" directive.
  7187. </para>
  7188. </change>

  7189. <change type="feature">
  7190. <para lang="ru">
  7191. переменная $proxy_protocol_port.
  7192. </para>
  7193. <para lang="en">
  7194. the $proxy_protocol_port variable.
  7195. </para>
  7196. </change>

  7197. <change type="feature">
  7198. <para lang="ru">
  7199. переменная $realip_remote_port в модуле ngx_http_realip_module.
  7200. </para>
  7201. <para lang="en">
  7202. the $realip_remote_port variable in the ngx_http_realip_module.
  7203. </para>
  7204. </change>

  7205. <change type="feature">
  7206. <para lang="ru">
  7207. модуль ngx_http_realip_module теперь позволяет устанавливать
  7208. не только адрес, но и порт клиента.
  7209. </para>
  7210. <para lang="en">
  7211. the ngx_http_realip_module is now able to set the client port
  7212. in addition to the address.
  7213. </para>
  7214. </change>

  7215. <change type="change">
  7216. <para lang="ru">
  7217. при попытке запросить виртуальный сервер,
  7218. отличающийся от согласованного в процессе SSL handshake,
  7219. теперь возвращается ответ "421 Misdirected Request";
  7220. это улучшает совместимость с некоторыми HTTP/2-клиентами
  7221. в случае использования клиентских сертификатов.
  7222. </para>
  7223. <para lang="en">
  7224. the "421 Misdirected Request" response now used
  7225. when rejecting requests to a virtual server
  7226. different from one negotiated during an SSL handshake;
  7227. this improves interoperability with some HTTP/2 clients
  7228. when using client certificates.
  7229. </para>
  7230. </change>

  7231. <change type="change">
  7232. <para lang="ru">
  7233. HTTP/2-клиенты теперь могут сразу присылать тело запроса;
  7234. директива http2_body_preread_size позволяет указать размер буфера, который
  7235. будет использоваться до того, как nginx начнёт читать тело.
  7236. </para>
  7237. <para lang="en">
  7238. HTTP/2 clients can now start sending request body immediately;
  7239. the "http2_body_preread_size" directive controls size of the buffer used
  7240. before nginx will start reading client request body.
  7241. </para>
  7242. </change>

  7243. <change type="bugfix">
  7244. <para lang="ru">
  7245. при использовании директивы proxy_cache_bypass
  7246. не обновлялись закэшированные ошибочные ответы.
  7247. </para>
  7248. <para lang="en">
  7249. cached error responses were not updated
  7250. when using the "proxy_cache_bypass" directive.
  7251. </para>
  7252. </change>

  7253. </changes>


  7254. <changes ver="1.9.15" date="2016-04-19">

  7255. <change type="bugfix">
  7256. <para lang="ru">
  7257. при использовании HHVM в качестве FastCGI-сервера
  7258. могли возникать ошибки "recv() failed".
  7259. </para>
  7260. <para lang="en">
  7261. "recv() failed" errors might occur
  7262. when using HHVM as a FastCGI server.
  7263. </para>
  7264. </change>

  7265. <change type="bugfix">
  7266. <para lang="ru">
  7267. при использовании HTTP/2 и директив limit_req или auth_request
  7268. при чтении тела запроса мог произойти таймаут
  7269. или ошибка "client violated flow control";
  7270. ошибка появилась в 1.9.14.
  7271. </para>
  7272. <para lang="en">
  7273. when using HTTP/2 and the "limit_req" or "auth_request" directives
  7274. a timeout or a "client violated flow control" error
  7275. might occur while reading client request body;
  7276. the bug had appeared in 1.9.14.
  7277. </para>
  7278. </change>

  7279. <change type="workaround">
  7280. <para lang="ru">
  7281. при использовании HTTP/2 ответ мог не показываться некоторыми браузерами,
  7282. если тело запроса было прочитано не целиком;
  7283. ошибка появилась в 1.9.14.
  7284. </para>
  7285. <para lang="en">
  7286. a response might not be shown by some browsers
  7287. if HTTP/2 was used and client request body was not fully read;
  7288. the bug had appeared in 1.9.14.
  7289. </para>
  7290. </change>

  7291. <change type="bugfix">
  7292. <para lang="ru">
  7293. при использовании директивы "aio threads" соединения могли зависать.<br/>
  7294. Спасибо Mindaugas Rasiukevicius.
  7295. </para>
  7296. <para lang="en">
  7297. connections might hang when using the "aio threads" directive.<br/>
  7298. Thanks to Mindaugas Rasiukevicius.
  7299. </para>
  7300. </change>

  7301. </changes>


  7302. <changes ver="1.9.14" date="2016-04-05">

  7303. <change type="feature">
  7304. <para lang="ru">
  7305. совместимость с OpenSSL 1.1.0.
  7306. </para>
  7307. <para lang="en">
  7308. OpenSSL 1.1.0 compatibility.
  7309. </para>
  7310. </change>

  7311. <change type="feature">
  7312. <para lang="ru">
  7313. директивы proxy_request_buffering, fastcgi_request_buffering,
  7314. scgi_request_buffering и uwsgi_request_buffering
  7315. теперь работают при использовании HTTP/2.
  7316. </para>
  7317. <para lang="en">
  7318. the "proxy_request_buffering", "fastcgi_request_buffering",
  7319. "scgi_request_buffering", and "uwsgi_request_buffering" directives
  7320. now work with HTTP/2.
  7321. </para>
  7322. </change>

  7323. <change type="bugfix">
  7324. <para lang="ru">
  7325. при использовании HTTP/2
  7326. в логах могли появляться сообщения "zero size buf in output".
  7327. </para>
  7328. <para lang="en">
  7329. "zero size buf in output" alerts might appear in logs
  7330. when using HTTP/2.
  7331. </para>
  7332. </change>

  7333. <change type="bugfix">
  7334. <para lang="ru">
  7335. при использовании HTTP/2
  7336. директива client_max_body_size могла работать неверно.
  7337. </para>
  7338. <para lang="en">
  7339. the "client_max_body_size" directive might work incorrectly
  7340. when using HTTP/2.
  7341. </para>
  7342. </change>

  7343. <change type="bugfix">
  7344. <para lang="ru">
  7345. незначительных ошибок логгирования.
  7346. </para>
  7347. <para lang="en">
  7348. of minor bugs in logging.
  7349. </para>
  7350. </change>

  7351. </changes>


  7352. <changes ver="1.9.13" date="2016-03-29">

  7353. <change type="change">
  7354. <para lang="ru">
  7355. неидемпотентные запросы (POST, LOCK, PATCH)
  7356. теперь по умолчанию не передаются на другой сервер,
  7357. если запрос уже был отправлен на бэкенд;
  7358. параметр non_idempotent директивы proxy_next_upstream
  7359. явно разрешает повторять такие запросы.
  7360. </para>
  7361. <para lang="en">
  7362. non-idempotent requests (POST, LOCK, PATCH)
  7363. are no longer passed to the next server by default
  7364. if a request has been sent to a backend;
  7365. the "non_idempotent" parameter of the "proxy_next_upstream" directive
  7366. explicitly allows retrying such requests.
  7367. </para>
  7368. </change>

  7369. <change type="feature">
  7370. <para lang="ru">
  7371. модуль ngx_http_perl_module теперь можно собрать динамически.
  7372. </para>
  7373. <para lang="en">
  7374. the ngx_http_perl_module can be built dynamically.
  7375. </para>
  7376. </change>

  7377. <change type="feature">
  7378. <para lang="ru">
  7379. поддержка UDP в модуле stream.
  7380. </para>
  7381. <para lang="en">
  7382. UDP support in the stream module.
  7383. </para>
  7384. </change>

  7385. <change type="feature">
  7386. <para lang="ru">
  7387. директива aio_write.
  7388. </para>
  7389. <para lang="en">
  7390. the "aio_write" directive.
  7391. </para>
  7392. </change>

  7393. <change type="feature">
  7394. <para lang="ru">
  7395. теперь cache manager следит за количеством элементов в кэше
  7396. и старается не допускать переполнений зоны разделяемой памяти.
  7397. </para>
  7398. <para lang="en">
  7399. now cache manager monitors number of elements in caches
  7400. and tries to avoid cache keys zone overflows.
  7401. </para>
  7402. </change>

  7403. <change type="bugfix">
  7404. <para lang="ru">
  7405. при использовании директив sendfile и aio с подзапросами
  7406. в логах могли появляться сообщения "task already active" и "second aio post".
  7407. </para>
  7408. <para lang="en">
  7409. "task already active" and "second aio post" alerts might appear in logs
  7410. when using the "sendfile" and "aio" directives with subrequests.
  7411. </para>
  7412. </change>

  7413. <change type="bugfix">
  7414. <para lang="ru">
  7415. при использовании кэширования
  7416. в логах могли появляться сообщения "zero size buf in output",
  7417. если клиент закрывал соединение преждевременно.
  7418. </para>
  7419. <para lang="en">
  7420. "zero size buf in output" alerts might appear in logs
  7421. if caching was used
  7422. and a client closed a connection prematurely.
  7423. </para>
  7424. </change>

  7425. <change type="bugfix">
  7426. <para lang="ru">
  7427. при использовании кэширования
  7428. соединения с клиентами могли закрываться без необходимости.<br/>
  7429. Спасибо Justin Li.
  7430. </para>
  7431. <para lang="en">
  7432. connections with clients might be closed needlessly
  7433. if caching was used.<br/>
  7434. Thanks to Justin Li.
  7435. </para>
  7436. </change>

  7437. <change type="bugfix">
  7438. <para lang="ru">
  7439. nginx мог нагружать процессор
  7440. при использовании директивы sendfile на Linux и Solaris,
  7441. если отправляемый файл был изменён в процессе отправки.
  7442. </para>
  7443. <para lang="en">
  7444. nginx might hog CPU
  7445. if the "sendfile" directive was used on Linux or Solaris
  7446. and a file being sent was changed during sending.
  7447. </para>
  7448. </change>

  7449. <change type="bugfix">
  7450. <para lang="ru">
  7451. при использовании директив sendfile и "aio threads"
  7452. соединения могли зависать.
  7453. </para>
  7454. <para lang="en">
  7455. connections might hang
  7456. when using the "sendfile" and "aio threads" directives.
  7457. </para>
  7458. </change>

  7459. <change type="bugfix">
  7460. <para lang="ru">
  7461. в директивах proxy_pass, fastcgi_pass, scgi_pass и uwsgi_pass
  7462. при использовании переменных.<br/>
  7463. Спасибо Piotr Sikora.
  7464. </para>
  7465. <para lang="en">
  7466. in the "proxy_pass", "fastcgi_pass", "scgi_pass", and "uwsgi_pass" directives
  7467. when using variables.<br/>
  7468. Thanks to Piotr Sikora.
  7469. </para>
  7470. </change>

  7471. <change type="bugfix">
  7472. <para lang="ru">
  7473. в модуле ngx_http_sub_filter_module.
  7474. </para>
  7475. <para lang="en">
  7476. in the ngx_http_sub_filter_module.
  7477. </para>
  7478. </change>

  7479. <change type="bugfix">
  7480. <para lang="ru">
  7481. если в закэшированном соединении к бэкенду происходила ошибка,
  7482. запрос передавался на другой сервер
  7483. без учёта директивы proxy_next_upstream.
  7484. </para>
  7485. <para lang="en">
  7486. if an error occurred in a cached backend connection,
  7487. the request was passed to the next server
  7488. regardless of the proxy_next_upstream directive.
  7489. </para>
  7490. </change>

  7491. <change type="bugfix">
  7492. <para lang="ru">
  7493. ошибки "CreateFile() failed" при создании временных файлов на Windows.
  7494. </para>
  7495. <para lang="en">
  7496. "CreateFile() failed" errors when creating temporary files on Windows.
  7497. </para>
  7498. </change>

  7499. </changes>


  7500. <changes ver="1.9.12" date="2016-02-24">

  7501. <change type="feature">
  7502. <para lang="ru">
  7503. кодирование Хаффмана заголовков ответов в HTTP/2.<br/>
  7504. Спасибо Владу Краснову.
  7505. </para>
  7506. <para lang="en">
  7507. Huffman encoding of response headers in HTTP/2.<br/>
  7508. Thanks to Vlad Krasnov.
  7509. </para>
  7510. </change>

  7511. <change type="feature">
  7512. <para lang="ru">
  7513. директива worker_cpu_affinity теперь поддерживает более 64 процессоров.
  7514. </para>
  7515. <para lang="en">
  7516. the "worker_cpu_affinity" directive now supports more than 64 CPUs.
  7517. </para>
  7518. </change>

  7519. <change type="bugfix">
  7520. <para lang="ru">
  7521. совместимость со сторонними модулями на C++;
  7522. ошибка появилась в 1.9.11.<br/>
  7523. Спасибо Piotr Sikora.
  7524. </para>
  7525. <para lang="en">
  7526. compatibility with 3rd party C++ modules;
  7527. the bug had appeared in 1.9.11.<br/>
  7528. Thanks to Piotr Sikora.
  7529. </para>
  7530. </change>

  7531. <change type="bugfix">
  7532. <para lang="ru">
  7533. nginx не собирался статически с OpenSSL на Linux;
  7534. ошибка появилась в 1.9.11.
  7535. </para>
  7536. <para lang="en">
  7537. nginx could not be built statically with OpenSSL on Linux;
  7538. the bug had appeared in 1.9.11.
  7539. </para>
  7540. </change>

  7541. <change type="bugfix">
  7542. <para lang="ru">
  7543. директива "add_header ... always" с пустым значением
  7544. не удаляла из заголовков ошибочных ответов
  7545. строки Last-Modified и ETag.
  7546. </para>
  7547. <para lang="en">
  7548. the "add_header ... always" directive with an empty value
  7549. did not delete "Last-Modified" and "ETag" header lines
  7550. from error responses.
  7551. </para>
  7552. </change>

  7553. <change type="workaround">
  7554. <para lang="ru">
  7555. при использовании OpenSSL 1.0.2f в логах могли появляться
  7556. сообщения "called a function you should not call" и
  7557. "shutdown while in init".
  7558. </para>
  7559. <para lang="en">
  7560. "called a function you should not call"
  7561. and "shutdown while in init" messages might appear in logs
  7562. when using OpenSSL 1.0.2f.
  7563. </para>
  7564. </change>

  7565. <change type="bugfix">
  7566. <para lang="ru">
  7567. ошибочные заголовки могли логгироваться некорректно.
  7568. </para>
  7569. <para lang="en">
  7570. invalid headers might be logged incorrectly.
  7571. </para>
  7572. </change>

  7573. <change type="bugfix">
  7574. <para lang="ru">
  7575. утечки сокетов при использовании HTTP/2.
  7576. </para>
  7577. <para lang="en">
  7578. socket leak when using HTTP/2.
  7579. </para>
  7580. </change>

  7581. <change type="bugfix">
  7582. <para lang="ru">
  7583. в модуле ngx_http_v2_module.
  7584. </para>
  7585. <para lang="en">
  7586. in the ngx_http_v2_module.
  7587. </para>
  7588. </change>

  7589. </changes>


  7590. <changes ver="1.9.11" date="2016-02-09">

  7591. <change type="feature">
  7592. <para lang="ru">
  7593. теперь resolver поддерживает TCP.
  7594. </para>
  7595. <para lang="en">
  7596. TCP support in resolver.
  7597. </para>
  7598. </change>

  7599. <change type="feature">
  7600. <para lang="ru">
  7601. динамические модули.
  7602. </para>
  7603. <para lang="en">
  7604. dynamic modules.
  7605. </para>
  7606. </change>

  7607. <change type="bugfix">
  7608. <para lang="ru">
  7609. при использовании HTTP/2
  7610. переменная $request_length не учитывала размер заголовков запроса.
  7611. </para>
  7612. <para lang="en">
  7613. the $request_length variable did not include size of request headers
  7614. when using HTTP/2.
  7615. </para>
  7616. </change>

  7617. <change type="bugfix">
  7618. <para lang="ru">
  7619. в модуле ngx_http_v2_module.
  7620. </para>
  7621. <para lang="en">
  7622. in the ngx_http_v2_module.
  7623. </para>
  7624. </change>

  7625. </changes>


  7626. <changes ver="1.9.10" date="2016-01-26">

  7627. <change type="security">
  7628. <para lang="ru">
  7629. при использовании директивы resolver
  7630. во время обработки ответов DNS-сервера
  7631. могло происходить разыменование некорректного адреса,
  7632. что позволяло атакующему,
  7633. имеющему возможность подделывать UDP-пакеты от DNS-сервера,
  7634. вызвать segmentation fault в рабочем процессе (CVE-2016-0742).
  7635. </para>
  7636. <para lang="en">
  7637. invalid pointer dereference might occur
  7638. during DNS server response processing
  7639. if the "resolver" directive was used,
  7640. allowing an attacker who is able to forge UDP packets from the DNS server
  7641. to cause segmentation fault in a worker process (CVE-2016-0742).
  7642. </para>
  7643. </change>

  7644. <change type="security">
  7645. <para lang="ru">
  7646. при использовании директивы resolver
  7647. во время обработки CNAME-записей
  7648. могло произойти обращение к ранее освобождённой памяти,
  7649. что позволяло атакующему,
  7650. имеющему возможность инициировать преобразование произвольных имён в адреса,
  7651. вызвать segmentation fault в рабочем процессе,
  7652. а также потенциально могло иметь другие последствия (CVE-2016-0746).
  7653. </para>
  7654. <para lang="en">
  7655. use-after-free condition might occur
  7656. during CNAME response processing
  7657. if the "resolver" directive was used,
  7658. allowing an attacker who is able to trigger name resolution
  7659. to cause segmentation fault in a worker process,
  7660. or might have potential other impact (CVE-2016-0746).
  7661. </para>
  7662. </change>

  7663. <change type="security">
  7664. <para lang="ru">
  7665. при использовании директивы resolver
  7666. во время обработки CNAME-записей
  7667. не во всех случаях проверялось ограничение
  7668. на максимальное количество записей в цепочке,
  7669. что позволяло атакующему,
  7670. имеющему возможность инициировать преобразование произвольных имён в адреса,
  7671. вызвать чрезмерное потребление ресурсов рабочими процессами (CVE-2016-0747).
  7672. </para>
  7673. <para lang="en">
  7674. CNAME resolution was insufficiently limited
  7675. if the "resolver" directive was used,
  7676. allowing an attacker who is able to trigger arbitrary name resolution
  7677. to cause excessive resource consumption in worker processes (CVE-2016-0747).
  7678. </para>
  7679. </change>

  7680. <change type="feature">
  7681. <para lang="ru">
  7682. параметр auto директивы worker_cpu_affinity.
  7683. </para>
  7684. <para lang="en">
  7685. the "auto" parameter of the "worker_cpu_affinity" directive.
  7686. </para>
  7687. </change>

  7688. <change type="bugfix">
  7689. <para lang="ru">
  7690. параметр proxy_protocol директивы listen не работал
  7691. с IPv6 listen-сокетами.
  7692. </para>
  7693. <para lang="en">
  7694. the "proxy_protocol" parameter of the "listen" directive did not work
  7695. with IPv6 listen sockets.
  7696. </para>
  7697. </change>

  7698. <change type="bugfix">
  7699. <para lang="ru">
  7700. при использовании директивы keepalive
  7701. соединения к бэкендам могли кэшироваться некорректно.
  7702. </para>
  7703. <para lang="en">
  7704. connections to upstream servers might be cached incorrectly
  7705. when using the "keepalive" directive.
  7706. </para>
  7707. </change>

  7708. <change type="bugfix">
  7709. <para lang="ru">
  7710. после перенаправления запроса с помощью X-Accel-Redirect
  7711. при проксировании использовался HTTP-метод оригинального запроса.
  7712. </para>
  7713. <para lang="en">
  7714. proxying used the HTTP method of the original request
  7715. after an "X-Accel-Redirect" redirection.
  7716. </para>
  7717. </change>

  7718. </changes>


  7719. <changes ver="1.9.9" date="2015-12-09">

  7720. <change type="bugfix">
  7721. <para lang="ru">
  7722. проксирование в unix domain сокеты не работало при использовании переменных;
  7723. ошибка появилась в 1.9.8.
  7724. </para>
  7725. <para lang="en">
  7726. proxying to unix domain sockets did not work when using variables;
  7727. the bug had appeared in 1.9.8.
  7728. </para>
  7729. </change>

  7730. </changes>


  7731. <changes ver="1.9.8" date="2015-12-08">

  7732. <change type="feature">
  7733. <para lang="ru">
  7734. поддержка pwritev().
  7735. </para>
  7736. <para lang="en">
  7737. pwritev() support.
  7738. </para>
  7739. </change>

  7740. <change type="feature">
  7741. <para lang="ru">
  7742. директива include в блоке upstream.
  7743. </para>
  7744. <para lang="en">
  7745. the "include" directive inside the "upstream" block.
  7746. </para>
  7747. </change>

  7748. <change type="feature">
  7749. <para lang="ru">
  7750. модуль ngx_http_slice_module.
  7751. </para>
  7752. <para lang="en">
  7753. the ngx_http_slice_module.
  7754. </para>
  7755. </change>

  7756. <change type="bugfix">
  7757. <para lang="ru">
  7758. при использовании LibreSSL
  7759. в рабочем процессе мог произойти segmentation fault;
  7760. ошибка появилась в 1.9.6.
  7761. </para>
  7762. <para lang="en">
  7763. a segmentation fault might occur in a worker process
  7764. when using LibreSSL;
  7765. the bug had appeared in 1.9.6.
  7766. </para>
  7767. </change>

  7768. <change type="bugfix">
  7769. <para lang="ru">
  7770. nginx мог не собираться на OS X.
  7771. </para>
  7772. <para lang="en">
  7773. nginx could not be built on OS X in some cases.
  7774. </para>
  7775. </change>

  7776. </changes>


  7777. <changes ver="1.9.7" date="2015-11-17">

  7778. <change type="feature">
  7779. <para lang="ru">
  7780. параметр nohostname логгирования в syslog.
  7781. </para>
  7782. <para lang="en">
  7783. the "nohostname" parameter of logging to syslog.
  7784. </para>
  7785. </change>

  7786. <change type="feature">
  7787. <para lang="ru">
  7788. директива proxy_cache_convert_head.
  7789. </para>
  7790. <para lang="en">
  7791. the "proxy_cache_convert_head" directive.
  7792. </para>
  7793. </change>

  7794. <change type="feature">
  7795. <para lang="ru">
  7796. переменная $realip_remote_addr в модуле ngx_http_realip_module.
  7797. </para>
  7798. <para lang="en">
  7799. the $realip_remote_addr variable in the ngx_http_realip_module.
  7800. </para>
  7801. </change>

  7802. <change type="bugfix">
  7803. <para lang="ru">
  7804. директива expires могла не срабатывать при использовании переменных.
  7805. </para>
  7806. <para lang="en">
  7807. the "expires" directive might not work when using variables.
  7808. </para>
  7809. </change>

  7810. <change type="bugfix">
  7811. <para lang="ru">
  7812. при использовании HTTP/2
  7813. в рабочем процессе мог произойти segmentation fault;
  7814. ошибка появилась в 1.9.6.
  7815. </para>
  7816. <para lang="en">
  7817. a segmentation fault might occur in a worker process
  7818. when using HTTP/2;
  7819. the bug had appeared in 1.9.6.
  7820. </para>
  7821. </change>

  7822. <change type="bugfix">
  7823. <para lang="ru">
  7824. если nginx был собран с модулем ngx_http_v2_module,
  7825. протокол HTTP/2 мог быть использован клиентом,
  7826. даже если не был указан параметр http2 директивы listen.
  7827. </para>
  7828. <para lang="en">
  7829. if nginx was built with the ngx_http_v2_module
  7830. it was possible to use the HTTP/2 protocol
  7831. even if the "http2" parameter of the "listen" directive was not specified.
  7832. </para>
  7833. </change>

  7834. <change type="bugfix">
  7835. <para lang="ru">
  7836. в модуле ngx_http_v2_module.
  7837. </para>
  7838. <para lang="en">
  7839. in the ngx_http_v2_module.
  7840. </para>
  7841. </change>

  7842. </changes>


  7843. <changes ver="1.9.6" date="2015-10-27">

  7844. <change type="bugfix">
  7845. <para lang="ru">
  7846. при использовании HTTP/2
  7847. в рабочем процессе мог произойти segmentation fault.<br/>
  7848. Спасибо Piotr Sikora и Denis Andzakovic.
  7849. </para>
  7850. <para lang="en">
  7851. a segmentation fault might occur in a worker process
  7852. when using HTTP/2.<br/>
  7853. Thanks to Piotr Sikora and Denis Andzakovic.
  7854. </para>
  7855. </change>

  7856. <change type="bugfix">
  7857. <para lang="ru">
  7858. при использовании HTTP/2 переменная $server_protocol была пустой.
  7859. </para>
  7860. <para lang="en">
  7861. the $server_protocol variable was empty when using HTTP/2.
  7862. </para>
  7863. </change>

  7864. <change type="bugfix">
  7865. <para lang="ru">
  7866. SSL-соединения к бэкендам в модуле stream
  7867. могли неожиданно завершаться по таймауту.
  7868. </para>
  7869. <para lang="en">
  7870. backend SSL connections in the stream module
  7871. might be timed out unexpectedly.
  7872. </para>
  7873. </change>

  7874. <change type="bugfix">
  7875. <para lang="ru">
  7876. при использовании различных настроек ssl_session_cache
  7877. в разных виртуальных серверах
  7878. в рабочем процессе мог произойти segmentation fault.
  7879. </para>
  7880. <para lang="en">
  7881. a segmentation fault might occur in a worker process
  7882. if different ssl_session_cache settings were used
  7883. in different virtual servers.
  7884. </para>
  7885. </change>

  7886. <change type="bugfix">
  7887. <para lang="ru">
  7888. nginx/Windows не собирался с MinGW gcc;
  7889. ошибка появилась в 1.9.4.<br/>
  7890. Спасибо Kouhei Sutou.
  7891. </para>
  7892. <para lang="en">
  7893. nginx/Windows could not be built with MinGW gcc;
  7894. the bug had appeared in 1.9.4.<br/>
  7895. Thanks to Kouhei Sutou.
  7896. </para>
  7897. </change>

  7898. <change type="bugfix">
  7899. <para lang="ru">
  7900. при использовании директивы timer_resolution на Windows время не обновлялось.
  7901. </para>
  7902. <para lang="en">
  7903. time was not updated when the timer_resolution directive was used on Windows.
  7904. </para>
  7905. </change>

  7906. <change>
  7907. <para lang="ru">
  7908. Незначительные исправления и улучшения.<br/>
  7909. Спасибо Markus Linnala, Kurtis Nusbaum и Piotr Sikora.
  7910. </para>
  7911. <para lang="en">
  7912. Miscellaneous minor fixes and improvements.<br/>
  7913. Thanks to Markus Linnala, Kurtis Nusbaum and Piotr Sikora.
  7914. </para>
  7915. </change>

  7916. </changes>


  7917. <changes ver="1.9.5" date="2015-09-22">

  7918. <change type="feature">
  7919. <para lang="ru">
  7920. модуль ngx_http_v2_module (заменяет модуль ngx_http_spdy_module).<br/>
  7921. Спасибо Dropbox и Automattic за спонсирование разработки.
  7922. </para>
  7923. <para lang="en">
  7924. the ngx_http_v2_module (replaces ngx_http_spdy_module).<br/>
  7925. Thanks to Dropbox and Automattic for sponsoring this work.
  7926. </para>
  7927. </change>

  7928. <change type="change">
  7929. <para lang="ru">
  7930. теперь по умолчанию директива output_buffers использует два буфера.
  7931. </para>
  7932. <para lang="en">
  7933. now the "output_buffers" directive uses two buffers by default.
  7934. </para>
  7935. </change>

  7936. <change type="change">
  7937. <para lang="ru">
  7938. теперь nginx ограничивает максимальную вложенность подзапросов,
  7939. а не количество одновременных подзапросов.
  7940. </para>
  7941. <para lang="en">
  7942. now nginx limits subrequests recursion,
  7943. not simultaneous subrequests.
  7944. </para>
  7945. </change>

  7946. <change type="change">
  7947. <para lang="ru">
  7948. теперь при возврате ответов из кэша nginx проверяет ключ полностью.<br/>
  7949. Спасибо Геннадию Махомеду и Сергею Брестеру.
  7950. </para>
  7951. <para lang="en">
  7952. now nginx checks the whole cache key when returning a response from cache.<br/>
  7953. Thanks to Gena Makhomed and Sergey Brester.
  7954. </para>
  7955. </change>

  7956. <change type="bugfix">
  7957. <para lang="ru">
  7958. при использовании кэша
  7959. в логах могли появляться сообщения "header already sent";
  7960. ошибка появилась в 1.7.5.
  7961. </para>
  7962. <para lang="en">
  7963. "header already sent" alerts might appear in logs
  7964. when using cache;
  7965. the bug had appeared in 1.7.5.
  7966. </para>
  7967. </change>

  7968. <change type="bugfix">
  7969. <para lang="ru">
  7970. при использовании CephFS и директивы timer_resolution на Linux
  7971. в логах могли появляться сообщения
  7972. "writev() failed (4: Interrupted system call)".
  7973. </para>
  7974. <para lang="en">
  7975. "writev() failed (4: Interrupted system call)"
  7976. errors might appear in logs
  7977. when using CephFS and the "timer_resolution" directive on Linux.
  7978. </para>
  7979. </change>

  7980. <change type="bugfix">
  7981. <para lang="ru">
  7982. в обработке ошибок конфигурации.<br/>
  7983. Спасибо Markus Linnala.
  7984. </para>
  7985. <para lang="en">
  7986. in invalid configurations handling.<br/>
  7987. Thanks to Markus Linnala.
  7988. </para>
  7989. </change>

  7990. <change type="bugfix">
  7991. <para lang="ru">
  7992. при использовании директивы sub_filter на уровне http
  7993. в рабочем процессе происходил segmentation fault;
  7994. ошибка появилась в 1.9.4.
  7995. </para>
  7996. <para lang="en">
  7997. a segmentation fault occurred in a worker process
  7998. if the "sub_filter" directive was used at http level;
  7999. the bug had appeared in 1.9.4.
  8000. </para>
  8001. </change>

  8002. </changes>


  8003. <changes ver="1.9.4" date="2015-08-18">

  8004. <change type="change">
  8005. <para lang="ru">
  8006. директивы proxy_downstream_buffer и proxy_upstream_buffer в модуле stream
  8007. заменены директивой proxy_buffer_size.
  8008. </para>
  8009. <para lang="en">
  8010. the "proxy_downstream_buffer" and "proxy_upstream_buffer" directives
  8011. of the stream module are replaced with the "proxy_buffer_size" directive.
  8012. </para>
  8013. </change>

  8014. <change type="feature">
  8015. <para lang="ru">
  8016. директива tcp_nodelay в модуле stream.
  8017. </para>
  8018. <para lang="en">
  8019. the "tcp_nodelay" directive in the stream module.
  8020. </para>
  8021. </change>

  8022. <change type="feature">
  8023. <para lang="ru">
  8024. теперь можно указать несколько директив sub_filter одновременно.
  8025. </para>
  8026. <para lang="en">
  8027. multiple "sub_filter" directives can be used simultaneously.
  8028. </para>
  8029. </change>

  8030. <change type="feature">
  8031. <para lang="ru">
  8032. директива sub_filter поддерживает переменные в строке поиска.
  8033. </para>
  8034. <para lang="en">
  8035. variables support in the search string of the "sub_filter" directive.
  8036. </para>
  8037. </change>

  8038. <change type="workaround">
  8039. <para lang="ru">
  8040. тестирование конфигурации могло не работать под Linux OpenVZ.<br/>
  8041. Спасибо Геннадию Махомеду.
  8042. </para>
  8043. <para lang="en">
  8044. configuration testing might fail under Linux OpenVZ.<br/>
  8045. Thanks to Gena Makhomed.
  8046. </para>
  8047. </change>

  8048. <change type="bugfix">
  8049. <para lang="ru">
  8050. после переконфигурации старые рабочие процессы могли сильно нагружать процессор
  8051. при больших значениях worker_connections.
  8052. </para>
  8053. <para lang="en">
  8054. old worker processes might hog CPU after reconfiguration
  8055. with a large number of worker_connections.
  8056. </para>
  8057. </change>

  8058. <change type="bugfix">
  8059. <para lang="ru">
  8060. при совместном использовании директив try_files и alias
  8061. внутри location'а, заданного регулярным выражением,
  8062. в рабочем процессе мог произойти segmentation fault;
  8063. ошибка появилась в 1.7.1.
  8064. </para>
  8065. <para lang="en">
  8066. a segmentation fault might occur in a worker process
  8067. if the "try_files" and "alias" directives were used
  8068. inside a location given by a regular expression;
  8069. the bug had appeared in 1.7.1.
  8070. </para>
  8071. </change>

  8072. <change type="bugfix">
  8073. <para lang="ru">
  8074. директива try_files внутри вложенного location'а, заданного регулярным
  8075. выражением, работала неправильно, если во внешнем location'е использовалась
  8076. директива alias.
  8077. </para>
  8078. <para lang="en">
  8079. the "try_files" directive inside a nested location
  8080. given by a regular expression worked incorrectly
  8081. if the "alias" directive was used in the outer location.
  8082. </para>
  8083. </change>

  8084. <change type="bugfix">
  8085. <para lang="ru">
  8086. в обработке ошибок при построении хэш-таблиц.
  8087. </para>
  8088. <para lang="en">
  8089. in hash table initialization error handling.
  8090. </para>
  8091. </change>

  8092. <change type="bugfix">
  8093. <para lang="ru">
  8094. nginx не собирался с Visual Studio 2015.
  8095. </para>
  8096. <para lang="en">
  8097. nginx could not be built with Visual Studio 2015.
  8098. </para>
  8099. </change>

  8100. </changes>


  8101. <changes ver="1.9.3" date="2015-07-14">

  8102. <change type="change">
  8103. <para lang="ru">
  8104. дублирующиеся блоки http, mail и stream теперь запрещены.
  8105. </para>
  8106. <para lang="en">
  8107. duplicate "http", "mail", and "stream" blocks are now disallowed.
  8108. </para>
  8109. </change>

  8110. <change type="feature">
  8111. <para lang="ru">
  8112. ограничение количества соединений в модуле stream.
  8113. </para>
  8114. <para lang="en">
  8115. connection limiting in the stream module.
  8116. </para>
  8117. </change>

  8118. <change type="feature">
  8119. <para lang="ru">
  8120. ограничение скорости в модуле stream.
  8121. </para>
  8122. <para lang="en">
  8123. data rate limiting in the stream module.
  8124. </para>
  8125. </change>

  8126. <change type="bugfix">
  8127. <para lang="ru">
  8128. директива zone в блоке upstream не работала на Windows.
  8129. </para>
  8130. <para lang="en">
  8131. the "zone" directive inside the "upstream" block did not work on Windows.
  8132. </para>
  8133. </change>

  8134. <change type="bugfix">
  8135. <para lang="ru">
  8136. совместимость с LibreSSL в модуле stream.<br/>
  8137. Спасибо Piotr Sikora.
  8138. </para>
  8139. <para lang="en">
  8140. compatibility with LibreSSL in the stream module.<br/>
  8141. Thanks to Piotr Sikora.
  8142. </para>
  8143. </change>

  8144. <change type="bugfix">
  8145. <para lang="ru">
  8146. в параметре --builddir в configure.<br/>
  8147. Спасибо Piotr Sikora.
  8148. </para>
  8149. <para lang="en">
  8150. in the "--builddir" configure parameter.<br/>
  8151. Thanks to Piotr Sikora.
  8152. </para>
  8153. </change>

  8154. <change type="bugfix">
  8155. <para lang="ru">
  8156. директива ssl_stapling_file не работала;
  8157. ошибка появилась в 1.9.2.<br/>
  8158. Спасибо Faidon Liambotis и Brandon Black.
  8159. </para>
  8160. <para lang="en">
  8161. the "ssl_stapling_file" directive did not work;
  8162. the bug had appeared in 1.9.2.<br/>
  8163. Thanks to Faidon Liambotis and Brandon Black.
  8164. </para>
  8165. </change>

  8166. <change type="bugfix">
  8167. <para lang="ru">
  8168. при использовании директивы ssl_stapling
  8169. в рабочем процессе мог произойти segmentation fault;
  8170. ошибка появилась в 1.9.2.<br/>
  8171. Спасибо Matthew Baldwin.
  8172. </para>
  8173. <para lang="en">
  8174. a segmentation fault might occur in a worker process
  8175. if the "ssl_stapling" directive was used;
  8176. the bug had appeared in 1.9.2.<br/>
  8177. Thanks to Matthew Baldwin.
  8178. </para>
  8179. </change>

  8180. </changes>


  8181. <changes ver="1.9.2" date="2015-06-16">

  8182. <change type="feature">
  8183. <para lang="ru">
  8184. параметр backlog директивы listen
  8185. в почтовом прокси-сервере и модуле stream.
  8186. </para>
  8187. <para lang="en">
  8188. the "backlog" parameter of the "listen" directives
  8189. of the mail proxy and stream modules.
  8190. </para>
  8191. </change>

  8192. <change type="feature">
  8193. <para lang="ru">
  8194. директивы allow и deny в модуле stream.
  8195. </para>
  8196. <para lang="en">
  8197. the "allow" and "deny" directives in the stream module.
  8198. </para>
  8199. </change>

  8200. <change type="feature">
  8201. <para lang="ru">
  8202. директива proxy_bind в модуле stream.
  8203. </para>
  8204. <para lang="en">
  8205. the "proxy_bind" directive in the stream module.
  8206. </para>
  8207. </change>

  8208. <change type="feature">
  8209. <para lang="ru">
  8210. директива proxy_protocol в модуле stream.
  8211. </para>
  8212. <para lang="en">
  8213. the "proxy_protocol" directive in the stream module.
  8214. </para>
  8215. </change>

  8216. <change type="feature">
  8217. <para lang="ru">
  8218. ключ -T.
  8219. </para>
  8220. <para lang="en">
  8221. the -T switch.
  8222. </para>
  8223. </change>

  8224. <change type="feature">
  8225. <para lang="ru">
  8226. параметр REQUEST_SCHEME добавлен в стандартные конфигурационные файлы
  8227. fastcgi.conf, fastcgi_params, scgi_params и uwsgi_params.
  8228. </para>
  8229. <para lang="en">
  8230. the REQUEST_SCHEME parameter added to the fastcgi.conf, fastcgi_params,
  8231. scgi_params, and uwsgi_params standard configuration files.
  8232. </para>
  8233. </change>

  8234. <change type="bugfix">
  8235. <para lang="ru">
  8236. параметр reuseport директивы listen в модуле stream
  8237. не работал.
  8238. </para>
  8239. <para lang="en">
  8240. the "reuseport" parameter of the "listen" directive of the stream module
  8241. did not work.
  8242. </para>
  8243. </change>

  8244. <change type="bugfix">
  8245. <para lang="ru">
  8246. OCSP stapling в некоторых случаях мог вернуть устаревший OCSP-ответ.
  8247. </para>
  8248. <para lang="en">
  8249. OCSP stapling might return an expired OCSP response in some cases.
  8250. </para>
  8251. </change>

  8252. </changes>


  8253. <changes ver="1.9.1" date="2015-05-26">

  8254. <change type="change">
  8255. <para lang="ru">
  8256. теперь протокол SSLv3 по умолчанию запрещён.
  8257. </para>
  8258. <para lang="en">
  8259. now SSLv3 protocol is disabled by default.
  8260. </para>
  8261. </change>

  8262. <change type="change">
  8263. <para lang="ru">
  8264. некоторые давно устаревшие директивы больше не поддерживаются.
  8265. </para>
  8266. <para lang="en">
  8267. some long deprecated directives are not supported anymore.
  8268. </para>
  8269. </change>

  8270. <change type="feature">
  8271. <para lang="ru">
  8272. параметр reuseport директивы listen.<br/>
  8273. Спасибо Yingqi Lu из Intel и Sepherosa Ziehau.
  8274. </para>
  8275. <para lang="en">
  8276. the "reuseport" parameter of the "listen" directive.<br/>
  8277. Thanks to Yingqi Lu at Intel and Sepherosa Ziehau.
  8278. </para>
  8279. </change>

  8280. <change type="feature">
  8281. <para lang="ru">
  8282. переменная $upstream_connect_time.
  8283. </para>
  8284. <para lang="en">
  8285. the $upstream_connect_time variable.
  8286. </para>
  8287. </change>

  8288. <change type="bugfix">
  8289. <para lang="ru">
  8290. в директиве hash на big-endian платформах.
  8291. </para>
  8292. <para lang="en">
  8293. in the "hash" directive on big-endian platforms.
  8294. </para>
  8295. </change>

  8296. <change type="bugfix">
  8297. <para lang="ru">
  8298. nginx мог не запускаться на некоторых старых версиях Linux;
  8299. ошибка появилась в 1.7.11.
  8300. </para>
  8301. <para lang="en">
  8302. nginx might fail to start on some old Linux variants;
  8303. the bug had appeared in 1.7.11.
  8304. </para>
  8305. </change>

  8306. <change type="bugfix">
  8307. <para lang="ru">
  8308. в парсинге IP-адресов.<br/>
  8309. Спасибо Сергею Половко.
  8310. </para>
  8311. <para lang="en">
  8312. in IP address parsing.<br/>
  8313. Thanks to Sergey Polovko.
  8314. </para>
  8315. </change>

  8316. </changes>


  8317. <changes ver="1.9.0" date="2015-04-28">

  8318. <change type="change">
  8319. <para lang="ru">
  8320. устаревшие методы обработки соединений aio и rtsig больше не поддерживаются.
  8321. </para>
  8322. <para lang="en">
  8323. obsolete aio and rtsig event methods have been removed.
  8324. </para>
  8325. </change>

  8326. <change type="feature">
  8327. <para lang="ru">
  8328. директива zone в блоке upstream.
  8329. </para>
  8330. <para lang="en">
  8331. the "zone" directive inside the "upstream" block.
  8332. </para>
  8333. </change>

  8334. <change type="feature">
  8335. <para lang="ru">
  8336. модуль stream.
  8337. </para>
  8338. <para lang="en">
  8339. the stream module.
  8340. </para>
  8341. </change>

  8342. <change type="feature">
  8343. <para lang="ru">
  8344. поддержка byte ranges для ответов модуля ngx_http_memcached_module.<br/>
  8345. Спасибо Martin Mlynář.
  8346. </para>
  8347. <para lang="en">
  8348. byte ranges support in the ngx_http_memcached_module.<br/>
  8349. Thanks to Martin Mlynář.
  8350. </para>
  8351. </change>

  8352. <change type="feature">
  8353. <para lang="ru">
  8354. разделяемую память теперь можно использовать на версиях Windows
  8355. с рандомизацией адресного пространства.<br/>
  8356. Спасибо Сергею Брестеру.
  8357. </para>
  8358. <para lang="en">
  8359. shared memory can now be used on Windows versions
  8360. with address space layout randomization.<br/>
  8361. Thanks to Sergey Brester.
  8362. </para>
  8363. </change>

  8364. <change type="feature">
  8365. <para lang="ru">
  8366. директиву error_log теперь можно использовать
  8367. на уровнях mail и server в почтовом прокси-сервере.
  8368. </para>
  8369. <para lang="en">
  8370. the "error_log" directive can now be used
  8371. on mail and server levels in mail proxy.
  8372. </para>
  8373. </change>

  8374. <change type="bugfix">
  8375. <para lang="ru">
  8376. параметр proxy_protocol директивы listen не работал,
  8377. если не был указан в первой директиве listen для данного listen-сокета.
  8378. </para>
  8379. <para lang="en">
  8380. the "proxy_protocol" parameter of the "listen" directive did not work
  8381. if not specified in the first "listen" directive for a listen socket.
  8382. </para>
  8383. </change>

  8384. </changes>


  8385. <changes ver="1.7.12" date="2015-04-07">

  8386. <change type="feature">
  8387. <para lang="ru">
  8388. теперь директива tcp_nodelay работает для SSL-соединений с бэкендами.
  8389. </para>
  8390. <para lang="en">
  8391. now the "tcp_nodelay" directive works with backend SSL connections.
  8392. </para>
  8393. </change>

  8394. <change type="feature">
  8395. <para lang="ru">
  8396. теперь потоки могут использоваться для чтения заголовков файлов в кэше.
  8397. </para>
  8398. <para lang="en">
  8399. now thread pools can be used to read cache file headers.
  8400. </para>
  8401. </change>

  8402. <change type="bugfix">
  8403. <para lang="ru">
  8404. в директиве proxy_request_buffering.
  8405. </para>
  8406. <para lang="en">
  8407. in the "proxy_request_buffering" directive.
  8408. </para>
  8409. </change>

  8410. <change type="bugfix">
  8411. <para lang="ru">
  8412. при использовании потоков на Linux
  8413. в рабочем процессе мог произойти segmentation fault.
  8414. </para>
  8415. <para lang="en">
  8416. a segmentation fault might occur in a worker process
  8417. when using thread pools on Linux.
  8418. </para>
  8419. </change>

  8420. <change type="bugfix">
  8421. <para lang="ru">
  8422. в обработке ошибок при использовании директивы ssl_stapling.<br/>
  8423. Спасибо Filipe da Silva.
  8424. </para>
  8425. <para lang="en">
  8426. in error handling when using the "ssl_stapling" directive.<br/>
  8427. Thanks to Filipe da Silva.
  8428. </para>
  8429. </change>

  8430. <change type="bugfix">
  8431. <para lang="ru">
  8432. в модуле ngx_http_spdy_module.
  8433. </para>
  8434. <para lang="en">
  8435. in the ngx_http_spdy_module.
  8436. </para>
  8437. </change>

  8438. </changes>


  8439. <changes ver="1.7.11" date="2015-03-24">

  8440. <change type="change">
  8441. <para lang="ru">
  8442. параметр sendfile директивы aio более не нужен;
  8443. теперь nginx автоматически использует AIO для подгрузки данных для sendfile,
  8444. если одновременно используются директивы aio и sendfile.
  8445. </para>
  8446. <para lang="en">
  8447. the "sendfile" parameter of the "aio" directive is deprecated;
  8448. now nginx automatically uses AIO to pre-load data for sendfile
  8449. if both "aio" and "sendfile" directives are used.
  8450. </para>
  8451. </change>

  8452. <change type="feature">
  8453. <para lang="ru">
  8454. экспериментальная поддержка потоков.
  8455. </para>
  8456. <para lang="en">
  8457. experimental thread pools support.
  8458. </para>
  8459. </change>

  8460. <change type="feature">
  8461. <para lang="ru">
  8462. директивы proxy_request_buffering, fastcgi_request_buffering,
  8463. scgi_request_buffering и uwsgi_request_buffering.
  8464. </para>
  8465. <para lang="en">
  8466. the "proxy_request_buffering", "fastcgi_request_buffering",
  8467. "scgi_request_buffering", and "uwsgi_request_buffering" directives.
  8468. </para>
  8469. </change>

  8470. <change type="feature">
  8471. <para lang="ru">
  8472. экспериментальное API для обработки тела запроса.
  8473. </para>
  8474. <para lang="en">
  8475. request body filters experimental API.
  8476. </para>
  8477. </change>

  8478. <change type="feature">
  8479. <para lang="ru">
  8480. проверка клиентских SSL-сертификатов в почтовом прокси-сервере.<br/>
  8481. Спасибо Sven Peter, Franck Levionnois и Filipe Da Silva.
  8482. </para>
  8483. <para lang="en">
  8484. client SSL certificates support in mail proxy.<br/>
  8485. Thanks to Sven Peter, Franck Levionnois, and Filipe Da Silva.
  8486. </para>
  8487. </change>

  8488. <change type="feature">
  8489. <para lang="ru">
  8490. уменьшение времени запуска
  8491. при использовании директивы "hash ... consistent" в блоке upstream.<br/>
  8492. Спасибо Wai Keen Woon.
  8493. </para>
  8494. <para lang="en">
  8495. startup speedup
  8496. when using the "hash ... consistent" directive in the upstream block.<br/>
  8497. Thanks to Wai Keen Woon.
  8498. </para>
  8499. </change>

  8500. <change type="feature">
  8501. <para lang="ru">
  8502. отладочное логгирование в кольцевой буфер в памяти.
  8503. </para>
  8504. <para lang="en">
  8505. debug logging into a cyclic memory buffer.
  8506. </para>
  8507. </change>

  8508. <change type="bugfix">
  8509. <para lang="ru">
  8510. в обработке хэш-таблиц.<br/>
  8511. Спасибо Chris West.
  8512. </para>
  8513. <para lang="en">
  8514. in hash table handling.<br/>
  8515. Thanks to Chris West.
  8516. </para>
  8517. </change>

  8518. <change type="bugfix">
  8519. <para lang="ru">
  8520. в директиве proxy_cache_revalidate.
  8521. </para>
  8522. <para lang="en">
  8523. in the "proxy_cache_revalidate" directive.
  8524. </para>
  8525. </change>

  8526. <change type="bugfix">
  8527. <para lang="ru">
  8528. SSL-соединения могли зависать, если использовался отложенный accept
  8529. или параметр proxy_protocol директивы listen.<br/>
  8530. Спасибо James Hamlin.
  8531. </para>
  8532. <para lang="en">
  8533. SSL connections might hang if deferred accept
  8534. or the "proxy_protocol" parameter of the "listen" directive were used.<br/>
  8535. Thanks to James Hamlin.
  8536. </para>
  8537. </change>

  8538. <change type="bugfix">
  8539. <para lang="ru">
  8540. переменная $upstream_response_time могла содержать неверное значение
  8541. при использовании директивы image_filter.
  8542. </para>
  8543. <para lang="en">
  8544. the $upstream_response_time variable might contain a wrong value
  8545. if the "image_filter" directive was used.
  8546. </para>
  8547. </change>

  8548. <change type="bugfix">
  8549. <para lang="ru">
  8550. в обработке целочисленных переполнений.<br/>
  8551. Спасибо Régis Leroy.
  8552. </para>
  8553. <para lang="en">
  8554. in integer overflow handling.<br/>
  8555. Thanks to Régis Leroy.
  8556. </para>
  8557. </change>

  8558. <change type="bugfix">
  8559. <para lang="ru">
  8560. при использовании LibreSSL было невозможно включить поддержку SSLv3.
  8561. </para>
  8562. <para lang="en">
  8563. it was not possible to enable SSLv3 with LibreSSL.
  8564. </para>
  8565. </change>

  8566. <change type="bugfix">
  8567. <para lang="ru">
  8568. при использовании LibreSSL в логах появлялись сообщения
  8569. "ignoring stale global SSL error ... called a function you should not call".
  8570. </para>
  8571. <para lang="en">
  8572. the "ignoring stale global SSL error ... called a function you should not call"
  8573. alerts appeared in logs when using LibreSSL.
  8574. </para>
  8575. </change>

  8576. <change type="bugfix">
  8577. <para lang="ru">
  8578. сертификаты, указанные в директивах ssl_client_certificate и
  8579. ssl_trusted_certificate, использовались
  8580. для автоматического построения цепочек сертификатов.
  8581. </para>
  8582. <para lang="en">
  8583. certificates specified by the "ssl_client_certificate" and
  8584. "ssl_trusted_certificate" directives were inadvertently used
  8585. to automatically construct certificate chains.
  8586. </para>
  8587. </change>

  8588. </changes>


  8589. <changes ver="1.7.10" date="2015-02-10">

  8590. <change type="feature">
  8591. <para lang="ru">
  8592. параметр use_temp_path директив proxy_cache_path, fastcgi_cache_path,
  8593. scgi_cache_path и uwsgi_cache_path.
  8594. </para>
  8595. <para lang="en">
  8596. the "use_temp_path" parameter of the "proxy_cache_path", "fastcgi_cache_path",
  8597. "scgi_cache_path", and "uwsgi_cache_path" directives.
  8598. </para>
  8599. </change>

  8600. <change type="feature">
  8601. <para lang="ru">
  8602. переменная $upstream_header_time.
  8603. </para>
  8604. <para lang="en">
  8605. the $upstream_header_time variable.
  8606. </para>
  8607. </change>

  8608. <change type="workaround">
  8609. <para lang="ru">
  8610. теперь при переполнении диска nginx пытается писать error_log'и только
  8611. раз в секунду.
  8612. </para>
  8613. <para lang="en">
  8614. now on disk overflow nginx tries to write error logs once a second only.
  8615. </para>
  8616. </change>

  8617. <change type="bugfix">
  8618. <para lang="ru">
  8619. директива try_files при тестировании каталогов
  8620. не игнорировала обычные файлы.<br/>
  8621. Спасибо Damien Tournoud.
  8622. </para>
  8623. <para lang="en">
  8624. the "try_files" directive did not ignore normal files
  8625. while testing directories.<br/>
  8626. Thanks to Damien Tournoud.
  8627. </para>
  8628. </change>

  8629. <change type="bugfix">
  8630. <para lang="ru">
  8631. при использовании директивы sendfile на OS X
  8632. возникали ошибки "sendfile() failed";
  8633. ошибка появилась в nginx 1.7.8.
  8634. </para>
  8635. <para lang="en">
  8636. alerts "sendfile() failed"
  8637. if the "sendfile" directive was used on OS X;
  8638. the bug had appeared in 1.7.8.
  8639. </para>
  8640. </change>

  8641. <change type="bugfix">
  8642. <para lang="ru">
  8643. в лог могли писаться сообщения "sem_post() failed".
  8644. </para>
  8645. <para lang="en">
  8646. alerts "sem_post() failed" might appear in logs.
  8647. </para>
  8648. </change>

  8649. <change type="bugfix">
  8650. <para lang="ru">
  8651. nginx не собирался с musl libc.<br/>
  8652. Спасибо James Taylor.
  8653. </para>
  8654. <para lang="en">
  8655. nginx could not be built with musl libc.<br/>
  8656. Thanks to James Taylor.
  8657. </para>
  8658. </change>

  8659. <change type="bugfix">
  8660. <para lang="ru">
  8661. nginx не собирался на Tru64 UNIX.<br/>
  8662. Спасибо Goetz T. Fischer.
  8663. </para>
  8664. <para lang="en">
  8665. nginx could not be built on Tru64 UNIX.<br/>
  8666. Thanks to Goetz T. Fischer.
  8667. </para>
  8668. </change>

  8669. </changes>


  8670. <changes ver="1.7.9" date="2014-12-23">

  8671. <change type="feature">
  8672. <para lang="ru">
  8673. директивы proxy_cache, fastcgi_cache, scgi_cache и uwsgi_cache
  8674. поддерживают переменные.
  8675. </para>
  8676. <para lang="en">
  8677. variables support in the "proxy_cache", "fastcgi_cache", "scgi_cache",
  8678. and "uwsgi_cache" directives.
  8679. </para>
  8680. </change>

  8681. <change type="feature">
  8682. <para lang="ru">
  8683. директива expires поддерживает переменные.
  8684. </para>
  8685. <para lang="en">
  8686. variables support in the "expires" directive.
  8687. </para>
  8688. </change>

  8689. <change type="feature">
  8690. <para lang="ru">
  8691. возможность загрузки секретных ключей с аппаратных устройств
  8692. с помощью OpenSSL engines.<br/>
  8693. Спасибо Дмитрию Пичулину.
  8694. </para>
  8695. <para lang="en">
  8696. loading of secret keys from hardware tokens
  8697. with OpenSSL engines.<br/>
  8698. Thanks to Dmitrii Pichulin.
  8699. </para>
  8700. </change>

  8701. <change type="feature">
  8702. <para lang="ru">
  8703. директива autoindex_format.
  8704. </para>
  8705. <para lang="en">
  8706. the "autoindex_format" directive.
  8707. </para>
  8708. </change>

  8709. <change type="bugfix">
  8710. <para lang="ru">
  8711. ревалидация элементов кэша теперь используется только для ответов
  8712. с кодами 200 и 206.<br/>
  8713. Спасибо Piotr Sikora.
  8714. </para>
  8715. <para lang="en">
  8716. cache revalidation is now only used for responses
  8717. with 200 and 206 status codes.<br/>
  8718. Thanks to Piotr Sikora.
  8719. </para>
  8720. </change>

  8721. <change type="bugfix">
  8722. <para lang="ru">
  8723. строка "TE" заголовка запроса клиента передавалась на бэкенд при проксировании.
  8724. </para>
  8725. <para lang="en">
  8726. the "TE" client request header line was passed to backends while proxying.
  8727. </para>
  8728. </change>

  8729. <change type="bugfix">
  8730. <para lang="ru">
  8731. директивы proxy_pass, fastcgi_pass, scgi_pass и uwsgi_pass
  8732. могли неправильно работать внутри блоков if и limit_except.
  8733. </para>
  8734. <para lang="en">
  8735. the "proxy_pass", "fastcgi_pass", "scgi_pass", and "uwsgi_pass" directives
  8736. might not work correctly inside the "if" and "limit_except" blocks.
  8737. </para>
  8738. </change>

  8739. <change type="bugfix">
  8740. <para lang="ru">
  8741. директива proxy_store с параметром "on" игнорировалась,
  8742. если на предыдущем уровне использовалась директива proxy_store
  8743. с явно заданным путём к файлам.
  8744. </para>
  8745. <para lang="en">
  8746. the "proxy_store" directive with the "on" parameter was ignored
  8747. if the "proxy_store" directive with an explicitly specified file path
  8748. was used on a previous level.
  8749. </para>
  8750. </change>

  8751. <change type="bugfix">
  8752. <para lang="ru">
  8753. nginx не собирался с BoringSSL.<br/>
  8754. Спасибо Lukas Tribus.
  8755. </para>
  8756. <para lang="en">
  8757. nginx could not be built with BoringSSL.<br/>
  8758. Thanks to Lukas Tribus.
  8759. </para>
  8760. </change>

  8761. </changes>


  8762. <changes ver="1.7.8" date="2014-12-02">

  8763. <change type="change">
  8764. <para lang="ru">
  8765. теперь строки "If-Modified-Since", "If-Range" и им подобные
  8766. в заголовке запроса клиента передаются бэкенду при включённом кэшировании,
  8767. если nginx заранее знает, что не будет кэшировать ответ
  8768. (например, при использовании proxy_cache_min_uses).
  8769. </para>
  8770. <para lang="en">
  8771. now the "If-Modified-Since", "If-Range", etc.
  8772. client request header lines are passed to a backend while caching
  8773. if nginx knows in advance that the response will not be cached
  8774. (e.g., when using proxy_cache_min_uses).
  8775. </para>
  8776. </change>

  8777. <change type="change">
  8778. <para lang="ru">
  8779. теперь после истечения proxy_cache_lock_timeout
  8780. nginx отправляет запрос на бэкенд без кэширования;
  8781. новые директивы proxy_cache_lock_age, fastcgi_cache_lock_age,
  8782. scgi_cache_lock_age и uwsgi_cache_lock_age позволяют указать,
  8783. через какое время блокировка будет принудительно снята
  8784. и будет сделана ещё одна попытка закэшировать ответ.
  8785. </para>
  8786. <para lang="en">
  8787. now after proxy_cache_lock_timeout
  8788. nginx sends a request to a backend with caching disabled;
  8789. the new directives "proxy_cache_lock_age", "fastcgi_cache_lock_age",
  8790. "scgi_cache_lock_age", and "uwsgi_cache_lock_age" specify a time
  8791. after which the lock will be released
  8792. and another attempt to cache a response will be made.
  8793. </para>
  8794. </change>

  8795. <change type="change">
  8796. <para lang="ru">
  8797. директива log_format теперь может использоваться только на уровне http.
  8798. </para>
  8799. <para lang="en">
  8800. the "log_format" directive can now be used only at http level.
  8801. </para>
  8802. </change>

  8803. <change type="feature">
  8804. <para lang="ru">
  8805. директивы proxy_ssl_certificate, proxy_ssl_certificate_key,
  8806. proxy_ssl_password_file, uwsgi_ssl_certificate,
  8807. uwsgi_ssl_certificate_key и uwsgi_ssl_password_file.<br/>
  8808. Спасибо Piotr Sikora.
  8809. </para>
  8810. <para lang="en">
  8811. the "proxy_ssl_certificate", "proxy_ssl_certificate_key",
  8812. "proxy_ssl_password_file", "uwsgi_ssl_certificate",
  8813. "uwsgi_ssl_certificate_key", and "uwsgi_ssl_password_file" directives.<br/>
  8814. Thanks to Piotr Sikora.
  8815. </para>
  8816. </change>

  8817. <change type="feature">
  8818. <para lang="ru">
  8819. теперь с помощью X-Accel-Redirect
  8820. можно перейти в именованный location.<br/>
  8821. Спасибо Toshikuni Fukaya.
  8822. </para>
  8823. <para lang="en">
  8824. it is now possible to switch to a named location
  8825. using "X-Accel-Redirect".<br/>
  8826. Thanks to Toshikuni Fukaya.
  8827. </para>
  8828. </change>

  8829. <change type="feature">
  8830. <para lang="ru">
  8831. теперь директива tcp_nodelay работает для SPDY-соединений.
  8832. </para>
  8833. <para lang="en">
  8834. now the "tcp_nodelay" directive works with SPDY connections.
  8835. </para>
  8836. </change>

  8837. <change type="feature">
  8838. <para lang="ru">
  8839. новые директивы в скриптах подсветки синтаксиса для vim.<br/>
  8840. Спасибо Peter Wu.
  8841. </para>
  8842. <para lang="en">
  8843. new directives in vim syntax highliting scripts.<br/>
  8844. Thanks to Peter Wu.
  8845. </para>
  8846. </change>

  8847. <change type="bugfix">
  8848. <para lang="ru">
  8849. nginx игнорировал значение "s-maxage"
  8850. в строке "Cache-Control" в заголовке ответа бэкенда.<br/>
  8851. Спасибо Piotr Sikora.
  8852. </para>
  8853. <para lang="en">
  8854. nginx ignored the "s-maxage" value
  8855. in the "Cache-Control" backend response header line.<br/>
  8856. Thanks to Piotr Sikora.
  8857. </para>
  8858. </change>

  8859. <change type="bugfix">
  8860. <para lang="ru">
  8861. в модуле ngx_http_spdy_module.<br/>
  8862. Спасибо Piotr Sikora.
  8863. </para>
  8864. <para lang="en">
  8865. in the ngx_http_spdy_module.<br/>
  8866. Thanks to Piotr Sikora.
  8867. </para>
  8868. </change>

  8869. <change type="bugfix">
  8870. <para lang="ru">
  8871. в директиве ssl_password_file
  8872. при использовании OpenSSL 0.9.8zc, 1.0.0o, 1.0.1j.
  8873. </para>
  8874. <para lang="en">
  8875. in the "ssl_password_file" directive
  8876. when using OpenSSL 0.9.8zc, 1.0.0o, 1.0.1j.
  8877. </para>
  8878. </change>

  8879. <change type="bugfix">
  8880. <para lang="ru">
  8881. при использовании директивы post_action
  8882. в лог писались сообщения "header already sent";
  8883. ошибка появилась в nginx 1.5.4.
  8884. </para>
  8885. <para lang="en">
  8886. alerts "header already sent" appeared in logs
  8887. if the "post_action" directive was used;
  8888. the bug had appeared in 1.5.4.
  8889. </para>
  8890. </change>

  8891. <change type="bugfix">
  8892. <para lang="ru">
  8893. при использовании директивы "postpone_output 0" с SSI-подзапросами
  8894. в лог могли писаться сообщения "the http output chain is empty".
  8895. </para>
  8896. <para lang="en">
  8897. alerts "the http output chain is empty" might appear in logs
  8898. if the "postpone_output 0" directive was used with SSI includes.
  8899. </para>
  8900. </change>

  8901. <change type="bugfix">
  8902. <para lang="ru">
  8903. в директиве proxy_cache_lock при использовании SSI-подзапросов.<br/>
  8904. Спасибо Yichun Zhang.
  8905. </para>
  8906. <para lang="en">
  8907. in the "proxy_cache_lock" directive with SSI subrequests.<br/>
  8908. Thanks to Yichun Zhang.
  8909. </para>
  8910. </change>

  8911. </changes>


  8912. <changes ver="1.7.7" date="2014-10-28">

  8913. <change type="change">
  8914. <para lang="ru">
  8915. теперь nginx учитывает при кэшировании строку "Vary"
  8916. в заголовке ответа бэкенда.
  8917. </para>
  8918. <para lang="en">
  8919. now nginx takes into account the "Vary"
  8920. header line in a backend response while caching.
  8921. </para>
  8922. </change>

  8923. <change type="feature">
  8924. <para lang="ru">
  8925. директивы proxy_force_ranges, fastcgi_force_ranges,
  8926. scgi_force_ranges и uwsgi_force_ranges.
  8927. </para>
  8928. <para lang="en">
  8929. the "proxy_force_ranges", "fastcgi_force_ranges",
  8930. "scgi_force_ranges", and "uwsgi_force_ranges" directives.
  8931. </para>
  8932. </change>

  8933. <change type="feature">
  8934. <para lang="ru">
  8935. директивы proxy_limit_rate, fastcgi_limit_rate,
  8936. scgi_limit_rate и uwsgi_limit_rate.
  8937. </para>
  8938. <para lang="en">
  8939. the "proxy_limit_rate", "fastcgi_limit_rate",
  8940. "scgi_limit_rate", and "uwsgi_limit_rate" directives.
  8941. </para>
  8942. </change>

  8943. <change type="feature">
  8944. <para lang="ru">
  8945. параметр Vary директив proxy_ignore_headers, fastcgi_ignore_headers,
  8946. scgi_ignore_headers и uwsgi_ignore_headers.
  8947. </para>
  8948. <para lang="en">
  8949. the "Vary" parameter of the "proxy_ignore_headers", "fastcgi_ignore_headers",
  8950. "scgi_ignore_headers", and "uwsgi_ignore_headers" directives.
  8951. </para>
  8952. </change>

  8953. <change type="bugfix">
  8954. <para lang="ru">
  8955. последняя часть ответа, полученного от бэкенда
  8956. при небуферизированном проксировании,
  8957. могла не отправляться клиенту,
  8958. если использовались директивы gzip или gunzip.
  8959. </para>
  8960. <para lang="en">
  8961. the last part of a response received from a backend
  8962. with unbufferred proxy
  8963. might not be sent to a client
  8964. if "gzip" or "gunzip" directives were used.
  8965. </para>
  8966. </change>

  8967. <change type="bugfix">
  8968. <para lang="ru">
  8969. в директиве proxy_cache_revalidate.<br/>
  8970. Спасибо Piotr Sikora.
  8971. </para>
  8972. <para lang="en">
  8973. in the "proxy_cache_revalidate" directive.<br/>
  8974. Thanks to Piotr Sikora.
  8975. </para>
  8976. </change>

  8977. <change type="bugfix">
  8978. <para lang="ru">
  8979. в обработке ошибок.<br/>
  8980. Спасибо Yichun Zhang и Даниилу Бондареву.
  8981. </para>
  8982. <para lang="en">
  8983. in error handling.<br/>
  8984. Thanks to Yichun Zhang and Daniil Bondarev.
  8985. </para>
  8986. </change>

  8987. <change type="bugfix">
  8988. <para lang="ru">
  8989. в директивах
  8990. proxy_next_upstream_tries и proxy_next_upstream_timeout.<br/>
  8991. Спасибо Feng Gu.
  8992. </para>
  8993. <para lang="en">
  8994. in the "proxy_next_upstream_tries" and "proxy_next_upstream_timeout"
  8995. directives.<br/>
  8996. Thanks to Feng Gu.
  8997. </para>
  8998. </change>

  8999. <change type="bugfix">
  9000. <para lang="ru">
  9001. nginx/Windows не собирался с MinGW-w64 gcc.<br/>
  9002. Спасибо Kouhei Sutou.
  9003. </para>
  9004. <para lang="en">
  9005. nginx/Windows could not be built with MinGW-w64 gcc.<br/>
  9006. Thanks to Kouhei Sutou.
  9007. </para>
  9008. </change>

  9009. </changes>


  9010. <changes ver="1.7.6" date="2014-09-30">

  9011. <change type="change">
  9012. <para lang="ru">
  9013. устаревшая директива limit_zone больше не поддерживается.
  9014. </para>
  9015. <para lang="en">
  9016. the deprecated "limit_zone" directive is not supported anymore.
  9017. </para>
  9018. </change>

  9019. <change type="feature">
  9020. <para lang="ru">
  9021. в директивах limit_conn_zone и limit_req_zone теперь можно использовать
  9022. комбинации нескольких переменных.
  9023. </para>
  9024. <para lang="en">
  9025. the "limit_conn_zone" and "limit_req_zone" directives now can be used
  9026. with combinations of multiple variables.
  9027. </para>
  9028. </change>

  9029. <change type="bugfix">
  9030. <para lang="ru">
  9031. при повторной отправке FastCGI-запроса на бэкенд
  9032. тело запроса могло передаваться неправильно.
  9033. </para>
  9034. <para lang="en">
  9035. request body might be transmitted incorrectly
  9036. when retrying a FastCGI request to the next upstream server.
  9037. </para>
  9038. </change>

  9039. <change type="bugfix">
  9040. <para lang="ru">
  9041. в логгировании в syslog.
  9042. </para>
  9043. <para lang="en">
  9044. in logging to syslog.
  9045. </para>
  9046. </change>

  9047. </changes>


  9048. <changes ver="1.7.5" date="2014-09-16">

  9049. <change type="security">
  9050. <para lang="ru">
  9051. при использовании общего для нескольких блоков server
  9052. разделяемого кэша SSL-сессий или общего ключа для шифрования
  9053. TLS session tickets было возможно повторно использовать
  9054. SSL-сессию в контексте другого блока server (CVE-2014-3616).<br/>
  9055. Спасибо Antoine Delignat-Lavaud.
  9056. </para>
  9057. <para lang="en">
  9058. it was possible to reuse SSL sessions in unrelated contexts
  9059. if a shared SSL session cache or the same TLS session ticket key
  9060. was used for multiple "server" blocks (CVE-2014-3616).<br/>
  9061. Thanks to Antoine Delignat-Lavaud.
  9062. </para>
  9063. </change>

  9064. <change type="change">
  9065. <para lang="ru">
  9066. директиву stub_status теперь можно указывать без параметров.
  9067. </para>
  9068. <para lang="en">
  9069. now the "stub_status" directive does not require a parameter.
  9070. </para>
  9071. </change>

  9072. <change type="feature">
  9073. <para lang="ru">
  9074. параметр always директивы add_header.
  9075. </para>
  9076. <para lang="en">
  9077. the "always" parameter of the "add_header" directive.
  9078. </para>
  9079. </change>

  9080. <change type="feature">
  9081. <para lang="ru">
  9082. директивы
  9083. proxy_next_upstream_tries, proxy_next_upstream_timeout,
  9084. fastcgi_next_upstream_tries, fastcgi_next_upstream_timeout,
  9085. memcached_next_upstream_tries, memcached_next_upstream_timeout,
  9086. scgi_next_upstream_tries, scgi_next_upstream_timeout,
  9087. uwsgi_next_upstream_tries и uwsgi_next_upstream_timeout.
  9088. </para>
  9089. <para lang="en">
  9090. the
  9091. "proxy_next_upstream_tries", "proxy_next_upstream_timeout",
  9092. "fastcgi_next_upstream_tries", "fastcgi_next_upstream_timeout",
  9093. "memcached_next_upstream_tries", "memcached_next_upstream_timeout",
  9094. "scgi_next_upstream_tries", "scgi_next_upstream_timeout",
  9095. "uwsgi_next_upstream_tries", and "uwsgi_next_upstream_timeout"
  9096. directives.
  9097. </para>
  9098. </change>

  9099. <change type="bugfix">
  9100. <para lang="ru">
  9101. в параметре if директивы access_log.
  9102. </para>
  9103. <para lang="en">
  9104. in the "if" parameter of the "access_log" directive.
  9105. </para>
  9106. </change>

  9107. <change type="bugfix">
  9108. <para lang="ru">
  9109. в модуле ngx_http_perl_module.<br/>
  9110. Спасибо Piotr Sikora.
  9111. </para>
  9112. <para lang="en">
  9113. in the ngx_http_perl_module.<br/>
  9114. Thanks to Piotr Sikora.
  9115. </para>
  9116. </change>

  9117. <change type="bugfix">
  9118. <para lang="ru">
  9119. директива listen почтового прокси-сервера
  9120. не позволяла указать более двух параметров.
  9121. </para>
  9122. <para lang="en">
  9123. the "listen" directive of the mail proxy module
  9124. did not allow to specify more than two parameters.
  9125. </para>
  9126. </change>

  9127. <change type="bugfix">
  9128. <para lang="ru">
  9129. директива sub_filter не работала
  9130. с заменяемой строкой из одного символа.
  9131. </para>
  9132. <para lang="en">
  9133. the "sub_filter" directive did not work
  9134. with a string to replace consisting of a single character.
  9135. </para>
  9136. </change>

  9137. <change type="bugfix">
  9138. <para lang="ru">
  9139. запросы могли зависать, если использовался resolver
  9140. и в процессе обращения к DNS-серверу происходил таймаут.
  9141. </para>
  9142. <para lang="en">
  9143. requests might hang if resolver was used
  9144. and a timeout occurred during a DNS request.
  9145. </para>
  9146. </change>

  9147. <change type="bugfix">
  9148. <para lang="ru">
  9149. в модуле ngx_http_spdy_module при использовании совместно с AIO.
  9150. </para>
  9151. <para lang="en">
  9152. in the ngx_http_spdy_module when using with AIO.
  9153. </para>
  9154. </change>

  9155. <change type="bugfix">
  9156. <para lang="ru">
  9157. в рабочем процессе мог произойти segmentation fault,
  9158. если с помощью директивы set изменялись переменные
  9159. "$http_...", "$sent_http_..." или "$upstream_http_...".
  9160. </para>
  9161. <para lang="en">
  9162. a segmentation fault might occur in a worker process
  9163. if the "set" directive was used to change the "$http_...",
  9164. "$sent_http_...", or "$upstream_http_..." variables.
  9165. </para>
  9166. </change>

  9167. <change type="bugfix">
  9168. <para lang="ru">
  9169. в обработке ошибок выделения памяти.<br/>
  9170. Спасибо Markus Linnala и Feng Gu.
  9171. </para>
  9172. <para lang="en">
  9173. in memory allocation error handling.<br/>
  9174. Thanks to Markus Linnala and Feng Gu.
  9175. </para>
  9176. </change>

  9177. </changes>


  9178. <changes ver="1.7.4" date="2014-08-05">

  9179. <change type="security">
  9180. <para lang="ru">
  9181. pipelined-команды не отбрасывались
  9182. после команды STARTTLS в SMTP прокси-сервере (CVE-2014-3556);
  9183. ошибка появилась в 1.5.6.<br/>
  9184. Спасибо Chris Boulton.
  9185. </para>
  9186. <para lang="en">
  9187. pipelined commands were not discarded
  9188. after STARTTLS command in SMTP proxy (CVE-2014-3556);
  9189. the bug had appeared in 1.5.6.<br/>
  9190. Thanks to Chris Boulton.
  9191. </para>
  9192. </change>

  9193. <change type="change">
  9194. <para lang="ru">
  9195. экранирование символов в URI теперь использует
  9196. шестнадцатеричные цифры в верхнем регистре.<br/>
  9197. Спасибо Piotr Sikora.
  9198. </para>
  9199. <para lang="en">
  9200. URI escaping now uses
  9201. uppercase hexadecimal digits.<br/>
  9202. Thanks to Piotr Sikora.
  9203. </para>
  9204. </change>

  9205. <change type="feature">
  9206. <para lang="ru">
  9207. теперь nginx можно собрать с BoringSSL и LibreSSL.<br/>
  9208. Спасибо Piotr Sikora.
  9209. </para>
  9210. <para lang="en">
  9211. now nginx can be built with BoringSSL and LibreSSL.<br/>
  9212. Thanks to Piotr Sikora.
  9213. </para>
  9214. </change>

  9215. <change type="bugfix">
  9216. <para lang="ru">
  9217. запросы могли зависать, если использовался resolver
  9218. и DNS-сервер возвращал некорректный ответ;
  9219. ошибка появилась в 1.5.8.
  9220. </para>
  9221. <para lang="en">
  9222. requests might hang if resolver was used
  9223. and a DNS server returned a malformed response;
  9224. the bug had appeared in 1.5.8.
  9225. </para>
  9226. </change>

  9227. <change type="bugfix">
  9228. <para lang="ru">
  9229. в модуле ngx_http_spdy_module.<br/>
  9230. Спасибо Piotr Sikora.
  9231. </para>
  9232. <para lang="en">
  9233. in the ngx_http_spdy_module.<br/>
  9234. Thanks to Piotr Sikora.
  9235. </para>
  9236. </change>

  9237. <change type="bugfix">
  9238. <para lang="ru">
  9239. переменная $uri могла содержать мусор
  9240. при возврате ошибок с кодом 400.<br/>
  9241. Спасибо Сергею Боброву.
  9242. </para>
  9243. <para lang="en">
  9244. the $uri variable might contain garbage
  9245. when returning errors with code 400.<br/>
  9246. Thanks to Sergey Bobrov.
  9247. </para>
  9248. </change>

  9249. <change type="bugfix">
  9250. <para lang="ru">
  9251. в обработке ошибок в директиве proxy_store
  9252. и в модуле ngx_http_dav_module.<br/>
  9253. Спасибо Feng Gu.
  9254. </para>
  9255. <para lang="en">
  9256. in error handling in the "proxy_store" directive
  9257. and the ngx_http_dav_module.<br/>
  9258. Thanks to Feng Gu.
  9259. </para>
  9260. </change>

  9261. <change type="bugfix">
  9262. <para lang="ru">
  9263. при логгировании ошибок в syslog мог происходить segmentation fault;
  9264. ошибка появилась в 1.7.1.
  9265. </para>
  9266. <para lang="en">
  9267. a segmentation fault might occur if logging of errors to syslog was used;
  9268. the bug had appeared in 1.7.1.
  9269. </para>
  9270. </change>

  9271. <change type="bugfix">
  9272. <para lang="ru">
  9273. переменные $geoip_latitude, $geoip_longitude, $geoip_dma_code
  9274. и $geoip_area_code могли не работать.<br/>
  9275. Спасибо Yichun Zhang.
  9276. </para>
  9277. <para lang="en">
  9278. the $geoip_latitude, $geoip_longitude, $geoip_dma_code,
  9279. and $geoip_area_code variables might not work.<br/>
  9280. Thanks to Yichun Zhang.
  9281. </para>
  9282. </change>

  9283. <change type="bugfix">
  9284. <para lang="ru">
  9285. в обработке ошибок выделения памяти.<br/>
  9286. Спасибо Tatsuhiko Kubo и Piotr Sikora.
  9287. </para>
  9288. <para lang="en">
  9289. in memory allocation error handling.<br/>
  9290. Thanks to Tatsuhiko Kubo and Piotr Sikora.
  9291. </para>
  9292. </change>

  9293. </changes>


  9294. <changes ver="1.7.3" date="2014-07-08">

  9295. <change type="feature">
  9296. <para lang="ru">
  9297. weak entity tags теперь не удаляются при изменениях ответа,
  9298. а strong entity tags преобразуются в weak.
  9299. </para>
  9300. <para lang="en">
  9301. weak entity tags are now preserved on response modifications,
  9302. and strong ones are changed to weak.
  9303. </para>
  9304. </change>

  9305. <change type="feature">
  9306. <para lang="ru">
  9307. ревалидация элементов кэша теперь, если это возможно,
  9308. использует заголовок If-None-Match.
  9309. </para>
  9310. <para lang="en">
  9311. cache revalidation now uses If-None-Match header
  9312. if possible.
  9313. </para>
  9314. </change>

  9315. <change type="feature">
  9316. <para lang="ru">
  9317. директива ssl_password_file.
  9318. </para>
  9319. <para lang="en">
  9320. the "ssl_password_file" directive.
  9321. </para>
  9322. </change>

  9323. <change type="bugfix">
  9324. <para lang="ru">
  9325. при возврате ответа из кэша
  9326. заголовок запроса If-None-Match игнорировался,
  9327. если в ответе не было заголовка Last-Modified.
  9328. </para>
  9329. <para lang="en">
  9330. the If-None-Match request header line was ignored
  9331. if there was no Last-Modified header
  9332. in a response returned from cache.
  9333. </para>
  9334. </change>

  9335. <change type="bugfix">
  9336. <para lang="ru">
  9337. сообщения "peer closed connection in SSL handshake"
  9338. при соединении с бэкендами логгировались на уровне info вместо error.
  9339. </para>
  9340. <para lang="en">
  9341. "peer closed connection in SSL handshake" messages
  9342. were logged at "info" level instead of "error" while connecting to backends.
  9343. </para>
  9344. </change>

  9345. <change type="bugfix">
  9346. <para lang="ru">
  9347. в модуле ngx_http_dav_module в nginx/Windows.
  9348. </para>
  9349. <para lang="en">
  9350. in the ngx_http_dav_module module in nginx/Windows.
  9351. </para>
  9352. </change>

  9353. <change type="bugfix">
  9354. <para lang="ru">
  9355. SPDY-соединения могли неожиданно закрываться,
  9356. если использовалось кэширование.
  9357. </para>
  9358. <para lang="en">
  9359. SPDY connections might be closed prematurely
  9360. if caching was used.
  9361. </para>
  9362. </change>

  9363. </changes>


  9364. <changes ver="1.7.2" date="2014-06-17">

  9365. <change type="feature">
  9366. <para lang="ru">
  9367. директива hash в блоке upstream.
  9368. </para>
  9369. <para lang="en">
  9370. the "hash" directive inside the "upstream" block.
  9371. </para>
  9372. </change>

  9373. <change type="feature">
  9374. <para lang="ru">
  9375. дефрагментация свободных блоков разделяемой памяти.<br/>
  9376. Спасибо Wandenberg Peixoto и Yichun Zhang.
  9377. </para>
  9378. <para lang="en">
  9379. defragmentation of free shared memory blocks.<br/>
  9380. Thanks to Wandenberg Peixoto and Yichun Zhang.
  9381. </para>
  9382. </change>

  9383. <change type="bugfix">
  9384. <para lang="ru">
  9385. в рабочем процессе мог произойти segmentation fault,
  9386. если использовалось значение access_log по умолчанию;
  9387. ошибка появилась в 1.7.0.<br/>
  9388. Спасибо Piotr Sikora.
  9389. </para>
  9390. <para lang="en">
  9391. a segmentation fault might occur in a worker process
  9392. if the default value of the "access_log" directive was used;
  9393. the bug had appeared in 1.7.0.<br/>
  9394. Thanks to Piotr Sikora.
  9395. </para>
  9396. </change>

  9397. <change type="bugfix">
  9398. <para lang="ru">
  9399. завершающий слэш ошибочно удалялся
  9400. из последнего параметра директивы try_files.
  9401. </para>
  9402. <para lang="en">
  9403. trailing slash was mistakenly removed
  9404. from the last parameter of the "try_files" directive.
  9405. </para>
  9406. </change>

  9407. <change type="bugfix">
  9408. <para lang="ru">
  9409. nginx мог не собираться на OS X.
  9410. </para>
  9411. <para lang="en">
  9412. nginx could not be built on OS X in some cases.
  9413. </para>
  9414. </change>

  9415. <change type="bugfix">
  9416. <para lang="ru">
  9417. в модуле ngx_http_spdy_module.
  9418. </para>
  9419. <para lang="en">
  9420. in the ngx_http_spdy_module.
  9421. </para>
  9422. </change>

  9423. </changes>


  9424. <changes ver="1.7.1" date="2014-05-27">

  9425. <change type="feature">
  9426. <para lang="ru">
  9427. переменные "$upstream_cookie_...".
  9428. </para>
  9429. <para lang="en">
  9430. the "$upstream_cookie_..." variables.
  9431. </para>
  9432. </change>

  9433. <change type="feature">
  9434. <para lang="ru">
  9435. переменная $ssl_client_fingerprint.
  9436. </para>
  9437. <para lang="en">
  9438. the $ssl_client_fingerprint variable.
  9439. </para>
  9440. </change>

  9441. <change type="feature">
  9442. <para lang="ru">
  9443. директивы error_log и access_log теперь поддерживают логгирование в syslog.
  9444. </para>
  9445. <para lang="en">
  9446. the "error_log" and "access_log" directives now support logging to syslog.
  9447. </para>
  9448. </change>

  9449. <change type="feature">
  9450. <para lang="ru">
  9451. почтовый прокси-сервер теперь логгирует порт клиента при соединении.
  9452. </para>
  9453. <para lang="en">
  9454. the mail proxy now logs client port on connect.
  9455. </para>
  9456. </change>

  9457. <change type="bugfix">
  9458. <para lang="ru">
  9459. утечки памяти при использовании директивы "ssl_stapling".<br/>
  9460. Спасибо Filipe da Silva.
  9461. </para>
  9462. <para lang="en">
  9463. memory leak if the "ssl_stapling" directive was used.<br/>
  9464. Thanks to Filipe da Silva.
  9465. </para>
  9466. </change>

  9467. <change type="bugfix">
  9468. <para lang="ru">
  9469. директива alias внутри location'а, заданного регулярным выражением,
  9470. работала неправильно, если использовались директивы if или limit_except.
  9471. </para>
  9472. <para lang="en">
  9473. the "alias" directive used inside a location given by a regular expression
  9474. worked incorrectly if the "if" or "limit_except" directives were used.
  9475. </para>
  9476. </change>

  9477. <change type="bugfix">
  9478. <para lang="ru">
  9479. директива charset не ставила кодировку для сжатых ответов бэкендов.
  9480. </para>
  9481. <para lang="en">
  9482. the "charset" directive did not set a charset to encoded backend responses.
  9483. </para>
  9484. </change>

  9485. <change type="bugfix">
  9486. <para lang="ru">
  9487. директива proxy_pass без URI могла использовать оригинальный запрос
  9488. после установки переменной $args.<br/>
  9489. Спасибо Yichun Zhang.
  9490. </para>
  9491. <para lang="en">
  9492. a "proxy_pass" directive without URI part might use original request
  9493. after the $args variable was set.<br/>
  9494. Thanks to Yichun Zhang.
  9495. </para>
  9496. </change>

  9497. <change type="bugfix">
  9498. <para lang="ru">
  9499. в работе параметра none директивы smtp_auth;
  9500. ошибка появилась в 1.5.6.<br/>
  9501. Спасибо Святославу Никольскому.
  9502. </para>
  9503. <para lang="en">
  9504. in the "none" parameter in the "smtp_auth" directive;
  9505. the bug had appeared in 1.5.6.<br/>
  9506. Thanks to Svyatoslav Nikolsky.
  9507. </para>
  9508. </change>

  9509. <change type="bugfix">
  9510. <para lang="ru">
  9511. при совместном использовании sub_filter и SSI
  9512. ответы могли передаваться неверно.
  9513. </para>
  9514. <para lang="en">
  9515. if sub_filter and SSI were used together,
  9516. then responses might be transferred incorrectly.
  9517. </para>
  9518. </change>

  9519. <change type="bugfix">
  9520. <para lang="ru">
  9521. nginx не собирался с параметром --with-file-aio на Linux/aarch64.
  9522. </para>
  9523. <para lang="en">
  9524. nginx could not be built with the --with-file-aio option on Linux/aarch64.
  9525. </para>
  9526. </change>

  9527. </changes>


  9528. <changes ver="1.7.0" date="2014-04-24">

  9529. <change type="feature">
  9530. <para lang="ru">
  9531. проверка SSL-сертификатов бэкендов.
  9532. </para>
  9533. <para lang="en">
  9534. backend SSL certificate verification.
  9535. </para>
  9536. </change>

  9537. <change type="feature">
  9538. <para lang="ru">
  9539. поддержка SNI при работе с бэкендами по SSL.
  9540. </para>
  9541. <para lang="en">
  9542. support for SNI while working with SSL backends.
  9543. </para>
  9544. </change>

  9545. <change type="feature">
  9546. <para lang="ru">
  9547. переменная $ssl_server_name.
  9548. </para>
  9549. <para lang="en">
  9550. the $ssl_server_name variable.
  9551. </para>
  9552. </change>

  9553. <change type="feature">
  9554. <para lang="ru">
  9555. параметр if директивы access_log.
  9556. </para>
  9557. <para lang="en">
  9558. the "if" parameter of the "access_log" directive.
  9559. </para>
  9560. </change>

  9561. </changes>


  9562. <changes ver="1.5.13" date="2014-04-08">

  9563. <change type="change">
  9564. <para lang="ru">
  9565. улучшена обработка хэш-таблиц;
  9566. в директивах variables_hash_max_size и types_hash_bucket_size
  9567. значения по умолчанию изменены на 1024 и 64 соответственно.
  9568. </para>
  9569. <para lang="en">
  9570. improved hash table handling;
  9571. the default values of the "variables_hash_max_size" and
  9572. "types_hash_bucket_size" were changed to 1024 and 64 respectively.
  9573. </para>
  9574. </change>

  9575. <change type="feature">
  9576. <para lang="ru">
  9577. модуль ngx_http_mp4_module теперь понимает аргумент end.
  9578. </para>
  9579. <para lang="en">
  9580. the ngx_http_mp4_module now supports the "end" argument.
  9581. </para>
  9582. </change>

  9583. <change type="feature">
  9584. <para lang="ru">
  9585. поддержка byte ranges модулем ngx_http_mp4_module и при сохранении
  9586. ответов в кэш.
  9587. </para>
  9588. <para lang="en">
  9589. byte ranges support in the ngx_http_mp4_module and while saving responses
  9590. to cache.
  9591. </para>
  9592. </change>

  9593. <change type="bugfix">
  9594. <para lang="ru">
  9595. теперь nginx не пишет в лог сообщения "ngx_slab_alloc() failed: no memory"
  9596. при использовании разделяемой памяти в ssl_session_cache
  9597. и в модуле ngx_http_limit_req_module.
  9598. </para>
  9599. <para lang="en">
  9600. alerts "ngx_slab_alloc() failed: no memory" no longer logged
  9601. when using shared memory in the "ssl_session_cache" directive
  9602. and in the ngx_http_limit_req_module.
  9603. </para>
  9604. </change>

  9605. <change type="bugfix">
  9606. <para lang="ru">
  9607. директива underscores_in_headers
  9608. не разрешала подчёркивание в первом символе заголовка.<br/>
  9609. Спасибо Piotr Sikora.
  9610. </para>
  9611. <para lang="en">
  9612. the "underscores_in_headers" directive
  9613. did not allow underscore as a first character of a header.<br/>
  9614. Thanks to Piotr Sikora.
  9615. </para>
  9616. </change>

  9617. <change type="bugfix">
  9618. <para lang="ru">
  9619. cache manager мог нагружать процессор при выходе в nginx/Windows.
  9620. </para>
  9621. <para lang="en">
  9622. cache manager might hog CPU on exit in nginx/Windows.
  9623. </para>
  9624. </change>

  9625. <change type="bugfix">
  9626. <para lang="ru">
  9627. при использовании ssl_session_cache с параметром shared
  9628. рабочий процесс nginx/Windows завершался аварийно.
  9629. </para>
  9630. <para lang="en">
  9631. nginx/Windows terminated abnormally
  9632. if the "ssl_session_cache" directive was used with the "shared" parameter.
  9633. </para>
  9634. </change>

  9635. <change type="bugfix">
  9636. <para lang="ru">
  9637. в модуле ngx_http_spdy_module.
  9638. </para>
  9639. <para lang="en">
  9640. in the ngx_http_spdy_module.
  9641. </para>
  9642. </change>

  9643. </changes>


  9644. <changes ver="1.5.12" date="2014-03-18">

  9645. <change type="security">
  9646. <para lang="ru">
  9647. при обработке специально созданного запроса модулем ngx_http_spdy_module
  9648. могло происходить переполнение буфера в рабочем процессе,
  9649. что потенциально могло приводить к выполнению произвольного кода
  9650. (CVE-2014-0133).<br/>
  9651. Спасибо Lucas Molas из Programa STIC, Fundación Dr. Manuel
  9652. Sadosky, Buenos Aires, Argentina.
  9653. </para>
  9654. <para lang="en">
  9655. a heap memory buffer overflow might occur in a worker process
  9656. while handling a specially crafted request by ngx_http_spdy_module,
  9657. potentially resulting in arbitrary code execution
  9658. (CVE-2014-0133).<br/>
  9659. Thanks to Lucas Molas, researcher at Programa STIC, Fundación Dr. Manuel
  9660. Sadosky, Buenos Aires, Argentina.
  9661. </para>
  9662. </change>

  9663. <change type="feature">
  9664. <para lang="ru">
  9665. параметр proxy_protocol в директивах listen и real_ip_header,
  9666. переменная $proxy_protocol_addr.
  9667. </para>
  9668. <para lang="en">
  9669. the "proxy_protocol" parameters of the "listen" and "real_ip_header" directives,
  9670. the $proxy_protocol_addr variable.
  9671. </para>
  9672. </change>

  9673. <change type="bugfix">
  9674. <para lang="ru">
  9675. в директиве fastcgi_next_upstream.<br/>
  9676. Спасибо Lucas Molas.
  9677. </para>
  9678. <para lang="en">
  9679. in the "fastcgi_next_upstream" directive.<br/>
  9680. Thanks to Lucas Molas.
  9681. </para>
  9682. </change>

  9683. </changes>


  9684. <changes ver="1.5.11" date="2014-03-04">

  9685. <change type="security">
  9686. <para lang="ru">
  9687. при обработке специально созданного запроса модулем ngx_http_spdy_module
  9688. на 32-битных платформах могла повреждаться память рабочего процесса,
  9689. что потенциально могло приводить к выполнению произвольного кода
  9690. (CVE-2014-0088);
  9691. ошибка появилась в 1.5.10.<br/>
  9692. Спасибо Lucas Molas из Programa STIC, Fundación Dr. Manuel
  9693. Sadosky, Buenos Aires, Argentina.
  9694. </para>
  9695. <para lang="en">
  9696. memory corruption might occur in a worker process on 32-bit platforms
  9697. while handling a specially crafted request by ngx_http_spdy_module,
  9698. potentially resulting in arbitrary code execution (CVE-2014-0088);
  9699. the bug had appeared in 1.5.10.<br/>
  9700. Thanks to Lucas Molas, researcher at Programa STIC, Fundación Dr. Manuel
  9701. Sadosky, Buenos Aires, Argentina.
  9702. </para>
  9703. </change>

  9704. <change type="feature">
  9705. <para lang="ru">
  9706. переменная $ssl_session_reused.
  9707. </para>
  9708. <para lang="en">
  9709. the $ssl_session_reused variable.
  9710. </para>
  9711. </change>

  9712. <change type="bugfix">
  9713. <para lang="ru">
  9714. директива client_max_body_size могла не работать
  9715. при чтении тела запроса с использованием chunked transfer encoding;
  9716. ошибка появилась в 1.3.9.<br/>
  9717. Спасибо Lucas Molas.
  9718. </para>
  9719. <para lang="en">
  9720. the "client_max_body_size" directive might not work
  9721. when reading a request body using chunked transfer encoding;
  9722. the bug had appeared in 1.3.9.<br/>
  9723. Thanks to Lucas Molas.
  9724. </para>
  9725. </change>

  9726. <change type="bugfix">
  9727. <para lang="ru">
  9728. при проксировании WebSocket-соединений
  9729. в рабочем процессе мог произойти segmentation fault.
  9730. </para>
  9731. <para lang="en">
  9732. a segmentation fault might occur in a worker process
  9733. when proxying WebSocket connections.
  9734. </para>
  9735. </change>

  9736. <change type="bugfix">
  9737. <para lang="ru">
  9738. в рабочем процессе мог произойти segmentation fault,
  9739. если использовался модуль ngx_http_spdy_module на 32-битных платформах;
  9740. ошибка появилась в 1.5.10.
  9741. </para>
  9742. <para lang="en">
  9743. a segmentation fault might occur in a worker process
  9744. if the ngx_http_spdy_module was used on 32-bit platforms;
  9745. the bug had appeared in 1.5.10.
  9746. </para>
  9747. </change>

  9748. <change type="bugfix">
  9749. <para lang="ru">
  9750. значение переменной $upstream_status могло быть неверным,
  9751. если использовались директивы proxy_cache_use_stale
  9752. или proxy_cache_revalidate.<br/>
  9753. Спасибо Piotr Sikora.
  9754. </para>
  9755. <para lang="en">
  9756. the $upstream_status variable might contain wrong data
  9757. if the "proxy_cache_use_stale" or "proxy_cache_revalidate" directives
  9758. were used.<br/>
  9759. Thanks to Piotr Sikora.
  9760. </para>
  9761. </change>

  9762. <change type="bugfix">
  9763. <para lang="ru">
  9764. в рабочем процессе мог произойти segmentation fault,
  9765. если ошибки с кодом 400 с помощью директивы error_page
  9766. перенаправлялись в именованный location.
  9767. </para>
  9768. <para lang="en">
  9769. a segmentation fault might occur in a worker process
  9770. if errors with code 400 were redirected to a named location
  9771. using the "error_page" directive.
  9772. </para>
  9773. </change>

  9774. <change type="bugfix">
  9775. <para lang="ru">
  9776. nginx/Windows не собирался с Visual Studio 2013.
  9777. </para>
  9778. <para lang="en">
  9779. nginx/Windows could not be built with Visual Studio 2013.
  9780. </para>
  9781. </change>

  9782. </changes>


  9783. <changes ver="1.5.10" date="2014-02-04">

  9784. <change type="feature">
  9785. <para lang="ru">
  9786. модуль ngx_http_spdy_module теперь использует протокол SPDY 3.1.<br/>
  9787. Спасибо Automattic и MaxCDN за спонсирование разработки.
  9788. </para>
  9789. <para lang="en">
  9790. the ngx_http_spdy_module now uses SPDY 3.1 protocol.<br/>
  9791. Thanks to Automattic and MaxCDN for sponsoring this work.
  9792. </para>
  9793. </change>

  9794. <change type="feature">
  9795. <para lang="ru">
  9796. модуль ngx_http_mp4_module теперь пропускает дорожки,
  9797. имеющие меньшую длину, чем запрошенная перемотка.
  9798. </para>
  9799. <para lang="en">
  9800. the ngx_http_mp4_module now skips tracks
  9801. too short for a seek requested.
  9802. </para>
  9803. </change>

  9804. <change type="bugfix">
  9805. <para lang="ru">
  9806. в рабочем процессе мог произойти segmentation fault,
  9807. если переменная $ssl_session_id использовалась при логгировании;
  9808. ошибка появилась в 1.5.9.
  9809. </para>
  9810. <para lang="en">
  9811. a segmentation fault might occur in a worker process
  9812. if the $ssl_session_id variable was used in logs;
  9813. the bug had appeared in 1.5.9.
  9814. </para>
  9815. </change>

  9816. <change type="bugfix">
  9817. <para lang="ru">
  9818. переменные $date_local и $date_gmt использовали неверный формат
  9819. вне модуля ngx_http_ssi_filter_module.
  9820. </para>
  9821. <para lang="en">
  9822. the $date_local and $date_gmt variables used wrong format
  9823. outside of the ngx_http_ssi_filter_module.
  9824. </para>
  9825. </change>

  9826. <change type="bugfix">
  9827. <para lang="ru">
  9828. клиентские соединения могли сразу закрываться,
  9829. если использовался отложенный accept;
  9830. ошибка появилась в 1.3.15.
  9831. </para>
  9832. <para lang="en">
  9833. client connections might be immediately closed
  9834. if deferred accept was used;
  9835. the bug had appeared in 1.3.15.
  9836. </para>
  9837. </change>

  9838. <change type="bugfix">
  9839. <para lang="ru">
  9840. сообщения "getsockopt(TCP_FASTOPEN) ... failed" записывались в лог
  9841. в процессе обновления исполняемого файла на Linux;
  9842. ошибка появилась в 1.5.8.<br/>
  9843. Спасибо Piotr Sikora.
  9844. </para>
  9845. <para lang="en">
  9846. alerts "getsockopt(TCP_FASTOPEN) ... failed" appeared in logs
  9847. during binary upgrade on Linux;
  9848. the bug had appeared in 1.5.8.<br/>
  9849. Thanks to Piotr Sikora.
  9850. </para>
  9851. </change>

  9852. </changes>


  9853. <changes ver="1.5.9" date="2014-01-22">

  9854. <change type="change">
  9855. <para lang="ru">
  9856. теперь в заголовке X-Accel-Redirect nginx ожидает закодированный URI.
  9857. </para>
  9858. <para lang="en">
  9859. now nginx expects escaped URIs in "X-Accel-Redirect" headers.
  9860. </para>
  9861. </change>

  9862. <change type="feature">
  9863. <para lang="ru">
  9864. директива ssl_buffer_size.
  9865. </para>
  9866. <para lang="en">
  9867. the "ssl_buffer_size" directive.
  9868. </para>
  9869. </change>

  9870. <change type="feature">
  9871. <para lang="ru">
  9872. директиву limit_rate теперь можно использовать для
  9873. ограничения скорости передачи ответов клиенту в SPDY-соединениях.
  9874. </para>
  9875. <para lang="en">
  9876. the "limit_rate" directive can now be used to
  9877. rate limit responses sent in SPDY connections.
  9878. </para>
  9879. </change>

  9880. <change type="feature">
  9881. <para lang="ru">
  9882. директива spdy_chunk_size.
  9883. </para>
  9884. <para lang="en">
  9885. the "spdy_chunk_size" directive.
  9886. </para>
  9887. </change>

  9888. <change type="feature">
  9889. <para lang="ru">
  9890. директива ssl_session_tickets.<br/>
  9891. Спасибо Dirkjan Bussink.
  9892. </para>
  9893. <para lang="en">
  9894. the "ssl_session_tickets" directive.<br/>
  9895. Thanks to Dirkjan Bussink.
  9896. </para>
  9897. </change>

  9898. <change type="bugfix">
  9899. <para lang="ru">
  9900. переменная $ssl_session_id содержала всю сессию в сериализованном виде
  9901. вместо её идентификатора.<br/>
  9902. Спасибо Ivan Ristić.
  9903. </para>
  9904. <para lang="en">
  9905. the $ssl_session_id variable contained full session serialized
  9906. instead of just a session id.<br/>
  9907. Thanks to Ivan Ristić.
  9908. </para>
  9909. </change>

  9910. <change type="bugfix">
  9911. <para lang="ru">
  9912. nginx неправильно обрабатывал закодированный символ "?" в команде SSI include.
  9913. </para>
  9914. <para lang="en">
  9915. nginx incorrectly handled escaped "?" character in the "include" SSI command.
  9916. </para>
  9917. </change>

  9918. <change type="bugfix">
  9919. <para lang="ru">
  9920. модуль ngx_http_dav_module не раскодировал целевой URI при
  9921. обработке методов COPY и MOVE.
  9922. </para>
  9923. <para lang="en">
  9924. the ngx_http_dav_module did not unescape destination URI
  9925. of the COPY and MOVE methods.
  9926. </para>
  9927. </change>

  9928. <change type="bugfix">
  9929. <para lang="ru">
  9930. resolver не понимал доменные имена с точкой в конце.
  9931. Спасибо Yichun Zhang.
  9932. </para>
  9933. <para lang="en">
  9934. resolver did not understand domain names with a trailing dot.
  9935. Thanks to Yichun Zhang.
  9936. </para>
  9937. </change>

  9938. <change type="bugfix">
  9939. <para lang="ru">
  9940. при проксировании в логах могли появляться сообщения "zero size buf in output";
  9941. ошибка появилась в 1.3.9.
  9942. </para>
  9943. <para lang="en">
  9944. alerts "zero size buf in output" might appear in logs while proxying;
  9945. the bug had appeared in 1.3.9.
  9946. </para>
  9947. </change>

  9948. <change type="bugfix">
  9949. <para lang="ru">
  9950. в рабочем процессе мог произойти segmentation fault,
  9951. если использовался модуль ngx_http_spdy_module.
  9952. </para>
  9953. <para lang="en">
  9954. a segmentation fault might occur in a worker process
  9955. if the ngx_http_spdy_module was used.
  9956. </para>
  9957. </change>

  9958. <change type="bugfix">
  9959. <para lang="ru">
  9960. при использовании методов обработки соединений select, poll и /dev/poll
  9961. проксируемые WebSocket-соединения могли зависать сразу после открытия.
  9962. </para>
  9963. <para lang="en">
  9964. proxied WebSocket connections might hang right after handshake
  9965. if the select, poll, or /dev/poll methods were used.
  9966. </para>
  9967. </change>

  9968. <change type="bugfix">
  9969. <para lang="ru">
  9970. директива xclient почтового прокси-сервера
  9971. некорректно передавала IPv6-адреса.
  9972. </para>
  9973. <para lang="en">
  9974. the "xclient" directive of the mail proxy module
  9975. incorrectly handled IPv6 client addresses.
  9976. </para>
  9977. </change>

  9978. </changes>


  9979. <changes ver="1.5.8" date="2013-12-17">

  9980. <change type="feature">
  9981. <para lang="ru">
  9982. теперь resolver поддерживает IPv6.
  9983. </para>
  9984. <para lang="en">
  9985. IPv6 support in resolver.
  9986. </para>
  9987. </change>

  9988. <change type="feature">
  9989. <para lang="ru">
  9990. директива listen поддерживает параметр fastopen.<br/>
  9991. Спасибо Mathew Rodley.
  9992. </para>
  9993. <para lang="en">
  9994. the "listen" directive supports the "fastopen" parameter.<br/>
  9995. Thanks to Mathew Rodley.
  9996. </para>
  9997. </change>

  9998. <change type="feature">
  9999. <para lang="ru">
  10000. поддержка SSL в модуле ngx_http_uwsgi_module.<br/>
  10001. Спасибо Roberto De Ioris.
  10002. </para>
  10003. <para lang="en">
  10004. SSL support in the ngx_http_uwsgi_module.<br/>
  10005. Thanks to Roberto De Ioris.
  10006. </para>
  10007. </change>

  10008. <change type="feature">
  10009. <para lang="ru">
  10010. скрипты подсветки синтаксиса для vim добавлены в contrib.<br/>
  10011. Спасибо Evan Miller.
  10012. </para>
  10013. <para lang="en">
  10014. vim syntax highlighting scripts were added to contrib.<br/>
  10015. Thanks to Evan Miller.
  10016. </para>
  10017. </change>

  10018. <change type="bugfix">
  10019. <para lang="ru">
  10020. при чтении тела запроса с использованием chunked transfer encoding
  10021. по SSL-соединению мог произойти таймаут.
  10022. </para>
  10023. <para lang="en">
  10024. a timeout might occur while reading client request body
  10025. in an SSL connection using chunked transfer encoding.
  10026. </para>
  10027. </change>

  10028. <change type="bugfix">
  10029. <para lang="ru">
  10030. директива master_process работала неправильно в nginx/Windows.
  10031. </para>
  10032. <para lang="en">
  10033. the "master_process" directive did not work correctly in nginx/Windows.
  10034. </para>
  10035. </change>

  10036. <change type="bugfix">
  10037. <para lang="ru">
  10038. параметр setfib директивы listen мог не работать.
  10039. </para>
  10040. <para lang="en">
  10041. the "setfib" parameter of the "listen" directive might not work.
  10042. </para>
  10043. </change>

  10044. <change type="bugfix">
  10045. <para lang="ru">
  10046. в модуле ngx_http_spdy_module.
  10047. </para>
  10048. <para lang="en">
  10049. in the ngx_http_spdy_module.
  10050. </para>
  10051. </change>

  10052. </changes>


  10053. <changes ver="1.5.7" date="2013-11-19">

  10054. <change type="security">
  10055. <para lang="ru">
  10056. символ, следующий за незакодированным пробелом в строке запроса,
  10057. обрабатывался неправильно (CVE-2013-4547);
  10058. ошибка появилась в 0.8.41.<br/>
  10059. Спасибо Ivan Fratric из Google Security Team.
  10060. </para>
  10061. <para lang="en">
  10062. a character following an unescaped space in a request line
  10063. was handled incorrectly (CVE-2013-4547);
  10064. the bug had appeared in 0.8.41.<br/>
  10065. Thanks to Ivan Fratric of the Google Security Team.
  10066. </para>
  10067. </change>

  10068. <change type="change">
  10069. <para lang="ru">
  10070. уровень логгирования ошибок auth_basic об отсутствии пароля
  10071. понижен с уровня error до info.
  10072. </para>
  10073. <para lang="en">
  10074. a logging level of auth_basic errors about no user/password provided
  10075. has been lowered from "error" to "info".
  10076. </para>
  10077. </change>

  10078. <change type="feature">
  10079. <para lang="ru">
  10080. директивы proxy_cache_revalidate, fastcgi_cache_revalidate,
  10081. scgi_cache_revalidate и uwsgi_cache_revalidate.
  10082. </para>
  10083. <para lang="en">
  10084. the "proxy_cache_revalidate", "fastcgi_cache_revalidate",
  10085. "scgi_cache_revalidate", and "uwsgi_cache_revalidate" directives.
  10086. </para>
  10087. </change>

  10088. <change type="feature">
  10089. <para lang="ru">
  10090. директива ssl_session_ticket_key.<br/>
  10091. Спасибо Piotr Sikora.
  10092. </para>
  10093. <para lang="en">
  10094. the "ssl_session_ticket_key" directive.<br/>
  10095. Thanks to Piotr Sikora.
  10096. </para>
  10097. </change>

  10098. <change type="bugfix">
  10099. <para lang="ru">
  10100. директива "add_header Cache-Control ''"
  10101. добавляла строку заголовка ответа "Cache-Control" с пустым значением.
  10102. </para>
  10103. <para lang="en">
  10104. the directive "add_header Cache-Control ''"
  10105. added a "Cache-Control" response header line with an empty value.
  10106. </para>
  10107. </change>

  10108. <change type="bugfix">
  10109. <para lang="ru">
  10110. директива "satisfy any" могла вернуть ошибку 403 вместо 401
  10111. при использовании директив auth_request и auth_basic.<br/>
  10112. Спасибо Jan Marc Hoffmann.
  10113. </para>
  10114. <para lang="en">
  10115. the "satisfy any" directive might return 403 error instead of 401
  10116. if auth_request and auth_basic directives were used.<br/>
  10117. Thanks to Jan Marc Hoffmann.
  10118. </para>
  10119. </change>

  10120. <change type="bugfix">
  10121. <para lang="ru">
  10122. параметры accept_filter и deferred директивы listen игнорировались
  10123. для listen-сокетов, создаваемых в процессе обновления исполняемого файла.<br/>
  10124. Спасибо Piotr Sikora.
  10125. </para>
  10126. <para lang="en">
  10127. the "accept_filter" and "deferred" parameters of the "listen" directive
  10128. were ignored for listen sockets created during binary upgrade.<br/>
  10129. Thanks to Piotr Sikora.
  10130. </para>
  10131. </change>

  10132. <change type="bugfix">
  10133. <para lang="ru">
  10134. часть данных, полученных от бэкенда при небуферизированном проксировании,
  10135. могла не отправляться клиенту сразу,
  10136. если использовались директивы gzip или gunzip.<br/>
  10137. Спасибо Yichun Zhang.
  10138. </para>
  10139. <para lang="en">
  10140. some data received from a backend with unbufferred proxy
  10141. might not be sent to a client immediately
  10142. if "gzip" or "gunzip" directives were used.<br/>
  10143. Thanks to Yichun Zhang.
  10144. </para>
  10145. </change>

  10146. <change type="bugfix">
  10147. <para lang="ru">
  10148. в обработке ошибок в модуле ngx_http_gunzip_filter_module.
  10149. </para>
  10150. <para lang="en">
  10151. in error handling in ngx_http_gunzip_filter_module.
  10152. </para>
  10153. </change>

  10154. <change type="bugfix">
  10155. <para lang="ru">
  10156. ответы могли зависать,
  10157. если использовался модуль ngx_http_spdy_module
  10158. и директива auth_request.
  10159. </para>
  10160. <para lang="en">
  10161. responses might hang
  10162. if the ngx_http_spdy_module was used
  10163. with the "auth_request" directive.
  10164. </para>
  10165. </change>

  10166. <change type="bugfix">
  10167. <para lang="ru">
  10168. утечки памяти в nginx/Windows.
  10169. </para>
  10170. <para lang="en">
  10171. memory leak in nginx/Windows.
  10172. </para>
  10173. </change>

  10174. </changes>


  10175. <changes ver="1.5.6" date="2013-10-01">

  10176. <change type="feature">
  10177. <para lang="ru">
  10178. директива fastcgi_buffering.
  10179. </para>
  10180. <para lang="en">
  10181. the "fastcgi_buffering" directive.
  10182. </para>
  10183. </change>

  10184. <change type="feature">
  10185. <para lang="ru">
  10186. директивы proxy_ssl_protocols и proxy_ssl_ciphers.<br/>
  10187. Спасибо Piotr Sikora.
  10188. </para>
  10189. <para lang="en">
  10190. the "proxy_ssl_protocols" and "proxy_ssl_ciphers" directives.<br/>
  10191. Thanks to Piotr Sikora.
  10192. </para>
  10193. </change>

  10194. <change type="feature">
  10195. <para lang="ru">
  10196. оптимизация SSL handshake при использовании длинных цепочек сертификатов.
  10197. </para>
  10198. <para lang="en">
  10199. optimization of SSL handshakes when using long certificate chains.
  10200. </para>
  10201. </change>

  10202. <change type="feature">
  10203. <para lang="ru">
  10204. почтовый прокси-сервер поддерживает SMTP pipelining.
  10205. </para>
  10206. <para lang="en">
  10207. the mail proxy supports SMTP pipelining.
  10208. </para>
  10209. </change>

  10210. <change type="bugfix">
  10211. <para lang="ru">
  10212. в модуле ngx_http_auth_basic_module
  10213. при использовании метода шифрования паролей "$apr1$".<br/>
  10214. Спасибо Markus Linnala.
  10215. </para>
  10216. <para lang="en">
  10217. in the ngx_http_auth_basic_module
  10218. when using "$apr1$" password encryption method.<br/>
  10219. Thanks to Markus Linnala.
  10220. </para>
  10221. </change>

  10222. <change type="bugfix">
  10223. <para lang="ru">
  10224. на MacOSX, Cygwin и nginx/Windows
  10225. для обработки запроса мог использоваться неверный location,
  10226. если для задания location'ов использовались символы разных регистров.
  10227. </para>
  10228. <para lang="en">
  10229. in MacOSX, Cygwin, and nginx/Windows
  10230. incorrect location might be used to process a request
  10231. if locations were given using characters in different cases.
  10232. </para>
  10233. </change>

  10234. <change type="bugfix">
  10235. <para lang="ru">
  10236. автоматическое перенаправление с добавлением завершающего слэша
  10237. для проксированных location'ов могло не работать.
  10238. </para>
  10239. <para lang="en">
  10240. automatic redirect with appended trailing slash
  10241. for proxied locations might not work.
  10242. </para>
  10243. </change>

  10244. <change type="bugfix">
  10245. <para lang="ru">
  10246. в почтовом прокси-сервере.
  10247. </para>
  10248. <para lang="en">
  10249. in the mail proxy server.
  10250. </para>
  10251. </change>

  10252. <change type="bugfix">
  10253. <para lang="ru">
  10254. в модуле ngx_http_spdy_module.
  10255. </para>
  10256. <para lang="en">
  10257. in the ngx_http_spdy_module.
  10258. </para>
  10259. </change>

  10260. </changes>


  10261. <changes ver="1.5.5" date="2013-09-17">

  10262. <change type="change">
  10263. <para lang="ru">
  10264. теперь nginx по умолчанию использует HTTP/1.0,
  10265. если точно определить протокол не удалось.
  10266. </para>
  10267. <para lang="en">
  10268. now nginx assumes HTTP/1.0 by default
  10269. if it is not able to detect protocol reliably.
  10270. </para>
  10271. </change>

  10272. <change type="feature">
  10273. <para lang="ru">
  10274. директива disable_symlinks теперь использует O_PATH на Linux.
  10275. </para>
  10276. <para lang="en">
  10277. the "disable_symlinks" directive now uses O_PATH on Linux.
  10278. </para>
  10279. </change>

  10280. <change type="feature">
  10281. <para lang="ru">
  10282. для определения того, что клиент закрыл соединение,
  10283. при использовании метода epoll
  10284. теперь используются события EPOLLRDHUP.
  10285. </para>
  10286. <para lang="en">
  10287. now nginx uses EPOLLRDHUP events
  10288. to detect premature connection close by clients
  10289. if the "epoll" method is used.
  10290. </para>
  10291. </change>

  10292. <change type="bugfix">
  10293. <para lang="ru">
  10294. в директиве valid_referers при использовании параметра server_names.
  10295. </para>
  10296. <para lang="en">
  10297. in the "valid_referers" directive if the "server_names" parameter was used.
  10298. </para>
  10299. </change>

  10300. <change type="bugfix">
  10301. <para lang="ru">
  10302. переменная $request_time не работала в nginx/Windows.
  10303. </para>
  10304. <para lang="en">
  10305. the $request_time variable did not work in nginx/Windows.
  10306. </para>
  10307. </change>

  10308. <change type="bugfix">
  10309. <para lang="ru">
  10310. в директиве image_filter.<br/>
  10311. Спасибо Lanshun Zhou.
  10312. </para>
  10313. <para lang="en">
  10314. in the "image_filter" directive.<br/>
  10315. Thanks to Lanshun Zhou.
  10316. </para>
  10317. </change>

  10318. <change type="bugfix">
  10319. <para lang="ru">
  10320. совместимость с OpenSSL 1.0.1f.<br/>
  10321. Спасибо Piotr Sikora.
  10322. </para>
  10323. <para lang="en">
  10324. OpenSSL 1.0.1f compatibility.<br/>
  10325. Thanks to Piotr Sikora.
  10326. </para>
  10327. </change>


  10328. </changes>


  10329. <changes ver="1.5.4" date="2013-08-27">

  10330. <change type="change">
  10331. <para lang="ru">
  10332. MIME-тип для расширения js изменён на "application/javascript";
  10333. значение по умолчанию директивы charset_types изменено соответственно.
  10334. </para>
  10335. <para lang="en">
  10336. the "js" extension MIME type has been changed to "application/javascript";
  10337. default value of the "charset_types" directive was changed accordingly.
  10338. </para>
  10339. </change>

  10340. <change type="change">
  10341. <para lang="ru">
  10342. теперь директива image_filter с параметром size
  10343. возвращает ответ с MIME-типом "application/json".
  10344. </para>
  10345. <para lang="en">
  10346. now the "image_filter" directive with the "size" parameter
  10347. returns responses with the "application/json" MIME type.
  10348. </para>
  10349. </change>

  10350. <change type="feature">
  10351. <para lang="ru">
  10352. модуль ngx_http_auth_request_module.
  10353. </para>
  10354. <para lang="en">
  10355. the ngx_http_auth_request_module.
  10356. </para>
  10357. </change>

  10358. <change type="bugfix">
  10359. <para lang="ru">
  10360. на старте или во время переконфигурации мог произойти segmentation fault,
  10361. если использовалась директива try_files с пустым параметром.
  10362. </para>
  10363. <para lang="en">
  10364. a segmentation fault might occur on start or during reconfiguration
  10365. if the "try_files" directive was used with an empty parameter.
  10366. </para>
  10367. </change>

  10368. <change type="bugfix">
  10369. <para lang="ru">
  10370. утечки памяти при использовании в директивах root и auth_basic_user_file
  10371. относительных путей, заданных с помощью переменных.
  10372. </para>
  10373. <para lang="en">
  10374. memory leak if relative paths were specified using variables
  10375. in the "root" or "auth_basic_user_file" directives.
  10376. </para>
  10377. </change>

  10378. <change type="bugfix">
  10379. <para lang="ru">
  10380. директива valid_referers неправильно выполняла регулярные выражения,
  10381. если заголовок Referer начинался с "https://".<br/>
  10382. Спасибо Liangbin Li.
  10383. </para>
  10384. <para lang="en">
  10385. the "valid_referers" directive incorrectly executed regular expressions
  10386. if a "Referer" header started with "https://".<br/>
  10387. Thanks to Liangbin Li.
  10388. </para>
  10389. </change>

  10390. <change type="bugfix">
  10391. <para lang="ru">
  10392. ответы могли зависать, если использовались подзапросы и при обработке подзапроса
  10393. происходила ошибка во время SSL handshake с бэкендом.<br/>
  10394. Спасибо Aviram Cohen.
  10395. </para>
  10396. <para lang="en">
  10397. responses might hang if subrequests were used
  10398. and an SSL handshake error happened during subrequest processing.<br/>
  10399. Thanks to Aviram Cohen.
  10400. </para>
  10401. </change>

  10402. <change type="bugfix">
  10403. <para lang="ru">
  10404. в модуле ngx_http_autoindex_module.
  10405. </para>
  10406. <para lang="en">
  10407. in the ngx_http_autoindex_module.
  10408. </para>
  10409. </change>

  10410. <change type="bugfix">
  10411. <para lang="ru">
  10412. в модуле ngx_http_spdy_module.
  10413. </para>
  10414. <para lang="en">
  10415. in the ngx_http_spdy_module.
  10416. </para>
  10417. </change>

  10418. </changes>


  10419. <changes ver="1.5.3" date="2013-07-30">

  10420. <change>
  10421. <para lang="ru">
  10422. Изменение во внутреннем API:
  10423. теперь при небуферизированной работе с бэкендами
  10424. u->length по умолчанию устанавливается в -1.
  10425. </para>
  10426. <para lang="en">
  10427. Change in internal API:
  10428. now u->length defaults to -1
  10429. if working with backends in unbuffered mode.
  10430. </para>
  10431. </change>

  10432. <change type="change">
  10433. <para lang="ru">
  10434. теперь при получении неполного ответа от бэкенда
  10435. nginx отправляет полученную часть ответа,
  10436. после чего закрывает соединение с клиентом.
  10437. </para>
  10438. <para lang="en">
  10439. now after receiving an incomplete response from a backend server
  10440. nginx tries to send an available part of the response to a client,
  10441. and then closes client connection.
  10442. </para>
  10443. </change>

  10444. <change type="bugfix">
  10445. <para lang="ru">
  10446. в рабочем процессе мог произойти segmentation fault,
  10447. если использовался модуль ngx_http_spdy_module
  10448. и директива client_body_in_file_only.
  10449. </para>
  10450. <para lang="en">
  10451. a segmentation fault might occur in a worker process
  10452. if the ngx_http_spdy_module was used
  10453. with the "client_body_in_file_only" directive.
  10454. </para>
  10455. </change>

  10456. <change type="bugfix">
  10457. <para lang="ru">
  10458. параметр so_keepalive директивы listen
  10459. мог работать некорректно на DragonFlyBSD.<br/>
  10460. Спасибо Sepherosa Ziehau.
  10461. </para>
  10462. <para lang="en">
  10463. the "so_keepalive" parameter of the "listen" directive
  10464. might be handled incorrectly on DragonFlyBSD.<br/>
  10465. Thanks to Sepherosa Ziehau.
  10466. </para>
  10467. </change>

  10468. <change type="bugfix">
  10469. <para lang="ru">
  10470. в модуле ngx_http_xslt_filter_module.
  10471. </para>
  10472. <para lang="en">
  10473. in the ngx_http_xslt_filter_module.
  10474. </para>
  10475. </change>

  10476. <change type="bugfix">
  10477. <para lang="ru">
  10478. в модуле ngx_http_sub_filter_module.
  10479. </para>
  10480. <para lang="en">
  10481. in the ngx_http_sub_filter_module.
  10482. </para>
  10483. </change>

  10484. </changes>


  10485. <changes ver="1.5.2" date="2013-07-02">

  10486. <change type="feature">
  10487. <para lang="ru">
  10488. теперь можно использовать несколько директив error_log.
  10489. </para>
  10490. <para lang="en">
  10491. now several "error_log" directives can be used.
  10492. </para>
  10493. </change>

  10494. <change type="bugfix">
  10495. <para lang="ru">
  10496. метод $r->header_in() встроенного перла не возвращал значения строк
  10497. "Cookie" и "X-Forwarded-For" из заголовка запроса;
  10498. ошибка появилась в 1.3.14.
  10499. </para>
  10500. <para lang="en">
  10501. the $r->header_in() embedded perl method did not return value of the
  10502. "Cookie" and "X-Forwarded-For" request header lines;
  10503. the bug had appeared in 1.3.14.
  10504. </para>
  10505. </change>

  10506. <change type="bugfix">
  10507. <para lang="ru">
  10508. в модуле ngx_http_spdy_module.<br/>
  10509. Спасибо Jim Radford.
  10510. </para>
  10511. <para lang="en">
  10512. in the ngx_http_spdy_module.<br/>
  10513. Thanks to Jim Radford.
  10514. </para>
  10515. </change>

  10516. <change type="bugfix">
  10517. <para lang="ru">
  10518. nginx не собирался на Linux при использовании x32 ABI.<br/>
  10519. Спасибо Сергею Иванцову.
  10520. </para>
  10521. <para lang="en">
  10522. nginx could not be built on Linux with x32 ABI.<br/>
  10523. Thanks to Serguei Ivantsov.
  10524. </para>
  10525. </change>

  10526. </changes>


  10527. <changes ver="1.5.1" date="2013-06-04">

  10528. <change type="feature">
  10529. <para lang="ru">
  10530. директивы ssi_last_modified, sub_filter_last_modified и
  10531. xslt_last_modified.<br/>
  10532. Спасибо Алексею Колпакову.
  10533. </para>
  10534. <para lang="en">
  10535. the "ssi_last_modified", "sub_filter_last_modified", and
  10536. "xslt_last_modified" directives.<br/>
  10537. Thanks to Alexey Kolpakov.
  10538. </para>
  10539. </change>

  10540. <change type="feature">
  10541. <para lang="ru">
  10542. параметр http_403 в директивах proxy_next_upstream, fastcgi_next_upstream,
  10543. scgi_next_upstream и uwsgi_next_upstream.
  10544. </para>
  10545. <para lang="en">
  10546. the "http_403" parameter of the "proxy_next_upstream", "fastcgi_next_upstream",
  10547. "scgi_next_upstream", and "uwsgi_next_upstream" directives.
  10548. </para>
  10549. </change>

  10550. <change type="feature">
  10551. <para lang="ru">
  10552. директивы allow и deny теперь поддерживают unix domain сокеты.
  10553. </para>
  10554. <para lang="en">
  10555. the "allow" and "deny" directives now support unix domain sockets.
  10556. </para>
  10557. </change>

  10558. <change type="bugfix">
  10559. <para lang="ru">
  10560. nginx не собирался с модулем ngx_mail_ssl_module,
  10561. но без модуля ngx_http_ssl_module;
  10562. ошибка появилась в 1.3.14.
  10563. </para>
  10564. <para lang="en">
  10565. nginx could not be built with the ngx_mail_ssl_module,
  10566. but without ngx_http_ssl_module;
  10567. the bug had appeared in 1.3.14.
  10568. </para>
  10569. </change>

  10570. <change type="bugfix">
  10571. <para lang="ru">
  10572. в директиве proxy_set_body.<br/>
  10573. Спасибо Lanshun Zhou.
  10574. </para>
  10575. <para lang="en">
  10576. in the "proxy_set_body" directive.<br/>
  10577. Thanks to Lanshun Zhou.
  10578. </para>
  10579. </change>

  10580. <change type="bugfix">
  10581. <para lang="ru">
  10582. в директиве lingering_time.<br/>
  10583. Спасибо Lanshun Zhou.
  10584. </para>
  10585. <para lang="en">
  10586. in the "lingering_time" directive.<br/>
  10587. Thanks to Lanshun Zhou.
  10588. </para>
  10589. </change>

  10590. <change type="bugfix">
  10591. <para lang="ru">
  10592. параметр fail_timeout директивы server
  10593. в блоке upstream мог не работать,
  10594. если использовался параметр max_fails;
  10595. ошибка появилась в 1.3.0.
  10596. </para>
  10597. <para lang="en">
  10598. the "fail_timeout" parameter of the "server" directive
  10599. in the "upstream" context might not work
  10600. if "max_fails" parameter was used;
  10601. the bug had appeared in 1.3.0.
  10602. </para>
  10603. </change>

  10604. <change type="bugfix">
  10605. <para lang="ru">
  10606. в рабочем процессе мог произойти segmentation fault,
  10607. если использовалась директива ssl_stapling.<br/>
  10608. Спасибо Piotr Sikora.
  10609. </para>
  10610. <para lang="en">
  10611. a segmentation fault might occur in a worker process
  10612. if the "ssl_stapling" directive was used.<br/>
  10613. Thanks to Piotr Sikora.
  10614. </para>
  10615. </change>

  10616. <change type="bugfix">
  10617. <para lang="ru">
  10618. в почтовом прокси-сервере.<br/>
  10619. Спасибо Filipe Da Silva.
  10620. </para>
  10621. <para lang="en">
  10622. in the mail proxy server.<br/>
  10623. Thanks to Filipe Da Silva.
  10624. </para>
  10625. </change>

  10626. <change type="bugfix">
  10627. <para lang="ru">
  10628. nginx/Windows мог перестать принимать соединения,
  10629. если использовалось несколько рабочих процессов.
  10630. </para>
  10631. <para lang="en">
  10632. nginx/Windows might stop accepting connections
  10633. if several worker processes were used.
  10634. </para>
  10635. </change>

  10636. </changes>


  10637. <changes ver="1.5.0" date="2013-05-07">

  10638. <change type="security">
  10639. <para lang="ru">
  10640. при обработке специально созданного запроса
  10641. мог перезаписываться стек рабочего процесса,
  10642. что могло приводить к выполнению произвольного кода (CVE-2013-2028);
  10643. ошибка появилась в 1.3.9.<br/>
  10644. Спасибо Greg MacManus, iSIGHT Partners Labs.
  10645. </para>
  10646. <para lang="en">
  10647. a stack-based buffer overflow might occur in a worker process
  10648. while handling a specially crafted request,
  10649. potentially resulting in arbitrary code execution (CVE-2013-2028);
  10650. the bug had appeared in 1.3.9.<br/>
  10651. Thanks to Greg MacManus, iSIGHT Partners Labs.
  10652. </para>
  10653. </change>

  10654. </changes>


  10655. <changes ver="1.4.0" date="2013-04-24">

  10656. <change type="bugfix">
  10657. <para lang="ru">
  10658. nginx не собирался с модулем ngx_http_perl_module,
  10659. если использовался параметр --with-openssl;
  10660. ошибка появилась в 1.3.16.
  10661. </para>
  10662. <para lang="en">
  10663. nginx could not be built with the ngx_http_perl_module
  10664. if the --with-openssl option was used;
  10665. the bug had appeared in 1.3.16.
  10666. </para>
  10667. </change>

  10668. <change type="bugfix">
  10669. <para lang="ru">
  10670. в работе с телом запроса из модуля ngx_http_perl_module;
  10671. ошибка появилась в 1.3.9.
  10672. </para>
  10673. <para lang="en">
  10674. in a request body handling in the ngx_http_perl_module;
  10675. the bug had appeared in 1.3.9.
  10676. </para>
  10677. </change>

  10678. </changes>


  10679. <changes ver="1.3.16" date="2013-04-16">

  10680. <change type="bugfix">
  10681. <para lang="ru">
  10682. в рабочем процессе мог произойти segmentation fault,
  10683. если использовались подзапросы;
  10684. ошибка появилась в 1.3.9.
  10685. </para>
  10686. <para lang="en">
  10687. a segmentation fault might occur in a worker process
  10688. if subrequests were used;
  10689. the bug had appeared in 1.3.9.
  10690. </para>
  10691. </change>

  10692. <change type="bugfix">
  10693. <para lang="ru">
  10694. директива tcp_nodelay вызывала ошибку
  10695. при проксировании WebSocket-соединений в unix domain сокет.
  10696. </para>
  10697. <para lang="en">
  10698. the "tcp_nodelay" directive caused an error
  10699. if a WebSocket connection was proxied into a unix domain socket.
  10700. </para>
  10701. </change>

  10702. <change type="bugfix">
  10703. <para lang="ru">
  10704. переменная $upstream_response_length возвращала значение "0",
  10705. если не использовалась буферизация.<br/>
  10706. Спасибо Piotr Sikora.
  10707. </para>
  10708. <para lang="en">
  10709. the $upstream_response_length variable has an incorrect value "0"
  10710. if buffering was not used.<br/>
  10711. Thanks to Piotr Sikora.
  10712. </para>
  10713. </change>

  10714. <change type="bugfix">
  10715. <para lang="ru">
  10716. в методах обработки соединений eventport и /dev/poll.
  10717. </para>
  10718. <para lang="en">
  10719. in the eventport and /dev/poll methods.
  10720. </para>
  10721. </change>

  10722. </changes>


  10723. <changes ver="1.3.15" date="2013-03-26">

  10724. <change type="change">
  10725. <para lang="ru">
  10726. открытие и закрытие соединения без отправки в нём каких-либо данных
  10727. больше не записывается в access_log с кодом ошибки 400.
  10728. </para>
  10729. <para lang="en">
  10730. opening and closing a connection without sending any data in it
  10731. is no longer logged to access_log with error code 400.
  10732. </para>
  10733. </change>

  10734. <change type="feature">
  10735. <para lang="ru">
  10736. модуль ngx_http_spdy_module.<br/>
  10737. Спасибо Automattic за спонсирование разработки.
  10738. </para>
  10739. <para lang="en">
  10740. the ngx_http_spdy_module.<br/>
  10741. Thanks to Automattic for sponsoring this work.
  10742. </para>
  10743. </change>

  10744. <change type="feature">
  10745. <para lang="ru">
  10746. директивы limit_req_status и limit_conn_status.<br/>
  10747. Спасибо Nick Marden.
  10748. </para>
  10749. <para lang="en">
  10750. the "limit_req_status" and "limit_conn_status" directives.<br/>
  10751. Thanks to Nick Marden.
  10752. </para>
  10753. </change>

  10754. <change type="feature">
  10755. <para lang="ru">
  10756. директива image_filter_interlace.<br/>
  10757. Спасибо Ивану Боброву.
  10758. </para>
  10759. <para lang="en">
  10760. the "image_filter_interlace" directive.<br/>
  10761. Thanks to Ian Babrou.
  10762. </para>
  10763. </change>

  10764. <change type="feature">
  10765. <para lang="ru">
  10766. переменная $connections_waiting в модуле ngx_http_stub_status_module.
  10767. </para>
  10768. <para lang="en">
  10769. $connections_waiting variable in the ngx_http_stub_status_module.
  10770. </para>
  10771. </change>

  10772. <change type="feature">
  10773. <para lang="ru">
  10774. теперь почтовый прокси-сервер поддерживает IPv6-бэкенды.
  10775. </para>
  10776. <para lang="en">
  10777. the mail proxy module now supports IPv6 backends.
  10778. </para>
  10779. </change>

  10780. <change type="bugfix">
  10781. <para lang="ru">
  10782. при повторной отправке запроса на бэкенд
  10783. тело запроса могло передаваться неправильно;
  10784. ошибка появилась в 1.3.9.<br/>
  10785. Спасибо Piotr Sikora.
  10786. </para>
  10787. <para lang="en">
  10788. request body might be transmitted incorrectly
  10789. when retrying a request to the next upstream server;
  10790. the bug had appeared in 1.3.9.<br/>
  10791. Thanks to Piotr Sikora.
  10792. </para>
  10793. </change>

  10794. <change type="bugfix">
  10795. <para lang="ru">
  10796. в директиве client_body_in_file_only;
  10797. ошибка появилась в 1.3.9.
  10798. </para>
  10799. <para lang="en">
  10800. in the "client_body_in_file_only" directive;
  10801. the bug had appeared in 1.3.9.
  10802. </para>
  10803. </change>

  10804. <change type="bugfix">
  10805. <para lang="ru">
  10806. ответы могли зависать,
  10807. если использовались подзапросы
  10808. и при обработке подзапроса происходила DNS-ошибка.<br/>
  10809. Спасибо Lanshun Zhou.
  10810. </para>
  10811. <para lang="en">
  10812. responses might hang
  10813. if subrequests were used
  10814. and a DNS error happened during subrequest processing.<br/>
  10815. Thanks to Lanshun Zhou.
  10816. </para>
  10817. </change>

  10818. <change type="bugfix">
  10819. <para lang="ru">
  10820. в процедуре учёта использования бэкендов.
  10821. </para>
  10822. <para lang="en">
  10823. in backend usage accounting.
  10824. </para>
  10825. </change>

  10826. </changes>


  10827. <changes ver="1.3.14" date="2013-03-05">

  10828. <change type="feature">
  10829. <para lang="ru">
  10830. переменные $connections_active, $connections_reading и $connections_writing
  10831. в модуле ngx_http_stub_status_module.
  10832. </para>
  10833. <para lang="en">
  10834. $connections_active, $connections_reading, and $connections_writing variables
  10835. in the ngx_http_stub_status_module.
  10836. </para>
  10837. </change>

  10838. <change type="feature">
  10839. <para lang="ru">
  10840. поддержка WebSocket-соединений
  10841. в модулях ngx_http_uwsgi_module и ngx_http_scgi_module.
  10842. </para>
  10843. <para lang="en">
  10844. support of WebSocket connections
  10845. in the ngx_http_uwsgi_module and ngx_http_scgi_module.
  10846. </para>
  10847. </change>

  10848. <change type="bugfix">
  10849. <para lang="ru">
  10850. в обработке виртуальных серверов при использовании SNI.
  10851. </para>
  10852. <para lang="en">
  10853. in virtual servers handling with SNI.
  10854. </para>
  10855. </change>

  10856. <change type="bugfix">
  10857. <para lang="ru">
  10858. при использовании директивы "ssl_session_cache shared"
  10859. новые сессии могли не сохраняться,
  10860. если заканчивалось место в разделяемой памяти.<br/>
  10861. Спасибо Piotr Sikora.
  10862. </para>
  10863. <para lang="en">
  10864. new sessions were not always stored
  10865. if the "ssl_session_cache shared" directive was used
  10866. and there was no free space in shared memory.<br/>
  10867. Thanks to Piotr Sikora.
  10868. </para>
  10869. </change>

  10870. <change type="bugfix">
  10871. <para lang="ru">
  10872. несколько заголовков X-Forwarded-For обрабатывались неправильно.<br/>
  10873. Спасибо Neal Poole за спонсирование разработки.
  10874. </para>
  10875. <para lang="en">
  10876. multiple X-Forwarded-For headers were handled incorrectly.<br/>
  10877. Thanks to Neal Poole for sponsoring this work.
  10878. </para>
  10879. </change>

  10880. <change type="bugfix">
  10881. <para lang="ru">
  10882. в модуле ngx_http_mp4_module.<br/>
  10883. Спасибо Gernot Vormayr.
  10884. </para>
  10885. <para lang="en">
  10886. in the ngx_http_mp4_module.<br/>
  10887. Thanks to Gernot Vormayr.
  10888. </para>
  10889. </change>

  10890. </changes>


  10891. <changes ver="1.3.13" date="2013-02-19">

  10892. <change type="change">
  10893. <para lang="ru">
  10894. теперь для сборки по умолчанию используется компилятор с именем "cc".
  10895. </para>
  10896. <para lang="en">
  10897. a compiler with name "cc" is now used by default.
  10898. </para>
  10899. </change>

  10900. <change type="feature">
  10901. <para lang="ru">
  10902. поддержка проксирования WebSocket-соединений.<br/>
  10903. Спасибо Apcera и CloudBees за спонсирование разработки.
  10904. </para>
  10905. <para lang="en">
  10906. support for proxying of WebSocket connections.<br/>
  10907. Thanks to Apcera and CloudBees for sponsoring this work.
  10908. </para>
  10909. </change>

  10910. <change type="feature">
  10911. <para lang="ru">
  10912. директива auth_basic_user_file поддерживает шифрование паролей
  10913. методом "{SHA}".<br/>
  10914. Спасибо Louis Opter.
  10915. </para>
  10916. <para lang="en">
  10917. the "auth_basic_user_file" directive supports "{SHA}"
  10918. password encryption method.<br/>
  10919. Thanks to Louis Opter.
  10920. </para>
  10921. </change>

  10922. </changes>


  10923. <changes ver="1.3.12" date="2013-02-05">

  10924. <change type="feature">
  10925. <para lang="ru">
  10926. директивы proxy_bind, fastcgi_bind, memcached_bind, scgi_bind и uwsgi_bind
  10927. поддерживают переменные.
  10928. </para>
  10929. <para lang="en">
  10930. variables support in the "proxy_bind", "fastcgi_bind", "memcached_bind",
  10931. "scgi_bind", and "uwsgi_bind" directives.
  10932. </para>
  10933. </change>

  10934. <change type="feature">
  10935. <para lang="ru">
  10936. переменные $pipe, $request_length, $time_iso8601 и $time_local
  10937. теперь можно использовать не только в директиве log_format.<br/>
  10938. Спасибо Kiril Kalchev.
  10939. </para>
  10940. <para lang="en">
  10941. the $pipe, $request_length, $time_iso8601, and $time_local variables
  10942. can now be used not only in the "log_format" directive.
  10943. Thanks to Kiril Kalchev.
  10944. </para>
  10945. </change>

  10946. <change type="feature">
  10947. <para lang="ru">
  10948. поддержка IPv6 в модуле ngx_http_geoip_module.<br/>
  10949. Спасибо Gregor Kališnik.
  10950. </para>
  10951. <para lang="en">
  10952. IPv6 support in the ngx_http_geoip_module.<br/>
  10953. Thanks to Gregor Kališnik.
  10954. </para>
  10955. </change>

  10956. <change type="bugfix">
  10957. <para lang="ru">
  10958. директива proxy_method работала неверно, если была указана на уровне http.
  10959. </para>
  10960. <para lang="en">
  10961. in the "proxy_method" directive.
  10962. </para>
  10963. </change>

  10964. <change type="bugfix">
  10965. <para lang="ru">
  10966. в рабочем процессе мог произойти segmentation fault,
  10967. если использовался resolver и метод poll.
  10968. </para>
  10969. <para lang="en">
  10970. a segmentation fault might occur in a worker process
  10971. if resolver was used with the poll method.
  10972. </para>
  10973. </change>

  10974. <change type="bugfix">
  10975. <para lang="ru">
  10976. nginx мог нагружать процессор во время SSL handshake с бэкендом
  10977. при использовании методов обработки соединений select, poll и /dev/poll.
  10978. </para>
  10979. <para lang="en">
  10980. nginx might hog CPU during SSL handshake with a backend
  10981. if the select, poll, or /dev/poll methods were used.
  10982. </para>
  10983. </change>

  10984. <change type="bugfix">
  10985. <para lang="ru">
  10986. ошибка "[crit] SSL_write() failed (SSL:)".
  10987. </para>
  10988. <para lang="en">
  10989. the "[crit] SSL_write() failed (SSL:)" error.
  10990. </para>
  10991. </change>

  10992. <change type="bugfix">
  10993. <para lang="ru">
  10994. в директиве client_body_in_file_only;
  10995. ошибка появилась в 1.3.9.
  10996. </para>
  10997. <para lang="en">
  10998. in the "client_body_in_file_only" directive;
  10999. the bug had appeared in 1.3.9.
  11000. </para>
  11001. </change>

  11002. <change type="bugfix">
  11003. <para lang="ru">
  11004. в директиве fastcgi_keep_conn.
  11005. </para>
  11006. <para lang="en">
  11007. in the "fastcgi_keep_conn" directive.
  11008. </para>
  11009. </change>

  11010. </changes>


  11011. <changes ver="1.3.11" date="2013-01-10">

  11012. <change type="bugfix">
  11013. <para lang="ru">
  11014. при записи в лог мог происходить segmentation fault;
  11015. ошибка появилась в 1.3.10.
  11016. </para>
  11017. <para lang="en">
  11018. a segmentation fault might occur if logging was used;
  11019. the bug had appeared in 1.3.10.
  11020. </para>
  11021. </change>

  11022. <change type="bugfix">
  11023. <para lang="ru">
  11024. директива proxy_pass не работала с IP-адресами
  11025. без явного указания порта;
  11026. ошибка появилась в 1.3.10.
  11027. </para>
  11028. <para lang="en">
  11029. the "proxy_pass" directive did not work with IP addresses
  11030. without port specified;
  11031. the bug had appeared in 1.3.10.
  11032. </para>
  11033. </change>

  11034. <change type="bugfix">
  11035. <para lang="ru">
  11036. на старте или во время переконфигурации происходил segmentation fault,
  11037. если директива keepalive была указана несколько раз
  11038. в одном блоке upstream.
  11039. </para>
  11040. <para lang="en">
  11041. a segmentation fault occurred on start or during reconfiguration
  11042. if the "keepalive" directive was specified more than once
  11043. in a single upstream block.
  11044. </para>
  11045. </change>

  11046. <change type="bugfix">
  11047. <para lang="ru">
  11048. параметр default директивы geo не определял значение по умолчанию
  11049. для IPv6-адресов.
  11050. </para>
  11051. <para lang="en">
  11052. parameter "default" of the "geo" directive did not set default value
  11053. for IPv6 addresses.
  11054. </para>
  11055. </change>

  11056. </changes>


  11057. <changes ver="1.3.10" date="2012-12-25">

  11058. <change type="change">
  11059. <para lang="ru">
  11060. для указанных в конфигурационном файле доменных имён теперь
  11061. используются не только IPv4, но и IPv6 адреса.
  11062. </para>
  11063. <para lang="en">
  11064. domain names specified in configuration file
  11065. are now resolved to IPv6 addresses as well as IPv4 ones.
  11066. </para>
  11067. </change>

  11068. <change type="change">
  11069. <para lang="ru">
  11070. теперь при использовании директивы include с маской на Unix-системах
  11071. включаемые файлы сортируются в алфавитном порядке.
  11072. </para>
  11073. <para lang="en">
  11074. now if the "include" directive with mask is used on Unix systems,
  11075. included files are sorted in alphabetical order.
  11076. </para>
  11077. </change>

  11078. <change type="change">
  11079. <para lang="ru">
  11080. директива add_header добавляет строки в ответы с кодом 201.
  11081. </para>
  11082. <para lang="en">
  11083. the "add_header" directive adds headers to 201 responses.
  11084. </para>
  11085. </change>

  11086. <change type="feature">
  11087. <para lang="ru">
  11088. директива geo теперь поддерживает IPv6 адреса в формате CIDR.
  11089. </para>
  11090. <para lang="en">
  11091. the "geo" directive now supports IPv6 addresses in CIDR notation.
  11092. </para>
  11093. </change>

  11094. <change type="feature">
  11095. <para lang="ru">
  11096. параметры flush и gzip в директиве access_log.
  11097. </para>
  11098. <para lang="en">
  11099. the "flush" and "gzip" parameters of the "access_log" directive.
  11100. </para>
  11101. </change>

  11102. <change type="feature">
  11103. <para lang="ru">
  11104. директива auth_basic поддерживает переменные.
  11105. </para>
  11106. <para lang="en">
  11107. variables support in the "auth_basic" directive.
  11108. </para>
  11109. </change>

  11110. <change type="bugfix">
  11111. <para lang="ru">
  11112. nginx в некоторых случаях не собирался с модулем ngx_http_perl_module.
  11113. </para>
  11114. <para lang="en">
  11115. nginx could not be built with the ngx_http_perl_module in some cases.
  11116. </para>
  11117. </change>

  11118. <change type="bugfix">
  11119. <para lang="ru">
  11120. в рабочем процессе мог произойти segmentation fault,
  11121. если использовался модуль ngx_http_xslt_module.
  11122. </para>
  11123. <para lang="en">
  11124. a segmentation fault might occur in a worker process
  11125. if the ngx_http_xslt_module was used.
  11126. </para>
  11127. </change>

  11128. <change type="bugfix">
  11129. <para lang="ru">
  11130. nginx мог не собираться на MacOSX.<br/>
  11131. Спасибо Piotr Sikora.
  11132. </para>
  11133. <para lang="en">
  11134. nginx could not be built on MacOSX in some cases.<br/>
  11135. Thanks to Piotr Sikora.
  11136. </para>
  11137. </change>

  11138. <change type="bugfix">
  11139. <para lang="ru">
  11140. при использовании директивы limit_rate с большими значениями скорости
  11141. на 32-битных системах ответ мог возвращаться не целиком.<br/>
  11142. Спасибо Алексею Антропову.
  11143. </para>
  11144. <para lang="en">
  11145. the "limit_rate" directive with high rates
  11146. might result in truncated responses on 32-bit platforms.<br/>
  11147. Thanks to Alexey Antropov.
  11148. </para>
  11149. </change>

  11150. <change type="bugfix">
  11151. <para lang="ru">
  11152. в рабочем процессе мог произойти segmentation fault,
  11153. если использовалась директива if.<br/>
  11154. Спасибо Piotr Sikora.
  11155. </para>
  11156. <para lang="en">
  11157. a segmentation fault might occur in a worker process
  11158. if the "if" directive was used.<br/>
  11159. Thanks to Piotr Sikora.
  11160. </para>
  11161. </change>

  11162. <change type="bugfix">
  11163. <para lang="ru">
  11164. ответ "100 Continue" выдавался
  11165. вместе с ответом "413 Request Entity Too Large".
  11166. </para>
  11167. <para lang="en">
  11168. a "100 Continue" response was issued
  11169. with "413 Request Entity Too Large" responses.
  11170. </para>
  11171. </change>

  11172. <change type="bugfix">
  11173. <para lang="ru">
  11174. директивы image_filter, image_filter_jpeg_quality и image_filter_sharpen
  11175. могли наследоваться некорректно.<br/>
  11176. Спасибо Ивану Боброву.
  11177. </para>
  11178. <para lang="en">
  11179. the "image_filter", "image_filter_jpeg_quality"
  11180. and "image_filter_sharpen" directives
  11181. might be inherited incorrectly.<br/>
  11182. Thanks to Ian Babrou.
  11183. </para>
  11184. </change>

  11185. <change type="bugfix">
  11186. <para lang="ru">
  11187. при использовании директивы auth_basic под Linux
  11188. могли возникать ошибки "crypt_r() failed".
  11189. </para>
  11190. <para lang="en">
  11191. "crypt_r() failed" errors might appear
  11192. if the "auth_basic" directive was used on Linux.
  11193. </para>
  11194. </change>

  11195. <change type="bugfix">
  11196. <para lang="ru">
  11197. в обработке backup-серверов.<br/>
  11198. Спасибо Thomas Chen.
  11199. </para>
  11200. <para lang="en">
  11201. in backup servers handling.<br/>
  11202. Thanks to Thomas Chen.
  11203. </para>
  11204. </change>

  11205. <change type="bugfix">
  11206. <para lang="ru">
  11207. при проксировании HEAD-запросов мог возвращаться некорректный ответ,
  11208. если использовалась директива gzip.
  11209. </para>
  11210. <para lang="en">
  11211. proxied HEAD requests might return incorrect response
  11212. if the "gzip" directive was used.
  11213. </para>
  11214. </change>

  11215. </changes>


  11216. <changes ver="1.3.9" date="2012-11-27">

  11217. <change type="feature">
  11218. <para lang="ru">
  11219. поддержка chunked transfer encoding при получении тела запроса.
  11220. </para>
  11221. <para lang="en">
  11222. support for chunked transfer encoding while reading client request body.
  11223. </para>
  11224. </change>

  11225. <change type="feature">
  11226. <para lang="ru">
  11227. переменные $request_time и $msec
  11228. теперь можно использовать не только в директиве log_format.
  11229. </para>
  11230. <para lang="en">
  11231. the $request_time and $msec variables
  11232. can now be used not only in the "log_format" directive.
  11233. </para>
  11234. </change>

  11235. <change type="bugfix">
  11236. <para lang="ru">
  11237. cache manager и cache loader могли не запускаться,
  11238. если использовалось более 512 listen-сокетов.
  11239. </para>
  11240. <para lang="en">
  11241. cache manager and cache loader processes might not be able to start
  11242. if more than 512 listen sockets were used.
  11243. </para>
  11244. </change>

  11245. <change type="bugfix">
  11246. <para lang="ru">
  11247. в модуле ngx_http_dav_module.
  11248. </para>
  11249. <para lang="en">
  11250. in the ngx_http_dav_module.
  11251. </para>
  11252. </change>

  11253. </changes>


  11254. <changes ver="1.3.8" date="2012-10-30">

  11255. <change type="feature">
  11256. <para lang="ru">
  11257. параметр optional_no_ca директивы ssl_verify_client.<br/>
  11258. Спасибо Михаилу Казанцеву и Eric O'Connor.
  11259. </para>
  11260. <para lang="en">
  11261. the "optional_no_ca" parameter of the "ssl_verify_client" directive.<br/>
  11262. Thanks to Mike Kazantsev and Eric O'Connor.
  11263. </para>
  11264. </change>

  11265. <change type="feature">
  11266. <para lang="ru">
  11267. переменные $bytes_sent, $connection и $connection_requests
  11268. теперь можно использовать не только в директиве log_format.<br/>
  11269. Спасибо Benjamin Grössing.
  11270. </para>
  11271. <para lang="en">
  11272. the $bytes_sent, $connection, and $connection_requests variables
  11273. can now be used not only in the "log_format" directive.<br/>
  11274. Thanks to Benjamin Grössing.
  11275. </para>
  11276. </change>

  11277. <change type="feature">
  11278. <para lang="ru">
  11279. параметр auto директивы worker_processes.
  11280. </para>
  11281. <para lang="en">
  11282. the "auto" parameter of the "worker_processes" directive.
  11283. </para>
  11284. </change>

  11285. <change type="bugfix">
  11286. <para lang="ru">
  11287. сообщения "cache file ... has md5 collision".
  11288. </para>
  11289. <para lang="en">
  11290. "cache file ... has md5 collision" alert.
  11291. </para>
  11292. </change>

  11293. <change type="bugfix">
  11294. <para lang="ru">
  11295. в модуле ngx_http_gunzip_filter_module.
  11296. </para>
  11297. <para lang="en">
  11298. in the ngx_http_gunzip_filter_module.
  11299. </para>
  11300. </change>

  11301. <change type="bugfix">
  11302. <para lang="ru">
  11303. в директиве ssl_stapling.
  11304. </para>
  11305. <para lang="en">
  11306. in the "ssl_stapling" directive.
  11307. </para>
  11308. </change>

  11309. </changes>


  11310. <changes ver="1.3.7" date="2012-10-02">

  11311. <change type="feature">
  11312. <para lang="ru">
  11313. поддержка OCSP stapling.<br/>
  11314. Спасибо Comodo, DigiCert и GlobalSign за спонсирование разработки.
  11315. </para>
  11316. <para lang="en">
  11317. OCSP stapling support.<br/>
  11318. Thanks to Comodo, DigiCert and GlobalSign for sponsoring this work.
  11319. </para>
  11320. </change>

  11321. <change type="feature">
  11322. <para lang="ru">
  11323. директива ssl_trusted_certificate.
  11324. </para>
  11325. <para lang="en">
  11326. the "ssl_trusted_certificate" directive.
  11327. </para>
  11328. </change>

  11329. <change type="feature">
  11330. <para lang="ru">
  11331. теперь resolver случайным образом меняет порядок
  11332. возвращаемых закэшированных адресов.<br/>
  11333. Спасибо Антону Жулину.
  11334. </para>
  11335. <para lang="en">
  11336. resolver now randomly rotates addresses
  11337. returned from cache.<br/>
  11338. Thanks to Anton Jouline.
  11339. </para>
  11340. </change>

  11341. <change type="bugfix">
  11342. <para lang="ru">
  11343. совместимость с OpenSSL 0.9.7.
  11344. </para>
  11345. <para lang="en">
  11346. OpenSSL 0.9.7 compatibility.
  11347. </para>
  11348. </change>

  11349. </changes>


  11350. <changes ver="1.3.6" date="2012-09-12">

  11351. <change type="feature">
  11352. <para lang="ru">
  11353. модуль ngx_http_gunzip_filter_module.
  11354. </para>
  11355. <para lang="en">
  11356. the ngx_http_gunzip_filter_module.
  11357. </para>
  11358. </change>

  11359. <change type="feature">
  11360. <para lang="ru">
  11361. директива memcached_gzip_flag.
  11362. </para>
  11363. <para lang="en">
  11364. the "memcached_gzip_flag" directive.
  11365. </para>
  11366. </change>

  11367. <change type="feature">
  11368. <para lang="ru">
  11369. параметр always директивы gzip_static.
  11370. </para>
  11371. <para lang="en">
  11372. the "always" parameter of the "gzip_static" directive.
  11373. </para>
  11374. </change>

  11375. <change type="bugfix">
  11376. <para lang="ru">
  11377. в директиве "limit_req";
  11378. ошибка появилась в 1.1.14.<br/>
  11379. Спасибо Charles Chen.
  11380. </para>
  11381. <para lang="en">
  11382. in the "limit_req" directive;
  11383. the bug had appeared in 1.1.14.<br/>
  11384. Thanks to Charles Chen.
  11385. </para>
  11386. </change>

  11387. <change type="bugfix">
  11388. <para lang="ru">
  11389. nginx не собирался gcc 4.7 с оптимизацией -O2
  11390. если использовался параметр --with-ipv6.
  11391. </para>
  11392. <para lang="en">
  11393. nginx could not be built by gcc 4.7 with -O2 optimization
  11394. if the --with-ipv6 option was used.
  11395. </para>
  11396. </change>

  11397. </changes>


  11398. <changes ver="1.3.5" date="2012-08-21">

  11399. <change type="change">
  11400. <para lang="ru">
  11401. модуль ngx_http_mp4_module больше не отфильтровывает дорожки
  11402. в форматах, отличных от H.264 и AAC.
  11403. </para>
  11404. <para lang="en">
  11405. the ngx_http_mp4_module module no longer skips
  11406. tracks in formats other than H.264 and AAC.
  11407. </para>
  11408. </change>

  11409. <change type="bugfix">
  11410. <para lang="ru">
  11411. в рабочем процессе мог произойти segmentation fault,
  11412. если в директиве map в качестве значений использовались переменные.
  11413. </para>
  11414. <para lang="en">
  11415. a segmentation fault might occur in a worker process
  11416. if the "map" directive was used with variables as values.
  11417. </para>
  11418. </change>

  11419. <change type="bugfix">
  11420. <para lang="ru">
  11421. в рабочем процессе мог произойти segmentation fault
  11422. при использовании директивы geo с параметром ranges,
  11423. но без параметра default; ошибка появилась в 0.8.43.<br/>
  11424. Спасибо Zhen Chen и Weibin Yao.
  11425. </para>
  11426. <para lang="en">
  11427. a segmentation fault might occur in a worker process
  11428. if the "geo" directive was used with the "ranges" parameter
  11429. but without the "default" parameter; the bug had appeared in 0.8.43.<br/>
  11430. Thanks to Zhen Chen and Weibin Yao.
  11431. </para>
  11432. </change>

  11433. <change type="bugfix">
  11434. <para lang="ru">
  11435. в обработке параметра командной строки -p.
  11436. </para>
  11437. <para lang="en">
  11438. in the -p command-line parameter handling.
  11439. </para>
  11440. </change>

  11441. <change type="bugfix">
  11442. <para lang="ru">
  11443. в почтовом прокси-сервере.
  11444. </para>
  11445. <para lang="en">
  11446. in the mail proxy server.
  11447. </para>
  11448. </change>

  11449. <change type="bugfix">
  11450. <para lang="ru">
  11451. незначительных потенциальных ошибок.<br/>
  11452. Спасибо Coverity.
  11453. </para>
  11454. <para lang="en">
  11455. of minor potential bugs.<br/>
  11456. Thanks to Coverity.
  11457. </para>
  11458. </change>

  11459. <change type="bugfix">
  11460. <para lang="ru">
  11461. nginx/Windows не собирался с Visual Studio 2005 Express.<br/>
  11462. Спасибо HAYASHI Kentaro.
  11463. </para>
  11464. <para lang="en">
  11465. nginx/Windows could not be built with Visual Studio 2005 Express.<br/>
  11466. Thanks to HAYASHI Kentaro.
  11467. </para>
  11468. </change>

  11469. </changes>


  11470. <changes ver="1.3.4" date="2012-07-31">

  11471. <change type="change">
  11472. <para lang="ru">
  11473. теперь на слушающих IPv6-сокетах параметр ipv6only
  11474. включён по умолчанию.
  11475. </para>
  11476. <para lang="en">
  11477. the "ipv6only" parameter is now turned on by default for
  11478. listening IPv6 sockets.
  11479. </para>
  11480. </change>

  11481. <change type="feature">
  11482. <para lang="ru">
  11483. поддержка компилятора Clang.
  11484. </para>
  11485. <para lang="en">
  11486. the Clang compiler support.
  11487. </para>
  11488. </change>

  11489. <change type="bugfix">
  11490. <para lang="ru">
  11491. могли создаваться лишние слушающие сокеты.<br/>
  11492. Спасибо Роману Одайскому.
  11493. </para>
  11494. <para lang="en">
  11495. extra listening sockets might be created.<br/>
  11496. Thanks to Roman Odaisky.
  11497. </para>
  11498. </change>

  11499. <change type="bugfix">
  11500. <para lang="ru">
  11501. nginx/Windows мог нагружать процессор, если при запуске рабочего процесса
  11502. происходила ошибка.<br/>
  11503. Спасибо Ricardo Villalobos Guevara.
  11504. </para>
  11505. <para lang="en">
  11506. nginx/Windows might hog CPU if a worker process failed to start.<br/>
  11507. Thanks to Ricardo Villalobos Guevara.
  11508. </para>
  11509. </change>

  11510. <change type="bugfix">
  11511. <para lang="ru">
  11512. директивы proxy_pass_header, fastcgi_pass_header, scgi_pass_header,
  11513. uwsgi_pass_header, proxy_hide_header, fastcgi_hide_header,
  11514. scgi_hide_header и uwsgi_hide_header
  11515. могли наследоваться некорректно.
  11516. </para>
  11517. <para lang="en">
  11518. the "proxy_pass_header", "fastcgi_pass_header", "scgi_pass_header",
  11519. "uwsgi_pass_header", "proxy_hide_header", "fastcgi_hide_header",
  11520. "scgi_hide_header", and "uwsgi_hide_header" directives
  11521. might be inherited incorrectly.
  11522. </para>
  11523. </change>

  11524. </changes>


  11525. <changes ver="1.3.3" date="2012-07-10">

  11526. <change type="feature">
  11527. <para lang="ru">
  11528. поддержка entity tags и директива etag.
  11529. </para>
  11530. <para lang="en">
  11531. entity tags support and the "etag" directive.
  11532. </para>
  11533. </change>

  11534. <change type="bugfix">
  11535. <para lang="ru">
  11536. при использовании директивы map с параметром hostnames
  11537. не игнорировалась конечная точка в исходном значении.
  11538. </para>
  11539. <para lang="en">
  11540. trailing dot in a source value was not ignored
  11541. if the "map" directive was used with the "hostnames" parameter.
  11542. </para>
  11543. </change>

  11544. <change type="bugfix">
  11545. <para lang="ru">
  11546. для обработки запроса мог использоваться неверный location,
  11547. если переход в именованный location происходил
  11548. после изменения URI с помощью директивы rewrite.
  11549. </para>
  11550. <para lang="en">
  11551. incorrect location might be used to process a request
  11552. if a URI was changed via a "rewrite" directive
  11553. before an internal redirect to a named location.
  11554. </para>
  11555. </change>

  11556. </changes>


  11557. <changes ver="1.3.2" date="2012-06-26">

  11558. <change type="change">
  11559. <para lang="ru">
  11560. параметр single директивы keepalive теперь игнорируется.
  11561. </para>
  11562. <para lang="en">
  11563. the "single" parameter of the "keepalive" directive is now ignored.
  11564. </para>
  11565. </change>

  11566. <change type="change">
  11567. <para lang="ru">
  11568. сжатие SSL теперь отключено
  11569. в том числе при использовании OpenSSL старее 1.0.0.
  11570. </para>
  11571. <para lang="en">
  11572. SSL compression is now disabled when using all versions of OpenSSL,
  11573. including ones prior to 1.0.0.
  11574. </para>
  11575. </change>

  11576. <change type="feature">
  11577. <para lang="ru">
  11578. директиву "ip_hash" теперь можно использовать для балансировки IPv6 клиентов.
  11579. </para>
  11580. <para lang="en">
  11581. it is now possible to use the "ip_hash" directive to balance IPv6 clients.
  11582. </para>
  11583. </change>

  11584. <change type="feature">
  11585. <para lang="ru">
  11586. переменную $status теперь можно использовать не только в директиве log_format.
  11587. </para>
  11588. <para lang="en">
  11589. the $status variable can now be used not only in the "log_format" directive.
  11590. </para>
  11591. </change>

  11592. <change type="bugfix">
  11593. <para lang="ru">
  11594. при завершении рабочего процесса мог произойти segmentation fault,
  11595. если использовалась директива resolver.
  11596. </para>
  11597. <para lang="en">
  11598. a segmentation fault might occur in a worker process on shutdown
  11599. if the "resolver" directive was used.
  11600. </para>
  11601. </change>

  11602. <change type="bugfix">
  11603. <para lang="ru">
  11604. в рабочем процессе мог произойти segmentation fault,
  11605. если использовался модуль ngx_http_mp4_module.
  11606. </para>
  11607. <para lang="en">
  11608. a segmentation fault might occur in a worker process
  11609. if the ngx_http_mp4_module was used.
  11610. </para>
  11611. </change>

  11612. <change type="bugfix">
  11613. <para lang="ru">
  11614. в модуле ngx_http_mp4_module.
  11615. </para>
  11616. <para lang="en">
  11617. in the ngx_http_mp4_module.
  11618. </para>
  11619. </change>

  11620. <change type="bugfix">
  11621. <para lang="ru">
  11622. в рабочем процессе мог произойти segmentation fault,
  11623. если использовались конфликтующие имена серверов с масками.
  11624. </para>
  11625. <para lang="en">
  11626. a segmentation fault might occur in a worker process
  11627. if conflicting wildcard server names were used.
  11628. </para>
  11629. </change>

  11630. <change type="bugfix">
  11631. <para lang="ru">
  11632. на платформе ARM nginx мог аварийно завершаться по сигналу SIGBUS.
  11633. </para>
  11634. <para lang="en">
  11635. nginx might be terminated abnormally on a SIGBUS signal on ARM platform.
  11636. </para>
  11637. </change>

  11638. <change type="bugfix">
  11639. <para lang="ru">
  11640. во время переконфигурации на HP-UX в лог
  11641. записывался alert "sendmsg() failed (9: Bad file number)".
  11642. </para>
  11643. <para lang="en">
  11644. an alert "sendmsg() failed (9: Bad file number)" on HP-UX
  11645. while reconfiguration.
  11646. </para>
  11647. </change>

  11648. </changes>


  11649. <changes ver="1.3.1" date="2012-06-05">

  11650. <change type="security">
  11651. <para lang="ru">
  11652. теперь nginx/Windows игнорирует точку в конце компонента URI
  11653. и не разрешает URI, содержащие последовательность ":$".<br/>
  11654. Спасибо Владимиру Кочеткову, Positive Research Center.
  11655. </para>
  11656. <para lang="en">
  11657. now nginx/Windows ignores trailing dot in URI path component, and
  11658. does not allow URIs with ":$" in it.<br/>
  11659. Thanks to Vladimir Kochetkov, Positive Research Center.
  11660. </para>
  11661. </change>

  11662. <change type="feature">
  11663. <para lang="ru">
  11664. директивы proxy_pass, fastcgi_pass, scgi_pass, uwsgi_pass и
  11665. директива server в блоке upstream
  11666. теперь поддерживают IPv6-адреса.
  11667. </para>
  11668. <para lang="en">
  11669. the "proxy_pass", "fastcgi_pass", "scgi_pass", "uwsgi_pass" directives, and
  11670. the "server" directive inside the "upstream" block,
  11671. now support IPv6 addresses.
  11672. </para>
  11673. </change>

  11674. <change type="feature">
  11675. <para lang="ru">
  11676. в директиве resolver теперь можно указывать порт и
  11677. задавать IPv6-адреса DNS-серверов.
  11678. </para>
  11679. <para lang="en">
  11680. the "resolver" directive now supports IPv6 addresses and
  11681. an optional port specification.
  11682. </para>
  11683. </change>

  11684. <change type="feature">
  11685. <para lang="ru">
  11686. директива least_conn в блоке upstream.
  11687. </para>
  11688. <para lang="en">
  11689. the "least_conn" directive inside the "upstream" block.
  11690. </para>
  11691. </change>

  11692. <change type="feature">
  11693. <para lang="ru">
  11694. при использовании директивы ip_hash
  11695. теперь можно задавать веса серверов.
  11696. </para>
  11697. <para lang="en">
  11698. it is now possible to specify a weight for servers
  11699. while using the "ip_hash" directive.
  11700. </para>
  11701. </change>

  11702. <change type="bugfix">
  11703. <para lang="ru">
  11704. в рабочем процессе мог произойти segmentation fault,
  11705. если использовалась директива image_filter;
  11706. ошибка появилась в 1.3.0.
  11707. </para>
  11708. <para lang="en">
  11709. a segmentation fault might occur in a worker process
  11710. if the "image_filter" directive was used;
  11711. the bug had appeared in 1.3.0.
  11712. </para>
  11713. </change>

  11714. <change type="bugfix">
  11715. <para lang="ru">
  11716. nginx не собирался с модулем ngx_cpp_test_module;
  11717. ошибка появилась в 1.1.12.
  11718. </para>
  11719. <para lang="en">
  11720. nginx could not be built with ngx_cpp_test_module;
  11721. the bug had appeared in 1.1.12.
  11722. </para>
  11723. </change>

  11724. <change type="bugfix">
  11725. <para lang="ru">
  11726. доступ к переменным из SSI и встроенного перла мог не работать после
  11727. переконфигурации.<br/>
  11728. Спасибо Yichun Zhang.
  11729. </para>
  11730. <para lang="en">
  11731. access to variables from SSI and embedded perl module might not work after
  11732. reconfiguration.<br/>
  11733. Thanks to Yichun Zhang.
  11734. </para>
  11735. </change>

  11736. <change type="bugfix">
  11737. <para lang="ru">
  11738. в модуле ngx_http_xslt_filter_module.<br/>
  11739. Спасибо Kuramoto Eiji.
  11740. </para>
  11741. <para lang="en">
  11742. in the ngx_http_xslt_filter_module.<br/>
  11743. Thanks to Kuramoto Eiji.
  11744. </para>
  11745. </change>

  11746. <change type="bugfix">
  11747. <para lang="ru">
  11748. утечки памяти при использовании переменной $geoip_org.<br/>
  11749. Спасибо Денису Латыпову.
  11750. </para>
  11751. <para lang="en">
  11752. memory leak if $geoip_org variable was used.<br/>
  11753. Thanks to Denis F. Latypoff.
  11754. </para>
  11755. </change>

  11756. <change type="bugfix">
  11757. <para lang="ru">
  11758. в директивах proxy_cookie_domain и proxy_cookie_path.
  11759. </para>
  11760. <para lang="en">
  11761. in the "proxy_cookie_domain" and "proxy_cookie_path" directives.
  11762. </para>
  11763. </change>

  11764. </changes>


  11765. <changes ver="1.3.0" date="2012-05-15">

  11766. <change type="feature">
  11767. <para lang="ru">
  11768. директива debug_connection теперь поддерживает IPv6-адреса
  11769. и параметр "unix:".
  11770. </para>
  11771. <para lang="en">
  11772. the "debug_connection" directive now supports IPv6 addresses
  11773. and the "unix:" parameter.
  11774. </para>
  11775. </change>

  11776. <change type="feature">
  11777. <para lang="ru">
  11778. директива set_real_ip_from и параметр proxy
  11779. директивы geo теперь поддерживают IPv6-адреса.
  11780. </para>
  11781. <para lang="en">
  11782. the "set_real_ip_from" directive and the "proxy" parameter
  11783. of the "geo" directive now support IPv6 addresses.
  11784. </para>
  11785. </change>

  11786. <change type="feature">
  11787. <para lang="ru">
  11788. директивы real_ip_recursive, geoip_proxy и geoip_proxy_recursive.
  11789. </para>
  11790. <para lang="en">
  11791. the "real_ip_recursive", "geoip_proxy", and "geoip_proxy_recursive" directives.
  11792. </para>
  11793. </change>

  11794. <change type="feature">
  11795. <para lang="ru">
  11796. параметр proxy_recursive директивы geo.
  11797. </para>
  11798. <para lang="en">
  11799. the "proxy_recursive" parameter of the "geo" directive.
  11800. </para>
  11801. </change>

  11802. <change type="bugfix">
  11803. <para lang="ru">
  11804. в рабочем процессе мог произойти segmentation fault,
  11805. если использовалась директива resolver.
  11806. </para>
  11807. <para lang="en">
  11808. a segmentation fault might occur in a worker process
  11809. if the "resolver" directive was used.
  11810. </para>
  11811. </change>

  11812. <change type="bugfix">
  11813. <para lang="ru">
  11814. в рабочем процессе мог произойти segmentation fault,
  11815. если использовались директивы fastcgi_pass, scgi_pass или uwsgi_pass
  11816. и бэкенд возвращал некорректный ответ.
  11817. </para>
  11818. <para lang="en">
  11819. a segmentation fault might occur in a worker process
  11820. if the "fastcgi_pass", "scgi_pass", or "uwsgi_pass" directives were used
  11821. and backend returned incorrect response.
  11822. </para>
  11823. </change>

  11824. <change type="bugfix">
  11825. <para lang="ru">
  11826. в рабочем процессе мог произойти segmentation fault,
  11827. если использовалась директива rewrite и в новых аргументах запроса в строке
  11828. замены использовались переменные.
  11829. </para>
  11830. <para lang="en">
  11831. a segmentation fault might occur in a worker process
  11832. if the "rewrite" directive was used and new request arguments
  11833. in a replacement used variables.
  11834. </para>
  11835. </change>

  11836. <change type="bugfix">
  11837. <para lang="ru">
  11838. nginx мог нагружать процессор,
  11839. если было достигнуто ограничение на количество открытых файлов.
  11840. </para>
  11841. <para lang="en">
  11842. nginx might hog CPU
  11843. if the open file resource limit was reached.
  11844. </para>
  11845. </change>

  11846. <change type="bugfix">
  11847. <para lang="ru">
  11848. при использовании директивы proxy_next_upstream с параметром http_404
  11849. nginx мог бесконечно перебирать бэкенды, если в блоке upstream был
  11850. хотя бы один сервер с флагом backup.
  11851. </para>
  11852. <para lang="en">
  11853. nginx might loop infinitely over backends
  11854. if the "proxy_next_upstream" directive with the "http_404" parameter was used
  11855. and there were backup servers specified in an upstream block.
  11856. </para>
  11857. </change>

  11858. <change type="bugfix">
  11859. <para lang="ru">
  11860. при использовании директивы ip_hash
  11861. установка параметра down директивы server
  11862. могла приводить к ненужному перераспределению клиентов между бэкендами.
  11863. </para>
  11864. <para lang="en">
  11865. adding the "down" parameter of the "server" directive
  11866. might cause unneeded client redistribution among backend servers
  11867. if the "ip_hash" directive was used.
  11868. </para>
  11869. </change>

  11870. <change type="bugfix">
  11871. <para lang="ru">
  11872. утечки сокетов.<br/>
  11873. Спасибо Yichun Zhang.
  11874. </para>
  11875. <para lang="en">
  11876. socket leak.<br/>
  11877. Thanks to Yichun Zhang.
  11878. </para>
  11879. </change>

  11880. <change type="bugfix">
  11881. <para lang="ru">
  11882. в модуле ngx_http_fastcgi_module.
  11883. </para>
  11884. <para lang="en">
  11885. in the ngx_http_fastcgi_module.
  11886. </para>
  11887. </change>

  11888. </changes>


  11889. <changes ver="1.2.0" date="2012-04-23">

  11890. <change type="bugfix">
  11891. <para lang="ru">
  11892. в рабочем процессе мог произойти segmentation fault,
  11893. если использовалась директива try_files;
  11894. ошибка появилась в 1.1.19.
  11895. </para>
  11896. <para lang="en">
  11897. a segmentation fault might occur in a worker process
  11898. if the "try_files" directive was used;
  11899. the bug had appeared in 1.1.19.
  11900. </para>
  11901. </change>

  11902. <change type="bugfix">
  11903. <para lang="ru">
  11904. ответ мог быть передан не полностью,
  11905. если использовалось больше IOV_MAX буферов.
  11906. </para>
  11907. <para lang="en">
  11908. response might be truncated
  11909. if there were more than IOV_MAX buffers used.
  11910. </para>
  11911. </change>

  11912. <change type="bugfix">
  11913. <para lang="ru">
  11914. в работе параметра crop директивы image_filter.<br/>
  11915. Спасибо Maxim Bublis.
  11916. </para>
  11917. <para lang="en">
  11918. in the "crop" parameter of the "image_filter" directive.<br/>
  11919. Thanks to Maxim Bublis.
  11920. </para>
  11921. </change>

  11922. </changes>


  11923. <changes ver="1.1.19" date="2012-04-12">

  11924. <change type="security">
  11925. <para lang="ru">
  11926. при обработке специально созданного mp4 файла модулем ngx_http_mp4_module
  11927. могли перезаписываться области памяти рабочего процесса, что могло
  11928. приводить к выполнению произвольного кода (CVE-2012-2089).<br/>
  11929. Спасибо Matthew Daley.
  11930. </para>
  11931. <para lang="en">
  11932. specially crafted mp4 file might allow to overwrite
  11933. memory locations in a worker process
  11934. if the ngx_http_mp4_module was used,
  11935. potentially resulting in arbitrary code execution (CVE-2012-2089).<br/>
  11936. Thanks to Matthew Daley.
  11937. </para>
  11938. </change>

  11939. <change type="bugfix">
  11940. <para lang="ru">
  11941. nginx/Windows мог завершаться аварийно.<br/>
  11942. Спасибо Vincent Lee.
  11943. </para>
  11944. <para lang="en">
  11945. nginx/Windows might be terminated abnormally.<br/>
  11946. Thanks to Vincent Lee.
  11947. </para>
  11948. </change>

  11949. <change type="bugfix">
  11950. <para lang="ru">
  11951. nginx нагружал процессор, если все серверы в upstream'е были помечены
  11952. флагом backup.
  11953. </para>
  11954. <para lang="en">
  11955. nginx hogged CPU if all servers in an upstream were marked as "backup".
  11956. </para>
  11957. </change>

  11958. <change type="bugfix">
  11959. <para lang="ru">
  11960. директивы allow и deny могли наследоваться некорректно,
  11961. если в них использовались IPv6 адреса.
  11962. </para>
  11963. <para lang="en">
  11964. the "allow" and "deny" directives might be inherited incorrectly
  11965. if they were used with IPv6 addresses.
  11966. </para>
  11967. </change>

  11968. <change type="bugfix">
  11969. <para lang="ru">
  11970. директивы modern_browser и ancient_browser
  11971. могли наследоваться некорректно.
  11972. </para>
  11973. <para lang="en">
  11974. the "modern_browser" and "ancient_browser" directives
  11975. might be inherited incorrectly.
  11976. </para>
  11977. </change>

  11978. <change type="bugfix">
  11979. <para lang="ru">
  11980. таймауты могли работать некорректно на Solaris/SPARC.
  11981. </para>
  11982. <para lang="en">
  11983. timeouts might be handled incorrectly on Solaris/SPARC.
  11984. </para>
  11985. </change>

  11986. <change type="bugfix">
  11987. <para lang="ru">
  11988. в модуле ngx_http_mp4_module.
  11989. </para>
  11990. <para lang="en">
  11991. in the ngx_http_mp4_module.
  11992. </para>
  11993. </change>

  11994. </changes>


  11995. <changes ver="1.1.18" date="2012-03-28">

  11996. <change type="change">
  11997. <para lang="ru">
  11998. теперь keepalive соединения не запрещены для Safari по умолчанию.
  11999. </para>
  12000. <para lang="en">
  12001. keepalive connections are no longer disabled for Safari by default.
  12002. </para>
  12003. </change>

  12004. <change type="feature">
  12005. <para lang="ru">
  12006. переменная $connection_requests.
  12007. </para>
  12008. <para lang="en">
  12009. the $connection_requests variable.
  12010. </para>
  12011. </change>

  12012. <change type="feature">
  12013. <para lang="ru">
  12014. переменные $tcpinfo_rtt, $tcpinfo_rttvar, $tcpinfo_snd_cwnd и
  12015. $tcpinfo_rcv_space.
  12016. </para>
  12017. <para lang="en">
  12018. $tcpinfo_rtt, $tcpinfo_rttvar, $tcpinfo_snd_cwnd and
  12019. $tcpinfo_rcv_space variables.
  12020. </para>
  12021. </change>

  12022. <change type="feature">
  12023. <para lang="ru">
  12024. директива worker_cpu_affinity теперь работает на FreeBSD.
  12025. </para>
  12026. <para lang="en">
  12027. the "worker_cpu_affinity" directive now works on FreeBSD.
  12028. </para>
  12029. </change>

  12030. <change type="feature">
  12031. <para lang="ru">
  12032. директивы xslt_param и xslt_string_param.<br/>
  12033. Спасибо Samuel Behan.
  12034. </para>
  12035. <para lang="en">
  12036. the "xslt_param" and "xslt_string_param" directives.<br/>
  12037. Thanks to Samuel Behan.
  12038. </para>
  12039. </change>

  12040. <change type="bugfix">
  12041. <para lang="ru">
  12042. в configure.<br/>
  12043. Спасибо Piotr Sikora.
  12044. </para>
  12045. <para lang="en">
  12046. in configure tests.<br/>
  12047. Thanks to Piotr Sikora.
  12048. </para>
  12049. </change>

  12050. <change type="bugfix">
  12051. <para lang="ru">
  12052. в модуле ngx_http_xslt_filter_module.
  12053. </para>
  12054. <para lang="en">
  12055. in the ngx_http_xslt_filter_module.
  12056. </para>
  12057. </change>

  12058. <change type="bugfix">
  12059. <para lang="ru">
  12060. nginx не собирался на Debian GNU/Hurd.
  12061. </para>
  12062. <para lang="en">
  12063. nginx could not be built on Debian GNU/Hurd.
  12064. </para>
  12065. </change>

  12066. </changes>


  12067. <changes ver="1.1.17" date="2012-03-15">

  12068. <change type="security">
  12069. <para lang="ru">
  12070. содержимое ранее освобождённой памяти могло быть отправлено клиенту,
  12071. если бэкенд возвращал специально созданный ответ.<br/>
  12072. Спасибо Matthew Daley.
  12073. </para>
  12074. <para lang="en">
  12075. content of previously freed memory might be sent to a client
  12076. if backend returned specially crafted response.<br/>
  12077. Thanks to Matthew Daley.
  12078. </para>
  12079. </change>

  12080. <change type="bugfix">
  12081. <para lang="ru">
  12082. при использовании встроенного перла из SSI.<br/>
  12083. Спасибо Matthew Daley.
  12084. </para>
  12085. <para lang="en">
  12086. in the embedded perl module if used from SSI.<br/>
  12087. Thanks to Matthew Daley.
  12088. </para>
  12089. </change>

  12090. <change type="bugfix">
  12091. <para lang="ru">
  12092. в модуле ngx_http_uwsgi_module.
  12093. </para>
  12094. <para lang="en">
  12095. in the ngx_http_uwsgi_module.
  12096. </para>
  12097. </change>

  12098. </changes>


  12099. <changes ver="1.1.16" date="2012-02-29">

  12100. <change type="change">
  12101. <para lang="ru">
  12102. ограничение на количество одновременных подзапросов поднято до 200.
  12103. </para>
  12104. <para lang="en">
  12105. the simultaneous subrequest limit has been raised to 200.
  12106. </para>
  12107. </change>

  12108. <change type="feature">
  12109. <para lang="ru">
  12110. параметр from в директиве disable_symlinks.
  12111. </para>
  12112. <para lang="en">
  12113. the "from" parameter of the "disable_symlinks" directive.
  12114. </para>
  12115. </change>

  12116. <change type="feature">
  12117. <para lang="ru">
  12118. директивы return и error_page теперь могут использоваться для возврата
  12119. перенаправлений с кодом 307.
  12120. </para>
  12121. <para lang="en">
  12122. the "return" and "error_page" directives can now be used to return 307
  12123. redirections.
  12124. </para>
  12125. </change>

  12126. <change type="bugfix">
  12127. <para lang="ru">
  12128. в рабочем процессе мог произойти segmentation fault,
  12129. если использовалась директива resolver
  12130. и на глобальном уровне не была задана директива error_log.<br/>
  12131. Спасибо Роману Арутюняну.
  12132. </para>
  12133. <para lang="en">
  12134. a segmentation fault might occur in a worker process
  12135. if the "resolver" directive was used
  12136. and there was no "error_log" directive specified at global level.<br/>
  12137. Thanks to Roman Arutyunyan.
  12138. </para>
  12139. </change>

  12140. <change type="bugfix">
  12141. <para lang="ru">
  12142. в рабочем процессе мог произойти segmentation fault,
  12143. если использовались директивы "proxy_http_version 1.1" или
  12144. "fastcgi_keep_conn on".
  12145. </para>
  12146. <para lang="en">
  12147. a segmentation fault might occur in a worker process
  12148. if the "proxy_http_version 1.1" or "fastcgi_keep_conn on" directives
  12149. were used.
  12150. </para>
  12151. </change>

  12152. <change type="bugfix">
  12153. <para lang="ru">
  12154. утечек памяти.<br/>
  12155. Спасибо Lanshun Zhou.
  12156. </para>
  12157. <para lang="en">
  12158. memory leaks.<br/>
  12159. Thanks to Lanshun Zhou.
  12160. </para>
  12161. </change>

  12162. <change type="bugfix">
  12163. <para lang="ru">
  12164. в директиве disable_symlinks.
  12165. </para>
  12166. <para lang="en">
  12167. in the "disable_symlinks" directive.
  12168. </para>
  12169. </change>

  12170. <change type="bugfix">
  12171. <para lang="ru">
  12172. при использовании ZFS размер кэша на диске мог считаться некорректно;
  12173. ошибка появилась в 1.0.1.
  12174. </para>
  12175. <para lang="en">
  12176. on ZFS filesystem disk cache size might be calculated incorrectly;
  12177. the bug had appeared in 1.0.1.
  12178. </para>
  12179. </change>

  12180. <change type="bugfix">
  12181. <para lang="ru">
  12182. nginx не собирался компилятором icc 12.1.
  12183. </para>
  12184. <para lang="en">
  12185. nginx could not be built by the icc 12.1 compiler.
  12186. </para>
  12187. </change>

  12188. <change type="bugfix">
  12189. <para lang="ru">
  12190. nginx не собирался gcc на Solaris;
  12191. ошибка появилась в 1.1.15.
  12192. </para>
  12193. <para lang="en">
  12194. nginx could not be built by gcc on Solaris;
  12195. the bug had appeared in 1.1.15.
  12196. </para>
  12197. </change>

  12198. </changes>


  12199. <changes ver="1.1.15" date="2012-02-15">

  12200. <change type="feature">
  12201. <para lang="ru">
  12202. директива disable_symlinks.
  12203. </para>
  12204. <para lang="en">
  12205. the "disable_symlinks" directive.
  12206. </para>
  12207. </change>

  12208. <change type="feature">
  12209. <para lang="ru">
  12210. директивы proxy_cookie_domain и proxy_cookie_path.
  12211. </para>
  12212. <para lang="en">
  12213. the "proxy_cookie_domain" and "proxy_cookie_path" directives.
  12214. </para>
  12215. </change>

  12216. <change type="bugfix">
  12217. <para lang="ru">
  12218. nginx мог некорректно сообщать об ошибке "upstream prematurely closed
  12219. connection" вместо "upstream sent too big header".<br/>
  12220. Спасибо Feibo Li.
  12221. </para>
  12222. <para lang="en">
  12223. nginx might log incorrect error "upstream prematurely closed connection"
  12224. instead of correct "upstream sent too big header" one.<br/>
  12225. Thanks to Feibo Li.
  12226. </para>
  12227. </change>

  12228. <change type="bugfix">
  12229. <para lang="ru">
  12230. nginx не собирался с модулем ngx_http_perl_module,
  12231. если использовался параметр --with-openssl.
  12232. </para>
  12233. <para lang="en">
  12234. nginx could not be built with the ngx_http_perl_module
  12235. if the --with-openssl option was used.
  12236. </para>
  12237. </change>

  12238. <change type="bugfix">
  12239. <para lang="ru">
  12240. количество внутренних перенаправлений в именованные location'ы
  12241. не ограничивалось.
  12242. </para>
  12243. <para lang="en">
  12244. the number of internal redirects to named locations was not limited.
  12245. </para>
  12246. </change>

  12247. <change type="bugfix">
  12248. <para lang="ru">
  12249. вызов $r->flush() несколько раз подряд мог приводить к ошибкам
  12250. в модуле ngx_http_gzip_filter_module.
  12251. </para>
  12252. <para lang="en">
  12253. calling $r->flush() multiple times might cause errors
  12254. in the ngx_http_gzip_filter_module.
  12255. </para>
  12256. </change>

  12257. <change type="bugfix">
  12258. <para lang="ru">
  12259. при использовании директивы proxy_store с SSI-подзапросами
  12260. временные файлы могли не удаляться.
  12261. </para>
  12262. <para lang="en">
  12263. temporary files might be not removed
  12264. if the "proxy_store" directive was used with SSI includes.
  12265. </para>
  12266. </change>

  12267. <change type="bugfix">
  12268. <para lang="ru">
  12269. в некоторых случаях некэшируемые переменные (такие, как $args)
  12270. возвращали старое пустое закэшированное значение.
  12271. </para>
  12272. <para lang="en">
  12273. in some cases non-cacheable variables (such as the $args variable)
  12274. returned old empty cached value.
  12275. </para>
  12276. </change>

  12277. <change type="bugfix">
  12278. <para lang="ru">
  12279. в рабочем процессе мог произойти segmentation fault,
  12280. если одновременно создавалось слишком много SSI-подзапросов;
  12281. ошибка появилась в 0.7.25.
  12282. </para>
  12283. <para lang="en">
  12284. a segmentation fault might occur in a worker process
  12285. if too many SSI subrequests were issued simultaneously;
  12286. the bug had appeared in 0.7.25.
  12287. </para>
  12288. </change>

  12289. </changes>


  12290. <changes ver="1.1.14" date="2012-01-30">

  12291. <change type="feature">
  12292. <para lang="ru">
  12293. теперь можно указать несколько ограничений limit_req одновременно.
  12294. </para>
  12295. <para lang="en">
  12296. multiple "limit_req" limits may be used simultaneously.
  12297. </para>
  12298. </change>

  12299. <change type="bugfix">
  12300. <para lang="ru">
  12301. в обработке ошибок при соединении с бэкендом.<br/>
  12302. Спасибо Piotr Sikora.
  12303. </para>
  12304. <para lang="en">
  12305. in error handling while connecting to a backend.<br/>
  12306. Thanks to Piotr Sikora.
  12307. </para>
  12308. </change>

  12309. <change type="bugfix">
  12310. <para lang="ru">
  12311. в обработке ошибок при использовании AIO на FreeBSD.
  12312. </para>
  12313. <para lang="en">
  12314. in AIO error handling on FreeBSD.
  12315. </para>
  12316. </change>

  12317. <change type="bugfix">
  12318. <para lang="ru">
  12319. в инициализации библиотеки OpenSSL.
  12320. </para>
  12321. <para lang="en">
  12322. in the OpenSSL library initialization.
  12323. </para>
  12324. </change>

  12325. <change type="bugfix">
  12326. <para lang="ru">
  12327. директивы proxy_redirect могли наследоваться некорректно.
  12328. </para>
  12329. <para lang="en">
  12330. the "proxy_redirect" directives might be inherited incorrectly.
  12331. </para>
  12332. </change>

  12333. <change type="bugfix">
  12334. <para lang="ru">
  12335. утечки памяти при переконфигурации, если использовалась директива pcre_jit.
  12336. </para>
  12337. <para lang="en">
  12338. memory leak during reconfiguration if the "pcre_jit" directive was used.
  12339. </para>
  12340. </change>

  12341. </changes>


  12342. <changes ver="1.1.13" date="2012-01-16">

  12343. <change type="feature">
  12344. <para lang="ru">
  12345. параметры TLSv1.1 и TLSv1.2 в директиве ssl_protocols.
  12346. </para>
  12347. <para lang="en">
  12348. the "TLSv1.1" and "TLSv1.2" parameters of the "ssl_protocols" directive.
  12349. </para>
  12350. </change>

  12351. <change type="bugfix">
  12352. <para lang="ru">
  12353. параметры директивы limit_req наследовались некорректно;
  12354. ошибка появилась в 1.1.12.
  12355. </para>
  12356. <para lang="en">
  12357. the "limit_req" directive parameters were not inherited correctly;
  12358. the bug had appeared in 1.1.12.
  12359. </para>
  12360. </change>

  12361. <change type="bugfix">
  12362. <para lang="ru">
  12363. директива proxy_redirect некорректно обрабатывала заголовок Refresh
  12364. при использовании регулярных выражений.
  12365. </para>
  12366. <para lang="en">
  12367. the "proxy_redirect" directive incorrectly processed "Refresh" header
  12368. if regular expression were used.
  12369. </para>
  12370. </change>

  12371. <change type="bugfix">
  12372. <para lang="ru">
  12373. директива proxy_cache_use_stale с параметром error не возвращала ответ из
  12374. кэша, если все бэкенды были признаны неработающими.
  12375. </para>
  12376. <para lang="en">
  12377. the "proxy_cache_use_stale" directive with "error" parameter did not return
  12378. answer from cache if there were no live upstreams.
  12379. </para>
  12380. </change>

  12381. <change type="bugfix">
  12382. <para lang="ru">
  12383. директива worker_cpu_affinity могла не работать.
  12384. </para>
  12385. <para lang="en">
  12386. the "worker_cpu_affinity" directive might not work.
  12387. </para>
  12388. </change>

  12389. <change type="bugfix">
  12390. <para lang="ru">
  12391. nginx не собирался на Solaris;
  12392. ошибка появилась в 1.1.12.
  12393. </para>
  12394. <para lang="en">
  12395. nginx could not be built on Solaris;
  12396. the bug had appeared in 1.1.12.
  12397. </para>
  12398. </change>

  12399. <change type="bugfix">
  12400. <para lang="ru">
  12401. в модуле ngx_http_mp4_module.
  12402. </para>
  12403. <para lang="en">
  12404. in the ngx_http_mp4_module.
  12405. </para>
  12406. </change>

  12407. </changes>


  12408. <changes ver="1.1.12" date="2011-12-26">

  12409. <change type="change">
  12410. <para lang="ru">
  12411. после перенаправления запроса с помощью директивы error_page
  12412. директива proxy_pass без URI теперь использует изменённый URI.<br/>
  12413. Спасибо Lanshun Zhou.
  12414. </para>
  12415. <para lang="en">
  12416. a "proxy_pass" directive without URI part now uses changed URI
  12417. after redirection with the "error_page" directive.<br/>
  12418. Thanks to Lanshun Zhou.
  12419. </para>
  12420. </change>

  12421. <change type="feature">
  12422. <para lang="ru">
  12423. директивы proxy/fastcgi/scgi/uwsgi_cache_lock,
  12424. proxy/fastcgi/scgi/uwsgi_cache_lock_timeout.
  12425. </para>
  12426. <para lang="en">
  12427. the "proxy/fastcgi/scgi/uwsgi_cache_lock",
  12428. "proxy/fastcgi/scgi/uwsgi_cache_lock_timeout" directives.
  12429. </para>
  12430. </change>

  12431. <change type="feature">
  12432. <para lang="ru">
  12433. директива pcre_jit.
  12434. </para>
  12435. <para lang="en">
  12436. the "pcre_jit" directive.
  12437. </para>
  12438. </change>

  12439. <change type="feature">
  12440. <para lang="ru">
  12441. SSI команда if поддерживает выделения в регулярных выражениях.
  12442. </para>
  12443. <para lang="en">
  12444. the "if" SSI command supports captures in regular expressions.
  12445. </para>
  12446. </change>

  12447. <change type="bugfix">
  12448. <para lang="ru">
  12449. SSI команда if не работала внутри команды block.
  12450. </para>
  12451. <para lang="en">
  12452. the "if" SSI command did not work inside the "block" command.
  12453. </para>
  12454. </change>

  12455. <change type="bugfix">
  12456. <para lang="ru">
  12457. директивы limit_conn_log_level и limit_req_log_level могли не работать.
  12458. </para>
  12459. <para lang="en">
  12460. the "limit_conn_log_level" and "limit_req_log_level" directives might not work.
  12461. </para>
  12462. </change>

  12463. <change type="bugfix">
  12464. <para lang="ru">
  12465. директива limit_rate не позволяла передавать на полной скорости,
  12466. даже если был указан очень большой лимит.
  12467. </para>
  12468. <para lang="en">
  12469. the "limit_rate" directive did not allow to use full throughput,
  12470. even if limit value was very high.
  12471. </para>
  12472. </change>

  12473. <change type="bugfix">
  12474. <para lang="ru">
  12475. директива sendfile_max_chunk не работала,
  12476. если использовалась директива limit_rate.
  12477. </para>
  12478. <para lang="en">
  12479. the "sendfile_max_chunk" directive did not work,
  12480. if the "limit_rate" directive was used.
  12481. </para>
  12482. </change>

  12483. <change type="bugfix">
  12484. <para lang="ru">
  12485. если в директиве proxy_pass использовались переменные и не был указан URI,
  12486. всегда использовался URI исходного запроса.
  12487. </para>
  12488. <para lang="en">
  12489. a "proxy_pass" directive without URI part always used original request URI
  12490. if variables were used.
  12491. </para>
  12492. </change>

  12493. <change type="bugfix">
  12494. <para lang="ru">
  12495. после перенаправления запроса с помощью директивы try_files
  12496. директива proxy_pass без URI могла использовать URI исходного запроса.<br/>
  12497. Спасибо Lanshun Zhou.
  12498. </para>
  12499. <para lang="en">
  12500. a "proxy_pass" directive without URI part might use original request
  12501. after redirection with the "try_files" directive.<br/>
  12502. Thanks to Lanshun Zhou.
  12503. </para>
  12504. </change>

  12505. <change type="bugfix">
  12506. <para lang="ru">
  12507. в модуле ngx_http_scgi_module.
  12508. </para>
  12509. <para lang="en">
  12510. in the ngx_http_scgi_module.
  12511. </para>
  12512. </change>

  12513. <change type="bugfix">
  12514. <para lang="ru">
  12515. в модуле ngx_http_mp4_module.
  12516. </para>
  12517. <para lang="en">
  12518. in the ngx_http_mp4_module.
  12519. </para>
  12520. </change>

  12521. <change type="bugfix">
  12522. <para lang="ru">
  12523. nginx не собирался на Solaris;
  12524. ошибка появилась в 1.1.9.
  12525. </para>
  12526. <para lang="en">
  12527. nginx could not be built on Solaris;
  12528. the bug had appeared in 1.1.9.
  12529. </para>
  12530. </change>

  12531. </changes>


  12532. <changes ver="1.1.11" date="2011-12-12">

  12533. <change type="feature">
  12534. <para lang="ru">
  12535. параметр so_keepalive в директиве listen.<br/>
  12536. Спасибо Всеволоду Стахову.
  12537. </para>
  12538. <para lang="en">
  12539. the "so_keepalive" parameter of the "listen" directive.<br/>
  12540. Thanks to Vsevolod Stakhov.
  12541. </para>
  12542. </change>

  12543. <change type="feature">
  12544. <para lang="ru">
  12545. параметр if_not_empty в директивах fastcgi/scgi/uwsgi_param.
  12546. </para>
  12547. <para lang="en">
  12548. the "if_not_empty" parameter of the "fastcgi/scgi/uwsgi_param" directives.
  12549. </para>
  12550. </change>

  12551. <change type="feature">
  12552. <para lang="ru">
  12553. переменная $https.
  12554. </para>
  12555. <para lang="en">
  12556. the $https variable.
  12557. </para>
  12558. </change>

  12559. <change type="feature">
  12560. <para lang="ru">
  12561. директива proxy_redirect поддерживает переменные в первом параметре.
  12562. </para>
  12563. <para lang="en">
  12564. the "proxy_redirect" directive supports variables in the first parameter.
  12565. </para>
  12566. </change>

  12567. <change type="feature">
  12568. <para lang="ru">
  12569. директива proxy_redirect поддерживает регулярные выражения.
  12570. </para>
  12571. <para lang="en">
  12572. the "proxy_redirect" directive supports regular expressions.
  12573. </para>
  12574. </change>

  12575. <change type="bugfix">
  12576. <para lang="ru">
  12577. переменная $sent_http_cache_control могла содержать неверное значение при
  12578. использовании директивы expires.<br/>
  12579. Спасибо Yichun Zhang.
  12580. </para>
  12581. <para lang="en">
  12582. the $sent_http_cache_control variable might contain a wrong value if the
  12583. "expires" directive was used.<br/>
  12584. Thanks to Yichun Zhang.
  12585. </para>
  12586. </change>

  12587. <change type="bugfix">
  12588. <para lang="ru">
  12589. директива read_ahead могла не работать при использовании совместно с
  12590. try_files и open_file_cache.
  12591. </para>
  12592. <para lang="en">
  12593. the "read_ahead" directive might not work combined with "try_files"
  12594. and "open_file_cache".
  12595. </para>
  12596. </change>

  12597. <change type="bugfix">
  12598. <para lang="ru">
  12599. если в параметре inactive директивы proxy_cache_path
  12600. было указано малое время,
  12601. в рабочем процессе мог произойти segmentation fault.
  12602. </para>
  12603. <para lang="en">
  12604. a segmentation fault might occur in a worker process
  12605. if small time was used in the "inactive" parameter of
  12606. the "proxy_cache_path" directive.
  12607. </para>
  12608. </change>

  12609. <change type="bugfix">
  12610. <para lang="ru">
  12611. ответы из кэша могли зависать.
  12612. </para>
  12613. <para lang="en">
  12614. responses from cache might hang.
  12615. </para>
  12616. </change>

  12617. </changes>


  12618. <changes ver="1.1.10" date="2011-11-30">

  12619. <change type="bugfix">
  12620. <para lang="ru">
  12621. при использовании AIO на Linux в рабочем процессе происходил segmentation fault;
  12622. ошибка появилась в 1.1.9.
  12623. </para>
  12624. <para lang="en">
  12625. a segmentation fault occurred in a worker process if AIO was used on Linux;
  12626. the bug had appeared in 1.1.9.
  12627. </para>
  12628. </change>

  12629. </changes>


  12630. <changes ver="1.1.9" date="2011-11-28">

  12631. <change type="change">
  12632. <para lang="ru">
  12633. теперь двойные кавычки экранируется при выводе SSI-командой echo.<br/>
  12634. Спасибо Зауру Абасмирзоеву.
  12635. </para>
  12636. <para lang="en">
  12637. now double quotes are encoded in an "echo" SSI-command output.<br/>
  12638. Thanks to Zaur Abasmirzoev.
  12639. </para>
  12640. </change>

  12641. <change type="feature">
  12642. <para lang="ru">
  12643. параметр valid в директиве resolver.  По умолчанию теперь
  12644. используется TTL, возвращённый DNS-сервером.<br/>
  12645. Спасибо Кириллу Коринскому.
  12646. </para>
  12647. <para lang="en">
  12648. the "valid" parameter of the "resolver" directive.  By default TTL
  12649. returned by a DNS server is used.<br/>
  12650. Thanks to Kirill A. Korinskiy.
  12651. </para>
  12652. </change>

  12653. <change type="bugfix">
  12654. <para lang="ru">
  12655. nginx мог перестать отвечать, если рабочий процесс завершался аварийно.
  12656. </para>
  12657. <para lang="en">
  12658. nginx might hang after a worker process abnormal termination.
  12659. </para>
  12660. </change>

  12661. <change type="bugfix">
  12662. <para lang="ru">
  12663. в рабочем процессе мог произойти segmentation fault,
  12664. если использовалось SNI;
  12665. ошибка появилась в 1.1.2.
  12666. </para>
  12667. <para lang="en">
  12668. a segmentation fault might occur in a worker process
  12669. if SNI was used;
  12670. the bug had appeared in 1.1.2.
  12671. </para>
  12672. </change>

  12673. <change type="bugfix">
  12674. <para lang="ru">
  12675. в директиве keepalive_disable;
  12676. ошибка появилась в 1.1.8.<br/>
  12677. Спасибо Александру Усову.
  12678. </para>
  12679. <para lang="en">
  12680. in the "keepalive_disable" directive;
  12681. the bug had appeared in 1.1.8.<br/>
  12682. Thanks to Alexander Usov.
  12683. </para>
  12684. </change>

  12685. <change type="bugfix">
  12686. <para lang="ru">
  12687. сигнал SIGWINCH переставал работать после первого обновления исполняемого
  12688. файла;
  12689. ошибка появилась в 1.1.1.
  12690. </para>
  12691. <para lang="en">
  12692. SIGWINCH signal did not work after first binary upgrade;
  12693. the bug had appeared in 1.1.1.
  12694. </para>
  12695. </change>

  12696. <change type="bugfix">
  12697. <para lang="ru">
  12698. теперь ответы бэкендов, длина которых не соответствует заголовку
  12699. Content-Length, не кэширутся.
  12700. </para>
  12701. <para lang="en">
  12702. backend responses with length not matching "Content-Length" header line
  12703. are no longer cached.
  12704. </para>
  12705. </change>

  12706. <change type="bugfix">
  12707. <para lang="ru">
  12708. в директиве scgi_param при использовании составных параметров.
  12709. </para>
  12710. <para lang="en">
  12711. in the "scgi_param" directive, if complex parameters were used.
  12712. </para>
  12713. </change>

  12714. <change type="bugfix">
  12715. <para lang="ru">
  12716. в методе epoll.<br/>
  12717. Спасибо Yichun Zhang.
  12718. </para>
  12719. <para lang="en">
  12720. in the "epoll" event method.<br/>
  12721. Thanks to Yichun Zhang.
  12722. </para>
  12723. </change>

  12724. <change type="bugfix">
  12725. <para lang="ru">
  12726. в модуле ngx_http_flv_module.<br/>
  12727. Спасибо Piotr Sikora.
  12728. </para>
  12729. <para lang="en">
  12730. in the ngx_http_flv_module.<br/>
  12731. Thanks to Piotr Sikora.
  12732. </para>
  12733. </change>

  12734. <change type="bugfix">
  12735. <para lang="ru">
  12736. в модуле ngx_http_mp4_module.
  12737. </para>
  12738. <para lang="en">
  12739. in the ngx_http_mp4_module.
  12740. </para>
  12741. </change>

  12742. <change type="bugfix">
  12743. <para lang="ru">
  12744. теперь nginx понимает IPv6-адреса в строке запроса и в заголовке Host.
  12745. </para>
  12746. <para lang="en">
  12747. IPv6 addresses are now handled properly in a request line and in a "Host"
  12748. request header line.
  12749. </para>
  12750. </change>

  12751. <change type="bugfix">
  12752. <para lang="ru">
  12753. директивы add_header и expires не работали для ответов с кодом 206,
  12754. если запрос проксировался.
  12755. </para>
  12756. <para lang="en">
  12757. "add_header" and "expires" directives did not work if a request was proxied
  12758. and response status code was 206.
  12759. </para>
  12760. </change>

  12761. <change type="bugfix">
  12762. <para lang="ru">
  12763. nginx не собирался на FreeBSD 10.
  12764. </para>
  12765. <para lang="en">
  12766. nginx could not be built on FreeBSD 10.
  12767. </para>
  12768. </change>

  12769. <change type="bugfix">
  12770. <para lang="ru">
  12771. nginx не собирался на AIX.
  12772. </para>
  12773. <para lang="en">
  12774. nginx could not be built on AIX.
  12775. </para>
  12776. </change>

  12777. </changes>


  12778. <changes ver="1.1.8" date="2011-11-14">

  12779. <change type="change">
  12780. <para lang="ru">
  12781. модуль ngx_http_limit_zone_module переименован в ngx_http_limit_conn_module.
  12782. </para>
  12783. <para lang="en">
  12784. the ngx_http_limit_zone_module was renamed to the ngx_http_limit_conn_module.
  12785. </para>
  12786. </change>

  12787. <change type="change">
  12788. <para lang="ru">
  12789. директива limit_zone заменена директивой limit_conn_zone с новым синтаксисом.
  12790. </para>
  12791. <para lang="en">
  12792. the "limit_zone" directive was superseded by the "limit_conn_zone" directive
  12793. with a new syntax.
  12794. </para>
  12795. </change>

  12796. <change type="feature">
  12797. <para lang="ru">
  12798. поддержка ограничения по нескольким limit_conn на одном уровне.
  12799. </para>
  12800. <para lang="en">
  12801. support for multiple "limit_conn" limits on the same level.
  12802. </para>
  12803. </change>

  12804. <change type="feature">
  12805. <para lang="ru">
  12806. директива image_filter_sharpen.
  12807. </para>
  12808. <para lang="en">
  12809. the "image_filter_sharpen" directive.
  12810. </para>
  12811. </change>

  12812. <change type="bugfix">
  12813. <para lang="ru">
  12814. в рабочем процессе мог произойти segmentation fault,
  12815. если resolver получил большой DNS-ответ.<br/>
  12816. Спасибо Ben Hawkes.
  12817. </para>
  12818. <para lang="en">
  12819. a segmentation fault might occur in a worker process
  12820. if resolver got a big DNS response.<br/>
  12821. Thanks to Ben Hawkes.
  12822. </para>
  12823. </change>

  12824. <change type="bugfix">
  12825. <para lang="ru">
  12826. в вычислении ключа для кэширования,
  12827. если использовалась внутренняя реализация MD5;
  12828. ошибка появилась в 1.0.4.
  12829. </para>
  12830. <para lang="en">
  12831. in cache key calculation
  12832. if internal MD5 implementation was used;
  12833. the bug had appeared in 1.0.4.
  12834. </para>
  12835. </change>

  12836. <change type="bugfix">
  12837. <para lang="ru">
  12838. строки "If-Modified-Since", "If-Range" и им подобные в заголовке запроса
  12839. клиента могли передаваться бэкенду при кэшировании; или не передаваться при
  12840. выключенном кэшировании, если кэширование было включено в другой части
  12841. конфигурации.
  12842. </para>
  12843. <para lang="en">
  12844. the "If-Modified-Since", "If-Range", etc. client request header lines
  12845. might be passed to backend while caching; or not passed without caching
  12846. if caching was enabled in another part of the configuration.
  12847. </para>
  12848. </change>

  12849. <change type="bugfix">
  12850. <para lang="ru">
  12851. модуль ngx_http_mp4_module выдавал неверную строку "Content-Length"
  12852. в заголовке ответа, использовался аргумент start.<br/>
  12853. Спасибо Piotr Sikora.
  12854. </para>
  12855. <para lang="en">
  12856. the module ngx_http_mp4_module sent incorrect "Content-Length" response
  12857. header line if the "start" argument was used.<br/>
  12858. Thanks to Piotr Sikora.
  12859. </para>
  12860. </change>

  12861. </changes>


  12862. <changes ver="1.1.7" date="2011-10-31">

  12863. <change type="feature">
  12864. <para lang="ru">
  12865. поддержка нескольких DNS серверов в директиве "resolver".<br/>
  12866. Спасибо Кириллу Коринскому.
  12867. </para>
  12868. <para lang="en">
  12869. support of several DNS servers in the "resolver" directive.<br/>
  12870. Thanks to Kirill A. Korinskiy.
  12871. </para>
  12872. </change>

  12873. <change type="bugfix">
  12874. <para lang="ru">
  12875. на старте или во время переконфигурации происходил segmentation fault,
  12876. если директива ssl использовалась на уровне http и не был указан
  12877. ssl_certificate.
  12878. </para>
  12879. <para lang="en">
  12880. a segmentation fault occurred on start or during reconfiguration
  12881. if the "ssl" directive was used at http level and there was
  12882. no "ssl_certificate" defined.
  12883. </para>
  12884. </change>

  12885. <change type="bugfix">
  12886. <para lang="ru">
  12887. уменьшено потребление памяти при проксировании больших файлов,
  12888. если они буферизировались на диск.
  12889. </para>
  12890. <para lang="en">
  12891. reduced memory consumption while proxying big files
  12892. if they were buffered to disk.
  12893. </para>
  12894. </change>

  12895. <change type="bugfix">
  12896. <para lang="ru">
  12897. в рабочем процессе мог произойти segmentation fault,
  12898. если использовалась директива "proxy_http_version 1.1".
  12899. </para>
  12900. <para lang="en">
  12901. a segmentation fault might occur in a worker process
  12902. if "proxy_http_version 1.1" directive was used.
  12903. </para>
  12904. </change>

  12905. <change type="bugfix">
  12906. <para lang="ru">
  12907. в директиве "expires @time".
  12908. </para>
  12909. <para lang="en">
  12910. in the "expires @time" directive.
  12911. </para>
  12912. </change>

  12913. </changes>


  12914. <changes ver="1.1.6" date="2011-10-17">

  12915. <change>
  12916. <para lang="ru">
  12917. Изменение во внутреннем API: теперь при внутреннем редиректе
  12918. в именованный location контексты модулей очищаются.<br/>
  12919. По запросу Yichun Zhang.
  12920. </para>
  12921. <para lang="en">
  12922. Change in internal API: now module context data are cleared
  12923. while internal redirect to named location.<br/>
  12924. Requested by Yichun Zhang.
  12925. </para>
  12926. </change>

  12927. <change type="change">
  12928. <para lang="ru">
  12929. теперь если сервер, описанный в блоке upstream, был признан неработающим,
  12930. то после истечения fail_timeout на него будет отправлен только один запрос;
  12931. сервер будет считаться работающим, если успешно ответит на этот запрос.
  12932. </para>
  12933. <para lang="en">
  12934. if a server in an upstream failed, only one request will be sent to it
  12935. after fail_timeout; the server will be considered alive if it will
  12936. successfully respond to the request.
  12937. </para>
  12938. </change>

  12939. <change type="change">
  12940. <para lang="ru">
  12941. теперь символы 0x7F-0xFF в access_log записываются в виде \xXX.
  12942. </para>
  12943. <para lang="en">
  12944. now the 0x7F-0xFF characters are escaped as \xXX in an access_log.
  12945. </para>
  12946. </change>

  12947. <change type="feature">
  12948. <para lang="ru">
  12949. директивы "proxy/fastcgi/scgi/uwsgi_ignore_headers" теперь поддерживают
  12950. значения X-Accel-Limit-Rate, X-Accel-Buffering и X-Accel-Charset.
  12951. </para>
  12952. <para lang="en">
  12953. "proxy/fastcgi/scgi/uwsgi_ignore_headers" directives support the following
  12954. additional values: X-Accel-Limit-Rate, X-Accel-Buffering, X-Accel-Charset.
  12955. </para>
  12956. </change>

  12957. <change type="feature">
  12958. <para lang="ru">
  12959. уменьшение потребления памяти при использовании SSL.
  12960. </para>
  12961. <para lang="en">
  12962. decrease of memory consumption if SSL is used.
  12963. </para>
  12964. </change>

  12965. <change type="bugfix">
  12966. <para lang="ru">
  12967. некоторые UTF-8 символы обрабатывались неправильно.<br/>
  12968. Спасибо Алексею Куцу.
  12969. </para>
  12970. <para lang="en">
  12971. some UTF-8 characters were processed incorrectly.<br/>
  12972. Thanks to Alexey Kuts.
  12973. </para>
  12974. </change>

  12975. <change type="bugfix">
  12976. <para lang="ru">
  12977. директивы модуля ngx_http_rewrite_module, заданные на уровне server,
  12978. применялись повторно, если для запроса не находилось ни одного location'а.
  12979. </para>
  12980. <para lang="en">
  12981. the ngx_http_rewrite_module directives specified at "server" level were
  12982. executed twice if no matching locations were defined.
  12983. </para>
  12984. </change>

  12985. <change type="bugfix">
  12986. <para lang="ru">
  12987. при использовании "aio sendfile" могла происходить утечка сокетов.
  12988. </para>
  12989. <para lang="en">
  12990. a socket leak might occurred if "aio sendfile" was used.
  12991. </para>
  12992. </change>

  12993. <change type="bugfix">
  12994. <para lang="ru">
  12995. при использовании файлового AIO соединения с быстрыми клиентами
  12996. могли быть закрыты по истечению send_timeout.
  12997. </para>
  12998. <para lang="en">
  12999. connections with fast clients might be closed after send_timeout
  13000. if file AIO was used.
  13001. </para>
  13002. </change>

  13003. <change type="bugfix">
  13004. <para lang="ru">
  13005. в модуле ngx_http_autoindex_module.
  13006. </para>
  13007. <para lang="en">
  13008. in the ngx_http_autoindex_module.
  13009. </para>
  13010. </change>

  13011. <change type="bugfix">
  13012. <para lang="ru">
  13013. модуль ngx_http_mp4_module не поддерживал перемотку на 32-битных платформах.
  13014. </para>
  13015. <para lang="en">
  13016. the module ngx_http_mp4_module did not support seeking on 32-bit platforms.
  13017. </para>
  13018. </change>

  13019. </changes>


  13020. <changes ver="1.1.5" date="2011-10-05">

  13021. <change type="feature">
  13022. <para lang="ru">
  13023. директивы uwsgi_buffering и scgi_buffering.<br/>
  13024. Спасибо Peter Smit.
  13025. </para>
  13026. <para lang="en">
  13027. the "uwsgi_buffering" and "scgi_buffering" directives.<br/>
  13028. Thanks to Peter Smit.
  13029. </para>
  13030. </change>

  13031. <change type="bugfix">
  13032. <para lang="ru">
  13033. при использовании proxy_cache_bypass могли быть закэшированы
  13034. некэшируемые ответы.<br/>
  13035. Спасибо John Ferlito.
  13036. </para>
  13037. <para lang="en">
  13038. non-cacheable responses might be cached if "proxy_cache_bypass" directive
  13039. was used.<br/>
  13040. Thanks to John Ferlito.
  13041. </para>
  13042. </change>

  13043. <change type="bugfix">
  13044. <para lang="ru">
  13045. в модуле ngx_http_proxy_module при работе с бэкендами по HTTP/1.1.
  13046. </para>
  13047. <para lang="en">
  13048. in HTTP/1.1 support in the ngx_http_proxy_module.
  13049. </para>
  13050. </change>

  13051. <change type="bugfix">
  13052. <para lang="ru">
  13053. закэшированные ответы с пустым телом возвращались некорректно;
  13054. ошибка появилась в 0.8.31.
  13055. </para>
  13056. <para lang="en">
  13057. cached responses with an empty body were returned incorrectly;
  13058. the bug had appeared in 0.8.31.
  13059. </para>
  13060. </change>

  13061. <change type="bugfix">
  13062. <para lang="ru">
  13063. ответы с кодом 201 модуля ngx_http_dav_module были некорректны;
  13064. ошибка появилась в 0.8.32.
  13065. </para>
  13066. <para lang="en">
  13067. 201 responses of the ngx_http_dav_module were incorrect;
  13068. the bug had appeared in 0.8.32.
  13069. </para>
  13070. </change>

  13071. <change type="bugfix">
  13072. <para lang="ru">
  13073. в директиве return.
  13074. </para>
  13075. <para lang="en">
  13076. in the "return" directive.
  13077. </para>
  13078. </change>

  13079. <change type="bugfix">
  13080. <para lang="ru">
  13081. при использовании директивы "ssl_session_cache builtin" происходил
  13082. segmentation fault;
  13083. ошибка появилась в 1.1.1.
  13084. </para>
  13085. <para lang="en">
  13086. the "ssl_session_cache builtin" directive caused segmentation fault;
  13087. the bug had appeared in 1.1.1.
  13088. </para>
  13089. </change>

  13090. </changes>


  13091. <changes ver="1.1.4" date="2011-09-20">

  13092. <change type="feature">
  13093. <para lang="ru">
  13094. модуль ngx_http_upstream_keepalive.
  13095. </para>
  13096. <para lang="en">
  13097. the ngx_http_upstream_keepalive module.
  13098. </para>
  13099. </change>

  13100. <change type="feature">
  13101. <para lang="ru">
  13102. директива proxy_http_version.
  13103. </para>
  13104. <para lang="en">
  13105. the "proxy_http_version" directive.
  13106. </para>
  13107. </change>

  13108. <change type="feature">
  13109. <para lang="ru">
  13110. директива fastcgi_keep_conn.
  13111. </para>
  13112. <para lang="en">
  13113. the "fastcgi_keep_conn" directive.
  13114. </para>
  13115. </change>

  13116. <change type="feature">
  13117. <para lang="ru">
  13118. директива worker_aio_requests.
  13119. </para>
  13120. <para lang="en">
  13121. the "worker_aio_requests" directive.
  13122. </para>
  13123. </change>

  13124. <change type="bugfix">
  13125. <para lang="ru">
  13126. если nginx был собран с файловым AIO,
  13127. он не мог запускаться на Linux без поддержки AIO.
  13128. </para>
  13129. <para lang="en">
  13130. if nginx was built --with-file-aio it could not be run on Linux
  13131. kernel which did not support AIO.
  13132. </para>
  13133. </change>

  13134. <change type="bugfix">
  13135. <para lang="ru">
  13136. в обработке ошибок при работе с Linux AIO.
  13137. <br/>
  13138. Спасибо Hagai Avrahami.
  13139. </para>
  13140. <para lang="en">
  13141. in Linux AIO error processing.
  13142. <br/>
  13143. Thanks to Hagai Avrahami.
  13144. </para>
  13145. </change>

  13146. <change type="bugfix">
  13147. <para lang="ru">
  13148. уменьшено потребление памяти для долгоживущих запросов.
  13149. </para>
  13150. <para lang="en">
  13151. reduced memory consumption for long-lived requests.
  13152. </para>
  13153. </change>

  13154. <change type="bugfix">
  13155. <para lang="ru">
  13156. модуль ngx_http_mp4_module не поддерживал 64-битный MP4-атом co64.
  13157. </para>
  13158. <para lang="en">
  13159. the module ngx_http_mp4_module did not support 64-bit MP4 "co64" atom.
  13160. </para>
  13161. </change>

  13162. </changes>


  13163. <changes ver="1.1.3" date="2011-09-14">

  13164. <change type="feature">
  13165. <para lang="ru">
  13166. модуль ngx_http_mp4_module.
  13167. </para>
  13168. <para lang="en">
  13169. the module ngx_http_mp4_module.
  13170. </para>
  13171. </change>

  13172. <change type="bugfix">
  13173. <para lang="ru">
  13174. в Linux AIO, используемым совместно с open_file_cache.
  13175. </para>
  13176. <para lang="en">
  13177. in Linux AIO combined with open_file_cache.
  13178. </para>
  13179. </change>

  13180. <change type="bugfix">
  13181. <para lang="ru">
  13182. open_file_cache не обновлял информацию о файле,
  13183. если файл был изменён не атомарно.
  13184. </para>
  13185. <para lang="en">
  13186. open_file_cache did not update file info on retest
  13187. if file was not atomically changed.
  13188. </para>
  13189. </change>

  13190. <change type="bugfix">
  13191. <para lang="ru">
  13192. nginx не собирался на MacOSX 10.7.
  13193. </para>
  13194. <para lang="en">
  13195. nginx could not be built on MacOSX 10.7.
  13196. </para>
  13197. </change>

  13198. </changes>


  13199. <changes ver="1.1.2" date="2011-09-05">

  13200. <change type="change">
  13201. <para lang="ru">
  13202. теперь, если суммарный размер всех диапазонов больше размера исходного ответа,
  13203. то nginx возвращает только исходный ответ, не обрабатывая диапазоны.
  13204. </para>
  13205. <para lang="en">
  13206. now if total size of all ranges is greater than source response size,
  13207. then nginx disables ranges and returns just the source response.
  13208. </para>
  13209. </change>

  13210. <change type="feature">
  13211. <para lang="ru">
  13212. директива max_ranges.
  13213. </para>
  13214. <para lang="en">
  13215. the "max_ranges" directive.
  13216. </para>
  13217. </change>

  13218. <change type="bugfix">
  13219. <para lang="ru">
  13220. директивы ssl_verify_client, ssl_verify_depth и ssl_prefer_server_cipher
  13221. могли работать некорректно, если использовался SNI.
  13222. </para>
  13223. <para lang="en">
  13224. the "ssl_verify_client", "ssl_verify_depth", and "ssl_prefer_server_ciphers"
  13225. directives might work incorrectly if SNI was used.
  13226. </para>
  13227. </change>

  13228. <change type="bugfix">
  13229. <para lang="ru">
  13230. в директивах proxy/fastcgi/scgi/ uwsgi_ignore_client_abort.
  13231. </para>
  13232. <para lang="en">
  13233. in the "proxy/fastcgi/scgi/uwsgi_ignore_client_abort" directives.
  13234. </para>
  13235. </change>

  13236. </changes>


  13237. <changes ver="1.1.1" date="2011-08-22">

  13238. <change type="change">
  13239. <para lang="ru">
  13240. теперь загрузчик кэша за каждую итерацию либо обрабатывает число файлов,
  13241. указанное в параметре load_files, либо работает не дольше времени,
  13242. указанного в параметре loader_threshold.
  13243. </para>
  13244. <para lang="en">
  13245. now cache loader processes either as many files as specified by "loader_files"
  13246. parameter or works no longer than time specified by the "loader_threshold"
  13247. parameter during each iteration.
  13248. </para>
  13249. </change>

  13250. <change type="change">
  13251. <para lang="ru">
  13252. SIGWINCH сигнал теперь работает только в режиме демона.
  13253. </para>
  13254. <para lang="en">
  13255. now SIGWINCH signal works only in daemon mode.
  13256. </para>
  13257. </change>

  13258. <change type="feature">
  13259. <para lang="ru">
  13260. теперь разделяемые зоны и кэши используют семафоры POSIX на Solaris.<br/>
  13261. Спасибо Денису Иванову.
  13262. </para>
  13263. <para lang="en">
  13264. now shared zones and caches use POSIX semaphores on Solaris.<br/>
  13265. Thanks to Den Ivanov.
  13266. </para>
  13267. </change>

  13268. <change type="feature">
  13269. <para lang="ru">
  13270. теперь на NetBSD поддерживаются accept фильтры.
  13271. </para>
  13272. <para lang="en">
  13273. accept filters are now supported on NetBSD.
  13274. </para>
  13275. </change>

  13276. <change type="bugfix">
  13277. <para lang="ru">
  13278. nginx не собирался на Linux 3.0.
  13279. </para>
  13280. <para lang="en">
  13281. nginx could not be built on Linux 3.0.
  13282. </para>
  13283. </change>

  13284. <change type="bugfix">
  13285. <para lang="ru">
  13286. в некоторых случаях nginx не использовал сжатие;
  13287. ошибка появилась в 1.1.0.
  13288. </para>
  13289. <para lang="en">
  13290. nginx did not use gzipping in some cases;
  13291. the bug had appeared in 1.1.0.
  13292. </para>
  13293. </change>

  13294. <change type="bugfix">
  13295. <para lang="ru">
  13296. обработка тела запроса могла быть неверной, если клиент использовал pipelining.
  13297. </para>
  13298. <para lang="en">
  13299. request body might be processed incorrectly if client used pipelining.
  13300. </para>
  13301. </change>

  13302. <change type="bugfix">
  13303. <para lang="ru">
  13304. в директиве request_body_in_single_buf.
  13305. </para>
  13306. <para lang="en">
  13307. in the "request_body_in_single_buf" directive.
  13308. </para>
  13309. </change>

  13310. <change type="bugfix">
  13311. <para lang="ru">
  13312. в директивах proxy_set_body и proxy_pass_request_body
  13313. при использовании SSL-соединения с бэкендом.
  13314. </para>
  13315. <para lang="en">
  13316. in "proxy_set_body" and "proxy_pass_request_body" directives
  13317. if SSL connection to backend was used.
  13318. </para>
  13319. </change>

  13320. <change type="bugfix">
  13321. <para lang="ru">
  13322. nginx нагружал процессор, если все серверы в upstream'е были помечены
  13323. флагом down.
  13324. </para>
  13325. <para lang="en">
  13326. nginx hogged CPU if all servers in an upstream were marked as "down".
  13327. </para>
  13328. </change>

  13329. <change type="bugfix">
  13330. <para lang="ru">
  13331. при переконфигурации мог произойти segmentation fault,
  13332. если в предыдущей конфигурации был определён, но не использовался
  13333. ssl_session_cache.
  13334. </para>
  13335. <para lang="en">
  13336. a segmentation fault might occur during reconfiguration
  13337. if ssl_session_cache was defined but not used in previous configuration.
  13338. </para>
  13339. </change>

  13340. <change type="bugfix">
  13341. <para lang="ru">
  13342. при использовании большого количества backup-серверов
  13343. в рабочем процессе мог произойти segmentation fault.
  13344. </para>
  13345. <para lang="en">
  13346. a segmentation fault might occur in a worker process
  13347. if many backup servers were used in an upstream.
  13348. </para>
  13349. </change>

  13350. <change type="bugfix">
  13351. <para lang="ru">
  13352. при использовании директив fastcgi/scgi/uwsgi_param
  13353. со значениями, начинающимися со строки "HTTP_",
  13354. в рабочем процессе мог произойти segmentation fault;
  13355. ошибка появилась в 0.8.40.
  13356. </para>
  13357. <para lang="en">
  13358. a segmentation fault might occur in a worker process
  13359. if "fastcgi/scgi/uwsgi_param" directives were used
  13360. with values starting with "HTTP_";
  13361. the bug had appeared in 0.8.40.
  13362. </para>
  13363. </change>

  13364. </changes>


  13365. <changes ver="1.1.0" date="2011-08-01">

  13366. <change type="feature">
  13367. <para lang="ru">
  13368. уменьшение времени работы загрузчика кэша.
  13369. </para>
  13370. <para lang="en">
  13371. cache loader run time decrease.
  13372. </para>
  13373. </change>

  13374. <change type="feature">
  13375. <para lang="ru">
  13376. параметры loader_files, loader_sleep и loader_threshold
  13377. директив proxy/fastcgi/scgi/uwsgi_cache_path.
  13378. </para>
  13379. <para lang="en">
  13380. "loader_files", "loader_sleep", and "loader_threshold" options
  13381. of the "proxy/fastcgi/scgi/uwsgi_cache_path" directives.
  13382. </para>
  13383. </change>

  13384. <change type="feature">
  13385. <para lang="ru">
  13386. уменьшение времени загрузки конфигураций с большим количеством HTTPS серверов.
  13387. </para>
  13388. <para lang="en">
  13389. loading time decrease of configuration with large number of HTTPS sites.
  13390. </para>
  13391. </change>

  13392. <change type="feature">
  13393. <para lang="ru">
  13394. теперь nginx поддерживает шифры с обменом ECDHE-ключами.<br/>
  13395. Спасибо Adrian Kotelba.
  13396. </para>
  13397. <para lang="en">
  13398. now nginx supports ECDHE key exchange ciphers.<br/>
  13399. Thanks to Adrian Kotelba.
  13400. </para>
  13401. </change>

  13402. <change type="feature">
  13403. <para lang="ru">
  13404. директива lingering_close.<br/>
  13405. Спасибо Максиму Дунину.
  13406. </para>
  13407. <para lang="en">
  13408. the "lingering_close" directive.<br/>
  13409. Thanks to Maxim Dounin.
  13410. </para>
  13411. </change>

  13412. <change type="bugfix">
  13413. <para lang="ru">
  13414. закрытия соединения для pipelined-запросов.<br/>
  13415. Спасибо Максиму Дунину.
  13416. </para>
  13417. <para lang="en">
  13418. in closing connection for pipelined requests.<br/>
  13419. Thanks to Maxim Dounin.
  13420. </para>
  13421. </change>

  13422. <change type="bugfix">
  13423. <para lang="ru">
  13424. nginx не запрещал сжатие при получении значения "gzip;q=0"
  13425. в строке "Accept-Encoding" в заголовке запроса клиента.
  13426. </para>
  13427. <para lang="en">
  13428. nginx did not disable gzipping if client sent "gzip;q=0" in
  13429. "Accept-Encoding" request header line.
  13430. </para>
  13431. </change>

  13432. <change type="bugfix">
  13433. <para lang="ru">
  13434. таймаута при небуферизированном проксировании.<br/>
  13435. Спасибо Максиму Дунину.
  13436. </para>
  13437. <para lang="en">
  13438. in timeout in unbuffered proxied mode.<br/>
  13439. Thanks to Maxim Dounin.
  13440. </para>
  13441. </change>

  13442. <change type="bugfix">
  13443. <para lang="ru">
  13444. утечки памяти при использовании переменных в директиве proxy_pass
  13445. при работе с бэкендом по HTTPS.<br/>
  13446. Спасибо Максиму Дунину.
  13447. </para>
  13448. <para lang="en">
  13449. memory leaks when a "proxy_pass" directive contains variables and proxies
  13450. to an HTTPS backend.<br/>
  13451. Thanks to Maxim Dounin.
  13452. </para>
  13453. </change>

  13454. <change type="bugfix">
  13455. <para lang="ru">
  13456. в проверке параметра директивы proxy_pass, заданного переменными.<br/>
  13457. Спасибо Lanshun Zhou.
  13458. </para>
  13459. <para lang="en">
  13460. in parameter validation of a "proxy_pass" directive with variables.<br/>
  13461. Thanks to Lanshun Zhou.
  13462. </para>
  13463. </change>

  13464. <change type="bugfix">
  13465. <para lang="ru">
  13466. SSL не работал на QNX.<br/>
  13467. Спасибо Максиму Дунину.
  13468. </para>
  13469. <para lang="en">
  13470. SSL did not work on QNX.<br/>
  13471. Thanks to Maxim Dounin.
  13472. </para>
  13473. </change>

  13474. <change type="bugfix">
  13475. <para lang="ru">
  13476. SSL модули не собирались gcc 4.6 без параметра --with-debug.
  13477. </para>
  13478. <para lang="en">
  13479. SSL modules could not be built by gcc 4.6 without --with-debug option.
  13480. </para>
  13481. </change>

  13482. </changes>


  13483. <changes ver="1.0.5" date="2011-07-19">

  13484. <change type="change">
  13485. <para lang="ru">
  13486. теперь по умолчанию используются следующие шифры SSL: "HIGH:!aNULL:!MD5".<br/>
  13487. Спасибо Rob Stradling.
  13488. </para>
  13489. <para lang="en">
  13490. now default SSL ciphers are "HIGH:!aNULL:!MD5".<br/>
  13491. Thanks to Rob Stradling.
  13492. </para>
  13493. </change>

  13494. <change type="feature">
  13495. <para lang="ru">
  13496. директивы referer_hash_max_size и referer_hash_bucket_size.<br/>
  13497. Спасибо Witold Filipczyk.
  13498. </para>
  13499. <para lang="en">
  13500. the "referer_hash_max_size" and "referer_hash_bucket_size"
  13501. directives.<br/>
  13502. Thanks to Witold Filipczyk.
  13503. </para>
  13504. </change>

  13505. <change type="feature">
  13506. <para lang="ru">
  13507. переменная $uid_reset.
  13508. </para>
  13509. <para lang="en">
  13510. $uid_reset variable.
  13511. </para>
  13512. </change>

  13513. <change type="bugfix">
  13514. <para lang="ru">
  13515. при использовании кэширования
  13516. в рабочем процессе мог произойти segmentation fault.<br/>
  13517. Спасибо Lanshun Zhou.
  13518. </para>
  13519. <para lang="en">
  13520. a segmentation fault might occur in a worker process,
  13521. if a caching was used.<br/>
  13522. Thanks to Lanshun Zhou.
  13523. </para>
  13524. </change>

  13525. <change type="bugfix">
  13526. <para lang="ru">
  13527. при использовании кэширования рабочие процессы
  13528. могли зациклиться во время переконфигурации;
  13529. ошибка появилась в 0.8.48.<br/>
  13530. Спасибо Максиму Дунину.
  13531. </para>
  13532. <para lang="en">
  13533. worker processes may got caught in an endless loop during reconfiguration,
  13534. if a caching was used;
  13535. the bug had appeared in 0.8.48.<br/>
  13536. Thanks to Maxim Dounin.
  13537. </para>
  13538. </change>

  13539. <change type="bugfix">
  13540. <para lang="ru">
  13541. сообщения "stalled cache updating".<br/>
  13542. Спасибо Максиму Дунину.
  13543. </para>
  13544. <para lang="en">
  13545. "stalled cache updating" alert.<br/>
  13546. Thanks to Maxim Dounin.
  13547. </para>
  13548. </change>

  13549. </changes>


  13550. <changes ver="1.0.4" date="2011-06-01">

  13551. <change type="change">
  13552. <para lang="ru">
  13553. теперь в регулярных выражениях в директиве map можно задать
  13554. чувствительность к регистру с помощью префиксов "~" и "~*".
  13555. </para>
  13556. <para lang="en">
  13557. now regular expressions case sensitivity in the "map" directive
  13558. is given by prefixes "~" or "~*".
  13559. </para>
  13560. </change>

  13561. <change type="feature">
  13562. <para lang="ru">
  13563. теперь разделяемые зоны и кэши используют семафоры POSIX на Linux.<br/>
  13564. Спасибо Денису Латыпову.
  13565. </para>
  13566. <para lang="en">
  13567. now shared zones and caches use POSIX semaphores on Linux.<br/>
  13568. Thanks to Denis F. Latypoff.
  13569. </para>
  13570. </change>

  13571. <change type="bugfix">
  13572. <para lang="ru">
  13573. сообщения "stalled cache updating".
  13574. </para>
  13575. <para lang="en">
  13576. "stalled cache updating" alert.
  13577. </para>
  13578. </change>

  13579. <change type="bugfix">
  13580. <para lang="ru">
  13581. nginx не собирался с параметром --without-http_auth_basic_module;
  13582. ошибка появилась в 1.0.3.
  13583. </para>
  13584. <para lang="en">
  13585. nginx could not be built --without-http_auth_basic_module;
  13586. the bug had appeared in 1.0.3.
  13587. </para>
  13588. </change>

  13589. </changes>


  13590. <changes ver="1.0.3" date="2011-05-25">

  13591. <change type="feature">
  13592. <para lang="ru">
  13593. директива auth_basic_user_file поддерживает шифрование пароля
  13594. методами "$apr1", "{PLAIN}" и "{SSHA}".<br/>
  13595. Спасибо Максиму Дунину.
  13596. </para>
  13597. <para lang="en">
  13598. the "auth_basic_user_file" directive supports "$apr1", "{PLAIN}",
  13599. and "{SSHA}" password encryption methods.<br/>
  13600. Thanks to Maxim Dounin.
  13601. </para>
  13602. </change>

  13603. <change type="feature">
  13604. <para lang="ru">
  13605. директива geoip_org и переменная $geoip_org.<br/>
  13606. Спасибо Александру Ускову, Arnaud Granal и Денису Латыпову.
  13607. </para>
  13608. <para lang="en">
  13609. the "geoip_org" directive and $geoip_org variable.<br/>
  13610. Thanks to Alexander Uskov, Arnaud Granal, and Denis F. Latypoff.
  13611. </para>
  13612. </change>

  13613. <change type="feature">
  13614. <para lang="ru">
  13615. модули ngx_http_geo_module и ngx_http_geoip_module поддерживают
  13616. адреса IPv4, отображённые на IPv6 адреса.
  13617. </para>
  13618. <para lang="en">
  13619. ngx_http_geo_module and ngx_http_geoip_module support IPv4 addresses
  13620. mapped to IPv6 addresses.
  13621. </para>
  13622. </change>

  13623. <change type="bugfix">
  13624. <para lang="ru">
  13625. при проверке адреса IPv4, отображённого на адрес IPv6,
  13626. в рабочем процессе происходил segmentation fault,
  13627. если директивы access или deny были определены только для адресов IPv6;
  13628. ошибка появилась в 0.8.22.
  13629. </para>
  13630. <para lang="en">
  13631. a segmentation fault occurred in a worker process
  13632. during testing IPv4 address mapped to IPv6 address,
  13633. if access or deny rules were defined only for IPv6;
  13634. the bug had appeared in 0.8.22.
  13635. </para>
  13636. </change>

  13637. <change type="bugfix">
  13638. <para lang="ru">
  13639. закэшированный ответ мог быть испорчен, если значения директив
  13640. proxy/fastcgi/scgi/uwsgi_cache_bypass и proxy/fastcgi/scgi/ uwsgi_no_cache
  13641. были разными;
  13642. ошибка появилась в 0.8.46.
  13643. </para>
  13644. <para lang="en">
  13645. a cached response may be broken if "proxy/fastcgi/scgi/ uwsgi_cache_bypass"
  13646. and "proxy/fastcgi/scgi/uwsgi_no_cache" directive values were different;
  13647. the bug had appeared in 0.8.46.
  13648. </para>
  13649. </change>

  13650. </changes>


  13651. <changes ver="1.0.2" date="2011-05-10">

  13652. <change type="feature">
  13653. <para lang="ru">
  13654. теперь разделяемые зоны и кэши используют семафоры POSIX.
  13655. </para>
  13656. <para lang="en">
  13657. now shared zones and caches use POSIX semaphores.
  13658. </para>
  13659. </change>

  13660. <change type="bugfix">
  13661. <para lang="ru">
  13662. в работе параметра rotate директивы image_filter.<br/>
  13663. Спасибо Adam Bocim.
  13664. </para>
  13665. <para lang="en">
  13666. in the "rotate" parameter of the "image_filter" directive.<br/>
  13667. Thanks to Adam Bocim.
  13668. </para>
  13669. </change>

  13670. <change type="bugfix">
  13671. <para lang="ru">
  13672. nginx не собирался на Solaris;
  13673. ошибка появилась в 1.0.1.
  13674. </para>
  13675. <para lang="en">
  13676. nginx could not be built on Solaris;
  13677. the bug had appeared in 1.0.1.
  13678. </para>
  13679. </change>

  13680. </changes>


  13681. <changes ver="1.0.1" date="2011-05-03">

  13682. <change type="change">
  13683. <para lang="ru">
  13684. теперь директива split_clients использует алгоритм MurmurHash2 из-за
  13685. лучшего распределения.<br/>
  13686. Спасибо Олегу Мамонтову.
  13687. </para>
  13688. <para lang="en">
  13689. now the "split_clients" directive uses MurmurHash2 algorithm because
  13690. of better distribution.<br/>
  13691. Thanks to Oleg Mamontov.
  13692. </para>
  13693. </change>

  13694. <change type="change">
  13695. <para lang="ru">
  13696. теперь длинные строки, начинающиеся с нуля, не считаются ложными
  13697. значениями.<br/>
  13698. Спасибо Максиму Дунину.
  13699. </para>
  13700. <para lang="en">
  13701. now long strings starting with zero are not considered as false values.<br/>
  13702. Thanks to Maxim Dounin.
  13703. </para>
  13704. </change>

  13705. <change type="change">
  13706. <para lang="ru">
  13707. теперь по умолчанию nginx использует значение 511 для listen backlog на Linux.
  13708. </para>
  13709. <para lang="en">
  13710. now nginx uses a default listen backlog value 511 on Linux.
  13711. </para>
  13712. </change>

  13713. <change type="feature">
  13714. <para lang="ru">
  13715. переменные $upstream_... можно использовать в SSI и перловом модулях.
  13716. </para>
  13717. <para lang="en">
  13718. the $upstream_... variables may be used in the SSI and perl modules.
  13719. </para>
  13720. </change>

  13721. <change type="bugfix">
  13722. <para lang="ru">
  13723. теперь nginx лучше ограничивает размер кэша на диске.<br/>
  13724. Спасибо Олегу Мамонтову.
  13725. </para>
  13726. <para lang="en">
  13727. now nginx limits better disk cache size.<br/>
  13728. Thanks to Oleg Mamontov.
  13729. </para>
  13730. </change>

  13731. <change type="bugfix">
  13732. <para lang="ru">
  13733. при парсинге неправильного IPv4 адреса мог произойти segmentation fault;
  13734. ошибка появилась в 0.8.22.<br/>
  13735. Спасибо Максиму Дунину.
  13736. </para>
  13737. <para lang="en">
  13738. a segmentation fault might occur while parsing incorrect IPv4 address;
  13739. the bug had appeared in 0.9.3.<br/>
  13740. Thanks to Maxim Dounin.
  13741. </para>
  13742. </change>

  13743. <change type="bugfix">
  13744. <para lang="ru">
  13745. nginx не собирался gcc 4.6 без параметра --with-debug.
  13746. </para>
  13747. <para lang="en">
  13748. nginx could not be built by gcc 4.6 without --with-debug option.
  13749. </para>
  13750. </change>

  13751. <change type="bugfix">
  13752. <para lang="ru">
  13753. nginx не собирался на Solaris 9 и более ранних;
  13754. ошибка появилась в 0.9.3.<br/>
  13755. Спасибо Dagobert Michelsen.
  13756. </para>
  13757. <para lang="en">
  13758. nginx could not be built on Solaris 9 and earlier;
  13759. the bug had appeared in 0.9.3.<br/>
  13760. Thanks to Dagobert Michelsen.
  13761. </para>
  13762. </change>

  13763. <change type="bugfix">
  13764. <para lang="ru">
  13765. переменная $request_time имела неверные значения, если использовались
  13766. подзапросы;
  13767. ошибка появилась в 0.8.47.<br/>
  13768. Спасибо Игорю А. Валькову.
  13769. </para>
  13770. <para lang="en">
  13771. $request_time variable had invalid values if subrequests were used;
  13772. the bug had appeared in 0.8.47.<br/>
  13773. Thanks to Igor A. Valcov.
  13774. </para>
  13775. </change>

  13776. </changes>


  13777. <changes ver="1.0.0" date="2011-04-12">

  13778. <change type="bugfix">
  13779. <para lang="ru">
  13780. cache manager мог нагружать процессор после переконфигурации.<br/>
  13781. Спасибо Максиму Дунину.
  13782. </para>
  13783. <para lang="en">
  13784. a cache manager might hog CPU after reload.<br/>
  13785. Thanks to Maxim Dounin.
  13786. </para>
  13787. </change>

  13788. <change type="bugfix">
  13789. <para lang="ru">
  13790. директива "image_filter crop" неправильно работала в сочетании с
  13791. "image_filter rotate 180".
  13792. </para>
  13793. <para lang="en">
  13794. an "image_filter crop" directive worked incorrectly coupled with
  13795. an "image_filter rotate 180" directive.
  13796. </para>
  13797. </change>

  13798. <change type="bugfix">
  13799. <para lang="ru">
  13800. директива "satisfy any" запрещала выдачу пользовательской страницы
  13801. для 401 кода.
  13802. </para>
  13803. <para lang="en">
  13804. a "satisfy any" directive disabled custom 401 error page.
  13805. </para>
  13806. </change>

  13807. </changes>


  13808. <changes ver="0.9.7" date="2011-04-04">

  13809. <change type="feature">
  13810. <para lang="ru">
  13811. теперь соединения в состоянии keepalive могут быть закрыты преждевременно,
  13812. если у воркера нет свободных соединений.<br/>
  13813. Спасибо Максиму Дунину.
  13814. </para>
  13815. <para lang="en">
  13816. now keepalive connections may be closed premature,
  13817. if there are no free worker connections.<br/>
  13818. Thanks to Maxim Dounin.
  13819. </para>
  13820. </change>

  13821. <change type="feature">
  13822. <para lang="ru">
  13823. параметр rotate директивы image_filter.<br/>
  13824. Спасибо Adam Bocim.
  13825. </para>
  13826. <para lang="en">
  13827. the "rotate" parameter of the "image_filter" directive.<br/>
  13828. Thanks to Adam Bocim.
  13829. </para>
  13830. </change>

  13831. <change type="bugfix">
  13832. <para lang="ru">
  13833. ситуации, когда бэкенд в директивах fastcgi_pass, scgi_pass или uwsgi_pass
  13834. задан выражением и ссылается на описанный upstream.
  13835. </para>
  13836. <para lang="en">
  13837. a case when a backend in "fastcgi_pass", "scgi_pass", or "uwsgi_pass"
  13838. directives is given by expression and refers to a defined upstream.
  13839. </para>
  13840. </change>

  13841. </changes>


  13842. <changes ver="0.9.6" date="2011-03-21">

  13843. <change type="feature">
  13844. <para lang="ru">
  13845. директива map поддерживает регулярные выражения в качестве значения
  13846. первого параметра.
  13847. </para>
  13848. <para lang="en">
  13849. the "map" directive supports regular expressions as value of the first
  13850. parameter.
  13851. </para>
  13852. </change>

  13853. <change type="feature">
  13854. <para lang="ru">
  13855. переменная $time_iso8601 для access_log.<br/>
  13856. Спасибо Michael Lustfield.
  13857. </para>
  13858. <para lang="en">
  13859. $time_iso8601 access_log variable.<br/>
  13860. Thanks to Michael Lustfield.
  13861. </para>
  13862. </change>

  13863. </changes>


  13864. <changes ver="0.9.5" date="2011-02-21">

  13865. <change type="change">
  13866. <para lang="ru">
  13867. теперь по умолчанию nginx использует значение -1 для listen backlog
  13868. на Linux.<br/>
  13869. Спасибо Андрею Нигматулину.
  13870. </para>
  13871. <para lang="en">
  13872. now nginx uses a default listen backlog value -1 on Linux.<br/>
  13873. Thanks to Andrei Nigmatulin.
  13874. </para>
  13875. </change>

  13876. <change type="feature">
  13877. <para lang="ru">
  13878. параметр utf8 в директивах geoip_country и geoip_city.<br/>
  13879. Спасибо Денису Латыпову.
  13880. </para>
  13881. <para lang="en">
  13882. the "utf8" parameter of "geoip_country" and "geoip_city" directives.<br/>
  13883. Thanks to Denis F. Latypoff.
  13884. </para>
  13885. </change>

  13886. <change type="bugfix">
  13887. <para lang="ru">
  13888. исправление в умолчательной директиве proxy_redirect, если в директиве
  13889. proxy_pass не был описан URI.<br/>
  13890. Спасибо Максиму Дунину.
  13891. </para>
  13892. <para lang="en">
  13893. in a default "proxy_redirect" directive if "proxy_pass" directive has no
  13894. URI part.<br/>
  13895. Thanks to Maxim Dounin.
  13896. </para>
  13897. </change>

  13898. <change type="bugfix">
  13899. <para lang="ru">
  13900. директива error_page не работала с нестандартными кодами ошибок;
  13901. ошибка появилась в 0.8.53.<br/>
  13902. Спасибо Максиму Дунину.
  13903. </para>
  13904. <para lang="en">
  13905. an "error_page" directive did not work with nonstandard error codes;
  13906. the bug had appeared in 0.8.53.<br/>
  13907. Thanks to Maxim Dounin.
  13908. </para>
  13909. </change>

  13910. </changes>


  13911. <changes ver="0.9.4" date="2011-01-21">

  13912. <change type="feature">
  13913. <para lang="ru">
  13914. директива server_name поддерживает переменную $hostname.
  13915. </para>
  13916. <para lang="en">
  13917. the "server_name" directive supports the $hostname variable.
  13918. </para>
  13919. </change>

  13920. <change type="feature">
  13921. <para lang="ru">
  13922. 494 код для ошибки "Request Header Too Large".
  13923. </para>
  13924. <para lang="en">
  13925. 494 code for "Request Header Too Large" error.
  13926. </para>
  13927. </change>

  13928. </changes>


  13929. <changes ver="0.9.3" date="2010-12-13">

  13930. <change type="bugfix">
  13931. <para lang="ru">
  13932. если для пары IPv6-адрес:порт описан только один сервер, то выделения
  13933. в регулярных выражениях в директиве server_name не работали.
  13934. </para>
  13935. <para lang="en">
  13936. if there was a single server for given IPv6 address:port pair,
  13937. then captures in regular expressions in a "server_name" directive did not work.
  13938. </para>
  13939. </change>

  13940. <change type="bugfix">
  13941. <para lang="ru">
  13942. nginx не собирался под Solaris;
  13943. ошибка появилась в 0.9.0.
  13944. </para>
  13945. <para lang="en">
  13946. nginx could not be built on Solaris;
  13947. the bug had appeared in 0.9.0.
  13948. </para>
  13949. </change>

  13950. </changes>


  13951. <changes ver="0.9.2" date="2010-12-06">

  13952. <change type="feature">
  13953. <para lang="ru">
  13954. поддержка строки "If-Unmodified-Since" в заголовке запроса клиента.
  13955. </para>
  13956. <para lang="en">
  13957. the "If-Unmodified-Since" client request header line support.
  13958. </para>
  13959. </change>

  13960. <change type="workaround">
  13961. <para lang="ru">
  13962. использование accept(), если accept4() не реализован;
  13963. ошибка появилась в 0.9.0.
  13964. </para>
  13965. <para lang="en">
  13966. fallback to accept() syscall if accept4() was not implemented;
  13967. the issue had appeared in 0.9.0.
  13968. </para>
  13969. </change>

  13970. <change type="bugfix">
  13971. <para lang="ru">
  13972. nginx не собирался под Cygwin;
  13973. ошибка появилась в 0.9.0.
  13974. </para>
  13975. <para lang="en">
  13976. nginx could not be built on Cygwin;
  13977. the bug had appeared in 0.9.0.
  13978. </para>
  13979. </change>

  13980. <change type="bugfix">
  13981. <para lang="ru">
  13982. уязвимости в OpenSSL CVE-2010-4180.<br/>
  13983. Спасибо Максиму Дунину.
  13984. </para>
  13985. <para lang="en">
  13986. for OpenSSL vulnerability CVE-2010-4180.<br/>
  13987. Thanks to Maxim Dounin.
  13988. </para>
  13989. </change>

  13990. </changes>


  13991. <changes ver="0.9.1" date="2010-11-30">

  13992. <change type="bugfix">
  13993. <para lang="ru">
  13994. директивы вида "return CODE message" не работали;
  13995. ошибка появилась в 0.9.0.
  13996. </para>
  13997. <para lang="en">
  13998. "return CODE message" directives did not work;
  13999. the bug had appeared in 0.9.0.
  14000. </para>
  14001. </change>

  14002. </changes>


  14003. <changes ver="0.9.0" date="2010-11-29">

  14004. <change type="feature">
  14005. <para lang="ru">
  14006. директива keepalive_disable.
  14007. </para>
  14008. <para lang="en">
  14009. the "keepalive_disable" directive.
  14010. </para>
  14011. </change>

  14012. <change type="feature">
  14013. <para lang="ru">
  14014. директива map поддерживает переменные в качестве значения определяемой
  14015. переменной.
  14016. </para>
  14017. <para lang="en">
  14018. the "map" directive supports variables as value of a defined variable.
  14019. </para>
  14020. </change>

  14021. <change type="feature">
  14022. <para lang="ru">
  14023. директива map поддерживает пустые строки в качестве значения первого параметра.
  14024. </para>
  14025. <para lang="en">
  14026. the "map" directive supports empty strings as value of the first parameter.
  14027. </para>
  14028. </change>

  14029. <change type="feature">
  14030. <para lang="ru">
  14031. директива map поддерживает выражения в первом параметре.
  14032. </para>
  14033. <para lang="en">
  14034. the "map" directive supports expressions as the first parameter.
  14035. </para>
  14036. </change>

  14037. <change type="feature">
  14038. <para lang="ru">
  14039. страница руководства nginx(8).<br/>
  14040. Спасибо Сергею Осокину.
  14041. </para>
  14042. <para lang="en">
  14043. nginx(8) manual page.<br/>
  14044. Thanks to Sergey Osokin.
  14045. </para>
  14046. </change>

  14047. <change type="feature">
  14048. <para lang="ru">
  14049. поддержка accept4() в Linux.<br/>
  14050. Спасибо Simon Liu.
  14051. </para>
  14052. <para lang="en">
  14053. Linux accept4() support.<br/>
  14054. Thanks to Simon Liu.
  14055. </para>
  14056. </change>

  14057. <change type="workaround">
  14058. <para lang="ru">
  14059. устранение предупреждения линкера о "sys_errlist" и "sys_nerr" под Linux;
  14060. предупреждение появилось в 0.8.35.
  14061. </para>
  14062. <para lang="en">
  14063. elimination of Linux linker warning about "sys_errlist" and "sys_nerr";
  14064. the warning had appeared in 0.8.35.
  14065. </para>
  14066. </change>

  14067. <change type="bugfix">
  14068. <para lang="ru">
  14069. при использовании директивы auth_basic
  14070. в рабочем процессе мог произойти segmentation fault.<br/>
  14071. Спасибо Михаилу Лалетину.
  14072. </para>
  14073. <para lang="en">
  14074. a segmentation fault might occur in a worker process,
  14075. if the "auth_basic" directive was used.<br/>
  14076. Thanks to Michail Laletin.
  14077. </para>
  14078. </change>

  14079. <change type="bugfix">
  14080. <para lang="ru">
  14081. совместимость с модулем ngx_http_eval_module;
  14082. ошибка появилась в 0.8.42.
  14083. </para>
  14084. <para lang="en">
  14085. compatibility with ngx_http_eval_module;
  14086. the bug had appeared in 0.8.42.
  14087. </para>
  14088. </change>

  14089. </changes>


  14090. <changes ver="0.8.53" date="2010-10-18">

  14091. <change type="feature">
  14092. <para lang="ru">
  14093. теперь директива error_page позволяет менять код статуса у редиректа.
  14094. </para>
  14095. <para lang="en">
  14096. now the "error_page" directive allows to change a status code in a redirect.
  14097. </para>
  14098. </change>

  14099. <change type="feature">
  14100. <para lang="ru">
  14101. директива gzip_disable поддерживает специальную маску degradation.
  14102. </para>
  14103. <para lang="en">
  14104. the "gzip_disable" directive supports special "degradation" mask.
  14105. </para>
  14106. </change>

  14107. <change type="bugfix">
  14108. <para lang="ru">
  14109. при использовании файлового AIO могла происходить утечка сокетов.<br/>
  14110. Спасибо Максиму Дунину.
  14111. </para>
  14112. <para lang="en">
  14113. a socket leak might occurred if file AIO was used.<br/>
  14114. Thanks to Maxim Dounin.
  14115. </para>
  14116. </change>

  14117. <change type="bugfix">
  14118. <para lang="ru">
  14119. если в первом сервере не была описана директива listen и нигде явно
  14120. не описан сервер по умолчанию, то сервером по умолчанию становился
  14121. следующий сервер с директивой listen;
  14122. ошибка появилась в 0.8.21.
  14123. </para>
  14124. <para lang="en">
  14125. if the first server had no "listen" directive and there was no explicit
  14126. default server, then a next server with a "listen" directive became
  14127. the default server;
  14128. the bug had appeared in 0.8.21.
  14129. </para>
  14130. </change>

  14131. </changes>


  14132. <changes ver="0.8.52" date="2010-09-28">

  14133. <change type="bugfix">
  14134. <para lang="ru">
  14135. nginx использовал режим SSL для listen сокета, если для него был
  14136. установлен любой listen-параметр;
  14137. ошибка появилась в 0.8.51.
  14138. </para>
  14139. <para lang="en">
  14140. nginx used SSL mode for a listen socket if any listen option was set;
  14141. the bug had appeared in 0.8.51.
  14142. </para>
  14143. </change>

  14144. </changes>


  14145. <changes ver="0.8.51" date="2010-09-27">

  14146. <change type="change">
  14147. <para lang="ru">
  14148. директива secure_link_expires упразднена.
  14149. </para>
  14150. <para lang="en">
  14151. the "secure_link_expires" directive has been canceled.
  14152. </para>
  14153. </change>

  14154. <change type="change">
  14155. <para lang="ru">
  14156. уровень логгирования ошибок resolver'а понижен с уровня alert на error.
  14157. </para>
  14158. <para lang="en">
  14159. a logging level of resolver errors has been lowered from "alert" to "error".
  14160. </para>
  14161. </change>

  14162. <change type="feature">
  14163. <para lang="ru">
  14164. теперь параметр "ssl" listen-сокета можно устанавливать несколько раз.
  14165. </para>
  14166. <para lang="en">
  14167. now a listen socket "ssl" parameter may be set several times.
  14168. </para>
  14169. </change>

  14170. </changes>


  14171. <changes ver="0.8.50" date="2010-09-02">

  14172. <change type="feature">
  14173. <para lang="ru">
  14174. директивы secure_link, secure_link_md5 и secure_link_expires
  14175. модуля ngx_http_secure_link_module.
  14176. </para>
  14177. <para lang="en">
  14178. the "secure_link", "secure_link_md5", and "secure_link_expires" directives of
  14179. the ngx_http_secure_link_module.
  14180. </para>
  14181. </change>

  14182. <change type="feature">
  14183. <para lang="ru">
  14184. ключ -q.<br/>
  14185. Спасибо Геннадию Махомеду.
  14186. </para>
  14187. <para lang="en">
  14188. the -q switch.<br/>
  14189. Thanks to Gena Makhomed.
  14190. </para>
  14191. </change>

  14192. <change type="bugfix">
  14193. <para lang="ru">
  14194. при использовании кэширования рабочие процессы и могли зациклиться
  14195. во время переконфигурации;
  14196. ошибка появилась в 0.8.48.
  14197. </para>
  14198. <para lang="en">
  14199. worker processes may got caught in an endless loop during reconfiguration,
  14200. if a caching was used;
  14201. the bug had appeared in 0.8.48.
  14202. </para>
  14203. </change>

  14204. <change type="bugfix">
  14205. <para lang="ru">
  14206. в директиве gzip_disable.<br/>
  14207. Спасибо Derrick Petzold.
  14208. </para>
  14209. <para lang="en">
  14210. in the "gzip_disable" directive.<br/>
  14211. Thanks to Derrick Petzold.
  14212. </para>
  14213. </change>

  14214. <change type="bugfix">
  14215. <para lang="ru">
  14216. nginx/Windows не мог посылать сигналы stop, quit, reopen, reload процессу,
  14217. запущенному в другой сессии.
  14218. </para>
  14219. <para lang="en">
  14220. nginx/Windows could not send stop, quit, reopen, and reload signals
  14221. to a process run in other session.
  14222. </para>
  14223. </change>

  14224. </changes>


  14225. <changes ver="0.8.49" date="2010-08-09">

  14226. <change type="feature">
  14227. <para lang="ru">
  14228. директива image_filter_jpeg_quality поддерживает переменные.
  14229. </para>
  14230. <para lang="en">
  14231. the "image_filter_jpeg_quality" directive supports variables.
  14232. </para>
  14233. </change>

  14234. <change type="bugfix">
  14235. <para lang="ru">
  14236. при использовании переменной $geoip_region_name
  14237. в рабочем процессе мог произойти segmentation fault;
  14238. ошибка появилась в 0.8.48.
  14239. </para>
  14240. <para lang="en">
  14241. a segmentation fault might occur in a worker process,
  14242. if the $geoip_region_name variables was used;
  14243. the bug had appeared in 0.8.48.
  14244. </para>
  14245. </change>

  14246. <change type="bugfix">
  14247. <para lang="ru">
  14248. ошибки, перехваченные error_page, кэшировались только до следующего запроса;
  14249. ошибка появилась в 0.8.48.
  14250. </para>
  14251. <para lang="en">
  14252. errors intercepted by error_page were cached only for next request;
  14253. the bug had appeared in 0.8.48.
  14254. </para>
  14255. </change>

  14256. </changes>


  14257. <changes ver="0.8.48" date="2010-08-03">

  14258. <change type="change">
  14259. <para lang="ru">
  14260. теперь по умолчанию директива server_name имеет значение пустое имя "".<br/>
  14261. Спасибо Геннадию Махомеду.
  14262. </para>
  14263. <para lang="en">
  14264. now the "server_name" directive default value is an empty name "".<br/>
  14265. Thanks to Gena Makhomed.
  14266. </para>
  14267. </change>

  14268. <change type="change">
  14269. <para lang="ru">
  14270. теперь по умолчанию директива server_name_in_redirect имеет значение off.
  14271. </para>
  14272. <para lang="en">
  14273. now the "server_name_in_redirect" directive default value is "off".
  14274. </para>
  14275. </change>

  14276. <change type="feature">
  14277. <para lang="ru">
  14278. переменные $geoip_dma_code, $geoip_area_code и $geoip_region_name.<br/>
  14279. Спасибо Christine McGonagle.
  14280. </para>
  14281. <para lang="en">
  14282. the $geoip_dma_code, $geoip_area_code, and $geoip_region_name variables.<br/>
  14283. Thanks to Christine McGonagle.
  14284. </para>
  14285. </change>

  14286. <change type="bugfix">
  14287. <para lang="ru">
  14288. директивы proxy_pass, fastcgi_pass, uwsgi_pass и scgi_pass не наследовались
  14289. в блоки limit_except.
  14290. </para>
  14291. <para lang="en">
  14292. the "proxy_pass", "fastcgi_pass", "uwsgi_pass", and "scgi_pass" directives
  14293. were not inherited inside "limit_except" blocks.
  14294. </para>
  14295. </change>

  14296. <change type="bugfix">
  14297. <para lang="ru">
  14298. директивы proxy_cache_min_uses, fastcgi_cache_min_uses
  14299. uwsgi_cache_min_uses и scgi_cache_min_uses не работали;
  14300. ошибка появилась в 0.8.46.
  14301. </para>
  14302. <para lang="en">
  14303. the "proxy_cache_min_uses", "fastcgi_cache_min_uses"
  14304. "uwsgi_cache_min_uses", and "scgi_cache_min_uses" directives did not work;
  14305. the bug had appeared in 0.8.46.
  14306. </para>
  14307. </change>

  14308. <change type="bugfix">
  14309. <para lang="ru">
  14310. директива fastcgi_split_path_info неверно использовала выделения,
  14311. если в выделения попадала только часть URI.<br/>
  14312. Спасибо Юрию Тарадаю и Frank Enderle.
  14313. </para>
  14314. <para lang="en">
  14315. the "fastcgi_split_path_info" directive used incorrectly captures,
  14316. if only parts of an URI were captured.<br/>
  14317. Thanks to Yuriy Taraday and Frank Enderle.
  14318. </para>
  14319. </change>

  14320. <change type="bugfix">
  14321. <para lang="ru">
  14322. директива rewrite не экранировала символ ";" при копировании из URI
  14323. в аргументы.<br/>
  14324. Спасибо Daisuke Murase.
  14325. </para>
  14326. <para lang="en">
  14327. the "rewrite" directive did not escape a ";" character during copying
  14328. from URI to query string.<br/>
  14329. Thanks to Daisuke Murase.
  14330. </para>
  14331. </change>

  14332. <change type="bugfix">
  14333. <para lang="ru">
  14334. модуль ngx_http_image_filter_module закрывал соединение,
  14335. если изображение было больше размера image_filter_buffer.
  14336. </para>
  14337. <para lang="en">
  14338. the ngx_http_image_filter_module closed a connection,
  14339. if an image was larger than "image_filter_buffer" size.
  14340. </para>
  14341. </change>

  14342. </changes>


  14343. <changes ver="0.8.47" date="2010-07-28">

  14344. <change type="bugfix">
  14345. <para lang="ru">
  14346. переменная $request_time имела неверные значения для подзапросов.
  14347. </para>
  14348. <para lang="en">
  14349. $request_time variable had invalid values for subrequests.
  14350. </para>
  14351. </change>

  14352. <change type="bugfix">
  14353. <para lang="ru">
  14354. ошибки, перехваченные error_page, не кэшировались.
  14355. </para>
  14356. <para lang="en">
  14357. errors intercepted by error_page could not be cached.
  14358. </para>
  14359. </change>

  14360. <change type="bugfix">
  14361. <para lang="ru">
  14362. если использовался параметр max_size, то cache manager мог зациклиться;
  14363. ошибка появилась в 0.8.46.
  14364. </para>
  14365. <para lang="en">
  14366. a cache manager process may got caught in an endless loop,
  14367. if max_size parameter was used;
  14368. the bug had appeared in 0.8.46.
  14369. </para>
  14370. </change>

  14371. </changes>


  14372. <changes ver="0.8.46" date="2010-07-19">

  14373. <change type="change">
  14374. <para lang="ru">
  14375. директивы proxy_no_cache, fastcgi_no_cache, uwsgi_no_cache
  14376. и scgi_no_cache теперь влияют только на сохранение закэшированного ответа.
  14377. </para>
  14378. <para lang="en">
  14379. now the "proxy_no_cache", "fastcgi_no_cache", "uwsgi_no_cache", and
  14380. "scgi_no_cache" directives affect on a cached response saving only.
  14381. </para>
  14382. </change>

  14383. <change type="feature">
  14384. <para lang="ru">
  14385. директивы proxy_cache_bypass, fastcgi_cache_bypass, uwsgi_cache_bypass
  14386. и scgi_cache_bypass.
  14387. </para>
  14388. <para lang="en">
  14389. the "proxy_cache_bypass", "fastcgi_cache_bypass", "uwsgi_cache_bypass",
  14390. and "scgi_cache_bypass" directives.
  14391. </para>
  14392. </change>

  14393. <change type="bugfix">
  14394. <para lang="ru">
  14395. nginx не освобождал память в keys_zone кэшей в случае ошибки работы с
  14396. бэкендом: память освобождалась только по истечении времени неактивности
  14397. или при недостатке памяти.
  14398. </para>
  14399. <para lang="en">
  14400. nginx did not free memory in cache keys zones if there was an error
  14401. during working with backend: the memory was freed only after inactivity
  14402. time or on memory low condition.
  14403. </para>
  14404. </change>

  14405. </changes>


  14406. <changes ver="0.8.45" date="2010-07-13">

  14407. <change type="feature">
  14408. <para lang="ru">
  14409. улучшения в модуле ngx_http_xslt_filter.<br/>
  14410. Спасибо Laurence Rowe.
  14411. </para>
  14412. <para lang="en">
  14413. ngx_http_xslt_filter improvements.<br/>
  14414. Thanks to Laurence Rowe.
  14415. </para>
  14416. </change>

  14417. <change type="bugfix">
  14418. <para lang="ru">
  14419. ответ SSI модуля мог передаваться не полностью после команды include
  14420. с параметром wait="yes";
  14421. ошибка появилась в 0.7.25.<br/>
  14422. Спасибо Максиму Дунину.
  14423. </para>
  14424. <para lang="en">
  14425. SSI response might be truncated after include with wait="yes";
  14426. the bug had appeared in 0.7.25.<br/>
  14427. Thanks to Maxim Dounin.
  14428. </para>
  14429. </change>

  14430. <change type="bugfix">
  14431. <para lang="ru">
  14432. директива listen не поддерживала параметр setfib=0.
  14433. </para>
  14434. <para lang="en">
  14435. the "listen" directive did not support the "setfib=0" parameter.
  14436. </para>
  14437. </change>

  14438. </changes>


  14439. <changes ver="0.8.44" date="2010-07-05">

  14440. <change type="change">
  14441. <para lang="ru">
  14442. теперь nginx по умолчанию не кэширует ответы бэкендов,
  14443. в заголовке которых есть строка "Set-Cookie".
  14444. </para>
  14445. <para lang="en">
  14446. now nginx does not cache by default backend responses,
  14447. if they have a "Set-Cookie" header line.
  14448. </para>
  14449. </change>

  14450. <change type="feature">
  14451. <para lang="ru">
  14452. директива listen поддерживает параметр setfib.<br/>
  14453. Спасибо Андрею Филонову.
  14454. </para>
  14455. <para lang="en">
  14456. the "listen" directive supports the "setfib" parameter.<br/>
  14457. Thanks to Andrew Filonov.
  14458. </para>
  14459. </change>

  14460. <change type="bugfix">
  14461. <para lang="ru">
  14462. директива sub_filter могла изменять регистр букв при частичном совпадении.
  14463. </para>
  14464. <para lang="en">
  14465. the "sub_filter" directive might change character case on partial match.
  14466. </para>
  14467. </change>

  14468. <change type="bugfix">
  14469. <para lang="ru">
  14470. совместимость с HP/UX.
  14471. </para>
  14472. <para lang="en">
  14473. compatibility with HP/UX.
  14474. </para>
  14475. </change>

  14476. <change type="bugfix">
  14477. <para lang="ru">
  14478. совместимость с компилятором AIX xlC_r.
  14479. </para>
  14480. <para lang="en">
  14481. compatibility with AIX xlC_r compiler.
  14482. </para>
  14483. </change>

  14484. <change type="bugfix">
  14485. <para lang="ru">
  14486. nginx считал большие пакеты SSLv2 как обычные текстовые запросы.<br/>
  14487. Спасибо Miroslaw Jaworski.
  14488. </para>
  14489. <para lang="en">
  14490. nginx treated large SSLv2 packets as plain requests.<br/>
  14491. Thanks to Miroslaw Jaworski.
  14492. </para>
  14493. </change>

  14494. </changes>


  14495. <changes ver="0.8.43" date="2010-06-30">

  14496. <change type="feature">
  14497. <para lang="ru">
  14498. ускорение загрузки больших баз geo-диапазонов.
  14499. </para>
  14500. <para lang="en">
  14501. large geo ranges base loading speed-up.
  14502. </para>
  14503. </change>

  14504. <change type="bugfix">
  14505. <para lang="ru">
  14506. перенаправление ошибки в "location /zero {return 204;}" без изменения
  14507. кода ответа оставляло тело ошибки;
  14508. ошибка появилась в 0.8.42.
  14509. </para>
  14510. <para lang="en">
  14511. an error_page redirection to "location /zero {return 204;}" without
  14512. changing status code kept the error body;
  14513. the bug had appeared in 0.8.42.
  14514. </para>
  14515. </change>

  14516. <change type="bugfix">
  14517. <para lang="ru">
  14518. nginx мог закрывать IPv6 listen сокет во время переконфигурации.<br/>
  14519. Спасибо Максиму Дунину.
  14520. </para>
  14521. <para lang="en">
  14522. nginx might close IPv6 listen socket during reconfiguration.<br/>
  14523. Thanks to Maxim Dounin.
  14524. </para>
  14525. </change>

  14526. <change type="bugfix">
  14527. <para lang="ru">
  14528. переменную $uid_set можно использовать на любой стадии обработки запроса.
  14529. </para>
  14530. <para lang="en">
  14531. the $uid_set variable may be used at any request processing stage.
  14532. </para>
  14533. </change>

  14534. </changes>


  14535. <changes ver="0.8.42" date="2010-06-21">

  14536. <change type="change">
  14537. <para lang="ru">
  14538. теперь nginx проверяет location'ы, заданные регулярными выражениями,
  14539. если запрос полностью совпал с location'ом, заданным строкой префикса.
  14540. Предыдущее поведение появилось в 0.7.1.
  14541. </para>
  14542. <para lang="en">
  14543. now nginx tests locations given by regular expressions,
  14544. if request was matched exactly by a location given by a prefix string.
  14545. The previous behavior has been introduced in 0.7.1.
  14546. </para>
  14547. </change>

  14548. <change type="feature">
  14549. <para lang="ru">
  14550. модуль ngx_http_scgi_module.<br/>
  14551. Спасибо Manlio Perillo.
  14552. </para>
  14553. <para lang="en">
  14554. the ngx_http_scgi_module.<br/>
  14555. Thanks to Manlio Perillo.
  14556. </para>
  14557. </change>

  14558. <change type="feature">
  14559. <para lang="ru">
  14560. в директиве return можно добавлять текст ответа.
  14561. </para>
  14562. <para lang="en">
  14563. a text answer may be added to a "return" directive.
  14564. </para>
  14565. </change>

  14566. </changes>


  14567. <changes ver="0.8.41" date="2010-06-15">

  14568. <change type="security">
  14569. <para lang="ru">
  14570. рабочий процесс nginx/Windows мог завершаться аварийно при запросе файла
  14571. с неверной кодировкой UTF-8.
  14572. </para>
  14573. <para lang="en">
  14574. nginx/Windows worker might be terminated abnormally if a requested file name
  14575. has invalid UTF-8 encoding.
  14576. </para>
  14577. </change>

  14578. <change type="change">
  14579. <para lang="ru">
  14580. теперь nginx разрешает использовать пробелы в строке запроса.
  14581. </para>
  14582. <para lang="en">
  14583. now nginx allows to use spaces in a request line.
  14584. </para>
  14585. </change>

  14586. <change type="bugfix">
  14587. <para lang="ru">
  14588. директива proxy_redirect неправильно изменяла строку "Refresh" в заголовке
  14589. ответа бэкенда.<br/>
  14590. Спасибо Андрею Андрееву и Максиму Согину.
  14591. </para>
  14592. <para lang="en">
  14593. the "proxy_redirect" directive changed incorrectly a backend "Refresh"
  14594. response header line.<br/>
  14595. Thanks to Andrey Andreew and Max Sogin.
  14596. </para>
  14597. </change>

  14598. <change type="bugfix">
  14599. <para lang="ru">
  14600. nginx не поддерживал путь без имени хоста в
  14601. строке "Destination" в заголовке запроса.
  14602. </para>
  14603. <para lang="en">
  14604. nginx did not support path without host name
  14605. in "Destination" request header line.
  14606. </para>
  14607. </change>

  14608. </changes>


  14609. <changes ver="0.8.40" date="2010-06-07">

  14610. <change type="security">
  14611. <para lang="ru">
  14612. теперь nginx/Windows игнорирует имя потока файла по умолчанию.<br/>
  14613. Спасибо Jose Antonio Vazquez Gonzalez.
  14614. </para>
  14615. <para lang="en">
  14616. now nginx/Windows ignores default file stream name.<br/>
  14617. Thanks to Jose Antonio Vazquez Gonzalez.
  14618. </para>
  14619. </change>

  14620. <change type="feature">
  14621. <para lang="ru">
  14622. модуль ngx_http_uwsgi_module.<br/>
  14623. Спасибо Roberto De Ioris.
  14624. </para>
  14625. <para lang="en">
  14626. the ngx_http_uwsgi_module.<br/>
  14627. Thanks to Roberto De Ioris.
  14628. </para>
  14629. </change>

  14630. <change type="feature">
  14631. <para lang="ru">
  14632. директива fastcgi_param со значением, начинающимся со строки "HTTP_",
  14633. изменяет строку заголовка в запросе клиента.
  14634. </para>
  14635. <para lang="en">
  14636. a "fastcgi_param" directive with value starting with "HTTP_" overrides
  14637. a client request header line.
  14638. </para>
  14639. </change>

  14640. <change type="bugfix">
  14641. <para lang="ru">
  14642. строки "If-Modified-Since", "If-Range" и им подобные в заголовке запроса
  14643. клиента передавались FastCGI-серверу при кэшировании.
  14644. </para>
  14645. <para lang="en">
  14646. the "If-Modified-Since", "If-Range", etc. client request header lines
  14647. were passed to FastCGI-server while caching.
  14648. </para>
  14649. </change>

  14650. <change type="bugfix">
  14651. <para lang="ru">
  14652. listen unix domain сокет нельзя было изменить во время переконфигурации.<br/>
  14653. Спасибо Максиму Дунину.
  14654. </para>
  14655. <para lang="en">
  14656. listen unix domain socket could not be changed during reconfiguration.<br/>
  14657. Thanks to Maxim Dounin.
  14658. </para>
  14659. </change>

  14660. </changes>


  14661. <changes ver="0.8.39" date="2010-05-31">

  14662. <change type="bugfix">
  14663. <para lang="ru">
  14664. наследуемая директива alias неправильно работала во вложенном location'е.
  14665. </para>
  14666. <para lang="en">
  14667. an inherited "alias" directive worked incorrectly in inclusive location.
  14668. </para>
  14669. </change>

  14670. <change type="bugfix">
  14671. <para lang="ru">
  14672. в комбинации директив alias с переменными и try_files;
  14673. </para>
  14674. <para lang="en">
  14675. in "alias" with variables and "try_files" directives combination.
  14676. </para>
  14677. </change>

  14678. <change type="bugfix">
  14679. <para lang="ru">
  14680. listen unix domain и IPv6 сокеты не наследовались во время обновления
  14681. без перерыва.<br/>
  14682. Спасибо Максиму Дунину.
  14683. </para>
  14684. <para lang="en">
  14685. listen unix domain and IPv6 sockets did not inherit while online upgrade.<br/>
  14686. Thanks to Maxim Dounin.
  14687. </para>
  14688. </change>

  14689. </changes>


  14690. <changes ver="0.8.38" date="2010-05-24">

  14691. <change type="feature">
  14692. <para lang="ru">
  14693. директивы proxy_no_cache и fastcgi_no_cache.
  14694. </para>
  14695. <para lang="en">
  14696. the "proxy_no_cache" and "fastcgi_no_cache" directives.
  14697. </para>
  14698. </change>

  14699. <change type="feature">
  14700. <para lang="ru">
  14701. теперь при использовании переменной $scheme в директиве rewrite
  14702. автоматически делается редирект.<br/>
  14703. Спасибо Piotr Sikora.
  14704. </para>
  14705. <para lang="en">
  14706. now the "rewrite" directive does a redirect automatically
  14707. if the $scheme variable is used.<br/>
  14708. Thanks to Piotr Sikora.
  14709. </para>
  14710. </change>

  14711. <change type="bugfix">
  14712. <para lang="ru">
  14713. теперь задержки в директиве limit_req соответствует описанному алгоритму.<br/>
  14714. Спасибо Максиму Дунину.
  14715. </para>
  14716. <para lang="en">
  14717. now "limit_req" delay directive conforms to the described algorithm.<br/>
  14718. Thanks to Maxim Dounin.
  14719. </para>
  14720. </change>

  14721. <change type="bugfix">
  14722. <para lang="ru">
  14723. переменную $uid_got нельзя было использовать в SSI и перловом модулях.
  14724. </para>
  14725. <para lang="en">
  14726. the $uid_got variable might not be used in the SSI and perl modules.
  14727. </para>
  14728. </change>

  14729. </changes>


  14730. <changes ver="0.8.37" date="2010-05-17">

  14731. <change type="feature">
  14732. <para lang="ru">
  14733. модуль ngx_http_split_clients_module.
  14734. </para>
  14735. <para lang="en">
  14736. the ngx_http_split_clients_module.
  14737. </para>
  14738. </change>

  14739. <change type="feature">
  14740. <para lang="ru">
  14741. директива map поддерживает ключи больше 255 символов.
  14742. </para>
  14743. <para lang="en">
  14744. the "map" directive supports keys more than 255 characters.
  14745. </para>
  14746. </change>

  14747. <change type="bugfix">
  14748. <para lang="ru">
  14749. nginx игнорировал значения "private" и "no-store" в строке "Cache-Control"
  14750. в заголовке ответа бэкенда.
  14751. </para>
  14752. <para lang="en">
  14753. nginx ignored the "private" and "no-store" values
  14754. in the "Cache-Control" backend response header line.
  14755. </para>
  14756. </change>

  14757. <change type="bugfix">
  14758. <para lang="ru">
  14759. параметр stub в SSI-директиве include не использовался,
  14760. если пустой ответ имел код 200.
  14761. </para>
  14762. <para lang="en">
  14763. a "stub" parameter of an "include" SSI directive was not used,
  14764. if empty response has 200 status code.
  14765. </para>
  14766. </change>

  14767. <change type="bugfix">
  14768. <para lang="ru">
  14769. если проксированный или FastCGI запрос внутренне перенаправлялся
  14770. в другой проксированный или FastCGI location,
  14771. то в рабочем процессе мог произойти segmentation fault;
  14772. ошибка появилась в 0.8.33.<br/>
  14773. Спасибо Yichun Zhang.
  14774. </para>
  14775. <para lang="en">
  14776. if a proxied or FastCGI request was internally redirected
  14777. to another proxied or FastCGI location,
  14778. then a segmentation fault might occur in a worker process;
  14779. the bug had appeared in 0.8.33.<br/>
  14780. Thanks to Yichun Zhang.
  14781. </para>
  14782. </change>

  14783. <change type="bugfix">
  14784. <para lang="ru">
  14785. соединения IMAP к серверу Zimbra могло зависнуть до таймаута.<br/>
  14786. Спасибо Alan Batie.
  14787. </para>
  14788. <para lang="en">
  14789. IMAP connections may hang until they timed out
  14790. while talking to Zimbra server.<br/>
  14791. Thanks to Alan Batie.
  14792. </para>
  14793. </change>

  14794. </changes>


  14795. <changes ver="0.8.36" date="2010-04-22">

  14796. <change type="bugfix">
  14797. <para lang="ru">
  14798. модуль ngx_http_dav_module неправильно обрабатывал методы DELETE, COPY и MOVE
  14799. для симлинков.
  14800. </para>
  14801. <para lang="en">
  14802. the ngx_http_dav_module handled incorrectly the DELETE, COPY, and MOVE methods
  14803. for symlinks.
  14804. </para>
  14805. </change>

  14806. <change type="bugfix">
  14807. <para lang="ru">
  14808. модуль SSI в подзапросах использовал закэшированные в основном запросе
  14809. значения переменных $query_string, $arg_... и им подобных.
  14810. </para>
  14811. <para lang="en">
  14812. values of the $query_string, $arg_..., etc. variables cached in main
  14813. request were used by the SSI module in subrequests.
  14814. </para>
  14815. </change>

  14816. <change type="bugfix">
  14817. <para lang="ru">
  14818. значение переменной повторно экранировалось после каждого вывода
  14819. SSI-команды echo;
  14820. ошибка появилась в 0.6.14.
  14821. </para>
  14822. <para lang="en">
  14823. a variable value was repeatedly encoded after each
  14824. an "echo" SSI-command output;
  14825. the bug had appeared in 0.6.14.
  14826. </para>
  14827. </change>

  14828. <change type="bugfix">
  14829. <para lang="ru">
  14830. рабочий процесс зависал при запросе файла FIFO.<br/>
  14831. Спасибо Vicente Aguilar и Максиму Дунину.
  14832. </para>
  14833. <para lang="en">
  14834. a worker process hung if a FIFO file was requested.<br/>
  14835. Thanks to Vicente Aguilar and Maxim Dounin.
  14836. </para>
  14837. </change>

  14838. <change type="bugfix">
  14839. <para lang="ru">
  14840. совместимость с OpenSSL-1.0.0 на 64-битном Linux.<br/>
  14841. Спасибо Максиму Дунину.
  14842. </para>
  14843. <para lang="en">
  14844. OpenSSL-1.0.0 compatibility on 64-bit Linux.<br/>
  14845. Thanks to Maxim Dounin.
  14846. </para>
  14847. </change>

  14848. <change type="bugfix">
  14849. <para lang="ru">
  14850. nginx не собирался с параметром --without-http-cache;
  14851. ошибка появилась в 0.8.35.
  14852. </para>
  14853. <para lang="en">
  14854. nginx could not be built --without-http-cache;
  14855. the bug had appeared in 0.8.35.
  14856. </para>
  14857. </change>

  14858. </changes>


  14859. <changes ver="0.8.35" date="2010-04-01">

  14860. <change type="change">
  14861. <para lang="ru">
  14862. теперь charset-фильтр работает до SSI-фильтра.
  14863. </para>
  14864. <para lang="en">
  14865. now the charset filter runs before the SSI filter.
  14866. </para>
  14867. </change>

  14868. <change type="feature">
  14869. <para lang="ru">
  14870. директива chunked_transfer_encoding.
  14871. </para>
  14872. <para lang="en">
  14873. the "chunked_transfer_encoding" directive.
  14874. </para>
  14875. </change>

  14876. <change type="bugfix">
  14877. <para lang="ru">
  14878. символ "&amp;" при копировании в аргументы в правилах rewrite не экранировался.
  14879. </para>
  14880. <para lang="en">
  14881. an "&amp;" character was not escaped when it was copied in arguments part
  14882. in a rewrite rule.
  14883. </para>
  14884. </change>

  14885. <change type="bugfix">
  14886. <para lang="ru">
  14887. nginx мог завершаться аварийно во время обработки сигнала или
  14888. при использовании директивы timer_resolution на платформах,
  14889. не поддерживающих методы kqueue или eventport.<br/>
  14890. Спасибо George Xie и Максиму Дунину.
  14891. </para>
  14892. <para lang="en">
  14893. nginx might be terminated abnormally
  14894. while a signal processing or if the directive "timer_resolution" was used
  14895. on platforms which do not support kqueue or eventport notification methods.<br/>
  14896. Thanks to George Xie and Maxim Dounin.
  14897. </para>
  14898. </change>

  14899. <change type="bugfix">
  14900. <para lang="ru">
  14901. если временные файлы и постоянное место хранения располагались на разных
  14902. файловых системах, то у постоянных файлов время изменения было неверным.<br/>
  14903. Спасибо Максиму Дунину.
  14904. </para>
  14905. <para lang="en">
  14906. if temporary files and permanent storage area resided at different
  14907. file systems, then permanent file modification times were incorrect.<br/>
  14908. Thanks to Maxim Dounin.
  14909. </para>
  14910. </change>

  14911. <change type="bugfix">
  14912. <para lang="ru">
  14913. модуль ngx_http_memcached_module мог выдавать ошибку "memcached sent invalid
  14914. trailer".<br/>
  14915. Спасибо Максиму Дунину.
  14916. </para>
  14917. <para lang="en">
  14918. ngx_http_memcached_module might issue the error message "memcached sent invalid
  14919. trailer".<br/>
  14920. Thanks to Maxim Dounin.
  14921. </para>
  14922. </change>

  14923. <change type="bugfix">
  14924. <para lang="ru">
  14925. nginx не мог собрать библиотеку zlib-1.2.4 из исходных текстов.<br/>
  14926. Спасибо Максиму Дунину.
  14927. </para>
  14928. <para lang="en">
  14929. nginx could not built zlib-1.2.4 library using the library sources.<br/>
  14930. Thanks to Maxim Dounin.
  14931. </para>
  14932. </change>

  14933. <change type="bugfix">
  14934. <para lang="ru">
  14935. в рабочем процессе происходил segmentation fault,
  14936. если перед ответом FastCGI-сервера было много вывода в stderr;
  14937. ошибка появилась в 0.8.34.<br/>
  14938. Спасибо Максиму Дунину.
  14939. </para>
  14940. <para lang="en">
  14941. a segmentation fault occurred in a worker process,
  14942. if there was large stderr output before FastCGI response;
  14943. the bug had appeared in 0.8.34.<br/>
  14944. Thanks to Maxim Dounin.
  14945. </para>
  14946. </change>

  14947. </changes>


  14948. <changes ver="0.8.34" date="2010-03-03">

  14949. <change type="bugfix">
  14950. <para lang="ru">
  14951. nginx не поддерживал все шифры, используемые в клиентских сертификатах.<br/>
  14952. Спасибо Иннокентию Еникееву.
  14953. </para>
  14954. <para lang="en">
  14955. nginx did not support all ciphers and digests used in client certificates.<br/>
  14956. Thanks to Innocenty Enikeew.
  14957. </para>
  14958. </change>

  14959. <change type="bugfix">
  14960. <para lang="ru">
  14961. nginx неправильно кэшировал FastCGI-ответы, если перед ответом было
  14962. много вывода в stderr.
  14963. </para>
  14964. <para lang="en">
  14965. nginx cached incorrectly FastCGI responses if there was large stderr output
  14966. before response.
  14967. </para>
  14968. </change>

  14969. <change type="bugfix">
  14970. <para lang="ru">
  14971. nginx не поддерживал HTTPS-рефереры.
  14972. </para>
  14973. <para lang="en">
  14974. nginx did not support HTTPS referrers.
  14975. </para>
  14976. </change>

  14977. <change type="bugfix">
  14978. <para lang="ru">
  14979. nginx/Windows мог не находить файлы, если путь в конфигурации был задан
  14980. в другом регистре;
  14981. ошибка появилась в 0.8.33.
  14982. </para>
  14983. <para lang="en">
  14984. nginx/Windows might not find file if path in configuration was given
  14985. in other character case;
  14986. the bug had appeared in 0.8.33.
  14987. </para>
  14988. </change>

  14989. <change type="bugfix">
  14990. <para lang="ru">
  14991. переменная $date_local выдавала неверное время,
  14992. если использовался формат "%s".<br/>
  14993. Спасибо Максиму Дунину.
  14994. </para>
  14995. <para lang="en">
  14996. the $date_local variable has an incorrect value,
  14997. if the "%s" format was used.<br/>
  14998. Thanks to Maxim Dounin.
  14999. </para>
  15000. </change>

  15001. <change type="bugfix">
  15002. <para lang="ru">
  15003. если ssl_session_cache не был установлен или установлен в none,
  15004. то при проверке клиентского сертификаты могла происходить
  15005. ошибка "session id context uninitialized";
  15006. ошибка появилась в 0.7.1.
  15007. </para>
  15008. <para lang="en">
  15009. if ssl_session_cache was not set or was set to "none",
  15010. then during client certificate verify
  15011. the error "session id context uninitialized" might occur;
  15012. the bug had appeared in 0.7.1.
  15013. </para>
  15014. </change>

  15015. <change type="bugfix">
  15016. <para lang="ru">
  15017. geo-диапазон возвращал значение по умолчанию, если диапазон включал
  15018. в себя одну и более сетей размером /16 и не начинался на границе сети
  15019. размером /16.
  15020. </para>
  15021. <para lang="en">
  15022. a geo range returned default value if the range included two or more
  15023. /16 networks and did not begin at /16 network boundary.
  15024. </para>
  15025. </change>

  15026. <change type="bugfix">
  15027. <para lang="ru">
  15028. блок, используемый в параметре stub в SSI-директиве include,
  15029. выводился с MIME-типом "text/plain".
  15030. </para>
  15031. <para lang="en">
  15032. a block used in a "stub" parameter of an "include" SSI directive
  15033. was output with "text/plain" MIME type.
  15034. </para>
  15035. </change>

  15036. <change type="bugfix">
  15037. <para lang="ru">
  15038. $r->sleep() не работал;
  15039. ошибка появилась в 0.8.11.
  15040. </para>
  15041. <para lang="en">
  15042. $r->sleep() did not work;
  15043. the bug had appeared in 0.8.11.
  15044. </para>
  15045. </change>

  15046. </changes>


  15047. <changes ver="0.8.33" date="2010-02-01">

  15048. <change type="security">
  15049. <para lang="ru">
  15050. теперь nginx/Windows игнорирует пробелы в конце URI.<br/>
  15051. Спасибо Dan Crowley, Core Security Technologies.
  15052. </para>
  15053. <para lang="en">
  15054. now nginx/Windows ignores trailing spaces in URI.<br/>
  15055. Thanks to Dan Crowley, Core Security Technologies.
  15056. </para>
  15057. </change>

  15058. <change type="security">
  15059. <para lang="ru">
  15060. теперь nginx/Windows игнорирует короткие имена файлов.<br/>
  15061. Спасибо Dan Crowley, Core Security Technologies.
  15062. </para>
  15063. <para lang="en">
  15064. now nginx/Windows ignores short files names.<br/>
  15065. Thanks to Dan Crowley, Core Security Technologies.
  15066. </para>
  15067. </change>

  15068. <change type="change">
  15069. <para lang="ru">
  15070. теперь keepalive соединения после запросов POST не запрещаются для
  15071. MSIE 7.0+.<br/>
  15072. Спасибо Adam Lounds.
  15073. </para>
  15074. <para lang="en">
  15075. now keepalive connections after POST requests are not disabled for
  15076. MSIE 7.0+.<br/>
  15077. Thanks to Adam Lounds.
  15078. </para>
  15079. </change>

  15080. <change type="workaround">
  15081. <para lang="ru">
  15082. теперь keepalive соединения запрещены для Safari.<br/>
  15083. Спасибо Joshua Sierles.
  15084. </para>
  15085. <para lang="en">
  15086. now keepalive connections are disabled for Safari.<br/>
  15087. Thanks to Joshua Sierles.
  15088. </para>
  15089. </change>

  15090. <change type="bugfix">
  15091. <para lang="ru">
  15092. если проксированный или FastCGI запрос внутренне перенаправлялся
  15093. в другой проксированный или FastCGI location, то переменная
  15094. $upstream_response_time могла иметь ненормально большое значение;
  15095. ошибка появилась в 0.8.7.
  15096. </para>
  15097. <para lang="en">
  15098. if a proxied or FastCGI request was internally redirected
  15099. to another proxied or FastCGI location,
  15100. then $upstream_response_time variable may have abnormally large value;
  15101. the bug had appeared in 0.8.7.
  15102. </para>
  15103. </change>

  15104. <change type="bugfix">
  15105. <para lang="ru">
  15106. в рабочем процессе мог произойти segmentation fault
  15107. при отбрасывания тела запроса;
  15108. ошибка появилась в 0.8.11.
  15109. </para>
  15110. <para lang="en">
  15111. a segmentation fault might occur in a worker process,
  15112. while discarding a request body;
  15113. the bug had appeared in 0.8.11.
  15114. </para>
  15115. </change>

  15116. </changes>


  15117. <changes ver="0.8.32" date="2010-01-11">

  15118. <change type="bugfix">
  15119. <para lang="ru">
  15120. ошибки при использовании кодировки UTF-8 в ngx_http_autoindex_module.<br/>
  15121. Спасибо Максиму Дунину.
  15122. </para>
  15123. <para lang="en">
  15124. UTF-8 encoding usage in the ngx_http_autoindex_module.<br/>
  15125. Thanks to Maxim Dounin.
  15126. </para>
  15127. </change>

  15128. <change type="bugfix">
  15129. <para lang="ru">
  15130. именованные выделения в регулярных выражениях работали только для
  15131. двух переменных.<br/>
  15132. Спасибо Максиму Дунину.
  15133. </para>
  15134. <para lang="en">
  15135. regular expression named captures worked for two names only.<br/>
  15136. Thanks to Maxim Dounin.
  15137. </para>
  15138. </change>

  15139. <change type="bugfix">
  15140. <para lang="ru">
  15141. теперь в строке заголовка запроса "Host" используется имя "localhost",
  15142. если в директиве auth_http указан unix domain сокет.<br/>
  15143. Спасибо Максиму Дунину.
  15144. </para>
  15145. <para lang="en">
  15146. now the "localhost" name is used in the "Host" request header line,
  15147. if an unix domain socket is defined in the "auth_http" directive.<br/>
  15148. Thanks to Maxim Dounin.
  15149. </para>
  15150. </change>

  15151. <change type="bugfix">
  15152. <para lang="ru">
  15153. nginx не поддерживал передачу chunk'ами для 201-ых ответов.<br/>
  15154. Спасибо Julian Reich.
  15155. </para>
  15156. <para lang="en">
  15157. nginx did not support chunked transfer encoding for 201 responses.<br/>
  15158. Thanks to Julian Reich.
  15159. </para>
  15160. </change>

  15161. <change type="bugfix">
  15162. <para lang="ru">
  15163. если директива "expires modified" выставляла дату в прошлом, то в строке
  15164. заголовка ответа "Cache-Control" выдавалось отрицательное число.<br/>
  15165. Спасибо Алексею Капранову.
  15166. </para>
  15167. <para lang="en">
  15168. if the "expires modified" set date in the past, then a negative number
  15169. was set in the "Cache-Control" response header line.<br/>
  15170. Thanks to Alex Kapranoff.
  15171. </para>
  15172. </change>

  15173. </changes>


  15174. <changes ver="0.8.31" date="2009-12-23">

  15175. <change type="feature">
  15176. <para lang="ru">
  15177. теперь директива error_page может перенаправлять ответы со статусом 301 и 302.
  15178. </para>
  15179. <para lang="en">
  15180. now the "error_page" directive may redirect the 301 and 302 responses.
  15181. </para>
  15182. </change>

  15183. <change type="feature">
  15184. <para lang="ru">
  15185. переменные $geoip_city_continent_code, $geoip_latitude и $geoip_longitude.<br/>
  15186. Спасибо Arvind Sundararajan.
  15187. </para>
  15188. <para lang="en">
  15189. the $geoip_city_continent_code, $geoip_latitude, and $geoip_longitude
  15190. variables.<br/>
  15191. Thanks to Arvind Sundararajan.
  15192. </para>
  15193. </change>

  15194. <change type="feature">
  15195. <para lang="ru">
  15196. модуль ngx_http_image_filter_module теперь всегда удаляет
  15197. EXIF и другие данные, если они занимают больше 5% в JPEG-файле.
  15198. </para>
  15199. <para lang="en">
  15200. now the ngx_http_image_filter_module deletes always EXIF and other
  15201. application specific data if the data consume more than 5% of a JPEG file.
  15202. </para>
  15203. </change>

  15204. <change type="bugfix">
  15205. <para lang="ru">
  15206. nginx закрывал соединение при запросе закэшированного
  15207. ответа с пустым телом.<br/>
  15208. Спасибо Piotr Sikora.
  15209. </para>
  15210. <para lang="en">
  15211. nginx closed a connection if a cached response had an empty body.<br/>
  15212. Thanks to Piotr Sikora.
  15213. </para>
  15214. </change>

  15215. <change type="bugfix">
  15216. <para lang="ru">
  15217. nginx мог не собираться gcc 4.x при использовании оптимизации -O2 и выше.<br/>
  15218. Спасибо Максиму Дунину и Денису Латыпову.
  15219. </para>
  15220. <para lang="en">
  15221. nginx might not be built by gcc 4.x if the -O2 or higher optimization option
  15222. was used.<br/>
  15223. Thanks to Maxim Dounin and Denis F. Latypoff.
  15224. </para>
  15225. </change>

  15226. <change type="bugfix">
  15227. <para lang="ru">
  15228. регулярные выражения в location всегда тестировались с учётом регистра;
  15229. ошибка появилась в 0.8.25.
  15230. </para>
  15231. <para lang="en">
  15232. regular expressions in location were always tested in case-sensitive mode;
  15233. the bug had appeared in 0.8.25.
  15234. </para>
  15235. </change>

  15236. <change type="bugfix">
  15237. <para lang="ru">
  15238. nginx кэшировал 304 ответ, если в заголовке проксируемого запроса
  15239. была строка "If-None-Match".<br/>
  15240. Спасибо Tim Dettrick и David Kostal.
  15241. </para>
  15242. <para lang="en">
  15243. nginx cached a 304 response if there was the "If-None-Match" header line
  15244. in a proxied request.<br/>
  15245. Thanks to Tim Dettrick and David Kostal.
  15246. </para>
  15247. </change>

  15248. <change type="bugfix">
  15249. <para lang="ru">
  15250. nginx/Windows пытался дважды удалить временный файл
  15251. при перезаписи уже существующего файла.
  15252. </para>
  15253. <para lang="en">
  15254. nginx/Windows tried to delete a temporary file twice
  15255. if the file should replace an already existent file.
  15256. </para>
  15257. </change>

  15258. </changes>


  15259. <changes ver="0.8.30" date="2009-12-15">

  15260. <change type="change">
  15261. <para lang="ru">
  15262. теперь по умолчанию размер буфера директивы large_client_header_buffers
  15263. равен 8K.<br/>
  15264. Спасибо Andrew Cholakian.
  15265. </para>
  15266. <para lang="en">
  15267. now the default buffer size of the "large_client_header_buffers"
  15268. directive is 8K.<br/>
  15269. Thanks to Andrew Cholakian.
  15270. </para>
  15271. </change>

  15272. <change type="feature">
  15273. <para lang="ru">
  15274. файл conf/fastcgi.conf для простых конфигураций FastCGI.
  15275. </para>
  15276. <para lang="en">
  15277. the conf/fastcgi.conf for simple FastCGI configurations.
  15278. </para>
  15279. </change>

  15280. <change type="bugfix">
  15281. <para lang="ru">
  15282. nginx/Windows пытался дважды переименовать временный файл
  15283. при перезаписи уже существующего файла.
  15284. </para>
  15285. <para lang="en">
  15286. nginx/Windows tried to rename a temporary file twice if the file
  15287. should replace an already existent file.
  15288. </para>
  15289. </change>

  15290. <change type="bugfix">
  15291. <para lang="ru">
  15292. ошибки double free or corruption, возникающей, если имя хоста не было найдено;
  15293. ошибка появилась в 0.8.22.<br/>
  15294. Спасибо Константину Свисту.
  15295. </para>
  15296. <para lang="en">
  15297. of "double free or corruption" error issued if host could not be resolved;
  15298. the bug had appeared in 0.8.22.<br/>
  15299. Thanks to Konstantin Svist.
  15300. </para>
  15301. </change>

  15302. <change type="bugfix">
  15303. <para lang="ru">
  15304. в использовании libatomic на некоторых платформах.<br/>
  15305. Спасибо W-Mark Kubacki.
  15306. </para>
  15307. <para lang="en">
  15308. in libatomic usage on some platforms.<br/>
  15309. Thanks to W-Mark Kubacki.
  15310. </para>
  15311. </change>

  15312. </changes>


  15313. <changes ver="0.8.29" date="2009-11-30">

  15314. <change type="change">
  15315. <para lang="ru">
  15316. теперь для проксируемых ответов HTTP/0.9 в лог пишется код ответа "009".
  15317. </para>
  15318. <para lang="en">
  15319. now the "009" status code is written to an access log for proxied HTTP/0.9
  15320. responses.
  15321. </para>
  15322. </change>

  15323. <change type="feature">
  15324. <para lang="ru">
  15325. директивы addition_types, charset_types, gzip_types, ssi_types,
  15326. sub_filter_types и xslt_types поддерживают параметр "*".
  15327. </para>
  15328. <para lang="en">
  15329. the "addition_types", "charset_types", "gzip_types", "ssi_types",
  15330. "sub_filter_types", and "xslt_types" directives support an "*" parameter.
  15331. </para>
  15332. </change>

  15333. <change type="feature">
  15334. <para lang="ru">
  15335. использование встроенных атомарных операций GCC 4.1+.<br/>
  15336. Спасибо W-Mark Kubacki.
  15337. </para>
  15338. <para lang="en">
  15339. GCC 4.1+ built-in atomic operations usage.<br/>
  15340. Thanks to W-Mark Kubacki.
  15341. </para>
  15342. </change>

  15343. <change type="feature">
  15344. <para lang="ru">
  15345. параметр --with-libatomic[=DIR] в configure.<br/>
  15346. Спасибо W-Mark Kubacki.
  15347. </para>
  15348. <para lang="en">
  15349. the --with-libatomic[=DIR] option in the configure.<br/>
  15350. Thanks to W-Mark Kubacki.
  15351. </para>
  15352. </change>

  15353. <change type="bugfix">
  15354. <para lang="ru">
  15355. listen unix domain сокет имели ограниченные права доступа.
  15356. </para>
  15357. <para lang="en">
  15358. listen unix domain socket had limited access rights.
  15359. </para>
  15360. </change>

  15361. <change type="bugfix">
  15362. <para lang="ru">
  15363. закэшированные ответы HTTP/0.9 неправильно обрабатывались.
  15364. </para>
  15365. <para lang="en">
  15366. cached HTTP/0.9 responses were handled incorrectly.
  15367. </para>
  15368. </change>

  15369. <change type="bugfix">
  15370. <para lang="ru">
  15371. именованные выделения в регулярных выражениях, заданные как "?P&lt;...&gt;",
  15372. не работали в директиве server_name.<br/>
  15373. Спасибо Максиму Дунину.
  15374. </para>
  15375. <para lang="en">
  15376. regular expression named captures given by "?P&lt;...&gt;" did not work
  15377. in a "server_name" directive.<br/>
  15378. Thanks to Maxim Dounin.
  15379. </para>
  15380. </change>

  15381. </changes>


  15382. <changes ver="0.8.28" date="2009-11-23">

  15383. <change type="bugfix">
  15384. <para lang="ru">
  15385. nginx не собирался с параметром --without-pcre;
  15386. ошибка появилась в 0.8.25.
  15387. </para>
  15388. <para lang="en">
  15389. nginx could not be built with the --without-pcre parameter;
  15390. the bug had appeared in 0.8.25.
  15391. </para>
  15392. </change>

  15393. </changes>


  15394. <changes ver="0.8.27" date="2009-11-17">

  15395. <change type="bugfix">
  15396. <para lang="ru">
  15397. регулярные выражения не работали в nginx/Windows;
  15398. ошибка появилась в 0.8.25.
  15399. </para>
  15400. <para lang="en">
  15401. regular expressions did not work in nginx/Windows;
  15402. the bug had appeared in 0.8.25.
  15403. </para>
  15404. </change>

  15405. </changes>


  15406. <changes ver="0.8.26" date="2009-11-16">

  15407. <change type="bugfix">
  15408. <para lang="ru">
  15409. ошибки при использовании выделений в директиве rewrite;
  15410. ошибка появилась в 0.8.25.
  15411. </para>
  15412. <para lang="en">
  15413. in captures usage in "rewrite" directive;
  15414. the bug had appeared in 0.8.25.
  15415. </para>
  15416. </change>

  15417. <change type="bugfix">
  15418. <para lang="ru">
  15419. nginx не собирался без параметра --with-debug;
  15420. ошибка появилась в 0.8.25.
  15421. </para>
  15422. <para lang="en">
  15423. nginx could not be built without the --with-debug option;
  15424. the bug had appeared in 0.8.25.
  15425. </para>
  15426. </change>

  15427. </changes>


  15428. <changes ver="0.8.25" date="2009-11-16">

  15429. <change type="change">
  15430. <para lang="ru">
  15431. теперь в лог ошибок не пишется сообщение, если переменная не найдена
  15432. с помощью метода $r->variable().
  15433. </para>
  15434. <para lang="en">
  15435. now no message is written in an error log if a variable is not found by
  15436. $r->variable() method.
  15437. </para>
  15438. </change>

  15439. <change type="feature">
  15440. <para lang="ru">
  15441. модуль ngx_http_degradation_module.
  15442. </para>
  15443. <para lang="en">
  15444. the ngx_http_degradation_module.
  15445. </para>
  15446. </change>

  15447. <change type="feature">
  15448. <para lang="ru">
  15449. именованные выделения в регулярных выражениях.
  15450. </para>
  15451. <para lang="en">
  15452. regular expression named captures.
  15453. </para>
  15454. </change>

  15455. <change type="feature">
  15456. <para lang="ru">
  15457. теперь при использовании переменных в директиве proxy_pass не требуется
  15458. задавать URI.
  15459. </para>
  15460. <para lang="en">
  15461. now URI part is not required a "proxy_pass" directive if variables are used.
  15462. </para>
  15463. </change>

  15464. <change type="feature">
  15465. <para lang="ru">
  15466. теперь директива msie_padding работает и для Chrome.
  15467. </para>
  15468. <para lang="en">
  15469. now the "msie_padding" directive works for Chrome too.
  15470. </para>
  15471. </change>

  15472. <change type="bugfix">
  15473. <para lang="ru">
  15474. в рабочем процессе происходил segmentation fault при недостатке памяти;
  15475. ошибка появилась в 0.8.18.
  15476. </para>
  15477. <para lang="en">
  15478. a segmentation fault occurred in a worker process on low memory condition;
  15479. the bug had appeared in 0.8.18.
  15480. </para>
  15481. </change>

  15482. <change type="bugfix">
  15483. <para lang="ru">
  15484. nginx передавал сжатые ответы клиентам, не поддерживающим сжатие,
  15485. при настройках gzip_static on и gzip_vary off;
  15486. ошибка появилась в 0.8.16.
  15487. </para>
  15488. <para lang="en">
  15489. nginx sent gzipped responses to clients those do not support gzip,
  15490. if "gzip_static on" and "gzip_vary off";
  15491. the bug had appeared in 0.8.16.
  15492. </para>
  15493. </change>

  15494. </changes>


  15495. <changes ver="0.8.24" date="2009-11-11">

  15496. <change type="bugfix">
  15497. <para lang="ru">
  15498. nginx всегда добавлял строку "Content-Encoding: gzip" в заголовок
  15499. 304-ых ответов модуля ngx_http_gzip_static_module.
  15500. </para>
  15501. <para lang="en">
  15502. nginx always added "Content-Encoding: gzip" response header line
  15503. in 304 responses sent by ngx_http_gzip_static_module.
  15504. </para>
  15505. </change>

  15506. <change type="bugfix">
  15507. <para lang="ru">
  15508. nginx не собирался без параметра --with-debug;
  15509. ошибка появилась в 0.8.23.
  15510. </para>
  15511. <para lang="en">
  15512. nginx could not be built without the --with-debug option;
  15513. the bug had appeared in 0.8.23.
  15514. </para>
  15515. </change>

  15516. <change type="bugfix">
  15517. <para lang="ru">
  15518. параметр "unix:" в директиве set_real_ip_from неправильно наследовался
  15519. с предыдущего уровня.
  15520. </para>
  15521. <para lang="en">
  15522. the "unix:" parameter of the "set_real_ip_from" directive inherited
  15523. incorrectly from previous level.
  15524. </para>
  15525. </change>

  15526. <change type="bugfix">
  15527. <para lang="ru">
  15528. в resolver'е при определении пустого имени.
  15529. </para>
  15530. <para lang="en">
  15531. in resolving empty name.
  15532. </para>
  15533. </change>

  15534. </changes>


  15535. <changes ver="0.8.23" date="2009-11-11">

  15536. <change type="security">
  15537. <para lang="ru">
  15538. теперь SSL/TLS renegotiation запрещён.<br/>
  15539. Спасибо Максиму Дунину.
  15540. </para>
  15541. <para lang="en">
  15542. now SSL/TLS renegotiation is disabled.<br/>
  15543. Thanks to Maxim Dounin.
  15544. </para>
  15545. </change>

  15546. <change type="bugfix">
  15547. <para lang="ru">
  15548. listen unix domain сокет не наследовался во время обновления без перерыва.
  15549. </para>
  15550. <para lang="en">
  15551. listen unix domain socket did not inherit while online upgrade.
  15552. </para>
  15553. </change>

  15554. <change type="bugfix">
  15555. <para lang="ru">
  15556. параметр "unix:" в директиве set_real_ip_from не работал без ещё
  15557. одной директивы с любым IP-адресом.
  15558. </para>
  15559. <para lang="en">
  15560. the "unix:" parameter of the "set_real_ip_from" directive did not without
  15561. yet another directive with any IP address.
  15562. </para>
  15563. </change>

  15564. <change type="bugfix">
  15565. <para lang="ru">
  15566. segmentation fault и зацикливания в resolver'е.
  15567. </para>
  15568. <para lang="en">
  15569. segmentation fault and infinite looping in resolver.
  15570. </para>
  15571. </change>

  15572. <change type="bugfix">
  15573. <para lang="ru">
  15574. в resolver'е.<br/>
  15575. Спасибо Артёму Бохану.
  15576. </para>
  15577. <para lang="en">
  15578. in resolver.<br/>
  15579. Thanks to Artem Bokhan.
  15580. </para>
  15581. </change>

  15582. </changes>


  15583. <changes ver="0.8.22" date="2009-11-03">

  15584. <change type="feature">
  15585. <para lang="ru">
  15586. директивы proxy_bind, fastcgi_bind и memcached_bind.
  15587. </para>
  15588. <para lang="en">
  15589. the "proxy_bind", "fastcgi_bind", and "memcached_bind" directives.
  15590. </para>
  15591. </change>

  15592. <change type="feature">
  15593. <para lang="ru">
  15594. директивы access и deny поддерживают IPv6.
  15595. </para>
  15596. <para lang="en">
  15597. the "access" and the "deny" directives support IPv6.
  15598. </para>
  15599. </change>

  15600. <change type="feature">
  15601. <para lang="ru">
  15602. директива set_real_ip_from поддерживает IPv6 адреса в заголовках запроса.
  15603. </para>
  15604. <para lang="en">
  15605. the "set_real_ip_from" directive supports IPv6 addresses in request headers.
  15606. </para>
  15607. </change>

  15608. <change type="feature">
  15609. <para lang="ru">
  15610. параметр "unix:" в директиве set_real_ip_from.
  15611. </para>
  15612. <para lang="en">
  15613. the "unix:" parameter of the "set_real_ip_from" directive.
  15614. </para>
  15615. </change>

  15616. <change type="bugfix">
  15617. <para lang="ru">
  15618. nginx не удалял unix domain сокет после тестирования конфигурации.
  15619. </para>
  15620. <para lang="en">
  15621. nginx did not delete unix domain socket after configuration testing.
  15622. </para>
  15623. </change>

  15624. <change type="bugfix">
  15625. <para lang="ru">
  15626. nginx удалял unix domain сокет во время обновления без перерыва.
  15627. </para>
  15628. <para lang="en">
  15629. nginx deleted unix domain socket while online upgrade.
  15630. </para>
  15631. </change>

  15632. <change type="bugfix">
  15633. <para lang="ru">
  15634. оператор "!-x" не работал.<br/>
  15635. Спасибо Максиму Дунину.
  15636. </para>
  15637. <para lang="en">
  15638. the "!-x" operator did not work.<br/>
  15639. Thanks to Maxim Dounin.
  15640. </para>
  15641. </change>

  15642. <change type="bugfix">
  15643. <para lang="ru">
  15644. в рабочем процессе мог произойти segmentation fault
  15645. при использовании limit_rate в HTTPS сервере.<br/>
  15646. Спасибо Максиму Дунину.
  15647. </para>
  15648. <para lang="en">
  15649. a segmentation fault might occur in a worker process,
  15650. if limit_rate was used in HTTPS server.<br/>
  15651. Thanks to Maxim Dounin.
  15652. </para>
  15653. </change>

  15654. <change type="bugfix">
  15655. <para lang="ru">
  15656. при записи в лог переменной $limit_rate
  15657. в рабочем процессе происходил segmentation fault.<br/>
  15658. Спасибо Максиму Дунину.
  15659. </para>
  15660. <para lang="en">
  15661. a segmentation fault might occur in a worker process
  15662. while $limit_rate logging.<br/>
  15663. Thanks to Maxim Dounin.
  15664. </para>
  15665. </change>

  15666. <change type="bugfix">
  15667. <para lang="ru">
  15668. в рабочем процессе мог произойти segmentation fault,
  15669. если внутри блока server не было директивы listen;
  15670. ошибка появилась в 0.8.21.
  15671. </para>
  15672. <para lang="en">
  15673. a segmentation fault might occur in a worker process,
  15674. if there was no "listen" directive in "server" block;
  15675. the bug had appeared in 0.8.21.
  15676. </para>
  15677. </change>

  15678. </changes>


  15679. <changes ver="0.8.21" date="2009-10-26">

  15680. <change type="feature">
  15681. <para lang="ru">
  15682. теперь ключ -V показывает статус поддержки TLS SNI.
  15683. </para>
  15684. <para lang="en">
  15685. now the "-V" switch shows TLS SNI support.
  15686. </para>
  15687. </change>

  15688. <change type="feature">
  15689. <para lang="ru">
  15690. директива listen модуля HTTP поддерживает unix domain сокеты.<br/>
  15691. Спасибо Hongli Lai.
  15692. </para>
  15693. <para lang="en">
  15694. the "listen" directive of the HTTP module supports unix domain sockets.<br/>
  15695. Thanks to Hongli Lai.
  15696. </para>
  15697. </change>

  15698. <change type="feature">
  15699. <para lang="ru">
  15700. параметр "default_server" в директиве listen.
  15701. </para>
  15702. <para lang="en">
  15703. the "default_server" parameter of the "listen" directive.
  15704. </para>
  15705. </change>

  15706. <change type="feature">
  15707. <para lang="ru">
  15708. теперь параметр "default" не обязателен для установки параметров listen-сокета.
  15709. </para>
  15710. <para lang="en">
  15711. now a "default" parameter is not required to set listen socket options.
  15712. </para>
  15713. </change>

  15714. <change type="bugfix">
  15715. <para lang="ru">
  15716. nginx не поддерживал даты в 2038 году на 32-битных платформах;
  15717. </para>
  15718. <para lang="en">
  15719. nginx did not support dates in 2038 year on 32-bit platforms;
  15720. </para>
  15721. </change>

  15722. <change type="bugfix">
  15723. <para lang="ru">
  15724. утечки сокетов;
  15725. ошибка появилась в 0.8.11.
  15726. </para>
  15727. <para lang="en">
  15728. socket leak;
  15729. the bug had appeared in 0.8.11.
  15730. </para>
  15731. </change>

  15732. </changes>


  15733. <changes ver="0.8.20" date="2009-10-14">

  15734. <change type="change">
  15735. <para lang="ru">
  15736. теперь по умолчанию используются следующие шифры SSL: "HIGH:!ADH:!MD5".
  15737. </para>
  15738. <para lang="en">
  15739. now default SSL ciphers are "HIGH:!ADH:!MD5".
  15740. </para>
  15741. </change>

  15742. <change type="bugfix">
  15743. <para lang="ru">
  15744. модуль ngx_http_autoindex_module не показывал последний слэш для линков
  15745. на каталоги;
  15746. ошибка появилась в 0.7.15.
  15747. </para>
  15748. <para lang="en">
  15749. the ngx_http_autoindex_module did not show the trailing slash in links to
  15750. a directory;
  15751. the bug had appeared in 0.7.15.
  15752. </para>
  15753. </change>

  15754. <change type="bugfix">
  15755. <para lang="ru">
  15756. nginx не закрывал лог, заданный параметром конфигурации --error-log-path;
  15757. ошибка появилась в 0.7.53.
  15758. </para>
  15759. <para lang="en">
  15760. nginx did not close a log file set by the --error-log-path configuration option;
  15761. the bug had appeared in 0.7.53.
  15762. </para>
  15763. </change>

  15764. <change type="bugfix">
  15765. <para lang="ru">
  15766. nginx не считал запятую разделителем в строке "Cache-Control" в
  15767. заголовке ответа бэкенда.
  15768. </para>
  15769. <para lang="en">
  15770. nginx did not treat a comma as separator in the "Cache-Control" backend response
  15771. header line.
  15772. </para>
  15773. </change>

  15774. <change type="bugfix">
  15775. <para lang="ru">
  15776. nginx/Windows мог не создать временный файл, файл в кэше или файл
  15777. с помощью директив proxy/fastcgi_store, если рабочий процесс не имел
  15778. достаточно прав для работы с каталогами верхнего уровня.
  15779. </para>
  15780. <para lang="en">
  15781. nginx/Windows might not create temporary file, a cache file, or
  15782. "proxy/fastcgi_store"d file if a worker had no enough access rights
  15783. for top level directories.
  15784. </para>
  15785. </change>

  15786. <change type="bugfix">
  15787. <para lang="ru">
  15788. строки "Set-Cookie" и "P3P" в заголовке ответа FastCGI-сервера не скрывались
  15789. при кэшировании, если не использовались директивы fastcgi_hide_header
  15790. с любыми параметрами.
  15791. </para>
  15792. <para lang="en">
  15793. the "Set-Cookie" and "P3P" FastCGI response header lines were not hidden
  15794. while caching if no "fastcgi_hide_header" directives were used with
  15795. any parameters.
  15796. </para>
  15797. </change>

  15798. <change type="bugfix">
  15799. <para lang="ru">
  15800. nginx неверно считал размер кэша на диске.
  15801. </para>
  15802. <para lang="en">
  15803. nginx counted incorrectly disk cache size.
  15804. </para>
  15805. </change>

  15806. </changes>


  15807. <changes ver="0.8.19" date="2009-10-06">

  15808. <change type="change">
  15809. <para lang="ru">
  15810. теперь протокол SSLv2 по умолчанию запрещён.
  15811. </para>
  15812. <para lang="en">
  15813. now SSLv2 protocol is disabled by default.
  15814. </para>
  15815. </change>

  15816. <change type="change">
  15817. <para lang="ru">
  15818. теперь по умолчанию используются следующие шифры SSL:
  15819. "ALL:!ADH:RC4+RSA:+HIGH:+MEDIUM".
  15820. </para>
  15821. <para lang="en">
  15822. now default SSL ciphers are "ALL:!ADH:RC4+RSA:+HIGH:+MEDIUM".
  15823. </para>
  15824. </change>

  15825. <change type="bugfix">
  15826. <para lang="ru">
  15827. директива limit_req не работала;
  15828. ошибка появилась в 0.8.18.
  15829. </para>
  15830. <para lang="en">
  15831. a "limit_req" directive did not work;
  15832. the bug had appeared in 0.8.18.
  15833. </para>
  15834. </change>

  15835. </changes>


  15836. <changes ver="0.8.18" date="2009-10-06">

  15837. <change type="feature">
  15838. <para lang="ru">
  15839. директива read_ahead.
  15840. </para>
  15841. <para lang="en">
  15842. the "read_ahead" directive.
  15843. </para>
  15844. </change>

  15845. <change type="feature">
  15846. <para lang="ru">
  15847. теперь можно использовать несколько директив perl_modules.
  15848. </para>
  15849. <para lang="en">
  15850. now several "perl_modules" directives may be used.
  15851. </para>
  15852. </change>

  15853. <change type="feature">
  15854. <para lang="ru">
  15855. директивы limit_req_log_level и limit_conn_log_level.
  15856. </para>
  15857. <para lang="en">
  15858. the "limit_req_log_level" and "limit_conn_log_level" directives.
  15859. </para>
  15860. </change>

  15861. <change type="bugfix">
  15862. <para lang="ru">
  15863. теперь директива limit_req соответствует алгоритму leaky bucket.<br/>
  15864. Спасибо Максиму Дунину.
  15865. </para>
  15866. <para lang="en">
  15867. now "limit_req" directive conforms to the leaky bucket algorithm.<br/>
  15868. Thanks to Maxim Dounin.
  15869. </para>
  15870. </change>

  15871. <change type="bugfix">
  15872. <para lang="ru">
  15873. nginx не работал на Linux/sparc.<br/>
  15874. Спасибо Marcus Ramberg.
  15875. </para>
  15876. <para lang="en">
  15877. nginx did not work on Linux/sparc.<br/>
  15878. Thanks to Marcus Ramberg.
  15879. </para>
  15880. </change>

  15881. <change type="bugfix">
  15882. <para lang="ru">
  15883. nginx слал символ '\0' в строке "Location" в заголовке в ответе на запрос
  15884. MKCOL.<br/>
  15885. Спасибо Xie Zhenye.
  15886. </para>
  15887. <para lang="en">
  15888. nginx sent '\0' in a "Location" response header line on MKCOL request.<br/>
  15889. Thanks to Xie Zhenye.
  15890. </para>
  15891. </change>

  15892. <change type="bugfix">
  15893. <para lang="ru">
  15894. вместо кода ответа 499 в лог записывался код 0;
  15895. ошибка появилась в 0.8.11.
  15896. </para>
  15897. <para lang="en">
  15898. zero status code was logged instead of 499 status code;
  15899. the bug had appeared in 0.8.11.
  15900. </para>
  15901. </change>

  15902. <change type="bugfix">
  15903. <para lang="ru">
  15904. утечки сокетов;
  15905. ошибка появилась в 0.8.11.
  15906. </para>
  15907. <para lang="en">
  15908. socket leak;
  15909. the bug had appeared in 0.8.11.
  15910. </para>
  15911. </change>

  15912. </changes>


  15913. <changes ver="0.8.17" date="2009-09-28">

  15914. <change type="security">
  15915. <para lang="ru">
  15916. теперь символы "/../" запрещены в строке "Destination" в заголовке запроса.
  15917. </para>
  15918. <para lang="en">
  15919. now "/../" are disabled in "Destination" request header line.
  15920. </para>
  15921. </change>

  15922. <change type="change">
  15923. <para lang="ru">
  15924. теперь значение переменной $host всегда в нижнем регистре.
  15925. </para>
  15926. <para lang="en">
  15927. now $host variable value is always low case.
  15928. </para>
  15929. </change>

  15930. <change type="feature">
  15931. <para lang="ru">
  15932. переменная $ssl_session_id.
  15933. </para>
  15934. <para lang="en">
  15935. the $ssl_session_id variable.
  15936. </para>
  15937. </change>

  15938. <change type="bugfix">
  15939. <para lang="ru">
  15940. утечки сокетов;
  15941. ошибка появилась в 0.8.11.
  15942. </para>
  15943. <para lang="en">
  15944. socket leak;
  15945. the bug had appeared in 0.8.11.
  15946. </para>
  15947. </change>

  15948. </changes>


  15949. <changes ver="0.8.16" date="2009-09-22">

  15950. <change type="feature">
  15951. <para lang="ru">
  15952. директива image_filter_transparency.
  15953. </para>
  15954. <para lang="en">
  15955. the "image_filter_transparency" directive.
  15956. </para>
  15957. </change>

  15958. <change type="bugfix">
  15959. <para lang="ru">
  15960. директива "addition_types" была неверно названа "addtion_types".
  15961. </para>
  15962. <para lang="en">
  15963. "addition_types" directive was incorrectly named "addtion_types".
  15964. </para>
  15965. </change>

  15966. <change type="bugfix">
  15967. <para lang="ru">
  15968. порчи кэша resolver'а.<br/>
  15969. Спасибо Matthew Dempsky.
  15970. </para>
  15971. <para lang="en">
  15972. resolver cache poisoning.<br/>
  15973. Thanks to Matthew Dempsky.
  15974. </para>
  15975. </change>

  15976. <change type="bugfix">
  15977. <para lang="ru">
  15978. утечки памяти в resolver'е.<br/>
  15979. Спасибо Matthew Dempsky.
  15980. </para>
  15981. <para lang="en">
  15982. memory leak in resolver.<br/>
  15983. Thanks to Matthew Dempsky.
  15984. </para>
  15985. </change>

  15986. <change type="bugfix">
  15987. <para lang="ru">
  15988. неверная строка запроса в переменной $request записывалась в access_log
  15989. только при использовании error_log на уровне info или debug.
  15990. </para>
  15991. <para lang="en">
  15992. invalid request line in $request variable was written in access_log
  15993. only if error_log was set to "info" or "debug" level.
  15994. </para>
  15995. </change>

  15996. <change type="bugfix">
  15997. <para lang="ru">
  15998. в поддержке альфа-канала PNG в модуле ngx_http_image_filter_module.
  15999. </para>
  16000. <para lang="en">
  16001. in PNG alpha-channel support in the ngx_http_image_filter_module.
  16002. </para>
  16003. </change>

  16004. <change type="bugfix">
  16005. <para lang="ru">
  16006. nginx всегда добавлял строку "Vary: Accept-Encoding" в заголовок ответа,
  16007. если обе директивы gzip_static и gzip_vary были включены.
  16008. </para>
  16009. <para lang="en">
  16010. nginx always added "Vary: Accept-Encoding" response header line,
  16011. if both "gzip_static" and "gzip_vary" were on.
  16012. </para>
  16013. </change>

  16014. <change type="bugfix">
  16015. <para lang="ru">
  16016. в поддержке кодировки UTF-8 директивой try_files в nginx/Windows.
  16017. </para>
  16018. <para lang="en">
  16019. in UTF-8 encoding support by "try_files" directive in nginx/Windows.
  16020. </para>
  16021. </change>

  16022. <change type="bugfix">
  16023. <para lang="ru">
  16024. ошибки при использовании post_action;
  16025. ошибка появилась в 0.8.11.<br/>
  16026. Спасибо Игорю Артемьеву.
  16027. </para>
  16028. <para lang="en">
  16029. in "post_action" directive usage;
  16030. the bug had appeared in 0.8.11.<br/>
  16031. Thanks to Igor Artemiev.
  16032. </para>
  16033. </change>

  16034. </changes>


  16035. <changes ver="0.8.15" date="2009-09-14">

  16036. <change type="security">
  16037. <para lang="ru">
  16038. при обработке специально созданного запроса
  16039. в рабочем процессе мог произойти segmentation fault.<br/>
  16040. Спасибо Chris Ries.
  16041. </para>
  16042. <para lang="en">
  16043. a segmentation fault might occur in worker process
  16044. while specially crafted request handling.<br/>
  16045. Thanks to Chris Ries.
  16046. </para>
  16047. </change>

  16048. <change type="bugfix">
  16049. <para lang="ru">
  16050. если были описаны имена .domain.tld, .sub.domain.tld и .domain-some.tld,
  16051. то имя .sub.domain.tld попадало под маску .domain.tld.
  16052. </para>
  16053. <para lang="en">
  16054. if names .domain.tld, .sub.domain.tld, and .domain-some.tld were defined,
  16055. then the name .sub.domain.tld was matched by .domain.tld.
  16056. </para>
  16057. </change>

  16058. <change type="bugfix">
  16059. <para lang="ru">
  16060. в поддержке прозрачности в модуле ngx_http_image_filter_module.
  16061. </para>
  16062. <para lang="en">
  16063. in transparency support in the ngx_http_image_filter_module.
  16064. </para>
  16065. </change>

  16066. <change type="bugfix">
  16067. <para lang="ru">
  16068. в файловом AIO.
  16069. </para>
  16070. <para lang="en">
  16071. in file AIO.
  16072. </para>
  16073. </change>

  16074. <change type="bugfix">
  16075. <para lang="ru">
  16076. ошибки при использовании X-Accel-Redirect;
  16077. ошибка появилась в 0.8.11.
  16078. </para>
  16079. <para lang="en">
  16080. in X-Accel-Redirect usage;
  16081. the bug had appeared in 0.8.11.
  16082. </para>
  16083. </change>

  16084. <change type="bugfix">
  16085. <para lang="ru">
  16086. ошибки при использовании встроенного перла;
  16087. ошибка появилась в 0.8.11.
  16088. </para>
  16089. <para lang="en">
  16090. in embedded perl module;
  16091. the bug had appeared in 0.8.11.
  16092. </para>
  16093. </change>

  16094. </changes>


  16095. <changes ver="0.8.14" date="2009-09-07">

  16096. <change type="bugfix">
  16097. <para lang="ru">
  16098. устаревший закэшированный запрос мог залипнуть в состоянии "UPDATING".
  16099. </para>
  16100. <para lang="en">
  16101. an expired cached response might stick in the "UPDATING" state.
  16102. </para>
  16103. </change>

  16104. <change type="bugfix">
  16105. <para lang="ru">
  16106. при использовании error_log на уровне info или debug
  16107. в рабочем процессе мог произойти segmentation fault.<br/>
  16108. Спасибо Сергею Боченкову.
  16109. </para>
  16110. <para lang="en">
  16111. a segmentation fault might occur in worker process,
  16112. if error_log was set to info or debug level.<br/>
  16113. Thanks to Sergey Bochenkov.
  16114. </para>
  16115. </change>

  16116. <change type="bugfix">
  16117. <para lang="ru">
  16118. ошибки при использовании встроенного перла;
  16119. ошибка появилась в 0.8.11.
  16120. </para>
  16121. <para lang="en">
  16122. in embedded perl module;
  16123. the bug had appeared in 0.8.11.
  16124. </para>
  16125. </change>

  16126. <change type="bugfix">
  16127. <para lang="ru">
  16128. директива error_page не перенаправляла ошибку 413;
  16129. ошибка появилась в 0.6.10.
  16130. </para>
  16131. <para lang="en">
  16132. an "error_page" directive did not redirect a 413 error;
  16133. the bug had appeared in 0.6.10.
  16134. </para>
  16135. </change>

  16136. </changes>


  16137. <changes ver="0.8.13" date="2009-08-31">

  16138. <change type="bugfix">
  16139. <para lang="ru">
  16140. в директиве "aio sendfile";
  16141. ошибка появилась в 0.8.12.
  16142. </para>
  16143. <para lang="en">
  16144. in the "aio sendfile" directive;
  16145. the bug had appeared in 0.8.12.
  16146. </para>
  16147. </change>

  16148. <change type="bugfix">
  16149. <para lang="ru">
  16150. nginx не собирался без параметра --with-file-aio на FreeBSD;
  16151. ошибка появилась в 0.8.12.
  16152. </para>
  16153. <para lang="en">
  16154. nginx could not be built without the --with-file-aio option on FreeBSD;
  16155. the bug had appeared in 0.8.12.
  16156. </para>
  16157. </change>

  16158. </changes>


  16159. <changes ver="0.8.12" date="2009-08-31">

  16160. <change type="feature">
  16161. <para lang="ru">
  16162. параметр sendfile в директиве aio во FreeBSD.
  16163. </para>
  16164. <para lang="en">
  16165. the "sendfile" parameter in the "aio" directive on FreeBSD.
  16166. </para>
  16167. </change>

  16168. <change type="bugfix">
  16169. <para lang="ru">
  16170. ошибки при использовании try_files;
  16171. ошибка появилась в 0.8.11.
  16172. </para>
  16173. <para lang="en">
  16174. in try_files;
  16175. the bug had appeared in 0.8.11.
  16176. </para>
  16177. </change>

  16178. <change type="bugfix">
  16179. <para lang="ru">
  16180. ошибки при использовании memcached;
  16181. ошибка появилась в 0.8.11.
  16182. </para>
  16183. <para lang="en">
  16184. in memcached;
  16185. the bug had appeared in 0.8.11.
  16186. </para>
  16187. </change>

  16188. </changes>

  16189. <changes ver="0.8.11" date="2009-08-28">

  16190. <change type="change">
  16191. <para lang="ru">
  16192. теперь директива "gzip_disable msie6" не запрещает сжатие для
  16193. <nobr>MSIE 6.0 SV1.</nobr>
  16194. </para>
  16195. <para lang="en">
  16196. now directive "gzip_disable msie6" does not disable gzipping for
  16197. <nobr>MSIE 6.0 SV1.</nobr>
  16198. </para>
  16199. </change>

  16200. <change type="feature">
  16201. <para lang="ru">
  16202. поддержка файлового AIO во FreeBSD и Linux.
  16203. </para>
  16204. <para lang="en">
  16205. file AIO support on FreeBSD and Linux.
  16206. </para>
  16207. </change>

  16208. <change type="feature">
  16209. <para lang="ru">
  16210. директива directio_alignment.
  16211. </para>
  16212. <para lang="en">
  16213. the "directio_alignment" directive.
  16214. </para>
  16215. </change>

  16216. </changes>


  16217. <changes ver="0.8.10" date="2009-08-24">

  16218. <change type="bugfix">
  16219. <para lang="ru">
  16220. утечек памяти при использовании базы GeoIP City.
  16221. </para>
  16222. <para lang="en">
  16223. memory leaks if GeoIP City database was used.
  16224. </para>
  16225. </change>

  16226. <change type="bugfix">
  16227. <para lang="ru">
  16228. ошибки при копировании временных файлов в постоянное место хранения;
  16229. ошибка появилась в 0.8.9.
  16230. </para>
  16231. <para lang="en">
  16232. in copying temporary files to permanent storage area;
  16233. the bug had appeared in 0.8.9.
  16234. </para>
  16235. </change>

  16236. </changes>


  16237. <changes ver="0.8.9" date="2009-08-17">

  16238. <change type="feature">
  16239. <para lang="ru">
  16240. теперь стартовый загрузчик кэша работает в отдельном процесс;
  16241. это должно улучшить обработку больших кэшей.
  16242. </para>
  16243. <para lang="en">
  16244. now the start cache loader runs in a separate process;
  16245. this should improve large caches handling.
  16246. </para>
  16247. </change>

  16248. <change type="feature">
  16249. <para lang="ru">
  16250. теперь временные файлы и постоянное место хранения могут располагаться
  16251. на разных файловых системах.
  16252. </para>
  16253. <para lang="en">
  16254. now temporary files and permanent storage area may reside at
  16255. different file systems.
  16256. </para>
  16257. </change>

  16258. </changes>


  16259. <changes ver="0.8.8" date="2009-08-10">

  16260. <change type="bugfix">
  16261. <para lang="ru">
  16262. в обработке заголовков ответа, разделённых в FastCGI-записях.
  16263. </para>
  16264. <para lang="en">
  16265. in handling FastCGI headers split in records.
  16266. </para>
  16267. </change>

  16268. <change type="bugfix">
  16269. <para lang="ru">
  16270. если запрос обрабатывался в двух проксированных или FastCGI location'ах
  16271. и в первом из них использовалось кэширование,
  16272. то в рабочем процессе происходил segmentation fault;
  16273. ошибка появилась в 0.8.7.
  16274. </para>
  16275. <para lang="en">
  16276. a segmentation fault occurred in worker process,
  16277. if a request was handled in two proxied or FastCGIed locations
  16278. and a caching was enabled in the first location;
  16279. the bug had appeared in 0.8.7.
  16280. </para>
  16281. </change>

  16282. </changes>


  16283. <changes ver="0.8.7" date="2009-07-27">

  16284. <change type="change">
  16285. <para lang="ru">
  16286. минимальная поддерживаемая версия OpenSSL&mdash;0.9.7.
  16287. </para>
  16288. <para lang="en">
  16289. minimum supported OpenSSL version is 0.9.7.
  16290. </para>
  16291. </change>

  16292. <change type="change">
  16293. <para lang="ru">
  16294. параметр ask директивы ssl_verify_client изменён на параметр optional
  16295. и теперь он проверяет клиентский сертификат, если он был предложен.<br/>
  16296. Спасибо Brice Figureau.
  16297. </para>
  16298. <para lang="en">
  16299. the "ask" parameter of the "ssl_verify_client" directive was changed
  16300. to the "optional" parameter and now it checks a client certificate if it was
  16301. offered.<br/>
  16302. Thanks to Brice Figureau.
  16303. </para>
  16304. </change>

  16305. <change type="feature">
  16306. <para lang="ru">
  16307. переменная $ssl_client_verify.<br/>
  16308. Спасибо Brice Figureau.
  16309. </para>
  16310. <para lang="en">
  16311. the $ssl_client_verify variable.<br/>
  16312. Thanks to Brice Figureau.
  16313. </para>
  16314. </change>

  16315. <change type="feature">
  16316. <para lang="ru">
  16317. директива ssl_crl.<br/>
  16318. Спасибо Brice Figureau.
  16319. </para>
  16320. <para lang="en">
  16321. the "ssl_crl" directive.<br/>
  16322. Thanks to Brice Figureau.
  16323. </para>
  16324. </change>

  16325. <change type="feature">
  16326. <para lang="ru">
  16327. параметр proxy директивы geo.
  16328. </para>
  16329. <para lang="en">
  16330. the "proxy" parameter of the "geo" directive.
  16331. </para>
  16332. </change>

  16333. <change type="feature">
  16334. <para lang="ru">
  16335. директива image_filter поддерживает переменные для задания размеров.
  16336. </para>
  16337. <para lang="en">
  16338. the "image_filter" directive supports variables for setting size.
  16339. </para>
  16340. </change>

  16341. <change type="bugfix">
  16342. <para lang="ru">
  16343. использование переменной $ssl_client_cert портило память;
  16344. ошибка появилась в 0.7.7.<br/>
  16345. Спасибо Сергею Журавлёву.
  16346. </para>
  16347. <para lang="en">
  16348. the $ssl_client_cert variable usage corrupted memory;
  16349. the bug had appeared in 0.7.7.<br/>
  16350. Thanks to Sergey Zhuravlev.
  16351. </para>
  16352. </change>

  16353. <change type="bugfix">
  16354. <para lang="ru">
  16355. директивы proxy_pass_header и fastcgi_pass_header" не передавали клиенту
  16356. строки "X-Accel-Redirect", "X-Accel-Limit-Rate", "X-Accel-Buffering" и
  16357. "X-Accel-Charset" из заголовка ответа бэкенда.<br/>
  16358. Спасибо Максиму Дунину.
  16359. </para>
  16360. <para lang="en">
  16361. "proxy_pass_header" and "fastcgi_pass_header" directives did not pass to
  16362. a client the "X-Accel-Redirect", "X-Accel-Limit-Rate", "X-Accel-Buffering",
  16363. and "X-Accel-Charset" lines from backend response header.<br/>
  16364. Thanks to Maxim Dounin.
  16365. </para>
  16366. </change>

  16367. <change type="bugfix">
  16368. <para lang="ru">
  16369. в обработке строк "Last-Modified" и "Accept-Ranges" в заголовке ответа бэкенда;
  16370. ошибка появилась в 0.7.44.<br/>
  16371. Спасибо Максиму Дунину.
  16372. </para>
  16373. <para lang="en">
  16374. in handling "Last-Modified" and "Accept-Ranges" backend response header lines;
  16375. the bug had appeared in 0.7.44.<br/>
  16376. Thanks to Maxim Dounin.
  16377. </para>
  16378. </change>

  16379. <change type="bugfix">
  16380. <para lang="ru">
  16381. ошибки "[alert] zero size buf" при получении пустых ответы в подзапросах;
  16382. ошибка появилась в 0.8.5.
  16383. </para>
  16384. <para lang="en">
  16385. the "[alert] zero size buf" error if subrequest returns an empty response;
  16386. the bug had appeared in 0.8.5.
  16387. </para>
  16388. </change>

  16389. </changes>


  16390. <changes ver="0.8.6" date="2009-07-20">

  16391. <change type="feature">
  16392. <para lang="ru">
  16393. модуль ngx_http_geoip_module.
  16394. </para>
  16395. <para lang="en">
  16396. the ngx_http_geoip_module.
  16397. </para>
  16398. </change>

  16399. <change type="bugfix">
  16400. <para lang="ru">
  16401. XSLT-фильтр мог выдавать ошибку "not well formed XML document" для
  16402. правильного документа.<br/>
  16403. Спасибо Kuramoto Eiji.
  16404. </para>
  16405. <para lang="en">
  16406. XSLT filter may fail with message "not well formed XML document"
  16407. for valid XML document.<br/>
  16408. Thanks to Kuramoto Eiji.
  16409. </para>
  16410. </change>

  16411. <change type="bugfix">
  16412. <para lang="ru">
  16413. в MacOSX, Cygwin и nginx/Windows при проверке location'ов, заданных
  16414. регулярным выражением, теперь всегда делается сравнение без учёта
  16415. регистра символов.
  16416. </para>
  16417. <para lang="en">
  16418. now in MacOSX, Cygwin, and nginx/Windows locations given by a regular
  16419. expression are always tested in case insensitive mode.
  16420. </para>
  16421. </change>

  16422. <change type="bugfix">
  16423. <para lang="ru">
  16424. теперь nginx/Windows игнорирует точки в конце URI.<br/>
  16425. Спасибо Hugo Leisink.
  16426. </para>
  16427. <para lang="en">
  16428. now nginx/Windows ignores trailing dots in URI.<br/>
  16429. Thanks to Hugo Leisink.
  16430. </para>
  16431. </change>

  16432. <change type="bugfix">
  16433. <para lang="ru">
  16434. имя файла указанного в --conf-path игнорировалось при установке;
  16435. ошибка появилась в 0.6.6.<br/>
  16436. Спасибо Максиму Дунину.
  16437. </para>
  16438. <para lang="en">
  16439. name of file specified in --conf-path was not honored during installation;
  16440. the bug had appeared in 0.6.6.<br/>
  16441. Thanks to Maxim Dounin.
  16442. </para>
  16443. </change>

  16444. </changes>


  16445. <changes ver="0.8.5" date="2009-07-13">

  16446. <change type="bugfix">
  16447. <para lang="ru">
  16448. теперь nginx разрешает подчёркивания в методе запроса.
  16449. </para>
  16450. <para lang="en">
  16451. now nginx allows underscores in a request method.
  16452. </para>
  16453. </change>

  16454. <change type="bugfix">
  16455. <para lang="ru">
  16456. при использовании HTTP Basic-аутентификации на Windows
  16457. для неверных имени/пароля возвращалась 500-ая ошибка.
  16458. </para>
  16459. <para lang="en">
  16460. a 500 error code was returned for invalid login/password while HTTP
  16461. Basic authentication on Windows.
  16462. </para>
  16463. </change>

  16464. <change type="bugfix">
  16465. <para lang="ru">
  16466. ответы модуля ngx_http_perl_module не работали в подзапросах.
  16467. </para>
  16468. <para lang="en">
  16469. ngx_http_perl_module responses did not work in subrequests.
  16470. </para>
  16471. </change>

  16472. <change type="bugfix">
  16473. <para lang="ru">
  16474. в модуле ngx_http_limit_req_module.<br/>
  16475. Спасибо Максиму Дунину.
  16476. </para>
  16477. <para lang="en">
  16478. in ngx_http_limit_req_module.<br/>
  16479. Thanks to Maxim Dounin.
  16480. </para>
  16481. </change>

  16482. </changes>


  16483. <changes ver="0.8.4" date="2009-06-22">

  16484. <change type="bugfix">
  16485. <para lang="ru">
  16486. nginx не собирался с параметром --without-http-cache;
  16487. ошибка появилась в 0.8.3.
  16488. </para>
  16489. <para lang="en">
  16490. nginx could not be built --without-http-cache;
  16491. the bug had appeared in 0.8.3.
  16492. </para>
  16493. </change>

  16494. </changes>


  16495. <changes ver="0.8.3" date="2009-06-19">

  16496. <change type="feature">
  16497. <para lang="ru">
  16498. переменная $upstream_cache_status.
  16499. </para>
  16500. <para lang="en">
  16501. the $upstream_cache_status variable.
  16502. </para>
  16503. </change>

  16504. <change type="bugfix">
  16505. <para lang="ru">
  16506. nginx не собирался на MacOSX 10.6.
  16507. </para>
  16508. <para lang="en">
  16509. nginx could not be built on MacOSX 10.6.
  16510. </para>
  16511. </change>

  16512. <change type="bugfix">
  16513. <para lang="ru">
  16514. nginx не собирался с параметром --without-http-cache;
  16515. ошибка появилась в 0.8.2.
  16516. </para>
  16517. <para lang="en">
  16518. nginx could not be built --without-http-cache;
  16519. the bug had appeared in 0.8.2.
  16520. </para>
  16521. </change>

  16522. <change type="bugfix">
  16523. <para lang="ru">
  16524. если использовался перехват 401 ошибки от бэкенда и бэкенд
  16525. не возвращал строку "WWW-Authenticate" в заголовке ответа,
  16526. то в рабочем процессе происходил segmentation fault.<br/>
  16527. Спасибо Евгению Мычло.
  16528. </para>
  16529. <para lang="en">
  16530. a segmentation fault occurred in worker process,
  16531. if a backend 401 error was intercepted and the backend did not set
  16532. the "WWW-Authenticate" response header line.<br/>
  16533. Thanks to Eugene Mychlo.
  16534. </para>
  16535. </change>

  16536. </changes>


  16537. <changes ver="0.8.2" date="2009-06-15">

  16538. <change type="bugfix">
  16539. <para lang="ru">
  16540. во взаимодействии open_file_cache и proxy/fastcgi кэша на старте.
  16541. </para>
  16542. <para lang="en">
  16543. in open_file_cache and proxy/fastcgi cache interaction on start up.
  16544. </para>
  16545. </change>

  16546. <change type="bugfix">
  16547. <para lang="ru">
  16548. open_file_cache мог кэшировать открытые файлы очень долго;
  16549. ошибка появилась в 0.7.4.
  16550. </para>
  16551. <para lang="en">
  16552. open_file_cache might cache open file descriptors too long;
  16553. the bug had appeared in 0.7.4.
  16554. </para>
  16555. </change>

  16556. </changes>


  16557. <changes ver="0.8.1" date="2009-06-08">

  16558. <change type="feature">
  16559. <para lang="ru">
  16560. параметр updating в директивах proxy_cache_use_stale и fastcgi_cache_use_stale.
  16561. </para>
  16562. <para lang="en">
  16563. the "updating" parameter in "proxy_cache_use_stale" and
  16564. "fastcgi_cache_use_stale" directives.
  16565. </para>
  16566. </change>

  16567. <change type="bugfix">
  16568. <para lang="ru">
  16569. строки "If-Modified-Since", "If-Range" и им подобные в заголовке запроса
  16570. клиента передавались бэкенду при кэшировании, если не использовалась
  16571. директива proxy_set_header с любыми параметрами.
  16572. </para>
  16573. <para lang="en">
  16574. the "If-Modified-Since", "If-Range", etc. client request header lines
  16575. were passed to backend while caching if no "proxy_set_header" directive
  16576. was used with any parameters.
  16577. </para>
  16578. </change>

  16579. <change type="bugfix">
  16580. <para lang="ru">
  16581. строки "Set-Cookie" и "P3P" в заголовке ответа бэкенда не скрывались
  16582. при кэшировании, если не использовались директивы
  16583. proxy_hide_header/fastcgi_hide_header с любыми параметрами.
  16584. </para>
  16585. <para lang="en">
  16586. the "Set-Cookie" and "P3P" response header lines were not hidden while caching
  16587. if no "proxy_hide_header/fastcgi_hide_header" directives were used with
  16588. any parameters.
  16589. </para>
  16590. </change>

  16591. <change type="bugfix">
  16592. <para lang="ru">
  16593. модуль ngx_http_image_filter_module не понимал формат GIF87a.<br/>
  16594. Спасибо Денису Ильиных.
  16595. </para>
  16596. <para lang="en">
  16597. the ngx_http_image_filter_module did not support GIF87a format.<br/>
  16598. Thanks to Denis Ilyinyh.
  16599. </para>
  16600. </change>

  16601. <change type="bugfix">
  16602. <para lang="ru">
  16603. nginx не собирался на Solaris 10 и более ранних;
  16604. ошибка появилась в 0.7.56.
  16605. </para>
  16606. <para lang="en">
  16607. nginx could not be built modules on Solaris 10 and early;
  16608. the bug had appeared in 0.7.56.
  16609. </para>
  16610. </change>

  16611. </changes>


  16612. <changes ver="0.8.0" date="2009-06-02">

  16613. <change type="feature">
  16614. <para lang="ru">
  16615. директива keepalive_requests.
  16616. </para>
  16617. <para lang="en">
  16618. the "keepalive_requests" directive.
  16619. </para>
  16620. </change>

  16621. <change type="feature">
  16622. <para lang="ru">
  16623. директива limit_rate_after.<br/>
  16624. Спасибо Ivan Debnar.
  16625. </para>
  16626. <para lang="en">
  16627. the "limit_rate_after" directive.<br/>
  16628. Thanks to Ivan Debnar.
  16629. </para>
  16630. </change>

  16631. <change type="bugfix">
  16632. <para lang="ru">
  16633. XSLT-фильтр не работал в подзапросах.
  16634. </para>
  16635. <para lang="en">
  16636. XLST filter did not work in subrequests.
  16637. </para>
  16638. </change>

  16639. <change type="bugfix">
  16640. <para lang="ru">
  16641. обработке относительных путей в nginx/Windows.
  16642. </para>
  16643. <para lang="en">
  16644. in relative paths handling in nginx/Windows.
  16645. </para>
  16646. </change>

  16647. <change type="bugfix">
  16648. <para lang="ru">
  16649. в proxy_store, fastcgi_store, proxy_cache и fastcgi_cache в nginx/Windows.
  16650. </para>
  16651. <para lang="en">
  16652. in proxy_store, fastcgi_store, proxy_cache, and fastcgi_cache in nginx/Windows.
  16653. </para>
  16654. </change>

  16655. <change type="bugfix">
  16656. <para lang="ru">
  16657. в обработке ошибок выделения памяти.<br/>
  16658. Спасибо Максиму Дунину и Кириллу Коринскому.
  16659. </para>
  16660. <para lang="en">
  16661. in memory allocation error handling.<br/>
  16662. Thanks to Maxim Dounin and Kirill A. Korinskiy.
  16663. </para>
  16664. </change>

  16665. </changes>


  16666. <changes ver="0.7.59" date="2009-05-25">

  16667. <change type="feature">
  16668. <para lang="ru">
  16669. директивы proxy_cache_methods и fastcgi_cache_methods.
  16670. </para>
  16671. <para lang="en">
  16672. the "proxy_cache_methods" and "fastcgi_cache_methods" directives.
  16673. </para>
  16674. </change>

  16675. <change type="bugfix">
  16676. <para lang="ru">
  16677. утечки сокетов;
  16678. ошибка появилась в 0.7.25.<br/>
  16679. Спасибо Максиму Дунину.
  16680. </para>
  16681. <para lang="en">
  16682. socket leak;
  16683. the bug had appeared in 0.7.25.<br/>
  16684. Thanks to Maxim Dounin.
  16685. </para>
  16686. </change>

  16687. <change type="bugfix">
  16688. <para lang="ru">
  16689. при использовании переменной $request_body
  16690. в рабочем процессе происходил segmentation fault,
  16691. если в запросе не было тела;
  16692. ошибка появилась в 0.7.58.
  16693. </para>
  16694. <para lang="en">
  16695. a segmentation fault occurred in worker process,
  16696. <nobr>if a request</nobr> had no body and the $request_body
  16697. variable was used;<br/>
  16698. the bug had appeared in 0.7.58.
  16699. </para>
  16700. </change>

  16701. <change type="bugfix">
  16702. <para lang="ru">
  16703. SSL-модули могли не собираться на Solaris и Linux;
  16704. ошибка появилась в 0.7.56.
  16705. </para>
  16706. <para lang="en">
  16707. the SSL modules might not built on Solaris and Linux;<br/>
  16708. the bug had appeared in 0.7.56.
  16709. </para>
  16710. </change>

  16711. <change type="bugfix">
  16712. <para lang="ru">
  16713. ответы модуля ngx_http_xslt_filter_module не обрабатывались
  16714. SSI-, charset- и gzip-фильтрами.
  16715. </para>
  16716. <para lang="en">
  16717. ngx_http_xslt_filter_module responses were not handled by SSI, charset,
  16718. and gzip filters.
  16719. </para>
  16720. </change>

  16721. <change type="bugfix">
  16722. <para lang="ru">
  16723. директива charset не ставила кодировку для ответов модуля
  16724. ngx_http_gzip_static_module.
  16725. </para>
  16726. <para lang="en">
  16727. a "charset" directive did not set a charset to ngx_http_gzip_static_module
  16728. responses.
  16729. </para>
  16730. </change>

  16731. </changes>


  16732. <changes ver="0.7.58" date="2009-05-18">

  16733. <change type="feature">
  16734. <para lang="ru">
  16735. директива listen почтового прокси-сервера поддерживает IPv6.
  16736. </para>
  16737. <para lang="en">
  16738. a "listen" directive of the mail proxy module supports IPv6.
  16739. </para>
  16740. </change>

  16741. <change type="feature">
  16742. <para lang="ru">
  16743. директива image_filter_jpeg_quality.
  16744. </para>
  16745. <para lang="en">
  16746. the "image_filter_jpeg_quality" directive.
  16747. </para>
  16748. </change>

  16749. <change type="feature">
  16750. <para lang="ru">
  16751. директива client_body_in_single_buffer.
  16752. </para>
  16753. <para lang="en">
  16754. the "client_body_in_single_buffer" directive.
  16755. </para>
  16756. </change>

  16757. <change type="feature">
  16758. <para lang="ru">
  16759. переменная $request_body.
  16760. </para>
  16761. <para lang="en">
  16762. the $request_body variable.
  16763. </para>
  16764. </change>

  16765. <change type="bugfix">
  16766. <para lang="ru">
  16767. в модуле ngx_http_autoindex_module в ссылках на имена файлов,
  16768. содержащих символ ":".
  16769. </para>
  16770. <para lang="en">
  16771. in ngx_http_autoindex_module in file name links
  16772. having a ":" symbol in the name.
  16773. </para>
  16774. </change>

  16775. <change type="bugfix">
  16776. <para lang="ru">
  16777. процедура "make upgrade" не работала;
  16778. ошибка появилась в 0.7.53.<br/>
  16779. Спасибо Денису Латыпову.
  16780. </para>
  16781. <para lang="en">
  16782. "make upgrade" procedure did not work;
  16783. the bug had appeared in 0.7.53.<br/>
  16784. Thanks to Denis F. Latypoff.
  16785. </para>
  16786. </change>

  16787. </changes>


  16788. <changes ver="0.7.57" date="2009-05-12">

  16789. <change type="bugfix">
  16790. <para lang="ru">
  16791. при перенаправлении ошибок модуля ngx_http_image_filter_module
  16792. в именованный location в рабочем процессе происходил floating-point fault;
  16793. ошибка появилась в 0.7.56.
  16794. </para>
  16795. <para lang="en">
  16796. a floating-point fault occurred in worker process,
  16797. if the ngx_http_image_filter_module errors were redirected to named location;
  16798. the bug had appeared in 0.7.56.
  16799. </para>
  16800. </change>

  16801. </changes>


  16802. <changes ver="0.7.56" date="2009-05-11">

  16803. <change type="feature">
  16804. <para lang="ru">
  16805. nginx/Windows поддерживает IPv6 в директиве listen модуля HTTP.
  16806. </para>
  16807. <para lang="en">
  16808. nginx/Windows supports IPv6 in a "listen" directive of the HTTP module.
  16809. </para>
  16810. </change>

  16811. <change type="bugfix">
  16812. <para lang="ru">
  16813. в модуле ngx_http_image_filter_module.
  16814. </para>
  16815. <para lang="en">
  16816. in ngx_http_image_filter_module.
  16817. </para>
  16818. </change>

  16819. </changes>


  16820. <changes ver="0.7.55" date="2009-05-06">

  16821. <change type="bugfix">
  16822. <para lang="ru">
  16823. параметры http_XXX в директивах proxy_cache_use_stale
  16824. и fastcgi_cache_use_stale не работали.
  16825. </para>
  16826. <para lang="en">
  16827. the http_XXX parameters in "proxy_cache_use_stale" and
  16828. "fastcgi_cache_use_stale" directives did not work.
  16829. </para>
  16830. </change>

  16831. <change type="bugfix">
  16832. <para lang="ru">
  16833. fastcgi кэш не кэшировал ответы, состоящие только из заголовка.
  16834. </para>
  16835. <para lang="en">
  16836. fastcgi cache did not cache header only responses.
  16837. </para>
  16838. </change>

  16839. <change type="bugfix">
  16840. <para lang="ru">
  16841. ошибки "select() failed (9: Bad file descriptor)" в nginx/Unix
  16842. и "select() failed (10038: ...)" в nginx/Windows.
  16843. </para>
  16844. <para lang="en">
  16845. of "select() failed (9: Bad file descriptor)" error in nginx/Unix
  16846. and "select() failed (10038: ...)" error in nginx/Windows.
  16847. </para>
  16848. </change>

  16849. <change type="bugfix">
  16850. <para lang="ru">
  16851. при использовании директивы debug_connection
  16852. в рабочем процессе мог произойти segmentation fault;
  16853. ошибка появилась в 0.7.54.
  16854. </para>
  16855. <para lang="en">
  16856. a segmentation fault might occur in worker process,
  16857. if an "debug_connection" directive was used;
  16858. the bug had appeared in 0.7.54.
  16859. </para>
  16860. </change>

  16861. <change type="bugfix">
  16862. <para lang="ru">
  16863. в сборке модуля ngx_http_image_filter_module.
  16864. </para>
  16865. <para lang="en">
  16866. fix ngx_http_image_filter_module building errors.
  16867. </para>
  16868. </change>

  16869. <change type="bugfix">
  16870. <para lang="ru">
  16871. файлы больше 2G не передавались с использованием $r->sendfile.<br/>
  16872. Спасибо Максиму Дунину.
  16873. </para>
  16874. <para lang="en">
  16875. the files bigger than 2G could not be transferred using $r->sendfile.<br/>
  16876. Thanks to Maxim Dounin.
  16877. </para>
  16878. </change>

  16879. </changes>


  16880. <changes ver="0.7.54" date="2009-05-01">

  16881. <change type="feature">
  16882. <para lang="ru">
  16883. модуль ngx_http_image_filter_module.
  16884. </para>
  16885. <para lang="en">
  16886. the ngx_http_image_filter_module.
  16887. </para>
  16888. </change>

  16889. <change type="feature">
  16890. <para lang="ru">
  16891. директивы proxy_ignore_headers и fastcgi_ignore_headers.
  16892. </para>
  16893. <para lang="en">
  16894. the "proxy_ignore_headers" and "fastcgi_ignore_headers" directives.
  16895. </para>
  16896. </change>

  16897. <change type="bugfix">
  16898. <para lang="ru">
  16899. при использовании переменных "open_file_cache_errors on"
  16900. в рабочем процессе мог произойти segmentation fault;
  16901. ошибка появилась в 0.7.53.
  16902. </para>
  16903. <para lang="en">
  16904. a segmentation fault might occur in worker process,
  16905. if an "open_file_cache_errors off" directive was used;
  16906. the bug had appeared in 0.7.53.
  16907. </para>
  16908. </change>

  16909. <change type="bugfix">
  16910. <para lang="ru">
  16911. директива "port_in_redirect off" не работала;
  16912. ошибка появилась в 0.7.39.
  16913. </para>
  16914. <para lang="en">
  16915. the "port_in_redirect off" directive did not work;
  16916. the bug had appeared in 0.7.39.
  16917. </para>
  16918. </change>

  16919. <change type="bugfix">
  16920. <para lang="ru">
  16921. улучшение обработки ошибок метода select.
  16922. </para>
  16923. <para lang="en">
  16924. improve handling of "select" method errors.
  16925. </para>
  16926. </change>

  16927. <change type="bugfix">
  16928. <para lang="ru">
  16929. ошибки "select() failed (10022: ...)" в nginx/Windows.
  16930. </para>
  16931. <para lang="en">
  16932. of "select() failed (10022: ...)" error in nginx/Windows.
  16933. </para>
  16934. </change>

  16935. <change type="bugfix">
  16936. <para lang="ru">
  16937. в текстовых сообщениях об ошибках в nginx/Windows;
  16938. ошибка появилась в 0.7.53.
  16939. </para>
  16940. <para lang="en">
  16941. in error text descriptions in nginx/Windows;
  16942. the bug had appeared in 0.7.53.
  16943. </para>
  16944. </change>

  16945. </changes>


  16946. <changes ver="0.7.53" date="2009-04-27">

  16947. <change type="change">
  16948. <para lang="ru">
  16949. теперь лог, указанный в --error-log-path, создаётся с самого начала работы.
  16950. </para>
  16951. <para lang="en">
  16952. now a log set by --error-log-path is created from the very start-up.
  16953. </para>
  16954. </change>

  16955. <change type="feature">
  16956. <para lang="ru">
  16957. теперь ошибки и предупреждения при старте записываются в error_log
  16958. и выводятся на stderr.
  16959. </para>
  16960. <para lang="en">
  16961. now the start up errors and warnings are outputted to an error_log and stderr.
  16962. </para>
  16963. </change>

  16964. <change type="feature">
  16965. <para lang="ru">
  16966. при сборке с пустым параметром --prefix= nginx использует как префикс каталог,
  16967. в котором он был запущен.
  16968. </para>
  16969. <para lang="en">
  16970. the empty --prefix= configure parameter forces nginx to use a directory
  16971. where it was run as prefix.
  16972. </para>
  16973. </change>

  16974. <change type="feature">
  16975. <para lang="ru">
  16976. ключ -p.
  16977. </para>
  16978. <para lang="en">
  16979. the -p switch.
  16980. </para>
  16981. </change>

  16982. <change type="feature">
  16983. <para lang="ru">
  16984. ключ -s на Unix-платформах.
  16985. </para>
  16986. <para lang="en">
  16987. the -s switch on Unix platforms.
  16988. </para>
  16989. </change>

  16990. <change type="feature">
  16991. <para lang="ru">
  16992. ключи -? и -h.<br/>
  16993. Спасибо Jerome Loyet.
  16994. </para>
  16995. <para lang="en">
  16996. the -? and -h switches.<br/>
  16997. Thanks to Jerome Loyet.
  16998. </para>
  16999. </change>

  17000. <change type="feature">
  17001. <para lang="ru">
  17002. теперь ключи можно задавать в сжатой форме.
  17003. </para>
  17004. <para lang="en">
  17005. now switches may be set in condensed form.
  17006. </para>
  17007. </change>

  17008. <change type="bugfix">
  17009. <para lang="ru">
  17010. nginx/Windows не работал, если файл конфигурации был задан ключом -c.
  17011. </para>
  17012. <para lang="en">
  17013. nginx/Windows did not work if configuration file was given by the -c switch.
  17014. </para>
  17015. </change>

  17016. <change type="bugfix">
  17017. <para lang="ru">
  17018. при использовании директив proxy_store, fastcgi_store,
  17019. proxy_cache или fastcgi_cache временные файлы могли не удаляться.<br/>
  17020. Спасибо Максиму Дунину.
  17021. </para>
  17022. <para lang="en">
  17023. temporary files might be not removed if the "proxy_store", "fastcgi_store",
  17024. "proxy_cache", or "fastcgi_cache" were used.<br/>
  17025. Thanks to Maxim Dounin.
  17026. </para>
  17027. </change>

  17028. <change type="bugfix">
  17029. <para lang="ru">
  17030. в заголовке Auth-Method запроса серверу аутентификации почтового
  17031. прокси-сервера передавалось неверное значение;
  17032. ошибка появилась в 0.7.34.<br/>
  17033. Спасибо Simon Lecaille.
  17034. </para>
  17035. <para lang="en">
  17036. an incorrect value was passed to mail proxy authentication server
  17037. in "Auth-Method" header line;
  17038. the bug had appeared<br/>
  17039. in 0.7.34.<br/>
  17040. Thanks to Simon Lecaille.
  17041. </para>
  17042. </change>

  17043. <change type="bugfix">
  17044. <para lang="ru">
  17045. при логгировании на Linux не писались текстовые описания системных ошибок;
  17046. ошибка появилась в 0.7.45.
  17047. </para>
  17048. <para lang="en">
  17049. system error text descriptions were not logged on Linux;<br/>
  17050. the bug had appeared in 0.7.45.
  17051. </para>
  17052. </change>

  17053. <change type="bugfix">
  17054. <para lang="ru">
  17055. директива fastcgi_cache_min_uses не работала.<br/>
  17056. Спасибо Андрею Воробьёву.
  17057. </para>
  17058. <para lang="en">
  17059. the "fastcgi_cache_min_uses" directive did not work.<br/>
  17060. Thanks to Andrew Vorobyoff.
  17061. </para>
  17062. </change>

  17063. </changes>


  17064. <changes ver="0.7.52" date="2009-04-20">

  17065. <change type="feature">
  17066. <para lang="ru">
  17067. первая бинарная версия под Windows.
  17068. </para>
  17069. <para lang="en">
  17070. the first native Windows binary release.
  17071. </para>
  17072. </change>

  17073. <change type="bugfix">
  17074. <para lang="ru">
  17075. корректная обработка метода HEAD при кэшировании.
  17076. </para>
  17077. <para lang="en">
  17078. in processing HEAD method while caching.
  17079. </para>
  17080. </change>

  17081. <change type="bugfix">
  17082. <para lang="ru">
  17083. корректная обработка строк "If-Modified-Since", "If-Range" и им подобных
  17084. в заголовке запроса клиента при кэшировании.
  17085. </para>
  17086. <para lang="en">
  17087. in processing the "If-Modified-Since", "If-Range", etc. client request
  17088. header lines while caching.
  17089. </para>
  17090. </change>

  17091. <change type="bugfix">
  17092. <para lang="ru">
  17093. теперь строки "Set-Cookie" и "P3P" скрываются в заголовке ответа
  17094. для закэшированных ответов.
  17095. </para>
  17096. <para lang="en">
  17097. now the "Set-Cookie" and "P3P" header lines are hidden in cacheable responses.
  17098. </para>
  17099. </change>

  17100. <change type="bugfix">
  17101. <para lang="ru">
  17102. если nginx был собран с модулем ngx_http_perl_module и perl
  17103. поддерживал потоки, то при выходе основного процесса
  17104. могла выдаваться ошибка "panic: MUTEX_LOCK".
  17105. </para>
  17106. <para lang="en">
  17107. if nginx was built with the ngx_http_perl_module and with a perl which
  17108. supports threads, then during a master process exit
  17109. the message "panic: MUTEX_LOCK" might be issued.
  17110. </para>
  17111. </change>

  17112. <change type="bugfix">
  17113. <para lang="ru">
  17114. nginx не собирался с параметром --without-http-cache;
  17115. ошибка появилась в 0.7.48.
  17116. </para>
  17117. <para lang="en">
  17118. nginx could not be built --without-http-cache;
  17119. the bug had appeared in 0.7.48.
  17120. </para>
  17121. </change>

  17122. <change type="bugfix">
  17123. <para lang="ru">
  17124. nginx не собирался на платформах, отличных от i386, amd64, sparc и ppc;
  17125. ошибка появилась в 0.7.42.
  17126. </para>
  17127. <para lang="en">
  17128. nginx could not be built on platforms different from i386, amd64, sparc,
  17129. and ppc;
  17130. the bug had appeared in 0.7.42.
  17131. </para>
  17132. </change>

  17133. </changes>


  17134. <changes ver="0.7.51" date="2009-04-12">

  17135. <change type="feature">
  17136. <para lang="ru">
  17137. директива try_files поддерживает код ответа в последнем параметре.
  17138. </para>
  17139. <para lang="en">
  17140. the "try_files" directive supports a response code in the fallback parameter.
  17141. </para>
  17142. </change>

  17143. <change type="feature">
  17144. <para lang="ru">
  17145. теперь в директиве return можно использовать любой код ответа.
  17146. </para>
  17147. <para lang="en">
  17148. now any response code can be used in the "return" directive.
  17149. </para>
  17150. </change>

  17151. <change type="bugfix">
  17152. <para lang="ru">
  17153. директива error_page делала внешний редирект без строки запроса;
  17154. ошибка появилась в 0.7.44.
  17155. </para>
  17156. <para lang="en">
  17157. the "error_page" directive made an external redirect without query string;
  17158. the bug had appeared in 0.7.44.
  17159. </para>
  17160. </change>

  17161. <change type="bugfix">
  17162. <para lang="ru">
  17163. если сервера слушали на нескольких явно описанных адресах,
  17164. то виртуальные сервера могли не работать;
  17165. ошибка появилась в 0.7.39.
  17166. </para>
  17167. <para lang="en">
  17168. if servers listened on several defined explicitly addresses,
  17169. then virtual servers might not work;
  17170. the bug had appeared in 0.7.39.
  17171. </para>
  17172. </change>

  17173. </changes>


  17174. <changes ver="0.7.50" date="2009-04-06">

  17175. <change type="bugfix">
  17176. <para lang="ru">
  17177. переменные $arg_... не работали;
  17178. ошибка появилась в 0.7.49.
  17179. </para>
  17180. <para lang="en">
  17181. the $arg_... variables did not work;
  17182. the bug had appeared in 0.7.49.
  17183. </para>
  17184. </change>

  17185. </changes>


  17186. <changes ver="0.7.49" date="2009-04-06">

  17187. <change type="bugfix">
  17188. <para lang="ru">
  17189. при использовании переменных $arg_...
  17190. в рабочем процессе мог произойти segmentation fault;
  17191. ошибка появилась в 0.7.48.
  17192. </para>
  17193. <para lang="en">
  17194. a segmentation fault might occur in worker process,
  17195. if the $arg_... variables were used;
  17196. the bug had appeared in 0.7.48.
  17197. </para>
  17198. </change>

  17199. </changes>


  17200. <changes ver="0.7.48" date="2009-04-06">

  17201. <change type="feature">
  17202. <para lang="ru">
  17203. директива proxy_cache_key.
  17204. </para>
  17205. <para lang="en">
  17206. the "proxy_cache_key" directive.
  17207. </para>
  17208. </change>

  17209. <change type="bugfix">
  17210. <para lang="ru">
  17211. теперь nginx учитывает при кэшировании строки "X-Accel-Expires",
  17212. "Expires" и "Cache-Control" в заголовке ответа бэкенда.
  17213. </para>
  17214. <para lang="en">
  17215. now nginx takes into account the "X-Accel-Expires", "Expires", and
  17216. "Cache-Control" header lines in a backend response.
  17217. </para>
  17218. </change>

  17219. <change type="bugfix">
  17220. <para lang="ru">
  17221. теперь nginx кэширует только ответы на запросы GET.
  17222. </para>
  17223. <para lang="en">
  17224. now nginx caches responses for the GET requests only.
  17225. </para>
  17226. </change>

  17227. <change type="bugfix">
  17228. <para lang="ru">
  17229. директива fastcgi_cache_key не наследовалась.
  17230. </para>
  17231. <para lang="en">
  17232. the "fastcgi_cache_key" directive was not inherited.
  17233. </para>
  17234. </change>

  17235. <change type="bugfix">
  17236. <para lang="ru">
  17237. переменные $arg_... не работали с SSI-подзапросами.<br/>
  17238. Спасибо Максиму Дунину.
  17239. </para>
  17240. <para lang="en">
  17241. the $arg_... variables did not work with SSI subrequests.<br/>
  17242. Thanks to Maxim Dounin.
  17243. </para>
  17244. </change>

  17245. <change type="bugfix">
  17246. <para lang="ru">
  17247. nginx не собирался с библиотекой uclibc.<br/>
  17248. Спасибо Timothy Redaelli.
  17249. </para>
  17250. <para lang="en">
  17251. nginx could not be built with uclibc library.<br/>
  17252. Thanks to Timothy Redaelli.
  17253. </para>
  17254. </change>

  17255. <change type="bugfix">
  17256. <para lang="ru">
  17257. nginx не собирался на OpenBSD;
  17258. ошибка появилась <nobr>в 0.7.46.</nobr>
  17259. </para>
  17260. <para lang="en">
  17261. nginx could not be built on OpenBSD;
  17262. the bug had <nobr>appeared in 0.7.46.</nobr>
  17263. </para>
  17264. </change>

  17265. </changes>


  17266. <changes ver="0.7.47" date="2009-04-01">

  17267. <change type="bugfix">
  17268. <para lang="ru">
  17269. nginx не собирался на FreeBSD 6 и более ранних версиях;
  17270. ошибка появилась в 0.7.46.
  17271. </para>
  17272. <para lang="en">
  17273. nginx could not be built on FreeBSD 6 and early versions;
  17274. the bug had appeared in 0.7.46.
  17275. </para>
  17276. </change>

  17277. <change type="bugfix">
  17278. <para lang="ru">
  17279. nginx не собирался на MacOSX;
  17280. ошибка появилась в 0.7.46.
  17281. </para>
  17282. <para lang="en">
  17283. nginx could not be built on MacOSX;
  17284. the bug had <nobr>appeared in 0.7.46.</nobr>
  17285. </para>
  17286. </change>

  17287. <change type="bugfix">
  17288. <para lang="ru">
  17289. если использовался параметр max_size, то cache manager мог удалить весь кэш;
  17290. ошибка появилась в 0.7.46.
  17291. </para>
  17292. <para lang="en">
  17293. if the "max_size" parameter was set, then the cache manager might purge
  17294. a whole cache;
  17295. the bug had appeared in 0.7.46.
  17296. </para>
  17297. </change>

  17298. <change type="change">
  17299. <para lang="ru">
  17300. в рабочем процессе мог произойти segmentation fault,
  17301. если директивы proxy_cache/fastcgi_cache
  17302. и proxy_cache_valid/ fastcgi_cache_valid не были заданы на одном уровне;
  17303. ошибка появилась в 0.7.46.
  17304. </para>
  17305. <para lang="en">
  17306. a segmentation fault might occur in worker process,
  17307. if the "proxy_cache"/"fastcgi_cache" and
  17308. the "proxy_cache_valid"/ "fastcgi_cache_valid" were set on different levels;
  17309. the bug had appeared in 0.7.46.
  17310. </para>
  17311. </change>

  17312. <change type="bugfix">
  17313. <para lang="ru">
  17314. в рабочем процессе мог произойти segmentation fault
  17315. при перенаправлении запроса проксированному или FastCGI-серверу
  17316. с помощью error_page или try_files;
  17317. ошибка появилась в 0.7.44.
  17318. </para>
  17319. <para lang="en">
  17320. a segmentation fault might occur in worker process,
  17321. if a request was redirected to a proxied or FastCGI server via
  17322. error_page or try_files;
  17323. the bug had appeared in 0.7.44.
  17324. </para>
  17325. </change>

  17326. </changes>


  17327. <changes ver="0.7.46" date="2009-03-30">

  17328. <change type="bugfix">
  17329. <para lang="ru">
  17330. архив предыдущего релиза был неверным.
  17331. </para>
  17332. <para lang="en">
  17333. the previous release tarball was incorrect.
  17334. </para>
  17335. </change>

  17336. </changes>


  17337. <changes ver="0.7.45" date="2009-03-30">

  17338. <change type="change">
  17339. <para lang="ru">
  17340. теперь директивы proxy_cache и proxy_cache_valid можно задавать
  17341. на разных уровнях.
  17342. </para>
  17343. <para lang="en">
  17344. now the "proxy_cache" and the "proxy_cache_valid" directives can be set on
  17345. different levels.
  17346. </para>
  17347. </change>

  17348. <change type="change">
  17349. <para lang="ru">
  17350. параметр clean_time в директиве proxy_cache_path удалён.
  17351. </para>
  17352. <para lang="en">
  17353. the "clean_time" parameter of the "proxy_cache_path" directive is canceled.
  17354. </para>
  17355. </change>

  17356. <change type="feature">
  17357. <para lang="ru">
  17358. параметр max_size в директиве proxy_cache_path.
  17359. </para>
  17360. <para lang="en">
  17361. the "max_size" parameter of the "proxy_cache_path" directive.
  17362. </para>
  17363. </change>

  17364. <change type="feature">
  17365. <para lang="ru">
  17366. предварительная поддержка кэширования в модуле ngx_http_fastcgi_module.
  17367. </para>
  17368. <para lang="en">
  17369. the ngx_http_fastcgi_module preliminary cache support.
  17370. </para>
  17371. </change>

  17372. <change type="feature">
  17373. <para lang="ru">
  17374. теперь при ошибках выделения в разделяемой памяти в логе указываются
  17375. названия директивы и зоны.
  17376. </para>
  17377. <para lang="en">
  17378. now on shared memory allocation errors directive and zone names are logged.
  17379. </para>
  17380. </change>

  17381. <change type="bugfix">
  17382. <para lang="ru">
  17383. директива "add_header last-modified ''" не удаляла в заголовке ответа
  17384. строку "Last-Modified";
  17385. ошибка появилась в 0.7.44.
  17386. </para>
  17387. <para lang="en">
  17388. the directive "add_header last-modified ''" did not delete a "Last-Modified"
  17389. response header line;
  17390. the bug had appeared in 0.7.44.
  17391. </para>
  17392. </change>

  17393. <change type="bugfix">
  17394. <para lang="ru">
  17395. в директиве auth_basic_user_file не работал относительный путь,
  17396. заданный строкой без переменных;
  17397. ошибка появилась в 0.7.44.<br/>
  17398. Спасибо Jerome Loyet.
  17399. </para>
  17400. <para lang="en">
  17401. a relative path in the "auth_basic_user_file" directive given without variables
  17402. did not work;
  17403. the bug had appeared in 0.7.44.<br/>
  17404. Thanks to Jerome Loyet.
  17405. </para>
  17406. </change>

  17407. <change type="bugfix">
  17408. <para lang="ru">
  17409. в директиве alias, заданной переменными
  17410. без ссылок на выделения в регулярных выражениях;
  17411. ошибка появилась в 0.7.42.
  17412. </para>
  17413. <para lang="en">
  17414. in an "alias" directive given using variables
  17415. without references to captures of regular expressions;
  17416. the bug had appeared in 0.7.42.
  17417. </para>
  17418. </change>

  17419. </changes>


  17420. <changes ver="0.7.44" date="2009-03-23">

  17421. <change type="feature">
  17422. <para lang="ru">
  17423. предварительная поддержка кэширования в модуле ngx_http_proxy_module.
  17424. </para>
  17425. <para lang="en">
  17426. the ngx_http_proxy_module preliminary cache support.
  17427. </para>
  17428. </change>

  17429. <change type="feature">
  17430. <para lang="ru">
  17431. параметр --with-pcre в configure.
  17432. </para>
  17433. <para lang="en">
  17434. the --with-pcre option in the configure.
  17435. </para>
  17436. </change>

  17437. <change type="feature">
  17438. <para lang="ru">
  17439. теперь директива try_files может быть использована на уровне server.
  17440. </para>
  17441. <para lang="en">
  17442. the "try_files" directive is now allowed on the server block level.
  17443. </para>
  17444. </change>

  17445. <change type="bugfix">
  17446. <para lang="ru">
  17447. директива try_files неправильно обрабатывала строку запроса в последнем
  17448. параметре.
  17449. </para>
  17450. <para lang="en">
  17451. the "try_files" directive handled incorrectly a query string
  17452. in a fallback parameter.
  17453. </para>
  17454. </change>

  17455. <change type="bugfix">
  17456. <para lang="ru">
  17457. директива try_files могла неверно тестировать каталоги.
  17458. </para>
  17459. <para lang="en">
  17460. the "try_files" directive might test incorrectly directories.
  17461. </para>
  17462. </change>

  17463. <change type="bugfix">
  17464. <para lang="ru">
  17465. если для пары адрес:порт описан только один сервер, то выделения
  17466. в регулярных выражениях в директиве server_name не работали.
  17467. </para>
  17468. <para lang="en">
  17469. if there was a single server for given address:port pair,
  17470. then captures in regular expressions in a "server_name" directive did not work.
  17471. </para>
  17472. </change>

  17473. </changes>


  17474. <changes ver="0.7.43" date="2009-03-18">

  17475. <change type="bugfix">
  17476. <para lang="ru">
  17477. запрос обрабатывался неверно, если директива root использовала переменные;
  17478. ошибка появилась в 0.7.42.
  17479. </para>
  17480. <para lang="en">
  17481. a request was handled incorrectly, if a "root" directive used variables;
  17482. the bug had appeared in 0.7.42.
  17483. </para>
  17484. </change>

  17485. <change type="bugfix">
  17486. <para lang="ru">
  17487. если сервер слушал на адресах типа "*", то значение переменной $server_addr
  17488. было "0.0.0.0";
  17489. ошибка появилась в 0.7.36.
  17490. </para>
  17491. <para lang="en">
  17492. if a server listened on wildcard address, then the $server_addr variable
  17493. value was "0.0.0.0";
  17494. the bug had appeared in 0.7.36.
  17495. </para>
  17496. </change>

  17497. </changes>


  17498. <changes ver="0.7.42" date="2009-03-16">

  17499. <change type="change">
  17500. <para lang="ru">
  17501. ошибка "Invalid argument", возвращаемая setsockopt(TCP_NODELAY) на Solaris,
  17502. теперь игнорируется.
  17503. </para>
  17504. <para lang="en">
  17505. now the "Invalid argument" error returned by setsockopt(TCP_NODELAY) on Solaris,
  17506. is ignored.
  17507. </para>
  17508. </change>

  17509. <change type="change">
  17510. <para lang="ru">
  17511. при отсутствии файла, указанного в директиве auth_basic_user_file,
  17512. теперь возвращается ошибка 403 вместо 500.
  17513. </para>
  17514. <para lang="en">
  17515. now if a file specified in a "auth_basic_user_file" directive is absent,
  17516. then the 403 error is returned instead of the 500 one.
  17517. </para>
  17518. </change>

  17519. <change type="feature">
  17520. <para lang="ru">
  17521. директива auth_basic_user_file поддерживает переменные.
  17522. <br/>
  17523. Спасибо Кириллу Коринскому.
  17524. </para>
  17525. <para lang="en">
  17526. the "auth_basic_user_file" directive supports variables.<br/>
  17527. Thanks to Kirill A. Korinskiy.
  17528. </para>
  17529. </change>

  17530. <change type="feature">
  17531. <para lang="ru">
  17532. директива listen поддерживает параметр ipv6only.<br/>
  17533. Спасибо Zhang Hua.
  17534. </para>
  17535. <para lang="en">
  17536. the "listen" directive supports the "ipv6only" parameter.
  17537. <br/>
  17538. Thanks to Zhang Hua.
  17539. </para>
  17540. </change>

  17541. <change type="bugfix">
  17542. <para lang="ru">
  17543. в директиве alias со ссылками на выделения в регулярных выражениях;
  17544. ошибка появилась в 0.7.40.
  17545. </para>
  17546. <para lang="en">
  17547. in an "alias" directive with references to captures of regular expressions;
  17548. the bug had appeared in 0.7.40.
  17549. </para>
  17550. </change>

  17551. <change type="bugfix">
  17552. <para lang="ru">
  17553. совместимость с Tru64 UNIX.<br/>
  17554. Спасибо Dustin Marquess.
  17555. </para>
  17556. <para lang="en">
  17557. compatibility with Tru64 UNIX.<br/>
  17558. Thanks to Dustin Marquess.
  17559. </para>
  17560. </change>

  17561. <change type="bugfix">
  17562. <para lang="ru">
  17563. nginx не собирался без библиотеки PCRE;
  17564. ошибка появилась в 0.7.41.
  17565. </para>
  17566. <para lang="en">
  17567. nginx could not be built without PCRE library;
  17568. the bug had appeared in 0.7.41.
  17569. </para>
  17570. </change>

  17571. </changes>


  17572. <changes ver="0.7.41" date="2009-03-11">

  17573. <change type="bugfix">
  17574. <para lang="ru">
  17575. в рабочем процессе мог произойти segmentation fault,
  17576. если в server_name или location были выделения в регулярных выражениях;
  17577. ошибка появилась в 0.7.40.<br/>
  17578. Спасибо Владимиру Сопоту.
  17579. </para>
  17580. <para lang="en">
  17581. a segmentation fault might occur in worker process,
  17582. if a "server_name" or a "location" directives had captures
  17583. in regular expressions;
  17584. the issue had appeared in 0.7.40.<br/>
  17585. Thanks to Vladimir Sopot.
  17586. </para>
  17587. </change>

  17588. </changes>


  17589. <changes ver="0.7.40" date="2009-03-09">

  17590. <change type="feature">
  17591. <para lang="ru">
  17592. директива location поддерживает выделения в регулярных выражениях.
  17593. </para>
  17594. <para lang="en">
  17595. the "location" directive supports captures in regular expressions.
  17596. </para>
  17597. </change>

  17598. <change type="feature">
  17599. <para lang="ru">
  17600. директиву alias с ссылками на выделения в регулярных выражениях
  17601. можно использовать внутри location'а, заданного регулярным выражением
  17602. с выделениями.
  17603. </para>
  17604. <para lang="en">
  17605. an "alias" directive with capture references may be used inside
  17606. a location given by a regular expression with captures.
  17607. </para>
  17608. </change>

  17609. <change type="feature">
  17610. <para lang="ru">
  17611. директива server_name поддерживает выделения в регулярных выражениях.
  17612. </para>
  17613. <para lang="en">
  17614. the "server_name" directive supports captures in regular expressions.
  17615. </para>
  17616. </change>

  17617. <change type="workaround">
  17618. <para lang="ru">
  17619. модуль ngx_http_autoindex_module не показывал последний слэш для каталогов
  17620. на файловой системе XFS;
  17621. ошибка появилась в 0.7.15.<br/>
  17622. Спасибо Дмитрию Кузьменко.
  17623. </para>
  17624. <para lang="en">
  17625. the ngx_http_autoindex_module did not show the trailing slash in directories
  17626. on XFS filesystem;
  17627. the issue had appeared in 0.7.15.<br/>
  17628. Thanks to Dmitry Kuzmenko.
  17629. </para>
  17630. </change>

  17631. </changes>


  17632. <changes ver="0.7.39" date="2009-03-02">

  17633. <change type="bugfix">
  17634. <para lang="ru">
  17635. при включённом сжатии большие ответы с использованием SSI могли зависать;
  17636. ошибка появилась в 0.7.28.<br/>
  17637. Спасибо Артёму Бохану.
  17638. </para>
  17639. <para lang="en">
  17640. large response with SSI might hang, if gzipping was enabled;
  17641. the bug had appeared in 0.7.28.<br/>
  17642. Thanks to Artem Bokhan.
  17643. </para>
  17644. </change>

  17645. <change type="bugfix">
  17646. <para lang="ru">
  17647. при использовании коротких статических вариантов в директиве try_files
  17648. в рабочем процессе мог произойти segmentation fault.
  17649. </para>
  17650. <para lang="en">
  17651. a segmentation fault might occur in worker process,
  17652. if short static variants are used in a "try_files" directive.
  17653. </para>
  17654. </change>

  17655. </changes>


  17656. <changes ver="0.7.38" date="2009-02-23">

  17657. <change type="feature">
  17658. <para lang="ru">
  17659. логгирование ошибок аутентификации.
  17660. </para>
  17661. <para lang="en">
  17662. authentication failures logging.
  17663. </para>
  17664. </change>

  17665. <change type="bugfix">
  17666. <para lang="ru">
  17667. имя/пароль, заданные в auth_basic_user_file, игнорировались после нечётного
  17668. числа пустых строк.<br/>
  17669. Спасибо Александру Загребину.
  17670. </para>
  17671. <para lang="en">
  17672. name/password in auth_basic_user_file were ignored after odd number
  17673. of empty lines.<br/>
  17674. Thanks to Alexander Zagrebin.
  17675. </para>
  17676. </change>

  17677. <change type="bugfix">
  17678. <para lang="ru">
  17679. при использовании длинного пути в unix domain сокете
  17680. в главном процессе происходил segmentation fault;
  17681. ошибка появилась в 0.7.36.
  17682. </para>
  17683. <para lang="en">
  17684. a segmentation fault occurred in a master process,
  17685. if long path was used in unix domain socket;
  17686. the bug had appeared in 0.7.36.
  17687. </para>
  17688. </change>

  17689. </changes>


  17690. <changes ver="0.7.37" date="2009-02-21">

  17691. <change type="bugfix">
  17692. <para lang="ru">
  17693. директивы, использующие upstream'ы, не работали;
  17694. ошибка появилась в 0.7.36.
  17695. </para>
  17696. <para lang="en">
  17697. directives using upstreams did not work;
  17698. the bug had appeared in 0.7.36.
  17699. </para>
  17700. </change>

  17701. </changes>


  17702. <changes ver="0.7.36" date="2009-02-21">

  17703. <change type="feature">
  17704. <para lang="ru">
  17705. предварительная поддержка IPv6;
  17706. директива listen модуля HTTP поддерживает IPv6.
  17707. </para>
  17708. <para lang="en">
  17709. a preliminary IPv6 support;
  17710. the "listen" directive of the HTTP module supports IPv6.
  17711. </para>
  17712. </change>

  17713. <change type="bugfix">
  17714. <para lang="ru">
  17715. переменная $ancient_browser не работала для браузеров, заданных
  17716. директивами modern_browser.
  17717. </para>
  17718. <para lang="en">
  17719. the $ancient_browser variable did not work for browsers
  17720. preset by a "modern_browser" directives.
  17721. </para>
  17722. </change>

  17723. </changes>


  17724. <changes ver="0.7.35" date="2009-02-16">

  17725. <change type="bugfix">
  17726. <para lang="ru">
  17727. директива ssl_engine не использовала SSL-акселератор
  17728. для асимметричных шифров.<br/>
  17729. Спасибо Marcin Gozdalik.
  17730. </para>
  17731. <para lang="en">
  17732. a "ssl_engine" directive did not use a SSL-accelerator
  17733. for asymmetric ciphers.<br/>
  17734. Thanks to Marcin Gozdalik.
  17735. </para>
  17736. </change>

  17737. <change type="bugfix">
  17738. <para lang="ru">
  17739. директива try_files выставляла MIME-type, исходя из расширения
  17740. первоначального запроса.
  17741. </para>
  17742. <para lang="en">
  17743. a "try_files" directive set MIME type depending on an
  17744. original request extension.
  17745. </para>
  17746. </change>

  17747. <change type="bugfix">
  17748. <para lang="ru">
  17749. в директивах server_name, valid_referers и map
  17750. неправильно обрабатывались имена вида "*domain.tld",
  17751. если использовались маски вида ".domain.tld" и ".subdomain.domain.tld";
  17752. ошибка появилась в 0.7.9.
  17753. </para>
  17754. <para lang="en">
  17755. "*domain.tld" names were handled incorrectly in
  17756. "server_name", "valid_referers", and "map" directives,
  17757. if ".domain.tld" and ".subdomain.domain.tld" wildcards were used;
  17758. <nobr>the bug had</nobr> appeared in 0.7.9.
  17759. </para>
  17760. </change>

  17761. </changes>


  17762. <changes ver="0.7.34" date="2009-02-10">

  17763. <change type="feature">
  17764. <para lang="ru">
  17765. параметр off в директиве if_modified_since.
  17766. </para>
  17767. <para lang="en">
  17768. the "off" parameter of the "if_modified_since" directive.
  17769. </para>
  17770. </change>

  17771. <change type="feature">
  17772. <para lang="ru">
  17773. теперь после команды XCLIENT nginx посылает команду HELO/EHLO.<br/>
  17774. Спасибо Максиму Дунину.
  17775. </para>
  17776. <para lang="en">
  17777. now nginx sends an HELO/EHLO command after a XCLIENT command.<br/>
  17778. Thanks to Maxim Dounin.
  17779. </para>
  17780. </change>

  17781. <change type="feature">
  17782. <para lang="ru">
  17783. поддержка Microsoft-специфичного режима
  17784. <nobr>"AUTH LOGIN with User Name"</nobr>
  17785. в почтовом прокси-сервере.<br/>
  17786. Спасибо Максиму Дунину.
  17787. </para>
  17788. <para lang="en">
  17789. Microsoft specific "AUTH LOGIN with User Name" mode support
  17790. in mail proxy server.<br/>
  17791. Thanks to Maxim Dounin.
  17792. </para>
  17793. </change>

  17794. <change type="bugfix">
  17795. <para lang="ru">
  17796. в директиве rewrite, возвращающей редирект, старые аргументы присоединялись
  17797. к новым через символ "?" вместо "&amp;";<br/>
  17798. ошибка появилась в 0.1.18.<br/>
  17799. Спасибо Максиму Дунину.
  17800. </para>
  17801. <para lang="en">
  17802. in a redirect rewrite directive original arguments were concatenated with
  17803. new arguments by a "?" rather than an "&amp;";<br/>
  17804. the bug had appeared in 0.1.18.<br/>
  17805. Thanks to Maxim Dounin.
  17806. </para>
  17807. </change>

  17808. <change type="bugfix">
  17809. <para lang="ru">
  17810. nginx не собирался на AIX.
  17811. </para>
  17812. <para lang="en">
  17813. nginx could not be built on AIX.
  17814. </para>
  17815. </change>

  17816. </changes>


  17817. <changes ver="0.7.33" date="2009-02-02">

  17818. <change type="bugfix">
  17819. <para lang="ru">
  17820. если на запрос с телом возвращался редирект, то ответ мог быть двойным
  17821. при использовании методов epoll или rtsig.<br/>
  17822. Спасибо Eden Li.
  17823. </para>
  17824. <para lang="en">
  17825. a double response might be returned if the epoll or rtsig methods are used
  17826. and a redirect was returned to a request with body.<br/>
  17827. Thanks to Eden Li.
  17828. </para>
  17829. </change>

  17830. <change type="bugfix">
  17831. <para lang="ru">
  17832. для некоторых типов редиректов в переменной $sent_http_location
  17833. было пустое значение.
  17834. </para>
  17835. <para lang="en">
  17836. the $sent_http_location variable was empty for some redirects types.
  17837. </para>
  17838. </change>

  17839. <change type="bugfix">
  17840. <para lang="ru">
  17841. при использовании директивы resolver в SMTP прокси-сервере
  17842. в рабочем процессе мог произойти segmentation fault.
  17843. </para>
  17844. <para lang="en">
  17845. a segmentation fault might occur in worker process
  17846. if "resolver" directive was used in SMTP proxy.
  17847. </para>
  17848. </change>

  17849. </changes>


  17850. <changes ver="0.7.32" date="2009-01-26">

  17851. <change type="feature">
  17852. <para lang="ru">
  17853. теперь в директиве try_files можно явно указать проверку каталога.
  17854. </para>
  17855. <para lang="en">
  17856. now a directory existence testing can be set explicitly
  17857. in the "try_files" directive.
  17858. </para>
  17859. </change>

  17860. <change type="bugfix">
  17861. <para lang="ru">
  17862. fastcgi_store не всегда сохранял файлы.
  17863. </para>
  17864. <para lang="en">
  17865. fastcgi_store stored files not always.
  17866. </para>
  17867. </change>

  17868. <change type="bugfix">
  17869. <para lang="ru">
  17870. в гео-диапазонах.
  17871. </para>
  17872. <para lang="en">
  17873. in geo ranges.
  17874. </para>
  17875. </change>

  17876. <change type="bugfix">
  17877. <para lang="ru">
  17878. ошибки выделения больших блоков в разделяемой памяти,
  17879. если nginx был собран без отладки.<br/>
  17880. Спасибо Андрею Квасову.
  17881. </para>
  17882. <para lang="en">
  17883. in shared memory allocations if nginx was built without debugging.<br/>
  17884. Thanks to Andrey Kvasov.
  17885. </para>
  17886. </change>

  17887. </changes>


  17888. <changes ver="0.7.31" date="2009-01-19">

  17889. <change type="change">
  17890. <para lang="ru">
  17891. теперь директива try_files проверяет только файлы, игнорируя каталоги.
  17892. </para>
  17893. <para lang="en">
  17894. now the "try_files" directive tests files only and ignores directories.
  17895. </para>
  17896. </change>

  17897. <change type="feature">
  17898. <para lang="ru">
  17899. директива fastcgi_split_path_info.
  17900. </para>
  17901. <para lang="en">
  17902. the "fastcgi_split_path_info" directive.
  17903. </para>
  17904. </change>

  17905. <change>
  17906. <para lang="ru">
  17907. Исправления в поддержке строки "Expect" в заголовке запроса.
  17908. </para>
  17909. <para lang="en">
  17910. Bugfixes in an "Expect" request header line support.
  17911. </para>
  17912. </change>

  17913. <change>
  17914. <para lang="ru">
  17915. Исправления в гео-диапазонах.
  17916. </para>
  17917. <para lang="en">
  17918. Bugfixes in geo ranges.
  17919. </para>
  17920. </change>

  17921. <change type="bugfix">
  17922. <para lang="ru">
  17923. при отсутствии ответа ngx_http_memcached_module возвращал
  17924. в теле ответа строку "END" вместо 404-ой страницы по умолчанию;
  17925. ошибка появилась в 0.7.18.<br/>
  17926. Спасибо Максиму Дунину.
  17927. </para>
  17928. <para lang="en">
  17929. in a miss case ngx_http_memcached_module returned the "END" line
  17930. as response body instead of default 404 page body;
  17931. the bug had appeared in 0.7.18.<br/>
  17932. Thanks to Maxim Dounin.
  17933. </para>
  17934. </change>

  17935. <change type="bugfix">
  17936. <para lang="ru">
  17937. при проксировании SMTP nginx выдавал сообщение
  17938. <nobr>"250 2.0.0 OK"</nobr> вместо "235 2.0.0 OK";
  17939. ошибка появилась в 0.7.22.<br/>
  17940. Спасибо Максиму Дунину.
  17941. </para>
  17942. <para lang="en">
  17943. while SMTP proxying nginx issued message
  17944. "250 2.0.0 OK" instead of "235 2.0.0 OK";
  17945. the bug had appeared in 0.7.22.<br/>
  17946. Thanks to Maxim Dounin.
  17947. </para>
  17948. </change>

  17949. </changes>



  17950. <changes ver="0.7.30" date="2008-12-24">

  17951. <change type="bugfix">
  17952. <para lang="ru">
  17953. в рабочем процессе происходил segmentation fault,
  17954. если в директивах fastcgi_pass или proxy_pass
  17955. использовались переменные и имя хоста должно было резолвиться;
  17956. ошибка появилась в 0.7.29.
  17957. </para>
  17958. <para lang="en">
  17959. a segmentation fault occurred in worker process,
  17960. if variables were used in the "fastcgi_pass" or "proxy_pass" directives
  17961. and host name must be resolved;
  17962. the bug had appeared in 0.7.29.
  17963. </para>
  17964. </change>

  17965. </changes>


  17966. <changes ver="0.7.29" date="2008-12-24">

  17967. <change type="bugfix">
  17968. <para lang="ru">
  17969. директивы fastcgi_pass и proxy_pass не поддерживали переменные
  17970. при использовании unix domain сокетов.
  17971. </para>
  17972. <para lang="en">
  17973. the "fastcgi_pass" and "proxy_pass" directives did not support
  17974. variables if unix domain sockets were used.
  17975. </para>
  17976. </change>

  17977. <change>
  17978. <para lang="ru">
  17979. Исправления в обработке подзапросов;
  17980. ошибки появились в 0.7.25.
  17981. </para>
  17982. <para lang="en">
  17983. Bugfixes in subrequest processing;
  17984. the bugs had appeared in 0.7.25.
  17985. </para>
  17986. </change>

  17987. <change type="bugfix">
  17988. <para lang="ru">
  17989. ответ "100 Continue" выдавался для запросов версии HTTP/1.0;<br/>
  17990. Спасибо Максиму Дунину.
  17991. </para>
  17992. <para lang="en">
  17993. a "100 Continue" response was issued for HTTP/1.0 requests;<br/>
  17994. Thanks to Maxim Dounin.
  17995. </para>
  17996. </change>

  17997. <change type="bugfix">
  17998. <para lang="ru">
  17999. в выделении памяти в модуле ngx_http_gzip_filter_module под Cygwin.
  18000. </para>
  18001. <para lang="en">
  18002. in memory allocation in the ngx_http_gzip_filter_module on Cygwin.
  18003. </para>
  18004. </change>

  18005. </changes>


  18006. <changes ver="0.7.28" date="2008-12-22">

  18007. <change type="change">
  18008. <para lang="ru">
  18009. в выделении памяти в модуле ngx_http_gzip_filter_module.
  18010. </para>
  18011. <para lang="en">
  18012. in memory allocation in the ngx_http_gzip_filter_module.
  18013. </para>
  18014. </change>

  18015. <change type="change">
  18016. <para lang="ru">
  18017. значения по умолчанию для директивы gzip_buffers изменены с 4 4k/8k
  18018. на 32 4k или 16 8k.
  18019. </para>
  18020. <para lang="en">
  18021. the default "gzip_buffers" directive values have been changed
  18022. to 32 4k or 16 8k from 4 4k/8k.
  18023. </para>
  18024. </change>

  18025. </changes>


  18026. <changes ver="0.7.27" date="2008-12-15">

  18027. <change type="feature">
  18028. <para lang="ru">
  18029. директива try_files.
  18030. </para>
  18031. <para lang="en">
  18032. the "try_files" directive.
  18033. </para>
  18034. </change>

  18035. <change type="feature">
  18036. <para lang="ru">
  18037. директива fastcgi_pass поддерживает переменные.
  18038. </para>
  18039. <para lang="en">
  18040. variables support in the "fastcgi_pass" directive.
  18041. </para>
  18042. </change>

  18043. <change type="feature">
  18044. <para lang="ru">
  18045. теперь директива geo может брать адрес из переменной.<br/>
  18046. Спасибо Андрею Нигматулину.
  18047. </para>
  18048. <para lang="en">
  18049. now the $geo variable may get an address from a variable.<br/>
  18050. Thanks to Andrei Nigmatulin.
  18051. </para>
  18052. </change>

  18053. <change type="feature">
  18054. <para lang="ru">
  18055. теперь модификатор location'а можно указывать без пробела перед названием.
  18056. </para>
  18057. <para lang="en">
  18058. now a location's modifier may be used without space before name.
  18059. </para>
  18060. </change>

  18061. <change type="feature">
  18062. <para lang="ru">
  18063. переменная $upstream_response_length.
  18064. </para>
  18065. <para lang="en">
  18066. the $upstream_response_length variable.
  18067. </para>
  18068. </change>

  18069. <change type="bugfix">
  18070. <para lang="ru">
  18071. теперь директива add_header не добавляет пустое значение.
  18072. </para>
  18073. <para lang="en">
  18074. now a "add_header" directive does not add an empty value.
  18075. </para>
  18076. </change>

  18077. <change type="bugfix">
  18078. <para lang="ru">
  18079. при запросе файла нулевой длины nginx закрывал соединение, ничего не передав;
  18080. ошибка появилась в 0.7.25.
  18081. </para>
  18082. <para lang="en">
  18083. if zero length static file was requested, then nginx just closed connection;
  18084. the bug had appeared in 0.7.25.
  18085. </para>
  18086. </change>

  18087. <change type="bugfix">
  18088. <para lang="ru">
  18089. метод MOVE не мог перемещать файл в несуществующий каталог.
  18090. </para>
  18091. <para lang="en">
  18092. a MOVE method could not move file in non-existent directory.
  18093. </para>
  18094. </change>

  18095. <change type="bugfix">
  18096. <para lang="ru">
  18097. если в сервере не был описан ни один именованный location,
  18098. но такой location использовался в директиве error_page,
  18099. то в рабочем процессе происходил segmentation fault.<br/>
  18100. Спасибо Сергею Боченкову.
  18101. </para>
  18102. <para lang="en">
  18103. a segmentation fault occurred in worker process,
  18104. if no one named location was defined in server,
  18105. but some one was used in an error_page directive.<br/>
  18106. Thanks to Sergey Bochenkov.
  18107. </para>
  18108. </change>

  18109. </changes>


  18110. <changes ver="0.7.26" date="2008-12-08">

  18111. <change type="bugfix">
  18112. <para lang="ru">
  18113. в обработке подзапросов;
  18114. ошибка появилась в 0.7.25.
  18115. </para>
  18116. <para lang="en">
  18117. in subrequest processing;
  18118. the bug had appeared in 0.7.25.
  18119. </para>
  18120. </change>

  18121. </changes>


  18122. <changes ver="0.7.25" date="2008-12-08">

  18123. <change type="change">
  18124. <para lang="ru">
  18125. в обработке подзапросов.
  18126. </para>
  18127. <para lang="en">
  18128. in subrequest processing.
  18129. </para>
  18130. </change>

  18131. <change type="change">
  18132. <para lang="ru">
  18133. теперь разрешаются POST'ы без строки "Content-Length" в заголовке запроса.
  18134. </para>
  18135. <para lang="en">
  18136. now POSTs without "Content-Length" header line are allowed.
  18137. </para>
  18138. </change>

  18139. <change type="bugfix">
  18140. <para lang="ru">
  18141. теперь директивы limit_req и limit_conn указывают причину запрета запроса.
  18142. </para>
  18143. <para lang="en">
  18144. now the "limit_req" and "limit_conn" directives log a prohibition reason.
  18145. </para>
  18146. </change>

  18147. <change type="bugfix">
  18148. <para lang="ru">
  18149. в параметре delete директивы geo.
  18150. </para>
  18151. <para lang="en">
  18152. in the "delete" parameter of the "geo" directive.
  18153. </para>
  18154. </change>

  18155. </changes>


  18156. <changes ver="0.7.24" date="2008-12-01">

  18157. <change type="feature">
  18158. <para lang="ru">
  18159. директива if_modified_since.
  18160. </para>
  18161. <para lang="en">
  18162. the "if_modified_since" directive.
  18163. </para>
  18164. </change>

  18165. <change type="bugfix">
  18166. <para lang="ru">
  18167. nginx не обрабатывал ответ FastCGI-сервера,
  18168. если перед ответом сервер передавал много сообщений в stderr.
  18169. </para>
  18170. <para lang="en">
  18171. nginx did not process a FastCGI server response,
  18172. if the server send too many messages to stderr before response.
  18173. </para>
  18174. </change>

  18175. <change type="bugfix">
  18176. <para lang="ru">
  18177. переменные "$cookie_..." не работали в SSI and в перловом модуле.
  18178. </para>
  18179. <para lang="en">
  18180. the "$cookie_..." variables did not work in the SSI and the perl module.
  18181. </para>
  18182. </change>

  18183. </changes>


  18184. <changes ver="0.7.23" date="2008-11-27">

  18185. <change type="feature">
  18186. <para lang="ru">
  18187. параметры delete и ranges в директиве geo.
  18188. </para>
  18189. <para lang="en">
  18190. the "delete" and "ranges" parameters in the "geo" directive.
  18191. </para>
  18192. </change>

  18193. <change type="feature">
  18194. <para lang="ru">
  18195. ускорение загрузки geo-базы с большим числом значений.
  18196. </para>
  18197. <para lang="en">
  18198. speeding up loading of geo base with large number of values.
  18199. </para>
  18200. </change>

  18201. <change type="feature">
  18202. <para lang="ru">
  18203. уменьшение памяти, необходимой для загрузки geo-базы.
  18204. </para>
  18205. <para lang="en">
  18206. decrease of memory required for geo base load.
  18207. </para>
  18208. </change>

  18209. </changes>


  18210. <changes ver="0.7.22" date="2008-11-20">

  18211. <change type="feature">
  18212. <para lang="ru">
  18213. параметр none в директиве smtp_auth.<br/>
  18214. Спасибо Максиму Дунину.
  18215. </para>
  18216. <para lang="en">
  18217. the "none" parameter in the "smtp_auth" directive.<br/>
  18218. Thanks to Maxim Dounin.
  18219. </para>
  18220. </change>

  18221. <change type="feature">
  18222. <para lang="ru">
  18223. переменные "$cookie_...".
  18224. </para>
  18225. <para lang="en">
  18226. the "$cookie_..." variables.
  18227. </para>
  18228. </change>

  18229. <change type="bugfix">
  18230. <para lang="ru">
  18231. директива directio не работала с файловой системой XFS.
  18232. </para>
  18233. <para lang="en">
  18234. the "directio" directive did not work in XFS filesystem.
  18235. </para>
  18236. </change>

  18237. <change type="bugfix">
  18238. <para lang="ru">
  18239. resolver не понимал большие DNS-ответы.<br/>
  18240. Спасибо Zyb.
  18241. </para>
  18242. <para lang="en">
  18243. the resolver did not understand big DNS responses.<br/>
  18244. Thanks to Zyb.
  18245. </para>
  18246. </change>

  18247. </changes>


  18248. <changes ver="0.7.21" date="2008-11-11">

  18249. <change>
  18250. <para lang="ru">
  18251. Изменения в модуле ngx_http_limit_req_module.
  18252. </para>
  18253. <para lang="en">
  18254. Changes in the ngx_http_limit_req_module.
  18255. </para>
  18256. </change>

  18257. <change type="feature">
  18258. <para lang="ru">
  18259. поддержка EXSLT в модуле ngx_http_xslt_module.<br/>
  18260. Спасибо Денису Латыпову.
  18261. </para>
  18262. <para lang="en">
  18263. the EXSLT support in the ngx_http_xslt_module.<br/>
  18264. Thanks to Denis F. Latypoff.
  18265. </para>
  18266. </change>

  18267. <change type="workaround">
  18268. <para lang="ru">
  18269. совместимость с glibc 2.3.<br/>
  18270. Спасибо Eric Benson и Максиму Дунину.
  18271. </para>
  18272. <para lang="en">
  18273. compatibility with glibc 2.3.<br/>
  18274. Thanks to Eric Benson and Maxim Dounin.
  18275. </para>
  18276. </change>

  18277. <change type="bugfix">
  18278. <para lang="ru">
  18279. nginx не запускался на MacOSX 10.4 и более ранних;
  18280. ошибка появилась в 0.7.6.
  18281. </para>
  18282. <para lang="en">
  18283. nginx could not run on MacOSX 10.4 and earlier;
  18284. the bug had appeared in 0.7.6.
  18285. </para>
  18286. </change>

  18287. </changes>


  18288. <changes ver="0.7.20" date="2008-11-10">

  18289. <change>
  18290. <para lang="ru">
  18291. Изменения в модуле ngx_http_gzip_filter_module.
  18292. </para>
  18293. <para lang="en">
  18294. Changes in the ngx_http_gzip_filter_module.
  18295. </para>
  18296. </change>

  18297. <change type="feature">
  18298. <para lang="ru">
  18299. модуль ngx_http_limit_req_module.
  18300. </para>
  18301. <para lang="en">
  18302. the ngx_http_limit_req_module.
  18303. </para>
  18304. </change>

  18305. <change type="bugfix">
  18306. <para lang="ru">
  18307. на платформах sparc и ppc рабочие процессы могли выходить по сигналу SIGBUS;
  18308. ошибка появилась в 0.7.3.<br/>
  18309. Спасибо Максиму Дунину.
  18310. </para>
  18311. <para lang="en">
  18312. worker processes might exit on a SIGBUS signal on sparc and ppc platforms;
  18313. the bug had appeared in 0.7.3.<br/>
  18314. Thanks to Maxim Dounin.
  18315. </para>
  18316. </change>

  18317. <change type="bugfix">
  18318. <para lang="ru">
  18319. директивы вида "proxy_pass http://host/some:uri" не работали;
  18320. ошибка появилась в 0.7.12.
  18321. </para>
  18322. <para lang="en">
  18323. the "proxy_pass http://host/some:uri" directives did not work;
  18324. the bug had appeared in 0.7.12.
  18325. </para>
  18326. </change>

  18327. <change type="bugfix">
  18328. <para lang="ru">
  18329. при использовании HTTPS запросы могли завершаться с ошибкой "bad write retry".
  18330. </para>
  18331. <para lang="en">
  18332. in HTTPS mode requests might fail with the "bad write retry" error.
  18333. </para>
  18334. </change>

  18335. <change type="bugfix">
  18336. <para lang="ru">
  18337. модуль ngx_http_secure_link_module не работал внутри location'ов
  18338. с именами меньше 3 символов.
  18339. </para>
  18340. <para lang="en">
  18341. the ngx_http_secure_link_module did not work inside locations,
  18342. whose names are less than 3 characters.
  18343. </para>
  18344. </change>

  18345. <change type="bugfix">
  18346. <para lang="ru">
  18347. переменная $server_addr могла не иметь значения.
  18348. </para>
  18349. <para lang="en">
  18350. $server_addr variable might have no value.
  18351. </para>
  18352. </change>

  18353. </changes>


  18354. <changes ver="0.7.19" date="2008-10-13">

  18355. <change type="bugfix">
  18356. <para lang="ru">
  18357. обновление номера версии.
  18358. </para>
  18359. <para lang="en">
  18360. version number update.
  18361. </para>
  18362. </change>

  18363. </changes>


  18364. <changes ver="0.7.18" date="2008-10-13">

  18365. <change type="change">
  18366. <para lang="ru">
  18367. директива underscores_in_headers;
  18368. теперь nginx по умолчанию не разрешает подчёркивания в именах строк
  18369. в заголовке запроса клиента.
  18370. </para>
  18371. <para lang="en">
  18372. the "underscores_in_headers" directive;
  18373. now nginx does not allows underscores in a client request header line names.
  18374. </para>
  18375. </change>

  18376. <change type="feature">
  18377. <para lang="ru">
  18378. модуль ngx_http_secure_link_module.
  18379. </para>
  18380. <para lang="en">
  18381. the ngx_http_secure_link_module.
  18382. </para>
  18383. </change>

  18384. <change type="feature">
  18385. <para lang="ru">
  18386. директива real_ip_header поддерживает любой заголовок.
  18387. </para>
  18388. <para lang="en">
  18389. the "real_ip_header" directive supports any header.
  18390. </para>
  18391. </change>

  18392. <change type="feature">
  18393. <para lang="ru">
  18394. директива log_subrequest.
  18395. </para>
  18396. <para lang="en">
  18397. the "log_subrequest" directive.
  18398. </para>
  18399. </change>

  18400. <change type="feature">
  18401. <para lang="ru">
  18402. переменная $realpath_root.
  18403. </para>
  18404. <para lang="en">
  18405. the $realpath_root variable.
  18406. </para>
  18407. </change>

  18408. <change type="feature">
  18409. <para lang="ru">
  18410. параметры http_502 и http_504 в директиве proxy_next_upstream.
  18411. </para>
  18412. <para lang="en">
  18413. the "http_502" and "http_504" parameters of the "proxy_next_upstream" directive.
  18414. </para>
  18415. </change>

  18416. <change type="bugfix">
  18417. <para lang="ru">
  18418. параметр http_503 в директивах proxy_next_upstream или fastcgi_next_upstream
  18419. не работал.
  18420. </para>
  18421. <para lang="en">
  18422. the "http_503" parameter of the "proxy_next_upstream" or
  18423. "fastcgi_next_upstream" directives did not work.
  18424. </para>
  18425. </change>

  18426. <change type="bugfix">
  18427. <para lang="ru">
  18428. nginx мог выдавать строку "Transfer-Encoding: chunked" для запросов  HEAD.
  18429. </para>
  18430. <para lang="en">
  18431. nginx might send a "Transfer-Encoding: chunked" header line for HEAD requests.
  18432. </para>
  18433. </change>

  18434. <change type="bugfix">
  18435. <para lang="ru">
  18436. теперь accept-лимит зависит от числа worker_connections.
  18437. </para>
  18438. <para lang="en">
  18439. now accept threshold depends on worker_connections.
  18440. </para>
  18441. </change>

  18442. </changes>


  18443. <changes ver="0.7.17" date="2008-09-15">

  18444. <change type="feature">
  18445. <para lang="ru">
  18446. директива directio теперь работает на Linux.
  18447. </para>
  18448. <para lang="en">
  18449. now the "directio" directive works on Linux.
  18450. </para>
  18451. </change>

  18452. <change type="feature">
  18453. <para lang="ru">
  18454. переменная $pid.
  18455. </para>
  18456. <para lang="en">
  18457. the $pid variable.
  18458. </para>
  18459. </change>

  18460. <change type="bugfix">
  18461. <para lang="ru">
  18462. оптимизация directio, появившаяся в 0.7.15, не работала при использовании
  18463. open_file_cache.
  18464. </para>
  18465. <para lang="en">
  18466. the "directio" optimization that had appeared in 0.7.15 did not work with
  18467. open_file_cache.
  18468. </para>
  18469. </change>

  18470. <change type="bugfix">
  18471. <para lang="ru">
  18472. access_log с переменными не работал на Linux;
  18473. ошибка появилась в 0.7.7.
  18474. </para>
  18475. <para lang="en">
  18476. the "access_log" with variables did not work on Linux;
  18477. the bug had appeared in 0.7.7.
  18478. </para>
  18479. </change>

  18480. <change type="bugfix">
  18481. <para lang="ru">
  18482. модуль ngx_http_charset_module не понимал название кодировки в кавычках,
  18483. полученное от бэкенда.
  18484. </para>
  18485. <para lang="en">
  18486. the ngx_http_charset_module did not understand quoted charset name
  18487. received from backend.
  18488. </para>
  18489. </change>

  18490. </changes>


  18491. <changes ver="0.7.16" date="2008-09-08">

  18492. <change type="bugfix">
  18493. <para lang="ru">
  18494. nginx не собирался на 64-битных платформах;
  18495. ошибка появилась в 0.7.15.
  18496. </para>
  18497. <para lang="en">
  18498. nginx could not be built on 64-bit platforms;
  18499. the bug had appeared in 0.7.15.
  18500. </para>
  18501. </change>

  18502. </changes>


  18503. <changes ver="0.7.15" date="2008-09-08">

  18504. <change type="feature">
  18505. <para lang="ru">
  18506. модуль ngx_http_random_index_module.
  18507. </para>
  18508. <para lang="en">
  18509. the ngx_http_random_index_module.
  18510. </para>
  18511. </change>

  18512. <change type="feature">
  18513. <para lang="ru">
  18514. директива directio оптимизирована для запросов файлов, начинающихся
  18515. с произвольной позиции.
  18516. </para>
  18517. <para lang="en">
  18518. the "directio" directive has been optimized for file requests starting
  18519. from arbitrary position.
  18520. </para>
  18521. </change>

  18522. <change type="feature">
  18523. <para lang="ru">
  18524. директива directio при необходимости запрещает использование sendfile.
  18525. </para>
  18526. <para lang="en">
  18527. the "directio" directive turns off sendfile if it is necessary.
  18528. </para>
  18529. </change>

  18530. <change type="feature">
  18531. <para lang="ru">
  18532. теперь nginx разрешает подчёркивания в именах строк в заголовке запроса клиента.
  18533. </para>
  18534. <para lang="en">
  18535. now nginx allows underscores in a client request header line names.
  18536. </para>
  18537. </change>

  18538. </changes>


  18539. <changes ver="0.7.14" date="2008-09-01">

  18540. <change type="change">
  18541. <para lang="ru">
  18542. теперь директивы ssl_certificate и ssl_certificate_key не имеют
  18543. значений по умолчанию.
  18544. </para>
  18545. <para lang="en">
  18546. now the ssl_certificate and ssl_certificate_key directives have no
  18547. default values.
  18548. </para>
  18549. </change>

  18550. <change type="feature">
  18551. <para lang="ru">
  18552. директива listen поддерживает параметр ssl.
  18553. </para>
  18554. <para lang="en">
  18555. the "listen" directive supports the "ssl" parameter.
  18556. </para>
  18557. </change>

  18558. <change type="feature">
  18559. <para lang="ru">
  18560. теперь при переконфигурации nginx учитывает изменение временной зоны
  18561. на FreeBSD и Linux.
  18562. </para>
  18563. <para lang="en">
  18564. now nginx takes into account a time zone change while reconfiguration
  18565. on FreeBSD and Linux.
  18566. </para>
  18567. </change>

  18568. <change type="bugfix">
  18569. <para lang="ru">
  18570. параметры директивы listen, такие как backlog, rcvbuf и прочие,
  18571. не устанавливались, если сервером по умолчанию был не первый сервер.
  18572. </para>
  18573. <para lang="en">
  18574. the "listen" directive parameters such as "backlog", "rcvbuf", etc.
  18575. were not set, if a default server was not the first one.
  18576. </para>
  18577. </change>

  18578. <change type="bugfix">
  18579. <para lang="ru">
  18580. при использовании в качестве аргументов части URI, выделенного с помощью
  18581. директивы rewrite, эти аргументы не экранировались.
  18582. </para>
  18583. <para lang="en">
  18584. if URI part captured by a "rewrite" directive was used as a query string,
  18585. then the query string was not escaped.
  18586. </para>
  18587. </change>

  18588. <change type="bugfix">
  18589. <para lang="ru">
  18590. улучшения тестирования правильности конфигурационного файла.
  18591. </para>
  18592. <para lang="en">
  18593. configuration file validity test improvements.
  18594. </para>
  18595. </change>


  18596. </changes>


  18597. <changes ver="0.7.13" date="2008-08-26">

  18598. <change type="bugfix">
  18599. <para lang="ru">
  18600. nginx не собирался на Linux и Solaris;
  18601. ошибка появилась в 0.7.12.
  18602. </para>
  18603. <para lang="en">
  18604. nginx could not be built on Linux and Solaris;
  18605. the bug had appeared in 0.7.12.
  18606. </para>
  18607. </change>

  18608. </changes>


  18609. <changes ver="0.7.12" date="2008-08-26">

  18610. <change type="feature">
  18611. <para lang="ru">
  18612. директива server_name поддерживает пустое имя "".
  18613. </para>
  18614. <para lang="en">
  18615. the "server_name" directive supports empty name "".
  18616. </para>
  18617. </change>

  18618. <change type="feature">
  18619. <para lang="ru">
  18620. директива gzip_disable поддерживает специальную маску msie6.
  18621. </para>
  18622. <para lang="en">
  18623. the "gzip_disable" directive supports special "msie6" mask.
  18624. </para>
  18625. </change>

  18626. <change type="bugfix">
  18627. <para lang="ru">
  18628. при использовании параметра max_fails=0 в upstream'е с несколькими
  18629. серверами рабочий процесс выходил по сигналу SIGFPE.<br/>
  18630. Спасибо Максиму Дунину.
  18631. </para>
  18632. <para lang="en">
  18633. if the "max_fails=0" parameter was used in upstream with several servers,
  18634. then a worker process exited on a SIGFPE signal.<br/>
  18635. Thanks to Maxim Dounin.
  18636. </para>
  18637. </change>

  18638. <change type="bugfix">
  18639. <para lang="ru">
  18640. при перенаправлении запроса с помощью директивы error_page
  18641. терялось тело запроса.
  18642. </para>
  18643. <para lang="en">
  18644. a request body was dropped while redirection via an "error_page" directive.
  18645. </para>
  18646. </change>

  18647. <change type="bugfix">
  18648. <para lang="ru">
  18649. при перенаправлении запроса с методом HEAD с помощью директивы error_page
  18650. возвращался полный ответ.
  18651. </para>
  18652. <para lang="en">
  18653. a full response was returned for request method HEAD
  18654. while redirection via an "error_page" directive.
  18655. </para>
  18656. </change>

  18657. <change type="bugfix">
  18658. <para lang="ru">
  18659. метод $r->header_in() не возвращал значения строк "Host", "User-Agent",
  18660. и "Connection" из заголовка запроса;
  18661. ошибка появилась в 0.7.0.
  18662. </para>
  18663. <para lang="en">
  18664. the $r->header_in() method did not return value of the "Host",
  18665. "User-Agent", and "Connection" request header lines;
  18666. the bug had appeared in 0.7.0.
  18667. </para>
  18668. </change>

  18669. </changes>


  18670. <changes ver="0.7.11" date="2008-08-18">

  18671. <change type="change">
  18672. <para lang="ru">
  18673. теперь ngx_http_charset_module по умолчанию не работает MIME-типом text/css.
  18674. </para>
  18675. <para lang="en">
  18676. now ngx_http_charset_module does not work by default with text/css MIME type.
  18677. </para>
  18678. </change>

  18679. <change type="feature">
  18680. <para lang="ru">
  18681. теперь nginx возвращает код 405 для метода POST при запросе статического
  18682. файла, только если файл существует.
  18683. </para>
  18684. <para lang="en">
  18685. now nginx returns the 405 status code for POST method requesting a static file
  18686. only if the file exists.
  18687. </para>
  18688. </change>

  18689. <change type="feature">
  18690. <para lang="ru">
  18691. директива proxy_ssl_session_reuse.
  18692. </para>
  18693. <para lang="en">
  18694. the "proxy_ssl_session_reuse" directive.
  18695. </para>
  18696. </change>

  18697. <change type="bugfix">
  18698. <para lang="ru">
  18699. после перенаправления запроса с помощью "X-Accel-Redirect"
  18700. директива proxy_pass без URI могла использовать оригинальный запрос.
  18701. </para>
  18702. <para lang="en">
  18703. a "proxy_pass" directive without URI part might use original request
  18704. after the "X-Accel-Redirect" redirection was used.
  18705. </para>
  18706. </change>

  18707. <change type="bugfix">
  18708. <para lang="ru">
  18709. если у каталога были права доступа только на поиск файлов
  18710. и первый индексный файл отсутствовал, то nginx возвращал ошибку 500.
  18711. </para>
  18712. <para lang="en">
  18713. if a directory has search only rights and the first index file was absent,
  18714. then nginx returned the 500 status code.
  18715. </para>
  18716. </change>

  18717. <change type="bugfix">
  18718. <para lang="ru">
  18719. ошибок во вложенных location'ах;
  18720. ошибки появились в 0.7.1.
  18721. </para>
  18722. <para lang="en">
  18723. in inclusive locations;
  18724. the bugs had appeared in 0.7.1.
  18725. </para>
  18726. </change>

  18727. </changes>


  18728. <changes ver="0.7.10" date="2008-08-13">

  18729. <change type="bugfix">
  18730. <para lang="ru">
  18731. ошибок в директивах addition_types, charset_types,
  18732. gzip_types, ssi_types, sub_filter_types и xslt_types;
  18733. ошибки появились в 0.7.9.
  18734. </para>
  18735. <para lang="en">
  18736. in the "addition_types", "charset_types",
  18737. "gzip_types", "ssi_types", "sub_filter_types", and "xslt_types" directives;
  18738. the bugs had appeared in 0.7.9.
  18739. </para>
  18740. </change>

  18741. <change type="bugfix">
  18742. <para lang="ru">
  18743. рекурсивной error_page для 500 ошибки.
  18744. </para>
  18745. <para lang="en">
  18746. of recursive error_page for 500 status code.
  18747. </para>
  18748. </change>

  18749. <change type="bugfix">
  18750. <para lang="ru">
  18751. теперь модуль ngx_http_realip_module устанавливает адрес не для
  18752. всего keepalive соединения, а для каждого запроса по этому соединению.
  18753. </para>
  18754. <para lang="en">
  18755. now the ngx_http_realip_module sets address not for whole keepalive connection,
  18756. but for each request passed via the connection.
  18757. </para>
  18758. </change>

  18759. </changes>


  18760. <changes ver="0.7.9" date="2008-08-12">

  18761. <change type="change">
  18762. <para lang="ru">
  18763. теперь ngx_http_charset_module по умолчанию работает со следующими MIME-типами:
  18764. text/html, text/css, text/xml, text/plain, text/vnd.wap.wml,
  18765. application/x-javascript и application/rss+xml.
  18766. </para>
  18767. <para lang="en">
  18768. now ngx_http_charset_module works by default with following MIME types:
  18769. text/html, text/css, text/xml, text/plain, text/vnd.wap.wml,
  18770. application/x-javascript, and application/rss+xml.
  18771. </para>
  18772. </change>

  18773. <change type="feature">
  18774. <para lang="ru">
  18775. директивы charset_types и addition_types.
  18776. </para>
  18777. <para lang="en">
  18778. the "charset_types" and "addition_types" directives.
  18779. </para>
  18780. </change>

  18781. <change type="feature">
  18782. <para lang="ru">
  18783. теперь директивы gzip_types, ssi_types и sub_filter_types используют хэш.
  18784. </para>
  18785. <para lang="en">
  18786. now the "gzip_types", "ssi_types", and "sub_filter_types" directives use hash.
  18787. </para>
  18788. </change>

  18789. <change type="feature">
  18790. <para lang="ru">
  18791. модуль ngx_cpp_test_module.
  18792. </para>
  18793. <para lang="en">
  18794. the ngx_cpp_test_module.
  18795. </para>
  18796. </change>

  18797. <change type="feature">
  18798. <para lang="ru">
  18799. директива expires поддерживает суточное время.
  18800. </para>
  18801. <para lang="en">
  18802. the "expires" directive supports daily time.
  18803. </para>
  18804. </change>

  18805. <change type="feature">
  18806. <para lang="ru">
  18807. улучшения и исправления в модуле ngx_http_xslt_module.<br/>
  18808. Спасибо Денису Латыпову и Максиму Дунину.
  18809. </para>
  18810. <para lang="en">
  18811. the ngx_http_xslt_module improvements and bug fixing.<br/>
  18812. Thanks to Denis F. Latypoff and Maxim Dounin.
  18813. </para>
  18814. </change>

  18815. <change type="bugfix">
  18816. <para lang="ru">
  18817. директива log_not_found не работала при поиске индексных файлов.
  18818. </para>
  18819. <para lang="en">
  18820. the "log_not_found" directive did not work for index files tests.
  18821. </para>
  18822. </change>

  18823. <change type="bugfix">
  18824. <para lang="ru">
  18825. HTTPS-соединения могли зависнуть,
  18826. если использовались методы kqueue, epoll, rtsig или eventport;
  18827. ошибка появилась в 0.7.7.
  18828. </para>
  18829. <para lang="en">
  18830. HTTPS connections might hang,
  18831. if kqueue, epoll, rtsig, or eventport methods were used;
  18832. the bug had appeared in 0.7.7.
  18833. </para>
  18834. </change>

  18835. <change type="bugfix">
  18836. <para lang="ru">
  18837. если в директивах server_name, valid_referers и map
  18838. использовалась маска вида "*.domain.tld" и при этом полное имя
  18839. вида "domain.tld" не было описано, то это имя попадало под маску;
  18840. ошибка появилась в 0.3.18.
  18841. </para>
  18842. <para lang="en">
  18843. if the "server_name", "valid_referers", and "map" directives used
  18844. an "*.domain.tld" wildcard and exact name "domain.tld" was not set,
  18845. then the exact name was matched by the wildcard;
  18846. the bug had appeared in 0.3.18.
  18847. </para>
  18848. </change>

  18849. </changes>


  18850. <changes ver="0.7.8" date="2008-08-04">

  18851. <change type="feature">
  18852. <para lang="ru">
  18853. модуль ngx_http_xslt_module.
  18854. </para>
  18855. <para lang="en">
  18856. the ngx_http_xslt_module.
  18857. </para>
  18858. </change>

  18859. <change type="feature">
  18860. <para lang="ru">
  18861. переменные "$arg_...".
  18862. </para>
  18863. <para lang="en">
  18864. the "$arg_..." variables.
  18865. </para>
  18866. </change>

  18867. <change type="feature">
  18868. <para lang="ru">
  18869. поддержка directio в Solaris.<br/>
  18870. Спасибо Ivan Debnar.
  18871. </para>
  18872. <para lang="en">
  18873. Solaris directio support.<br/>
  18874. Thanks to Ivan Debnar.
  18875. </para>
  18876. </change>

  18877. <change type="bugfix">
  18878. <para lang="ru">
  18879. теперь, если FastCGI-сервер присылает строку "Location" в заголовке ответа
  18880. без строки статуса, то nginx использует код статуса 302.<br/>
  18881. Спасибо Максиму Дунину.
  18882. </para>
  18883. <para lang="en">
  18884. now if FastCGI server sends a "Location" header line without status line,
  18885. then nginx uses 302 status code.<br/>
  18886. Thanks to Maxim Dounin.
  18887. </para>
  18888. </change>

  18889. </changes>


  18890. <changes ver="0.7.7" date="2008-07-30">

  18891. <change type="change">
  18892. <para lang="ru">
  18893. теперь ошибка EAGAIN при вызове connect() не считается временной.
  18894. </para>
  18895. <para lang="en">
  18896. now the EAGAIN error returned by connect() is not considered as temporary error.
  18897. </para>
  18898. </change>

  18899. <change type="change">
  18900. <para lang="ru">
  18901. значением переменной $ssl_client_cert теперь является сертификат,
  18902. перед каждой строкой которого, кроме первой, вставляется символ табуляции;
  18903. неизменённый сертификат доступен через переменную $ssl_client_raw_cert.
  18904. </para>
  18905. <para lang="en">
  18906. now the $ssl_client_cert variable value is a certificate with TAB character
  18907. intended before each line except first one;
  18908. an unchanged certificate is available in the $ssl_client_raw_cert variable.
  18909. </para>
  18910. </change>

  18911. <change type="feature">
  18912. <para lang="ru">
  18913. параметр ask директивы ssl_verify_client.
  18914. </para>
  18915. <para lang="en">
  18916. the "ask" parameter in the "ssl_verify_client" directive.
  18917. </para>
  18918. </change>

  18919. <change type="feature">
  18920. <para lang="ru">
  18921. улучшения в обработке byte-range.<br/>
  18922. Спасибо Максиму Дунину.
  18923. </para>
  18924. <para lang="en">
  18925. byte-range processing improvements.<br/>
  18926. Thanks to Maxim Dounin.
  18927. </para>
  18928. </change>

  18929. <change type="feature">
  18930. <para lang="ru">
  18931. директива directio.<br/>
  18932. Спасибо Jiang Hong.
  18933. </para>
  18934. <para lang="en">
  18935. the "directio" directive.<br/>
  18936. Thanks to Jiang Hong.
  18937. </para>
  18938. </change>

  18939. <change type="feature">
  18940. <para lang="ru">
  18941. поддержка sendfile() в MacOSX 10.5.
  18942. </para>
  18943. <para lang="en">
  18944. MacOSX 10.5 sendfile() support.
  18945. </para>
  18946. </change>

  18947. <change type="bugfix">
  18948. <para lang="ru">
  18949. в MacOSX и Cygwin при проверке location'ов теперь делается сравнение
  18950. без учёта регистра символов;
  18951. однако, сравнение ограничено только однобайтными locale'ями.
  18952. </para>
  18953. <para lang="en">
  18954. now in MacOSX and Cygwin locations are tested in case insensitive mode;
  18955. however, the compare is provided by single-byte locales only.
  18956. </para>
  18957. </change>

  18958. <change type="bugfix">
  18959. <para lang="ru">
  18960. соединения почтового прокси-сервера зависали в режиме SSL,
  18961. если использовались методы select, poll или /dev/poll.
  18962. </para>
  18963. <para lang="en">
  18964. mail proxy SSL connections hanged,
  18965. if select, poll, or /dev/poll methods were used.
  18966. </para>
  18967. </change>

  18968. <change type="bugfix">
  18969. <para lang="ru">
  18970. ошибки при использовании кодировки UTF-8 в ngx_http_autoindex_module.
  18971. </para>
  18972. <para lang="en">
  18973. UTF-8 encoding usage in the ngx_http_autoindex_module.
  18974. </para>
  18975. </change>

  18976. </changes>


  18977. <changes ver="0.7.6" date="2008-07-07">

  18978. <change type="bugfix">
  18979. <para lang="ru">
  18980. теперь при использовании переменных в директиве access_log
  18981. всегда проверяется существовании root'а для запроса.
  18982. </para>
  18983. <para lang="en">
  18984. now if variables are used in the "access_log" directive
  18985. a request root existence is always tested.
  18986. </para>
  18987. </change>

  18988. <change type="bugfix">
  18989. <para lang="ru">
  18990. модуль ngx_http_flv_module не поддерживал несколько значений в
  18991. аргументах запроса.
  18992. </para>
  18993. <para lang="en">
  18994. the ngx_http_flv_module did not support several values in a query string.
  18995. </para>
  18996. </change>

  18997. </changes>


  18998. <changes ver="0.7.5" date="2008-07-01">

  18999. <change>
  19000. <para lang="ru">
  19001. Исправления в поддержке переменных в директиве access_log;
  19002. ошибки появились в 0.7.4.
  19003. </para>
  19004. <para lang="en">
  19005. Bugfixes in variables support in the "access_log" directive;
  19006. the bugs had appeared in 0.7.4.
  19007. </para>
  19008. </change>

  19009. <change type="bugfix">
  19010. <para lang="ru">
  19011. nginx не собирался с параметром --without-http_gzip_module;
  19012. ошибка появилась в 0.7.3.<br/>
  19013. Спасибо Кириллу Коринскому.
  19014. </para>
  19015. <para lang="en">
  19016. nginx could not be built --without-http_gzip_module;
  19017. the bug had appeared in 0.7.3.<br/>
  19018. Thanks to Kirill A. Korinskiy.
  19019. </para>
  19020. </change>

  19021. <change type="bugfix">
  19022. <para lang="ru">
  19023. при совместном использовании sub_filter и SSI
  19024. ответы могли передаваться неверно.
  19025. </para>
  19026. <para lang="en">
  19027. if sub_filter and SSI were used together, then responses might
  19028. were transferred incorrectly.
  19029. </para>
  19030. </change>

  19031. </changes>


  19032. <changes ver="0.7.4" date="2008-06-30">

  19033. <change type="feature">
  19034. <para lang="ru">
  19035. директива access_log поддерживает переменные.
  19036. </para>
  19037. <para lang="en">
  19038. variables support in the "access_log" directive.
  19039. </para>
  19040. </change>

  19041. <change type="feature">
  19042. <para lang="ru">
  19043. директива open_log_file_cache.
  19044. </para>
  19045. <para lang="en">
  19046. the "open_log_file_cache" directive.
  19047. </para>
  19048. </change>

  19049. <change type="feature">
  19050. <para lang="ru">
  19051. ключ -g.
  19052. </para>
  19053. <para lang="en">
  19054. the -g switch.
  19055. </para>
  19056. </change>

  19057. <change type="feature">
  19058. <para lang="ru">
  19059. поддержка строки "Expect" в заголовке запроса.
  19060. </para>
  19061. <para lang="en">
  19062. the "Expect" request header line support.
  19063. </para>
  19064. </change>

  19065. <change type="bugfix">
  19066. <para lang="ru">
  19067. большие включения в SSI могли передавались не полностью.
  19068. </para>
  19069. <para lang="en">
  19070. large SSI inclusions might be truncated.
  19071. </para>
  19072. </change>

  19073. </changes>


  19074. <changes ver="0.7.3" date="2008-06-23">

  19075. <change type="change">
  19076. <para lang="ru">
  19077. MIME-тип для расширения rss изменён на "application/rss+xml".
  19078. </para>
  19079. <para lang="en">
  19080. the "rss" extension MIME type has been changed to "application/rss+xml".
  19081. </para>
  19082. </change>

  19083. <change type="change">
  19084. <para lang="ru">
  19085. теперь директива "gzip_vary on" выдаёт строку
  19086. <nobr>"Vary: Accept-Encoding"</nobr>
  19087. в заголовке ответа и для несжатых ответов.
  19088. </para>
  19089. <para lang="en">
  19090. now the "gzip_vary" directive turned on issues
  19091. a <nobr>"Vary: Accept-Encoding"</nobr>
  19092. header line for uncompressed responses too.
  19093. </para>
  19094. </change>

  19095. <change type="feature">
  19096. <para lang="ru">
  19097. теперь при использовании протокола "https://" в директиве rewrite
  19098. автоматически делается редирект.
  19099. </para>
  19100. <para lang="en">
  19101. now the "rewrite" directive does a redirect automatically
  19102. if the "https://" protocol is used.
  19103. </para>
  19104. </change>

  19105. <change type="bugfix">
  19106. <para lang="ru">
  19107. директива proxy_pass не работала с протоколом HTTPS;
  19108. ошибка появилась в 0.6.9.
  19109. </para>
  19110. <para lang="en">
  19111. the "proxy_pass" directive did not work with the HTTPS protocol;
  19112. the bug had appeared in 0.6.9.
  19113. </para>
  19114. </change>

  19115. </changes>


  19116. <changes ver="0.7.2" date="2008-06-16">

  19117. <change type="feature">
  19118. <para lang="ru">
  19119. теперь nginx поддерживает шифры с обменом EDH-ключами.
  19120. </para>
  19121. <para lang="en">
  19122. now nginx supports EDH key exchange ciphers.
  19123. </para>
  19124. </change>

  19125. <change type="feature">
  19126. <para lang="ru">
  19127. директива ssl_dhparam.
  19128. </para>
  19129. <para lang="en">
  19130. the "ssl_dhparam" directive.
  19131. </para>
  19132. </change>

  19133. <change type="feature">
  19134. <para lang="ru">
  19135. переменная $ssl_client_cert.<br/>
  19136. Спасибо Manlio Perillo.
  19137. </para>
  19138. <para lang="en">
  19139. the $ssl_client_cert variable.<br/>
  19140. Thanks to Manlio Perillo.
  19141. </para>
  19142. </change>

  19143. <change type="bugfix">
  19144. <para lang="ru">
  19145. после изменения URI с помощью директивы rewrite nginx не искал новый location;
  19146. ошибка появилась в 0.7.1.<br/>
  19147. Спасибо Максиму Дунину.
  19148. </para>
  19149. <para lang="en">
  19150. after changing URI via a "rewrite" directive nginx did not search
  19151. a new location;
  19152. the bug had appeared in 0.7.1.<br/>
  19153. Thanks to Maxim Dounin.
  19154. </para>
  19155. </change>

  19156. <change type="bugfix">
  19157. <para lang="ru">
  19158. nginx не собирался без библиотеки PCRE;
  19159. ошибка появилась в 0.7.1.
  19160. </para>
  19161. <para lang="en">
  19162. nginx could not be built without PCRE library;
  19163. the bug had appeared in 0.7.1.
  19164. </para>
  19165. </change>

  19166. <change type="bugfix">
  19167. <para lang="ru">
  19168. при редиректе запроса к каталогу с добавлением слэша nginx
  19169. не добавлял аргументы из оригинального запроса.
  19170. </para>
  19171. <para lang="en">
  19172. when a request to a directory was redirected with the slash added,
  19173. nginx dropped a query string from the original request.
  19174. </para>
  19175. </change>

  19176. </changes>


  19177. <changes ver="0.7.1" date="2008-05-26">

  19178. <change type="change">
  19179. <para lang="ru">
  19180. теперь поиск location'а делается с помощью дерева.
  19181. </para>
  19182. <para lang="en">
  19183. now locations are searched in a tree.
  19184. </para>
  19185. </change>

  19186. <change type="change">
  19187. <para lang="ru">
  19188. директива optimize_server_names упразднена в связи с появлением
  19189. директивы server_name_in_redirect.
  19190. </para>
  19191. <para lang="en">
  19192. the "optimize_server_names" directive was canceled
  19193. due to the "server_name_in_redirect" directive introduction.
  19194. </para>
  19195. </change>

  19196. <change type="change">
  19197. <para lang="ru">
  19198. некоторые давно устаревшие директивы больше не поддерживаются.
  19199. </para>
  19200. <para lang="en">
  19201. some long deprecated directives are not supported anymore.
  19202. </para>
  19203. </change>

  19204. <change type="change">
  19205. <para lang="ru">
  19206. параметр "none" в директиве ssl_session_cache;
  19207. теперь этот параметр используется по умолчанию.<br/>
  19208. Спасибо Rob Mueller.
  19209. </para>
  19210. <para lang="en">
  19211. the "none" parameter in the "ssl_session_cache" directive;
  19212. now this is default parameter.<br/>
  19213. Thanks to Rob Mueller.
  19214. </para>
  19215. </change>

  19216. <change type="bugfix">
  19217. <para lang="ru">
  19218. рабочие процессы могли не реагировать на сигналы переконфигурации
  19219. и ротации логов.
  19220. </para>
  19221. <para lang="en">
  19222. worker processes might not catch reconfiguration and log rotation signals.
  19223. </para>
  19224. </change>

  19225. <change type="bugfix">
  19226. <para lang="ru">
  19227. nginx не собирался на последних Fedora 9 Linux.<br/>
  19228. Спасибо Roxis.
  19229. </para>
  19230. <para lang="en">
  19231. nginx could not be built on latest Fedora 9 Linux.<br/>
  19232. Thanks to Roxis.
  19233. </para>
  19234. </change>

  19235. </changes>


  19236. <changes ver="0.7.0" date="2008-05-19">

  19237. <change type="change">
  19238. <para lang="ru">
  19239. теперь символы 0x00-0x1F, '"' и '\' в access_log записываются в виде \xXX.<br/>
  19240. Спасибо Максиму Дунину.
  19241. </para>
  19242. <para lang="en">
  19243. now the 0x00-0x1F, '"' and '\' characters are escaped as \xXX in an
  19244. access_log.<br/>
  19245. Thanks to Maxim Dounin.
  19246. </para>
  19247. </change>

  19248. <change type="change">
  19249. <para lang="ru">
  19250. теперь nginx разрешает несколько строк "Host" в заголовке запроса.
  19251. </para>
  19252. <para lang="en">
  19253. now nginx allows several "Host" request header line.
  19254. </para>
  19255. </change>

  19256. <change type="feature">
  19257. <para lang="ru">
  19258. директива expires поддерживает флаг modified.
  19259. </para>
  19260. <para lang="en">
  19261. the "modified" flag in the "expires" directive.
  19262. </para>
  19263. </change>

  19264. <change type="feature">
  19265. <para lang="ru">
  19266. переменные $uid_got и $uid_set можно использовать на любой стадии обработки
  19267. запроса.
  19268. </para>
  19269. <para lang="en">
  19270. the $uid_got and $uid_set variables may be used at any request processing stage.
  19271. </para>
  19272. </change>

  19273. <change type="feature">
  19274. <para lang="ru">
  19275. переменная $hostname.<br/>
  19276. Спасибо Андрею Нигматулину.
  19277. </para>
  19278. <para lang="en">
  19279. the $hostname variable.<br/>
  19280. Thanks to Andrei Nigmatulin.
  19281. </para>
  19282. </change>

  19283. <change type="feature">
  19284. <para lang="ru">
  19285. поддержка DESTDIR.<br/>
  19286. Спасибо Todd A. Fisher и Andras Voroskoi.
  19287. </para>
  19288. <para lang="en">
  19289. DESTDIR support.<br/>
  19290. Thanks to Todd A. Fisher and Andras Voroskoi.
  19291. </para>
  19292. </change>

  19293. <change type="bugfix">
  19294. <para lang="ru">
  19295. при использовании keepalive на Linux
  19296. в рабочем процессе мог произойти segmentation fault.
  19297. </para>
  19298. <para lang="en">
  19299. a segmentation fault might occur in worker process on Linux,
  19300. if keepalive was enabled.
  19301. </para>
  19302. </change>

  19303. </changes>


  19304. <changes ver="0.6.31" date="2008-05-12">

  19305. <change type="bugfix">
  19306. <para lang="ru">
  19307. nginx не обрабатывал ответ FastCGI-сервера, если строка заголовка ответа была
  19308. в конце записи FastCGI;
  19309. ошибка появилась в 0.6.2.<br/>
  19310. Спасибо Сергею Серову.
  19311. </para>
  19312. <para lang="en">
  19313. nginx did not process FastCGI response
  19314. if header was at the end of FastCGI record;
  19315. the bug had appeared in 0.6.2.<br/>
  19316. Thanks to Sergey Serov.
  19317. </para>
  19318. </change>

  19319. <change type="bugfix">
  19320. <para lang="ru">
  19321. при удалении файла и использовании директивы open_file_cache_errors off
  19322. в рабочем процессе мог произойти segmentation fault.
  19323. </para>
  19324. <para lang="en">
  19325. a segmentation fault might occur in worker process if a file was deleted
  19326. and the "open_file_cache_errors" directive was off.
  19327. </para>
  19328. </change>

  19329. </changes>


  19330. <changes ver="0.6.30" date="2008-04-29">

  19331. <change type="change">
  19332. <para lang="ru">
  19333. теперь, если маске, заданной в директиве include, не соответствует
  19334. ни один файл, то nginx не выдаёт ошибку.
  19335. </para>
  19336. <para lang="en">
  19337. now if an "include" directive pattern does not match any file,
  19338. then nginx does not issue an error.
  19339. </para>
  19340. </change>

  19341. <change type="feature">
  19342. <para lang="ru">
  19343. теперь время в директивах можно задавать без пробела, например, "1h50m".
  19344. </para>
  19345. <para lang="en">
  19346. now the time in directives may be specified without spaces,
  19347. for example, "1h50m".
  19348. </para>
  19349. </change>

  19350. <change type="bugfix">
  19351. <para lang="ru">
  19352. утечек памяти, если директива ssl_verify_client имела значение on.<br/>
  19353. Спасибо Chavelle Vincent.
  19354. </para>
  19355. <para lang="en">
  19356. memory leaks if the "ssl_verify_client" directive was on.<br/>
  19357. Thanks to Chavelle Vincent.
  19358. </para>
  19359. </change>

  19360. <change type="bugfix">
  19361. <para lang="ru">
  19362. директива sub_filter могла вставлять заменяемый текст в вывод.
  19363. </para>
  19364. <para lang="en">
  19365. the "sub_filter" directive might set text to change into output.
  19366. </para>
  19367. </change>

  19368. <change type="bugfix">
  19369. <para lang="ru">
  19370. директива error_page не воспринимала параметры в перенаправляемом URI.
  19371. </para>
  19372. <para lang="en">
  19373. the "error_page" directive did not take into account arguments in
  19374. redirected URI.
  19375. </para>
  19376. </change>

  19377. <change type="bugfix">
  19378. <para lang="ru">
  19379. теперь при сборке с Cygwin nginx всегда открывает файлы в бинарном режиме.
  19380. </para>
  19381. <para lang="en">
  19382. now nginx always opens files in binary mode under Cygwin.
  19383. </para>
  19384. </change>

  19385. <change type="bugfix">
  19386. <para lang="ru">
  19387. nginx не собирался под OpenBSD;
  19388. ошибка появилась в 0.6.15.
  19389. </para>
  19390. <para lang="en">
  19391. nginx could not be built on OpenBSD;
  19392. the bug had appeared in 0.6.15.
  19393. </para>
  19394. </change>

  19395. </changes>


  19396. <changes ver="0.6.29" date="2008-03-18">

  19397. <change type="feature">
  19398. <para lang="ru">
  19399. модуль ngx_google_perftools_module.
  19400. </para>
  19401. <para lang="en">
  19402. the ngx_google_perftools_module.
  19403. </para>
  19404. </change>

  19405. <change type="bugfix">
  19406. <para lang="ru">
  19407. модуль ngx_http_perl_module не собирался на 64-битных платформах;
  19408. ошибка появилась в 0.6.27.
  19409. </para>
  19410. <para lang="en">
  19411. the ngx_http_perl_module could not be built on 64-bit platforms;
  19412. the bug had appeared in 0.6.27.
  19413. </para>
  19414. </change>

  19415. </changes>


  19416. <changes ver="0.6.28" date="2008-03-13">

  19417. <change type="bugfix">
  19418. <para lang="ru">
  19419. метод rtsig не собирался;
  19420. ошибка появилась в 0.6.27.
  19421. </para>
  19422. <para lang="en">
  19423. the rtsig method could not be built;
  19424. the bug had appeared in 0.6.27.
  19425. </para>
  19426. </change>

  19427. </changes>


  19428. <changes ver="0.6.27" date="2008-03-12">

  19429. <change type="change">
  19430. <para lang="ru">
  19431. теперь на Linux 2.6.18+ по умолчанию не собирается метод rtsig.
  19432. </para>
  19433. <para lang="en">
  19434. now by default the rtsig method is not built on <nobr>Linux 2.6.18+.</nobr>
  19435. </para>
  19436. </change>

  19437. <change type="change">
  19438. <para lang="ru">
  19439. теперь при перенаправлении запроса в именованный location с помощью
  19440. директивы error_page метод запроса не изменяется.
  19441. </para>
  19442. <para lang="en">
  19443. now a request method is not changed while redirection to a named location
  19444. via an "error_page" directive.
  19445. </para>
  19446. </change>

  19447. <change type="feature">
  19448. <para lang="ru">
  19449. директивы resolver и resolver_timeout в SMTP прокси-сервере.
  19450. </para>
  19451. <para lang="en">
  19452. the "resolver" and "resolver_timeout" directives in SMTP proxy.
  19453. </para>
  19454. </change>

  19455. <change type="feature">
  19456. <para lang="ru">
  19457. директива post_action поддерживает именованные location'ы.
  19458. </para>
  19459. <para lang="en">
  19460. the "post_action" directive supports named locations.
  19461. </para>
  19462. </change>

  19463. <change type="bugfix">
  19464. <para lang="ru">
  19465. при перенаправлении запроса из location'а c обработчиком proxy, FastCGI
  19466. или memcached в именованный location со статическим обработчиком
  19467. в рабочем процессе происходил segmentation fault.
  19468. </para>
  19469. <para lang="en">
  19470. a segmentation fault occurred in worker process,
  19471. if a request was redirected from proxy, FastCGI, or memcached location
  19472. to static named locations.
  19473. </para>
  19474. </change>

  19475. <change type="bugfix">
  19476. <para lang="ru">
  19477. браузеры не повторяли SSL handshake, если при первом handshake
  19478. не оказалось правильного клиентского сертификата.
  19479. <br/>
  19480. Спасибо Александру Инюхину.
  19481. </para>
  19482. <para lang="en">
  19483. browsers did not repeat SSL handshake if there is no valid client certificate
  19484. in first handshake.
  19485. <br/>
  19486. Thanks to Alexander V. Inyukhin.
  19487. </para>
  19488. </change>

  19489. <change type="bugfix">
  19490. <para lang="ru">
  19491. при перенаправлении ошибок 495-497 с помощью директивы error_page
  19492. без изменения кода ошибки nginx пытался выделить очень много памяти.
  19493. </para>
  19494. <para lang="en">
  19495. if response code 495-497 was redirected via an "error_page" directive
  19496. without code change, then nginx tried to allocate too many memory.
  19497. </para>
  19498. </change>

  19499. <change type="bugfix">
  19500. <para lang="ru">
  19501. утечки памяти в долгоживущих небуфферизированных соединениях.
  19502. </para>
  19503. <para lang="en">
  19504. memory leak in long-lived non buffered connections.
  19505. </para>
  19506. </change>

  19507. <change type="bugfix">
  19508. <para lang="ru">
  19509. утечки памяти в resolver'е.
  19510. </para>
  19511. <para lang="en">
  19512. memory leak in resolver.
  19513. </para>
  19514. </change>

  19515. <change type="bugfix">
  19516. <para lang="ru">
  19517. при перенаправлении запроса из location'а c обработчиком proxy
  19518. в другой location с обработчиком proxy
  19519. в рабочем процессе происходил segmentation fault.
  19520. </para>
  19521. <para lang="en">
  19522. a segmentation fault occurred in worker process,
  19523. if a request was redirected from proxy, FastCGI, or memcached location
  19524. to static named locations.
  19525. </para>
  19526. </change>

  19527. <change type="bugfix">
  19528. <para lang="ru">
  19529. ошибки в кэшировании переменных $proxy_host и $proxy_port.<br/>
  19530. Спасибо Сергею Боченкову.
  19531. </para>
  19532. <para lang="en">
  19533. in the $proxy_host and $proxy_port variables caching.<br/>
  19534. Thanks to Sergey Bochenkov.
  19535. </para>
  19536. </change>

  19537. <change type="bugfix">
  19538. <para lang="ru">
  19539. директива proxy_pass с переменными использовала порт, описанной в другой
  19540. директиве proxy_pass без переменных, но с таким же именем хоста.<br/>
  19541. Спасибо Сергею Боченкову.
  19542. </para>
  19543. <para lang="en">
  19544. a "proxy_pass" directive with variables used incorrectly the same port
  19545. as in another "proxy_pass" directive with the same host name
  19546. and without variables.<br/>
  19547. Thanks to Sergey Bochenkov.
  19548. </para>
  19549. </change>

  19550. <change type="bugfix">
  19551. <para lang="ru">
  19552. во время переконфигурации на некоторых 64-битном платформах в лог
  19553. записывался alert "sendmsg() failed (9: Bad file descriptor)".
  19554. </para>
  19555. <para lang="en">
  19556. an alert "sendmsg() failed (9: Bad file descriptor)" on some 64-bit platforms
  19557. while reconfiguration.
  19558. </para>
  19559. </change>

  19560. <change type="bugfix">
  19561. <para lang="ru">
  19562. при повторном использовании в SSI пустого block'а в качестве заглушки
  19563. в рабочем процессе происходил segmentation fault.
  19564. </para>
  19565. <para lang="en">
  19566. a segmentation fault occurred in worker process,
  19567. if empty stub block was used second time in SSI.
  19568. </para>
  19569. </change>

  19570. <change type="bugfix">
  19571. <para lang="ru">
  19572. ошибки при копировании части URI, содержащего экранированные символы,
  19573. в аргументы.
  19574. </para>
  19575. <para lang="en">
  19576. in copying URI part contained escaped symbols into arguments.
  19577. </para>
  19578. </change>

  19579. </changes>


  19580. <changes ver="0.6.26" date="2008-02-11">

  19581. <change type="bugfix">
  19582. <para lang="ru">
  19583. директивы proxy_store и fastcgi_store не проверяли длину ответа.
  19584. </para>
  19585. <para lang="en">
  19586. the "proxy_store" and "fastcgi_store" directives did not check
  19587. a response length.
  19588. </para>
  19589. </change>

  19590. <change type="bugfix">
  19591. <para lang="ru">
  19592. при использовании большого значения в директиве expires
  19593. в рабочем процессе происходил segmentation fault.<br/>
  19594. Спасибо Joaquin Cuenca Abela.
  19595. </para>
  19596. <para lang="en">
  19597. a segmentation fault occurred in worker process,
  19598. if big value was used in a "expires" directive.<br/>
  19599. Thanks to Joaquin Cuenca Abela.
  19600. </para>
  19601. </change>

  19602. <change type="bugfix">
  19603. <para lang="ru">
  19604. nginx неверно определял длину строки кэша на <nobr>Pentium 4.</nobr><br/>
  19605. Спасибо Геннадию Махомеду.
  19606. </para>
  19607. <para lang="en">
  19608. nginx incorrectly detected cache line size on Pentium 4.<br/>
  19609. Thanks to Gena Makhomed.
  19610. </para>
  19611. </change>

  19612. <change type="bugfix">
  19613. <para lang="ru">
  19614. в проксированных подзапросах и подзапросах к FastCGI-серверу
  19615. вместо метода GET использовался оригинальный метод клиента.
  19616. </para>
  19617. <para lang="en">
  19618. in proxied or FastCGI subrequests a client original method was used
  19619. instead of the GET method.
  19620. </para>
  19621. </change>

  19622. <change type="bugfix">
  19623. <para lang="ru">
  19624. утечки сокетов в режиме HTTPS при использовании отложенного accept'а.<br/>
  19625. Спасибо Ben Maurer.
  19626. </para>
  19627. <para lang="en">
  19628. socket leak in HTTPS mode if deferred accept was used.<br/>
  19629. Thanks to Ben Maurer.
  19630. </para>
  19631. </change>

  19632. <change type="bugfix">
  19633. <para lang="ru">
  19634. nginx выдавал ошибочное сообщение "SSL_shutdown() failed (SSL: )";
  19635. ошибка появилась в 0.6.23.
  19636. </para>
  19637. <para lang="en">
  19638. nginx issued the bogus error message "SSL_shutdown() failed (SSL: )";
  19639. the bug had appeared in 0.6.23.
  19640. </para>
  19641. </change>

  19642. <change type="bugfix">
  19643. <para lang="ru">
  19644. при использовании HTTPS запросы могли завершаться с ошибкой "bad write retry";
  19645. ошибка появилась в 0.6.23.
  19646. </para>
  19647. <para lang="en">
  19648. in HTTPS mode requests might fail with the "bad write retry" error;
  19649. the bug had appeared in 0.6.23.
  19650. </para>
  19651. </change>

  19652. </changes>


  19653. <changes ver="0.6.25" date="2008-01-08">

  19654. <change type="change">
  19655. <para lang="ru">
  19656. вместо специального параметра "*" в директиве server_name теперь
  19657. используется директива server_name_in_redirect.
  19658. </para>
  19659. <para lang="en">
  19660. now the "server_name_in_redirect" directive is used instead of
  19661. the "server_name" directive's special "*" parameter.
  19662. </para>
  19663. </change>

  19664. <change type="change">
  19665. <para lang="ru">
  19666. в качестве основного имени в директиве server_name теперь
  19667. можно использовать имена с масками и регулярными выражениями.
  19668. </para>
  19669. <para lang="en">
  19670. now wildcard and regex names can be used as main name in
  19671. a "server_name" directive.
  19672. </para>
  19673. </change>

  19674. <change type="change">
  19675. <para lang="ru">
  19676. директива satisfy_any заменена директивой satisfy.
  19677. </para>
  19678. <para lang="en">
  19679. the "satisfy_any" directive was replaced by the "satisfy" directive.
  19680. </para>
  19681. </change>

  19682. <change type="workaround">
  19683. <para lang="ru">
  19684. после переконфигурации старые рабочие процесс могли сильно нагружать процессор
  19685. при запуске под Linux OpenVZ.
  19686. </para>
  19687. <para lang="en">
  19688. old worker processes might hog CPU after reconfiguration if they was run
  19689. under Linux OpenVZ.
  19690. </para>
  19691. </change>

  19692. <change type="feature">
  19693. <para lang="ru">
  19694. директива min_delete_depth.
  19695. </para>
  19696. <para lang="en">
  19697. the "min_delete_depth" directive.
  19698. </para>
  19699. </change>

  19700. <change type="bugfix">
  19701. <para lang="ru">
  19702. методы COPY и MOVE не работали с одиночными файлами.
  19703. </para>
  19704. <para lang="en">
  19705. the COPY and MOVE methods did not work with single files.
  19706. </para>
  19707. </change>

  19708. <change type="bugfix">
  19709. <para lang="ru">
  19710. модуль ngx_http_gzip_static_module не позволял работать модулю
  19711. ngx_http_dav_module;
  19712. ошибка появилась в 0.6.23.
  19713. </para>
  19714. <para lang="en">
  19715. the ngx_http_gzip_static_module did not allow the ngx_http_dav_module to work;
  19716. the bug had appeared in 0.6.23.
  19717. </para>
  19718. </change>

  19719. <change type="bugfix">
  19720. <para lang="ru">
  19721. утечки сокетов в режиме HTTPS при использовании отложенного accept'а.<br/>
  19722. Спасибо Ben Maurer.
  19723. </para>
  19724. <para lang="en">
  19725. socket leak in HTTPS mode if deferred accept was used.<br/>
  19726. Thanks to Ben Maurer.
  19727. </para>
  19728. </change>

  19729. <change type="bugfix">
  19730. <para lang="ru">
  19731. nginx не собирался без библиотеки PCRE;
  19732. ошибка появилась в 0.6.23.
  19733. </para>
  19734. <para lang="en">
  19735. nginx could not be built without PCRE library;
  19736. the bug had appeared in 0.6.23.
  19737. </para>
  19738. </change>

  19739. </changes>

  19740. <changes ver="0.6.24" date="2007-12-27">

  19741. <change type="bugfix">
  19742. <para lang="ru">
  19743. при использовании HTTPS в рабочем процессе мог произойти segmentation fault;
  19744. ошибка появилась в 0.6.23.
  19745. </para>
  19746. <para lang="en">
  19747. a segmentation fault might occur in worker process if HTTPS was used;
  19748. the bug had appeared in 0.6.23.
  19749. </para>
  19750. </change>

  19751. </changes>


  19752. <changes ver="0.6.23" date="2007-12-27">

  19753. <change type="change">
  19754. <para lang="ru">
  19755. параметр "off" в директиве ssl_session_cache;
  19756. теперь этот параметр используется по умолчанию.
  19757. </para>
  19758. <para lang="en">
  19759. the "off" parameter in the "ssl_session_cache" directive;
  19760. now this is default parameter.
  19761. </para>
  19762. </change>

  19763. <change type="change">
  19764. <para lang="ru">
  19765. директива open_file_cache_retest переименована в open_file_cache_valid.
  19766. </para>
  19767. <para lang="en">
  19768. the "open_file_cache_retest" directive was renamed
  19769. to the "open_file_cache_valid".
  19770. </para>
  19771. </change>

  19772. <change type="feature">
  19773. <para lang="ru">
  19774. директива open_file_cache_min_uses.
  19775. </para>
  19776. <para lang="en">
  19777. the "open_file_cache_min_uses" directive.
  19778. </para>
  19779. </change>

  19780. <change type="feature">
  19781. <para lang="ru">
  19782. модуль ngx_http_gzip_static_module.
  19783. </para>
  19784. <para lang="en">
  19785. the ngx_http_gzip_static_module.
  19786. </para>
  19787. </change>

  19788. <change type="feature">
  19789. <para lang="ru">
  19790. директива gzip_disable.
  19791. </para>
  19792. <para lang="en">
  19793. the "gzip_disable" directive.
  19794. </para>
  19795. </change>

  19796. <change type="feature">
  19797. <para lang="ru">
  19798. директиву memcached_pass можно использовать внутри блока if.
  19799. </para>
  19800. <para lang="en">
  19801. the "memcached_pass" directive may be used inside the "if" block.
  19802. </para>
  19803. </change>

  19804. <change type="bugfix">
  19805. <para lang="ru">
  19806. если внутри одного location'а использовались директивы "memcached_pass" и "if",
  19807. то в рабочем процессе происходил segmentation fault.
  19808. </para>
  19809. <para lang="en">
  19810. a segmentation fault occurred in worker process,
  19811. if the "memcached_pass" and "if" directives were used in the same location.
  19812. </para>
  19813. </change>

  19814. <change type="bugfix">
  19815. <para lang="ru">
  19816. если при использовании директивы satisfy_any on" были заданы директивы
  19817. не всех модулей доступа, то заданные директивы не проверялись.
  19818. </para>
  19819. <para lang="en">
  19820. if a "satisfy_any on" directive was used and not all access and auth modules
  19821. directives were set, then other given access and auth directives
  19822. were not tested;
  19823. </para>
  19824. </change>

  19825. <change type="bugfix">
  19826. <para lang="ru">
  19827. параметры, заданные регулярным выражением в директиве valid_referers,
  19828. не наследовалась с предыдущего уровня.
  19829. </para>
  19830. <para lang="en">
  19831. regex parameters in a "valid_referers" directive were not inherited
  19832. from previous level.
  19833. </para>
  19834. </change>

  19835. <change type="bugfix">
  19836. <para lang="ru">
  19837. директива post_action не работала, если запрос завершался с кодом 499.
  19838. </para>
  19839. <para lang="en">
  19840. a "post_action" directive did run if a request was completed
  19841. with 499 status code.
  19842. </para>
  19843. </change>

  19844. <change type="bugfix">
  19845. <para lang="ru">
  19846. оптимизация использования 16K буфера для SSL-соединения.<br/>
  19847. Спасибо Ben Maurer.
  19848. </para>
  19849. <para lang="en">
  19850. optimization of 16K buffer usage in a SSL connection.<br/>
  19851. Thanks to Ben Maurer.
  19852. </para>
  19853. </change>

  19854. <change type="bugfix">
  19855. <para lang="ru">
  19856. STARTTLS в режиме SMTP не работал.<br/>
  19857. Спасибо Олегу Мотиенко.
  19858. </para>
  19859. <para lang="en">
  19860. the STARTTLS in SMTP mode did not work.<br/>
  19861. Thanks to Oleg Motienko.
  19862. </para>
  19863. </change>

  19864. <change type="bugfix">
  19865. <para lang="ru">
  19866. при использовании HTTPS запросы могли завершаться с ошибкой "bad write retry";
  19867. ошибка появилась в 0.5.13.
  19868. </para>
  19869. <para lang="en">
  19870. in HTTPS mode requests might fail with the "bad write retry" error;
  19871. the bug had appeared in 0.5.13.
  19872. </para>
  19873. </change>

  19874. </changes>


  19875. <changes ver="0.6.22" date="2007-12-19">

  19876. <change type="change">
  19877. <para lang="ru">
  19878. теперь все методы модуля ngx_http_perl_module
  19879. возвращают значения, скопированные в память, выделенную perl'ом.
  19880. </para>
  19881. <para lang="en">
  19882. now all ngx_http_perl_module methods return values copied to perl's
  19883. allocated memory.
  19884. </para>
  19885. </change>

  19886. <change type="bugfix">
  19887. <para lang="ru">
  19888. если nginx был собран с модулем ngx_http_perl_module,
  19889. использовался perl до версии 5.8.6 и perl поддерживал потоки,
  19890. то во время переконфигурации основной процесс аварийно выходил;
  19891. ошибка появилась в 0.5.9.<br/>
  19892. Спасибо Борису Жмурову.
  19893. </para>
  19894. <para lang="en">
  19895. if nginx was built with ngx_http_perl_module,
  19896. the perl before 5.8.6 was used, and perl supported threads,
  19897. then during reconfiguration the master process aborted;
  19898. the bug had appeared in 0.5.9.<br/>
  19899. Thanks to Boris Zhmurov.
  19900. </para>
  19901. </change>

  19902. <change type="bugfix">
  19903. <para lang="ru">
  19904. в методы модуля ngx_http_perl_module
  19905. могли передаваться неверные результаты выделения в регулярных выражениях.
  19906. </para>
  19907. <para lang="en">
  19908. the ngx_http_perl_module methods may get invalid values of the regex captures.
  19909. </para>
  19910. </change>

  19911. <change type="bugfix">
  19912. <para lang="ru">
  19913. если метод $r->has_request_body() вызывался для запроса,
  19914. у которого небольшое тело запроса было уже полностью получено,
  19915. то в рабочем процессе происходил segmentation fault.
  19916. </para>
  19917. <para lang="en">
  19918. a segmentation fault occurred in worker process,
  19919. if the $r->has_request_body() method was called for a request
  19920. whose small request body was already received.
  19921. </para>
  19922. </change>

  19923. <change type="bugfix">
  19924. <para lang="ru">
  19925. large_client_header_buffers не освобождались перед переходом в состояние
  19926. keep-alive.<br/>
  19927. Спасибо Олександру Штепе.
  19928. </para>
  19929. <para lang="en">
  19930. large_client_header_buffers did not freed before going to keep-alive state.<br/>
  19931. Thanks to Olexander Shtepa.
  19932. </para>
  19933. </change>

  19934. <change type="bugfix">
  19935. <para lang="ru">
  19936. в переменной $upstream_addr не записывался последний адрес;
  19937. ошибка появилась в 0.6.18.
  19938. </para>
  19939. <para lang="en">
  19940. the last address was missed in the $upstream_addr variable;
  19941. the bug had appeared in 0.6.18.
  19942. </para>
  19943. </change>

  19944. <change type="bugfix">
  19945. <para lang="ru">
  19946. директива fastcgi_catch_stderr не возвращала ошибку;
  19947. теперь она возвращает ошибку 502, которую можно направить на следующий сервер
  19948. с помощью "fastcgi_next_upstream invalid_header".
  19949. </para>
  19950. <para lang="en">
  19951. the "fastcgi_catch_stderr" directive did return error code;
  19952. now it returns 502 code, that can be rerouted to a next server using
  19953. the "fastcgi_next_upstream invalid_header" directive.
  19954. </para>
  19955. </change>

  19956. <change type="bugfix">
  19957. <para lang="ru">
  19958. при использовании директивы fastcgi_catch_stderr
  19959. в основном процессе происходил segmentation fault;
  19960. ошибка появилась в 0.6.10.<br/>
  19961. Спасибо Manlio Perillo.
  19962. </para>
  19963. <para lang="en">
  19964. a segmentation fault occurred in master process
  19965. if the "fastcgi_catch_stderr" directive was used;
  19966. the bug had appeared in 0.6.10.<br/>
  19967. Thanks to Manlio Perillo.
  19968. </para>
  19969. </change>

  19970. </changes>


  19971. <changes ver="0.6.21" date="2007-12-03">

  19972. <change type="change">
  19973. <para lang="ru">
  19974. если в значениях переменных директивы proxy_pass используются
  19975. только IP-адреса, то указывать resolver не нужно.
  19976. </para>
  19977. <para lang="en">
  19978. if variable values used in a "proxy_pass" directive contain IP-addresses only,
  19979. then a "resolver" directive is not mandatory.
  19980. </para>
  19981. </change>

  19982. <change type="bugfix">
  19983. <para lang="ru">
  19984. при использовании директивы proxy_pass c URI-частью
  19985. в рабочем процессе мог произойти segmentation fault;
  19986. ошибка появилась в 0.6.19.
  19987. </para>
  19988. <para lang="en">
  19989. a segmentation fault might occur in worker process
  19990. if a "proxy_pass" directive with URI-part was used;
  19991. the bug had appeared in 0.6.19.
  19992. </para>
  19993. </change>

  19994. <change type="bugfix">
  19995. <para lang="ru">
  19996. если resolver использовался на платформах, не поддерживающих метод kqueue,
  19997. то nginx выдавал alert "name is out of response".<br/>
  19998. Спасибо Андрею Нигматулину.
  19999. </para>
  20000. <para lang="en">
  20001. if resolver was used on platform that does not support kqueue,
  20002. then nginx issued an alert "name is out of response".<br/>
  20003. Thanks to Andrei Nigmatulin.
  20004. </para>
  20005. </change>

  20006. <change type="bugfix">
  20007. <para lang="ru">
  20008. При использовании переменной $server_protocol в FastCGI-параметрах
  20009. и запросе, длина которого была близка к значению директивы
  20010. client_header_buffer_size,
  20011. nginx выдавал alert "fastcgi: the request record is too big".
  20012. </para>
  20013. <para lang="en">
  20014. if the $server_protocol was used in FastCGI parameters
  20015. and a request line length was near to the "client_header_buffer_size"
  20016. directive value,
  20017. then nginx issued an alert "fastcgi: the request record is too big".
  20018. </para>
  20019. </change>

  20020. <change type="bugfix">
  20021. <para lang="ru">
  20022. при обычном запросе версии HTTP/0.9 к HTTPS серверу nginx возвращал
  20023. обычный ответ.
  20024. </para>
  20025. <para lang="en">
  20026. if a plain text HTTP/0.9 version request was made to HTTPS server,
  20027. then nginx returned usual response.
  20028. </para>
  20029. </change>

  20030. </changes>


  20031. <changes ver="0.6.20" date="2007-11-28">

  20032. <change type="bugfix">
  20033. <para lang="ru">
  20034. при использовании директивы proxy_pass c URI-частью
  20035. в рабочем процессе мог произойти segmentation fault;
  20036. ошибка появилась в 0.6.19.
  20037. </para>
  20038. <para lang="en">
  20039. a segmentation fault might occur in worker process
  20040. if a "proxy_pass" directive with URI-part was used;
  20041. the bug had appeared in 0.6.19.
  20042. </para>
  20043. </change>

  20044. </changes>


  20045. <changes ver="0.6.19" date="2007-11-27">

  20046. <change type="bugfix">
  20047. <para lang="ru">
  20048. версия 0.6.18 не собиралась.
  20049. </para>
  20050. <para lang="en">
  20051. the 0.6.18 version could not be built.
  20052. </para>
  20053. </change>

  20054. </changes>

  20055. <changes ver="0.6.18" date="2007-11-27">

  20056. <change type="change">
  20057. <para lang="ru">
  20058. теперь модуль ngx_http_userid_module в поле куки с номером процесса
  20059. добавляет микросекунды на время старта.
  20060. </para>
  20061. <para lang="en">
  20062. now the ngx_http_userid_module adds start time microseconds
  20063. to the cookie field contains a pid value.
  20064. </para>
  20065. </change>

  20066. <change type="change">
  20067. <para lang="ru">
  20068. в error_log теперь записывается полная строка запроса вместо только URI.
  20069. </para>
  20070. <para lang="en">
  20071. now the full request line instead of URI only is written to error_log.
  20072. </para>
  20073. </change>

  20074. <change type="feature">
  20075. <para lang="ru">
  20076. директива proxy_pass поддерживает переменные.
  20077. </para>
  20078. <para lang="en">
  20079. variables support in the "proxy_pass" directive.
  20080. </para>
  20081. </change>

  20082. <change type="feature">
  20083. <para lang="ru">
  20084. директивы resolver и resolver_timeout.
  20085. </para>
  20086. <para lang="en">
  20087. the "resolver" and "resolver_timeout" directives.
  20088. </para>
  20089. </change>

  20090. <change type="feature">
  20091. <para lang="ru">
  20092. теперь директива "add_header last-modified ''" удаляет в заголовке ответа
  20093. строку "Last-Modified".
  20094. </para>
  20095. <para lang="en">
  20096. now the directive "add_header last-modified ''" deletes a "Last-Modified"
  20097. response header line.
  20098. </para>
  20099. </change>

  20100. <change type="bugfix">
  20101. <para lang="ru">
  20102. директива limit_rate не позволяла передавать на полной скорости,
  20103. даже если был указан очень большой лимит.
  20104. </para>
  20105. <para lang="en">
  20106. the "limit_rate" directive did not allow to use full throughput,
  20107. even if limit value was very high.
  20108. </para>
  20109. </change>

  20110. </changes>


  20111. <changes ver="0.6.17" date="2007-11-15">

  20112. <change type="feature">
  20113. <para lang="ru">
  20114. поддержка строки "If-Range" в заголовке запроса.<br/>
  20115. Спасибо Александру Инюхину.
  20116. </para>
  20117. <para lang="en">
  20118. the "If-Range" request header line support.<br/>
  20119. Thanks to Alexander V. Inyukhin.
  20120. </para>
  20121. </change>

  20122. <change type="bugfix">
  20123. <para lang="ru">
  20124. при использовании директивы msie_refresh повторно экранировались
  20125. уже экранированные символы;
  20126. ошибка появилась в 0.6.4.
  20127. </para>
  20128. <para lang="en">
  20129. URL double escaping in a redirect of the "msie_refresh" directive;
  20130. the bug had appeared in 0.6.4.
  20131. </para>
  20132. </change>

  20133. <change type="bugfix">
  20134. <para lang="ru">
  20135. директива autoindex не работала при использовании "alias /".
  20136. </para>
  20137. <para lang="en">
  20138. the "autoindex" directive did not work with the "alias /" directive.
  20139. </para>
  20140. </change>

  20141. <change type="bugfix">
  20142. <para lang="ru">
  20143. при использовании подзапросов
  20144. в рабочем процессе мог произойти segmentation fault.
  20145. </para>
  20146. <para lang="en">
  20147. a segmentation fault might occur in worker process if subrequests were used.
  20148. </para>
  20149. </change>

  20150. <change type="bugfix">
  20151. <para lang="ru">
  20152. при использовании SSL и gzip большие ответы могли передаваться не полностью.
  20153. </para>
  20154. <para lang="en">
  20155. the big responses may be transferred truncated if SSL and gzip were used.
  20156. </para>
  20157. </change>

  20158. <change type="bugfix">
  20159. <para lang="ru">
  20160. если ответ проксированного сервера был версии HTTP/0.9,
  20161. то переменная $status была равна 0.
  20162. </para>
  20163. <para lang="en">
  20164. the $status variable was equal to 0 if a proxied server returned response
  20165. in HTTP/0.9 version.
  20166. </para>
  20167. </change>

  20168. </changes>


  20169. <changes ver="0.6.16" date="2007-10-29">

  20170. <change type="change">
  20171. <para lang="ru">
  20172. теперь на Linux используется uname(2) вместо procfs.<br/>
  20173. Спасибо Илье Новикову.
  20174. </para>
  20175. <para lang="en">
  20176. now the uname(2) is used on Linux instead of procfs.<br/>
  20177. Thanks to Ilya Novikov.
  20178. </para>
  20179. </change>

  20180. <change type="bugfix">
  20181. <para lang="ru">
  20182. если в директиве error_page использовался символ "?", то он экранировался
  20183. при проксировании запроса;
  20184. ошибка появилась в 0.6.11.
  20185. </para>
  20186. <para lang="en">
  20187. if the "?" character was in a "error_page" directive, then it was escaped
  20188. in a proxied request;
  20189. the bug had appeared in 0.6.11.
  20190. </para>
  20191. </change>

  20192. <change type="bugfix">
  20193. <para lang="ru">
  20194. совместимость с mget.
  20195. </para>
  20196. <para lang="en">
  20197. compatibility with mget.
  20198. </para>
  20199. </change>

  20200. </changes>


  20201. <changes ver="0.6.15" date="2007-10-22">

  20202. <change type="feature">
  20203. <para lang="ru">
  20204. совместимость с Cygwin.<br/>
  20205. Спасибо Владимиру Кутакову.
  20206. </para>
  20207. <para lang="en">
  20208. Cygwin compatibility.<br/>
  20209. Thanks to Vladimir Kutakov.
  20210. </para>
  20211. </change>

  20212. <change type="feature">
  20213. <para lang="ru">
  20214. директива merge_slashes.
  20215. </para>
  20216. <para lang="en">
  20217. the "merge_slashes" directive.
  20218. </para>
  20219. </change>

  20220. <change type="feature">
  20221. <para lang="ru">
  20222. директива gzip_vary.
  20223. </para>
  20224. <para lang="en">
  20225. the "gzip_vary" directive.
  20226. </para>
  20227. </change>

  20228. <change type="feature">
  20229. <para lang="ru">
  20230. директива server_tokens.
  20231. </para>
  20232. <para lang="en">
  20233. the "server_tokens" directive.
  20234. </para>
  20235. </change>

  20236. <change type="bugfix">
  20237. <para lang="ru">
  20238. nginx не раскодировал URI в команде SSI include.
  20239. </para>
  20240. <para lang="en">
  20241. nginx did not unescape URI in the "include" SSI command.
  20242. </para>
  20243. </change>

  20244. <change type="bugfix">
  20245. <para lang="ru">
  20246. при использовании переменной в директивах charset или source_charset
  20247. на старте или во время переконфигурации происходил segmentation fault,
  20248. </para>
  20249. <para lang="en">
  20250. the segmentation fault was occurred on start or while reconfiguration
  20251. if variable was used in the "charset" or "source_charset" directives.
  20252. </para>
  20253. </change>

  20254. <change type="bugfix">
  20255. <para lang="ru">
  20256. nginx возвращал ошибку 400 на запросы вида
  20257. <nobr>"GET http://www.domain.com HTTP/1.0"</nobr>.<br/>
  20258. Спасибо James Oakley.
  20259. </para>
  20260. <para lang="en">
  20261. nginx returned the 400 response on requests like
  20262. <nobr>"GET http://www.domain.com HTTP/1.0"</nobr>.<br/>
  20263. Thanks to James Oakley.
  20264. </para>
  20265. </change>

  20266. <change type="bugfix">
  20267. <para lang="ru">
  20268. после перенаправления запроса с телом запроса с помощью директивы
  20269. error_page nginx пытался снова прочитать тело запроса;
  20270. ошибка появилась в 0.6.7.
  20271. </para>
  20272. <para lang="en">
  20273. if request with request body was redirected using the "error_page" directive,
  20274. then nginx tried to read the request body again;
  20275. the bug had appeared in 0.6.7.
  20276. </para>
  20277. </change>

  20278. <change type="bugfix">
  20279. <para lang="ru">
  20280. в рабочем процессе происходил segmentation fault, если у сервера,
  20281. обрабатывающему запрос, не был явно определён server_name;
  20282. ошибка появилась в 0.6.7.
  20283. </para>
  20284. <para lang="en">
  20285. a segmentation fault occurred in worker process
  20286. if no server_name was explicitly defined for server processing request;
  20287. the bug had appeared in 0.6.7.
  20288. </para>
  20289. </change>

  20290. </changes>


  20291. <changes ver="0.6.14" date="2007-10-15">

  20292. <change type="change">
  20293. <para lang="ru">
  20294. теперь по умолчанию команда SSI echo использует кодирование entity.
  20295. </para>
  20296. <para lang="en">
  20297. now by default the "echo" SSI command uses entity encoding.
  20298. </para>
  20299. </change>

  20300. <change type="feature">
  20301. <para lang="ru">
  20302. параметр encoding в команде SSI echo.
  20303. </para>
  20304. <para lang="en">
  20305. the "encoding" parameter in the "echo" SSI command.
  20306. </para>
  20307. </change>

  20308. <change type="feature">
  20309. <para lang="ru">
  20310. директиву access_log можно использовать внутри блока limit_except.
  20311. </para>
  20312. <para lang="en">
  20313. the "access_log" directive may be used inside the "limit_except" block.
  20314. </para>
  20315. </change>

  20316. <change type="bugfix">
  20317. <para lang="ru">
  20318. если все сервера апстрима оказывались недоступными,
  20319. то до восстановления работоспособности
  20320. у всех серверов вес становился равным одному;
  20321. ошибка появилась в 0.6.6.
  20322. </para>
  20323. <para lang="en">
  20324. if all upstream servers were failed, then all servers had got weight
  20325. the was equal one until servers became alive;
  20326. the bug had appeared in 0.6.6.
  20327. </para>
  20328. </change>

  20329. <change type="bugfix">
  20330. <para lang="ru">
  20331. при использовании переменных $date_local и $date_gmt вне модуля
  20332. ngx_http_ssi_filter_module в рабочем процессе происходил segmentation fault.
  20333. </para>
  20334. <para lang="en">
  20335. a segmentation fault occurred in worker process
  20336. if $date_local and $date_gmt were used outside the ngx_http_ssi_filter_module.
  20337. </para>
  20338. </change>

  20339. <change type="bugfix">
  20340. <para lang="ru">
  20341. при использовании включённом отладочном логе
  20342. в рабочем процессе мог произойти segmentation fault.<br/>
  20343. Спасибо Андрею Нигматулину.
  20344. </para>
  20345. <para lang="en">
  20346. a segmentation fault might occur in worker process
  20347. if debug log was enabled.<br/>
  20348. Thanks to Andrei Nigmatulin.
  20349. </para>
  20350. </change>

  20351. <change type="bugfix">
  20352. <para lang="ru">
  20353. ngx_http_memcached_module не устанавливал $upstream_response_time.<br/>
  20354. Спасибо Максиму Дунину.
  20355. </para>
  20356. <para lang="en">
  20357. ngx_http_memcached_module did not set $upstream_response_time.<br/>
  20358. Thanks to Maxim Dounin.
  20359. </para>
  20360. </change>

  20361. <change type="bugfix">
  20362. <para lang="ru">
  20363. рабочий процесс мог зациклиться при использовании memcached.
  20364. </para>
  20365. <para lang="en">
  20366. a worker process may got caught in an endless loop, if the memcached was used.
  20367. </para>
  20368. </change>

  20369. <change type="bugfix">
  20370. <para lang="ru">
  20371. nginx распознавал параметры "close" и "keep-alive" в строке "Connection"
  20372. в заголовке запроса только, если они были в нижнем регистре;
  20373. ошибка появилась в 0.6.11.
  20374. </para>
  20375. <para lang="en">
  20376. nginx supported low case only "close" and "keep-alive" values
  20377. in the "Connection" request header line;
  20378. the bug had appeared in 0.6.11.
  20379. </para>
  20380. </change>

  20381. <change type="bugfix">
  20382. <para lang="ru">
  20383. sub_filter не работал с пустой строкой замены.
  20384. </para>
  20385. <para lang="en">
  20386. sub_filter did not work with empty substitution.
  20387. </para>
  20388. </change>

  20389. <change type="bugfix">
  20390. <para lang="ru">
  20391. в парсинге sub_filter.
  20392. </para>
  20393. <para lang="en">
  20394. in sub_filter parsing.
  20395. </para>
  20396. </change>

  20397. </changes>


  20398. <changes ver="0.6.13" date="2007-09-24">

  20399. <change type="bugfix">
  20400. <para lang="ru">
  20401. nginx не закрывал файл каталога для запроса HEAD,
  20402. если использовался autoindex<br/>
  20403. Спасибо Arkadiusz Patyk.
  20404. </para>
  20405. <para lang="en">
  20406. nginx did not close directory file on HEAD request if autoindex was used.<br/>
  20407. Thanks to Arkadiusz Patyk.
  20408. </para>
  20409. </change>

  20410. </changes>


  20411. <changes ver="0.6.12" date="2007-09-21">

  20412. <change type="change">
  20413. <para lang="ru">
  20414. почтовый прокси-сервер разделён на три модуля: pop3, imap и smtp.
  20415. </para>
  20416. <para lang="en">
  20417. mail proxy was split on three modules: pop3, imap and smtp.
  20418. </para>
  20419. </change>

  20420. <change type="feature">
  20421. <para lang="ru">
  20422. параметры конфигурации --without-mail_pop3_module,
  20423. --without-mail_imap_module и --without-mail_smtp_module.
  20424. </para>
  20425. <para lang="en">
  20426. the --without-mail_pop3_module, --without-mail_imap_module,
  20427. and --without-mail_smtp_module configuration parameters.
  20428. </para>
  20429. </change>

  20430. <change type="feature">
  20431. <para lang="ru">
  20432. директивы smtp_greeting_delay и smtp_client_buffer модуля ngx_mail_smtp_module.
  20433. </para>
  20434. <para lang="en">
  20435. the "smtp_greeting_delay" and "smtp_client_buffer" directives
  20436. of the ngx_mail_smtp_module.
  20437. </para>
  20438. </change>

  20439. <change type="bugfix">
  20440. <para lang="ru">
  20441. wildcard в конце имени сервера не работали;
  20442. ошибка появилась в 0.6.9.
  20443. </para>
  20444. <para lang="en">
  20445. the trailing wildcards did not work;
  20446. the bug had appeared in 0.6.9.
  20447. </para>
  20448. </change>

  20449. <change type="bugfix">
  20450. <para lang="ru">
  20451. при использовании разделяемой библиотеки PCRE,
  20452. расположенной в нестандартном месте, nginx не запускался на Solaris.
  20453. </para>
  20454. <para lang="en">
  20455. nginx could not start on Solaris if the shared PCRE library located
  20456. in non-standard place was used.
  20457. </para>
  20458. </change>

  20459. <change type="bugfix">
  20460. <para lang="ru">
  20461. директивы proxy_hide_header и fastcgi_hide_header не скрывали
  20462. строки заголовка ответа с именем больше 32 символов.<br/>
  20463. Спасибо Manlio Perillo.
  20464. </para>
  20465. <para lang="en">
  20466. the "proxy_hide_header" and "fastcgi_hide_header" directives did not
  20467. hide response header lines whose name was longer than 32 characters.<br/>
  20468. Thanks to Manlio Perillo.
  20469. </para>
  20470. </change>

  20471. </changes>


  20472. <changes ver="0.6.11" date="2007-09-11">

  20473. <change type="bugfix">
  20474. <para lang="ru">
  20475. счётчик активных соединений всегда рос при использовании почтового
  20476. прокси-сервера.
  20477. </para>
  20478. <para lang="en">
  20479. active connection counter always increased if mail proxy was used.
  20480. </para>
  20481. </change>

  20482. <change type="bugfix">
  20483. <para lang="ru">
  20484. если бэкенд возвращал только заголовок ответа при небуферизированном
  20485. проксировании, то nginx закрывал соединение с бэкендом по таймауту.
  20486. </para>
  20487. <para lang="en">
  20488. if backend returned response header only using non-buffered proxy,
  20489. then nginx closed backend connection on timeout.
  20490. </para>
  20491. </change>

  20492. <change type="bugfix">
  20493. <para lang="ru">
  20494. nginx не поддерживал несколько строк "Connection" в заголовке запроса.
  20495. </para>
  20496. <para lang="en">
  20497. nginx did not support several "Connection" request header lines.
  20498. </para>
  20499. </change>

  20500. <change type="bugfix">
  20501. <para lang="ru">
  20502. если в сервере апстрима был задан max_fails, то после первой же неудачной
  20503. попытки вес сервера навсегда становился равным одному;
  20504. ошибка появилась в 0.6.6.
  20505. </para>
  20506. <para lang="en">
  20507. if the "max_fails" was set for upstream server, then after first
  20508. failure server weight was always one;
  20509. the bug had appeared in 0.6.6.
  20510. </para>
  20511. </change>

  20512. </changes>


  20513. <changes ver="0.6.10" date="2007-09-03">

  20514. <change type="feature">
  20515. <para lang="ru">
  20516. директивы open_file_cache, open_file_cache_retest и open_file_cache_errors.
  20517. </para>
  20518. <para lang="en">
  20519. the "open_file_cache", "open_file_cache_retest", and "open_file_cache_errors"
  20520. directives.
  20521. </para>
  20522. </change>

  20523. <change type="bugfix">
  20524. <para lang="ru">
  20525. утечки сокетов;
  20526. ошибка появилась в 0.6.7.
  20527. </para>
  20528. <para lang="en">
  20529. socket leak;
  20530. the bug had appeared in 0.6.7.
  20531. </para>
  20532. </change>

  20533. <change type="bugfix">
  20534. <para lang="ru">
  20535. В строку заголовка ответа "Content-Type", указанную в методе
  20536. $r->send_http_header(), не добавлялась кодировка, указанная в директиве charset.
  20537. </para>
  20538. <para lang="en">
  20539. a charset set by the "charset" directive was not appended
  20540. to the "Content-Type" header set by $r->send_http_header().
  20541. </para>
  20542. </change>

  20543. <change type="bugfix">
  20544. <para lang="ru">
  20545. при использовании метода /dev/poll
  20546. в рабочем процессе мог произойти segmentation fault.
  20547. </para>
  20548. <para lang="en">
  20549. a segmentation fault might occur in worker process
  20550. if /dev/poll method was used.
  20551. </para>
  20552. </change>

  20553. </changes>


  20554. <changes ver="0.6.9" date="2007-08-28">

  20555. <change type="bugfix">
  20556. <para lang="ru">
  20557. рабочий процесс мог зациклиться при использовании протокола HTTPS;
  20558. ошибка появилась в 0.6.7.
  20559. </para>
  20560. <para lang="en">
  20561. a worker process may got caught in an endless loop,
  20562. if the HTTPS protocol was used;
  20563. the bug had appeared in 0.6.7.
  20564. </para>
  20565. </change>

  20566. <change type="bugfix">
  20567. <para lang="ru">
  20568. если сервер слушал на двух адресах или портах, то nginx не запускался
  20569. при использовании wildcard в конце имени сервера.
  20570. </para>
  20571. <para lang="en">
  20572. if server listened on two addresses or ports and trailing wildcard was used,
  20573. then nginx did not run.
  20574. </para>
  20575. </change>

  20576. <change type="bugfix">
  20577. <para lang="ru">
  20578. директива ip_hash могла неверно помечать сервера как нерабочие.
  20579. </para>
  20580. <para lang="en">
  20581. the "ip_hash" directive might incorrectly mark servers as down.
  20582. </para>
  20583. </change>

  20584. <change type="bugfix">
  20585. <para lang="ru">
  20586. nginx не собирался на amd64;
  20587. ошибка появилась в 0.6.8.
  20588. </para>
  20589. <para lang="en">
  20590. nginx could not be built on amd64;
  20591. the bug had appeared in 0.6.8.
  20592. </para>
  20593. </change>

  20594. </changes>


  20595. <changes ver="0.6.8" date="2007-08-20">

  20596. <change type="change">
  20597. <para lang="ru">
  20598. теперь nginx пытается установить директивы worker_priority,
  20599. worker_rlimit_nofile, worker_rlimit_core, worker_rlimit_sigpending
  20600. без привилегий root'а.
  20601. </para>
  20602. <para lang="en">
  20603. now nginx tries to set the "worker_priority", "worker_rlimit_nofile",
  20604. "worker_rlimit_core", and "worker_rlimit_sigpending" without super-user
  20605. privileges.
  20606. </para>
  20607. </change>

  20608. <change type="change">
  20609. <para lang="ru">
  20610. теперь nginx экранирует символы пробела и "%" при передаче запроса
  20611. серверу аутентификации почтового прокси-сервера.
  20612. </para>
  20613. <para lang="en">
  20614. now nginx escapes space and "%" in request to a mail proxy authentication
  20615. server.
  20616. </para>
  20617. </change>

  20618. <change type="change">
  20619. <para lang="ru">
  20620. теперь nginx экранирует символ "%" в переменной $memcached_key.
  20621. </para>
  20622. <para lang="en">
  20623. now nginx escapes "%" in $memcached_key variable.
  20624. </para>
  20625. </change>

  20626. <change type="bugfix">
  20627. <para lang="ru">
  20628. при указании относительного пути к конфигурационному файлу в качестве
  20629. параметра ключа -c nginx определял путь относительно конфигурационного префикса;
  20630. ошибка появилась в 0.6.6.
  20631. </para>
  20632. <para lang="en">
  20633. nginx used path relative to configuration prefix for non-absolute
  20634. configuration file path specified in the "-c" key;
  20635. the bug had appeared in 0.6.6.
  20636. </para>
  20637. </change>

  20638. <change type="bugfix">
  20639. <para lang="ru">
  20640. nginx не работал на FreeBSD/sparc64.
  20641. </para>
  20642. <para lang="en">
  20643. nginx did not work on FreeBSD/sparc64.
  20644. </para>
  20645. </change>

  20646. </changes>


  20647. <changes ver="0.6.7" date="2007-08-15">

  20648. <change type="change">
  20649. <para lang="ru">
  20650. теперь пути, указанные в директивах include, auth_basic_user_file,
  20651. perl_modules, ssl_certificate, ssl_certificate_key и
  20652. ssl_client_certificate, определяются относительно каталога конфигурационного
  20653. файла nginx.conf, а не относительно префикса.
  20654. </para>
  20655. <para lang="en">
  20656. now the paths specified in the "include", "auth_basic_user_file",
  20657. "perl_modules", "ssl_certificate", "ssl_certificate_key", and
  20658. "ssl_client_certificate" directives are relative to directory of
  20659. nginx configuration file nginx.conf, but not to nginx prefix directory.
  20660. </para>
  20661. </change>

  20662. <change type="change">
  20663. <para lang="ru">
  20664. параметр --sysconfdir=PATH в configure упразднён.
  20665. </para>
  20666. <para lang="en">
  20667. the --sysconfdir=PATH option in configure was canceled.
  20668. </para>
  20669. </change>

  20670. <change type="change">
  20671. <para lang="ru">
  20672. для обновления на лету версий 0.1.x создан специальный сценарий
  20673. <nobr>make upgrade1.</nobr>
  20674. </para>
  20675. <para lang="en">
  20676. the special make target "upgrade1" was defined for online upgrade of
  20677. 0.1.x versions.
  20678. </para>
  20679. </change>

  20680. <change type="feature">
  20681. <para lang="ru">
  20682. директивы server_name и valid_referers поддерживают регулярные выражения.
  20683. </para>
  20684. <para lang="en">
  20685. the "server_name" and "valid_referers" directives support regular expressions.
  20686. </para>
  20687. </change>

  20688. <change type="feature">
  20689. <para lang="ru">
  20690. директива server в блоке upstream поддерживает параметр backup.
  20691. </para>
  20692. <para lang="en">
  20693. the "server" directive in the "upstream" context supports
  20694. the "backup" parameter.
  20695. </para>
  20696. </change>

  20697. <change type="feature">
  20698. <para lang="ru">
  20699. модуль ngx_http_perl_module поддерживает метод $r->discard_request_body.
  20700. </para>
  20701. <para lang="en">
  20702. the ngx_http_perl_module supports the $r->discard_request_body.
  20703. </para>
  20704. </change>

  20705. <change type="feature">
  20706. <para lang="ru">
  20707. директива "add_header Last-Modified ..." меняет строку "Last-Modified"
  20708. в заголовке ответа.
  20709. </para>
  20710. <para lang="en">
  20711. the "add_header Last-Modified ..." directive changes the "Last-Modified"
  20712. response header line.
  20713. </para>
  20714. </change>

  20715. <change type="bugfix">
  20716. <para lang="ru">
  20717. если на запрос с телом возвращался ответ с кодом HTTP отличным от 200,
  20718. и после этого запроса соединение переходило в состояние keep-alive,
  20719. то на следующий запрос nginx возвращал 400.
  20720. </para>
  20721. <para lang="en">
  20722. if a response different than 200 was returned to a request with body
  20723. and connection went to the keep-alive state after the request, then
  20724. nginx returned 400 for the next request.
  20725. </para>
  20726. </change>

  20727. <change type="bugfix">
  20728. <para lang="ru">
  20729. если в директиве auth_http был задан неправильный адрес, то
  20730. в рабочем процессе происходил segmentation fault.
  20731. </para>
  20732. <para lang="en">
  20733. a segmentation fault occurred in worker process
  20734. if invalid address was set in the "auth_http" directive.
  20735. </para>
  20736. </change>

  20737. <change type="bugfix">
  20738. <para lang="ru">
  20739. теперь по умолчанию nginx использует значение 511 для listen backlog
  20740. на всех платформах, кроме FreeBSD.<br/>
  20741. Спасибо Jiang Hong.
  20742. </para>
  20743. <para lang="en">
  20744. now nginx uses default listen backlog value 511 on all platforms
  20745. except FreeBSD.<br/>
  20746. Thanks to Jiang Hong.
  20747. </para>
  20748. </change>

  20749. <change type="bugfix">
  20750. <para lang="ru">
  20751. рабочий процесс мог зациклиться, если server в блоке upstream был помечен
  20752. как down;
  20753. ошибка появилась в 0.6.6.
  20754. </para>
  20755. <para lang="en">
  20756. a worker process may got caught in an endless loop, if a "server" inside
  20757. "upstream" block was marked as "down";
  20758. the bug had appeared in 0.6.6.
  20759. </para>
  20760. </change>

  20761. <change type="bugfix">
  20762. <para lang="ru">
  20763. sendfilev() в Solaris теперь не используется при передаче тела запроса
  20764. FastCGI-серверу через unix domain сокет.
  20765. </para>
  20766. <para lang="en">
  20767. now Solaris sendfilev() is not used to transfer the client request body
  20768. to FastCGI-server via the unix domain socket.
  20769. </para>
  20770. </change>

  20771. </changes>


  20772. <changes ver="0.6.6" date="2007-07-30">

  20773. <change type="feature">
  20774. <para lang="ru">
  20775. параметр --sysconfdir=PATH в configure.
  20776. </para>
  20777. <para lang="en">
  20778. the --sysconfdir=PATH option in configure.
  20779. </para>
  20780. </change>

  20781. <change type="feature">
  20782. <para lang="ru">
  20783. именованные location'ы.
  20784. </para>
  20785. <para lang="en">
  20786. named locations.
  20787. </para>
  20788. </change>

  20789. <change type="feature">
  20790. <para lang="ru">
  20791. переменную $args можно устанавливать с помощью set.
  20792. </para>
  20793. <para lang="en">
  20794. the $args variable can be set with the "set" directive.
  20795. </para>
  20796. </change>

  20797. <change type="feature">
  20798. <para lang="ru">
  20799. переменная $is_args.
  20800. </para>
  20801. <para lang="en">
  20802. the $is_args variable.
  20803. </para>
  20804. </change>

  20805. <change type="bugfix">
  20806. <para lang="ru">
  20807. равномерное распределение запросов к апстримам с большими весами.
  20808. </para>
  20809. <para lang="en">
  20810. fair big weight upstream balancer.
  20811. </para>
  20812. </change>

  20813. <change type="bugfix">
  20814. <para lang="ru">
  20815. если клиент в почтовом прокси-сервере закрывал соединение,
  20816. то nginx мог не закрывать соединение с бэкендом.
  20817. </para>
  20818. <para lang="en">
  20819. if a client has closed connection to mail proxy
  20820. then nginx might not close connection to backend.
  20821. </para>
  20822. </change>

  20823. <change type="bugfix">
  20824. <para lang="ru">
  20825. при использовании одного хоста в качестве бэкендов для протоколов HTTP и HTTPS
  20826. без явного указания портов, nginx использовал только один порт&mdash;80 или 443.
  20827. </para>
  20828. <para lang="en">
  20829. if the same host without specified port was used as backend for HTTP and HTTPS,
  20830. then nginx used only one port&mdash;80 or 443.
  20831. </para>
  20832. </change>

  20833. <change type="bugfix">
  20834. <para lang="ru">
  20835. nginx не собирался на Solaris/amd64 Sun Studio 11 и более ранними версиями;
  20836. ошибка появилась в 0.6.4.
  20837. </para>
  20838. <para lang="en">
  20839. fix building on Solaris/amd64 by Sun Studio 11 and early versions;
  20840. the bug had appeared in 0.6.4.
  20841. </para>
  20842. </change>

  20843. </changes>


  20844. <changes ver="0.6.5" date="2007-07-23">

  20845. <change type="feature">
  20846. <para lang="ru">
  20847. переменная $nginx_version.<br/>
  20848. Спасибо Николаю Гречуху.
  20849. </para>
  20850. <para lang="en">
  20851. $nginx_version variable.<br/>
  20852. Thanks to Nick S. Grechukh.
  20853. </para>
  20854. </change>

  20855. <change type="feature">
  20856. <para lang="ru">
  20857. почтовый прокси-сервер поддерживает AUTHENTICATE в режиме IMAP.<br/>
  20858. Спасибо Максиму Дунину.
  20859. </para>
  20860. <para lang="en">
  20861. the mail proxy supports AUTHENTICATE in IMAP mode.<br/>
  20862. Thanks to Maxim Dounin.
  20863. </para>
  20864. </change>

  20865. <change type="feature">
  20866. <para lang="ru">
  20867. почтовый прокси-сервер поддерживает STARTTLS в режиме SMTP.<br/>
  20868. Спасибо Максиму Дунину.
  20869. </para>
  20870. <para lang="en">
  20871. the mail proxy supports STARTTLS in SMTP mode.<br/>
  20872. Thanks to Maxim Dounin.
  20873. </para>
  20874. </change>

  20875. <change type="bugfix">
  20876. <para lang="ru">
  20877. теперь nginx экранирует пробел в переменной $memcached_key.
  20878. </para>
  20879. <para lang="en">
  20880. now nginx escapes space in $memcached_key variable.
  20881. </para>
  20882. </change>

  20883. <change type="bugfix">
  20884. <para lang="ru">
  20885. nginx неправильно собирался Sun Studio на Solaris/amd64.<br/>
  20886. Спасибо Jiang Hong.
  20887. </para>
  20888. <para lang="en">
  20889. nginx was incorrectly built by Sun Studio on Solaris/amd64.<br/>
  20890. Thanks to Jiang Hong.
  20891. </para>
  20892. </change>

  20893. <change type="bugfix">
  20894. <para lang="ru">
  20895. незначительных потенциальных ошибок.<br/>
  20896. Спасибо Coverity's Scan.
  20897. </para>
  20898. <para lang="en">
  20899. of minor potential bugs.<br/>
  20900. Thanks to Coverity's Scan.
  20901. </para>
  20902. </change>

  20903. </changes>


  20904. <changes ver="0.6.4" date="2007-07-17">

  20905. <change type="security">
  20906. <para lang="ru">
  20907. при использовании директивы msie_refresh был возможен XSS.<br/>
  20908. Спасибо Максиму Богуку.
  20909. </para>
  20910. <para lang="en">
  20911. the "msie_refresh" directive allowed XSS.<br/>
  20912. Thanks to Maxim Boguk.
  20913. </para>
  20914. </change>

  20915. <change type="change">
  20916. <para lang="ru">
  20917. директивы proxy_store и fastcgi_store изменены.
  20918. </para>
  20919. <para lang="en">
  20920. the "proxy_store" and "fastcgi_store" directives were changed.
  20921. </para>
  20922. </change>

  20923. <change type="feature">
  20924. <para lang="ru">
  20925. директивы proxy_store_access и fastcgi_store_access.
  20926. </para>
  20927. <para lang="en">
  20928. the "proxy_store_access" and "fastcgi_store_access" directives.
  20929. </para>
  20930. </change>

  20931. <change type="bugfix">
  20932. <para lang="ru">
  20933. nginx не работал на Solaris/sparc64, если был собран Sun Studio.<br/>
  20934. Спасибо Андрею Нигматулину.
  20935. </para>
  20936. <para lang="en">
  20937. nginx did not work on Solaris/sparc64 if it was built by Sun Studio.<br/>
  20938. Thanks to Andrei Nigmatulin.
  20939. </para>
  20940. </change>

  20941. <change type="workaround">
  20942. <para lang="ru">
  20943. обход ошибки в Sun Studio 12.<br/>
  20944. Спасибо Jiang Hong.
  20945. </para>
  20946. <para lang="en">
  20947. for Sun Studio 12.<br/>
  20948. Thanks to Jiang Hong.
  20949. </para>
  20950. </change>

  20951. </changes>


  20952. <changes ver="0.6.3" date="2007-07-12">

  20953. <change type="feature">
  20954. <para lang="ru">
  20955. директивы proxy_store и fastcgi_store.
  20956. </para>
  20957. <para lang="en">
  20958. the "proxy_store" and "fastcgi_store" directives.
  20959. </para>
  20960. </change>

  20961. <change type="bugfix">
  20962. <para lang="ru">
  20963. при использовании директивы auth_http_header
  20964. в рабочем процессе мог произойти segmentation fault.<br/>
  20965. Спасибо Максиму Дунину.
  20966. </para>
  20967. <para lang="en">
  20968. a segmentation fault might occur in worker process
  20969. if the "auth_http_header" directive was used.<br/>
  20970. Thanks to Maxim Dounin.
  20971. </para>
  20972. </change>

  20973. <change type="bugfix">
  20974. <para lang="ru">
  20975. если использовался метод аутентификации CRAM-MD5, но он не был разрешён,
  20976. то в рабочем процессе происходил segmentation fault.
  20977. </para>
  20978. <para lang="en">
  20979. a segmentation fault occurred in worker process
  20980. if the CRAM-MD5 authentication method was used, but it was not enabled.
  20981. </para>
  20982. </change>

  20983. <change type="bugfix">
  20984. <para lang="ru">
  20985. при использовании протокола HTTPS в директиве proxy_pass
  20986. в рабочем процессе мог произойти segmentation fault.
  20987. </para>
  20988. <para lang="en">
  20989. a segmentation fault might occur in worker process when
  20990. the HTTPS protocol was used in the "proxy_pass" directive.
  20991. </para>
  20992. </change>

  20993. <change type="bugfix">
  20994. <para lang="ru">
  20995. в рабочем процессе мог произойти segmentation fault,
  20996. если использовался метод eventport.
  20997. </para>
  20998. <para lang="en">
  20999. a segmentation fault might occur in worker process
  21000. if the eventport method was used.
  21001. </para>
  21002. </change>

  21003. <change type="bugfix">
  21004. <para lang="ru">
  21005. директивы proxy_ignore_client_abort и fastcgi_ignore_client_abort не работали;
  21006. ошибка появилась в 0.5.13.
  21007. </para>
  21008. <para lang="en">
  21009. the "proxy_ignore_client_abort" and "fastcgi_ignore_client_abort" directives
  21010. did not work;
  21011. the bug had appeared in 0.5.13.
  21012. </para>
  21013. </change>

  21014. </changes>


  21015. <changes ver="0.6.2" date="2007-07-09">

  21016. <change type="bugfix">
  21017. <para lang="ru">
  21018. если заголовок ответа был разделён в FastCGI-записях, то nginx передавал
  21019. клиенту мусор в таких заголовках.
  21020. </para>
  21021. <para lang="en">
  21022. if the FastCGI header was split in records,
  21023. then nginx passed garbage in the header to a client.
  21024. </para>
  21025. </change>

  21026. </changes>


  21027. <changes ver="0.6.1" date="2007-06-17">

  21028. <change type="bugfix">
  21029. <para lang="ru">
  21030. в парсинге SSI.
  21031. </para>
  21032. <para lang="en">
  21033. in SSI parsing.
  21034. </para>
  21035. </change>

  21036. <change type="bugfix">
  21037. <para lang="ru">
  21038. при использовании удалённого подзапроса в SSI последующий
  21039. подзапрос локального файла мог отдаваться клиенту в неверном порядке.
  21040. </para>
  21041. <para lang="en">
  21042. if remote SSI subrequest was used, then posterior local file subrequest
  21043. might transferred to client in wrong order.
  21044. </para>
  21045. </change>

  21046. <change type="bugfix">
  21047. <para lang="ru">
  21048. большие включения в SSI, сохранённые во временные файлы,
  21049. передавались не полностью.
  21050. </para>
  21051. <para lang="en">
  21052. large SSI inclusions buffered in temporary files were truncated.
  21053. </para>
  21054. </change>

  21055. <change type="bugfix">
  21056. <para lang="ru">
  21057. значение perl'овой переменной $$ модуля ngx_http_perl_module было равно
  21058. номеру главного процесса.
  21059. </para>
  21060. <para lang="en">
  21061. the perl $$ variable value in ngx_http_perl_module was equal to the master
  21062. process identification number.
  21063. </para>
  21064. </change>

  21065. </changes>


  21066. <changes ver="0.6.0" date="2007-06-14">

  21067. <change type="feature">
  21068. <para lang="ru">
  21069. директивы "server_name", "map", and "valid_referers" поддерживают
  21070. маски вида "www.example.*".
  21071. </para>
  21072. <para lang="en">
  21073. the "server_name", "map", and "valid_referers" directives support
  21074. the "www.example.*" wildcards.
  21075. </para>
  21076. </change>

  21077. </changes>


  21078. <changes ver="0.5.25" date="2007-06-11">

  21079. <change type="bugfix">
  21080. <para lang="ru">
  21081. nginx не собирался с параметром --without-http_rewrite_module;
  21082. ошибка появилась в 0.5.24.
  21083. </para>
  21084. <para lang="en">
  21085. nginx could not be built with the --without-http_rewrite_module parameter;
  21086. the bug had appeared in 0.5.24.
  21087. </para>
  21088. </change>

  21089. </changes>


  21090. <changes ver="0.5.24" date="2007-06-06">

  21091. <change type="security">
  21092. <para lang="ru">
  21093. директива ssl_verify_client не работала, если запрос выполнялся
  21094. по протоколу HTTP/0.9.
  21095. </para>
  21096. <para lang="en">
  21097. the "ssl_verify_client" directive did not work if request was made
  21098. using HTTP/0.9.
  21099. </para>
  21100. </change>

  21101. <change type="bugfix">
  21102. <para lang="ru">
  21103. при использовании сжатия часть ответа могла передаваться несжатой;
  21104. ошибка появилась в 0.5.23.
  21105. </para>
  21106. <para lang="en">
  21107. a part of response body might be passed uncompressed if gzip was used;
  21108. the bug had appeared in 0.5.23.
  21109. </para>
  21110. </change>

  21111. </changes>


  21112. <changes ver="0.5.23" date="2007-06-04">

  21113. <change type="feature">
  21114. <para lang="ru">
  21115. модуль ngx_http_ssl_module поддерживает расширение TLS Server Name Indication.
  21116. </para>
  21117. <para lang="en">
  21118. the ngx_http_ssl_module supports Server Name Indication TLS extension.
  21119. </para>
  21120. </change>

  21121. <change type="feature">
  21122. <para lang="ru">
  21123. директива fastcgi_catch_stderr.<br/>
  21124. Спасибо Николаю Гречуху, проект OWOX.
  21125. </para>
  21126. <para lang="en">
  21127. the "fastcgi_catch_stderr" directive.<br/>
  21128. Thanks to Nick S. Grechukh, OWOX project.
  21129. </para>
  21130. </change>

  21131. <change type="bugfix">
  21132. <para lang="ru">
  21133. на Линуксе в основном процессе происходил segmentation fault,
  21134. если два виртуальных сервера должны bind()ится к пересекающимся портам.
  21135. </para>
  21136. <para lang="en">
  21137. a segmentation fault occurred in master process if
  21138. two virtual servers should bind() to the overlapping ports.
  21139. </para>
  21140. </change>

  21141. <change type="bugfix">
  21142. <para lang="ru">
  21143. если nginx был собран с модулем ngx_http_perl_module и perl
  21144. поддерживал потоки, то во время второй переконфигурации
  21145. выдавались ошибки "panic: MUTEX_LOCK" и "perl_parse() failed".
  21146. </para>
  21147. <para lang="en">
  21148. if nginx was built with ngx_http_perl_module and perl supported threads,
  21149. then during second reconfiguration the error messages
  21150. "panic: MUTEX_LOCK" and "perl_parse() failed" were issued.
  21151. </para>
  21152. </change>

  21153. <change type="bugfix">
  21154. <para lang="ru">
  21155. в использовании протокола HTTPS в директиве proxy_pass.
  21156. </para>
  21157. <para lang="en">
  21158. in the HTTPS protocol in the "proxy_pass" directive.
  21159. </para>
  21160. </change>

  21161. </changes>


  21162. <changes ver="0.5.22" date="2007-05-29">

  21163. <change type="bugfix">
  21164. <para lang="ru">
  21165. большое тело запроса могло не передаваться бэкенду;
  21166. ошибка появилась в 0.5.21.
  21167. </para>
  21168. <para lang="en">
  21169. a big request body might not be passed to backend;
  21170. the bug had appeared in 0.5.21.
  21171. </para>
  21172. </change>

  21173. </changes>


  21174. <changes ver="0.5.21" date="2007-05-28">

  21175. <change type="bugfix">
  21176. <para lang="ru">
  21177. если внутри сервера описано больше примерно десяти location'ов,
  21178. то location'ы, заданные с помощью регулярного выражения,
  21179. могли выполняться не в том, порядке, в каком они описаны.
  21180. </para>
  21181. <para lang="en">
  21182. if server has more than about ten locations, then regex locations
  21183. might be chosen not in that order as they were specified.
  21184. </para>
  21185. </change>

  21186. <change type="bugfix">
  21187. <para lang="ru">
  21188. на 64-битной платформе рабочий процесс мог зациклиться, если 33-тий
  21189. по счёту или последующий бэкенд упал.<br/>
  21190. Спасибо Антону Поварову.
  21191. </para>
  21192. <para lang="en">
  21193. a worker process may got caught in an endless loop on 64-bit platform,
  21194. if the 33-rd or next in succession backend has failed.<br/>
  21195. Thanks to Anton Povarov.
  21196. </para>
  21197. </change>

  21198. <change type="bugfix">
  21199. <para lang="ru">
  21200. при использовании библиотеки PCRE на Solaris/sparc64
  21201. мог произойти bus error.<br/>
  21202. Спасибо Андрею Нигматулину.
  21203. </para>
  21204. <para lang="en">
  21205. a bus error might occur on Solaris/sparc64 if the PCRE library was used.<br/>
  21206. Thanks to Andrei Nigmatulin.
  21207. </para>
  21208. </change>

  21209. <change type="bugfix">
  21210. <para lang="ru">
  21211. в использовании протокола HTTPS в директиве proxy_pass.
  21212. </para>
  21213. <para lang="en">
  21214. in the HTTPS protocol in the "proxy_pass" directive.
  21215. </para>
  21216. </change>

  21217. </changes>


  21218. <changes ver="0.5.20" date="2007-05-07">

  21219. <change type="feature">
  21220. <para lang="ru">
  21221. директива sendfile_max_chunk.
  21222. </para>
  21223. <para lang="en">
  21224. the "sendfile_max_chunk" directive.
  21225. </para>
  21226. </change>

  21227. <change type="feature">
  21228. <para lang="ru">
  21229. переменные "$http_...", "$sent_http_..." и "$upstream_http_..."
  21230. можно менять директивой set.
  21231. </para>
  21232. <para lang="en">
  21233. the "$http_...", "$sent_http_...", and "$upstream_http_..." variables
  21234. may be changed using the "set" directive.
  21235. </para>
  21236. </change>

  21237. <change type="bugfix">
  21238. <para lang="ru">
  21239. при использовании SSI-команды 'if expr="$var = /"'
  21240. в рабочем процессе мог произойти segmentation fault.
  21241. </para>
  21242. <para lang="en">
  21243. a segmentation fault might occur in worker process
  21244. if the SSI command 'if expr="$var = /"' was used.
  21245. </para>
  21246. </change>

  21247. <change type="bugfix">
  21248. <para lang="ru">
  21249. завершающая строка multipart range ответа передавалась неверно.<br/>
  21250. Спасибо Evan Miller.
  21251. </para>
  21252. <para lang="en">
  21253. trailing boundary of multipart range response was transferred incorrectly.<br/>
  21254. Thanks to Evan Miller.
  21255. </para>
  21256. </change>

  21257. <change type="bugfix">
  21258. <para lang="ru">
  21259. nginx не работал на Solaris/sparc64, если был собран Sun Studio.<br/>
  21260. Спасибо Андрею Нигматулину.
  21261. </para>
  21262. <para lang="en">
  21263. nginx did not work on Solaris/sparc64 if it was built by Sun Studio.<br/>
  21264. Thanks to Andrei Nigmatulin.
  21265. </para>
  21266. </change>

  21267. <change type="bugfix">
  21268. <para lang="ru">
  21269. модуль ngx_http_perl_module не собирался make в Solaris.<br/>
  21270. Спасибо Андрею Нигматулину.
  21271. </para>
  21272. <para lang="en">
  21273. the ngx_http_perl_module could not be built by Solaris make.<br/>
  21274. Thanks to Andrei Nigmatulin.
  21275. </para>
  21276. </change>

  21277. </changes>


  21278. <changes ver="0.5.19" date="2007-04-24">

  21279. <change type="change">
  21280. <para lang="ru">
  21281. значение переменной $request_time теперь записывается с точностью
  21282. до миллисекунд.
  21283. </para>
  21284. <para lang="en">
  21285. now the $request_time variable has millisecond precision.
  21286. </para>
  21287. </change>

  21288. <change type="change">
  21289. <para lang="ru">
  21290. метод $r->rflush в модуле ngx_http_perl_module переименован в $r->flush.
  21291. </para>
  21292. <para lang="en">
  21293. the method $r->rflush of ngx_http_perl_module was renamed to the $r->flush.
  21294. </para>
  21295. </change>

  21296. <change type="feature">
  21297. <para lang="ru">
  21298. переменная $upstream_addr.
  21299. </para>
  21300. <para lang="en">
  21301. the $upstream_addr variable.
  21302. </para>
  21303. </change>

  21304. <change type="feature">
  21305. <para lang="ru">
  21306. директивы proxy_headers_hash_max_size и proxy_headers_hash_bucket_size.<br/>
  21307. Спасибо Володымыру Костырко.
  21308. </para>
  21309. <para lang="en">
  21310. the "proxy_headers_hash_max_size" and "proxy_headers_hash_bucket_size"
  21311. directives.<br/>
  21312. Thanks to Volodymyr Kostyrko.
  21313. </para>
  21314. </change>

  21315. <change type="bugfix">
  21316. <para lang="ru">
  21317. при использовании sendfile и limit_rate на 64-битных платформах
  21318. нельзя было передавать файлы больше 2G.
  21319. </para>
  21320. <para lang="en">
  21321. the files more than 2G could not be transferred using sendfile and limit_rate
  21322. on 64-bit platforms.
  21323. </para>
  21324. </change>

  21325. <change type="bugfix">
  21326. <para lang="ru">
  21327. при использовании sendfile на 64-битном Linux нельзя было передавать файлы
  21328. больше 2G.
  21329. </para>
  21330. <para lang="en">
  21331. the files more than 2G could not be transferred using sendfile on 64-bit Linux.
  21332. </para>
  21333. </change>

  21334. </changes>


  21335. <changes ver="0.5.18" date="2007-04-19">

  21336. <change type="feature">
  21337. <para lang="ru">
  21338. модуль ngx_http_sub_filter_module.
  21339. </para>
  21340. <para lang="en">
  21341. the ngx_http_sub_filter_module.
  21342. </para>
  21343. </change>

  21344. <change type="feature">
  21345. <para lang="ru">
  21346. переменные "$upstream_http_...".
  21347. </para>
  21348. <para lang="en">
  21349. the "$upstream_http_..." variables.
  21350. </para>
  21351. </change>

  21352. <change type="feature">
  21353. <para lang="ru">
  21354. теперь переменные $upstream_status и $upstream_response_time
  21355. содержат данные о всех обращениях к апстримам, сделанным до X-Accel-Redirect.
  21356. </para>
  21357. <para lang="en">
  21358. now the $upstream_status and $upstream_response_time variables
  21359. keep data about all upstreams before X-Accel-Redirect.
  21360. </para>
  21361. </change>

  21362. <change type="bugfix">
  21363. <para lang="ru">
  21364. если nginx был собран с модулем ngx_http_perl_module и perl
  21365. не поддерживал multiplicity, то после первой переконфигурации
  21366. и после получения любого сигнала
  21367. в основном процессе происходил segmentation fault;
  21368. ошибка появилась в 0.5.9.
  21369. </para>
  21370. <para lang="en">
  21371. a segmentation fault occurred in master process
  21372. after first reconfiguration and receiving any signal
  21373. if nginx was built with ngx_http_perl_module and perl
  21374. did not support multiplicity;
  21375. the bug had appeared in 0.5.9.
  21376. </para>
  21377. </change>

  21378. <change type="bugfix">
  21379. <para lang="ru">
  21380. если perl не поддерживал multiplicity, то после переконфигурации
  21381. перловый код не работал;
  21382. ошибка появилась в 0.3.38.
  21383. </para>
  21384. <para lang="en">
  21385. if perl did not support multiplicity, then after reconfiguration
  21386. perl code did not work;
  21387. the bug had appeared in 0.3.38.
  21388. </para>
  21389. </change>

  21390. </changes>


  21391. <changes ver="0.5.17" date="2007-04-02">

  21392. <change type="change">
  21393. <para lang="ru">
  21394. теперь nginx для метода TRACE всегда возвращает код 405.
  21395. </para>
  21396. <para lang="en">
  21397. now nginx always returns the 405 status for the TRACE method.
  21398. </para>
  21399. </change>

  21400. <change type="feature">
  21401. <para lang="ru">
  21402. теперь nginx поддерживает директиву include внутри блока types.
  21403. </para>
  21404. <para lang="en">
  21405. now nginx supports the "include" directive inside the "types" block.
  21406. </para>
  21407. </change>

  21408. <change type="bugfix">
  21409. <para lang="ru">
  21410. использование переменной $document_root в директиве root и alias
  21411. запрещено: оно вызывало рекурсивное переполнение стека.
  21412. </para>
  21413. <para lang="en">
  21414. the $document_root variable usage in the "root" and "alias" directives
  21415. is disabled: this caused recursive stack overflow.
  21416. </para>
  21417. </change>

  21418. <change type="bugfix">
  21419. <para lang="ru">
  21420. в использовании протокола HTTPS в директиве proxy_pass.
  21421. </para>
  21422. <para lang="en">
  21423. in the HTTPS protocol in the "proxy_pass" directive.
  21424. </para>
  21425. </change>

  21426. <change type="bugfix">
  21427. <para lang="ru">
  21428. в некоторых случаях некэшируемые переменные (такие, как $uri)
  21429. возвращали старое закэшированное значение.
  21430. </para>
  21431. <para lang="en">
  21432. in some cases non-cacheable variables (such as $uri variable)
  21433. returned old cached value.
  21434. </para>
  21435. </change>

  21436. </changes>


  21437. <changes ver="0.5.16" date="2007-03-26">

  21438. <change type="bugfix">
  21439. <para lang="ru">
  21440. в качестве ключа для хэша в директиве ip_hash не использовалась сеть
  21441. класса С.<br/>
  21442. Спасибо Павлу Ярковому.
  21443. </para>
  21444. <para lang="en">
  21445. the C-class network was not used as hash key in the "ip_hash" directive.<br/>
  21446. Thanks to Pavel Yarkovoy.
  21447. </para>
  21448. </change>

  21449. <change type="bugfix">
  21450. <para lang="ru">
  21451. если в строке "Content-Type" в заголовке ответа бэкенда был указан charset
  21452. и строка завершалась символом ";",
  21453. то в рабочем процессе мог произойти segmentation fault;
  21454. ошибка появилась в 0.3.50.
  21455. </para>
  21456. <para lang="en">
  21457. a segmentation fault might occur in worker process
  21458. if a charset was set in the "Content-Type" header line and the line
  21459. has trailing ";";
  21460. the bug had appeared in 0.3.50.
  21461. </para>
  21462. </change>

  21463. <change type="bugfix">
  21464. <para lang="ru">
  21465. ошибки "[alert] zero size buf" при работе с FastCGI-сервером, если
  21466. тело запроса, записанное во временный файл, было кратно 32K.
  21467. </para>
  21468. <para lang="en">
  21469. the "[alert] zero size buf" error when FastCGI server was used and
  21470. a request body written in a temporary file was multiple of 32K.
  21471. </para>
  21472. </change>

  21473. <change type="bugfix">
  21474. <para lang="ru">
  21475. nginx не собирался на Solaris без параметра --with-debug;
  21476. ошибка появилась в 0.5.15.
  21477. </para>
  21478. <para lang="en">
  21479. nginx could not be built on Solaris without the --with-debug option;
  21480. the bug had appeared in 0.5.15.
  21481. </para>
  21482. </change>

  21483. </changes>


  21484. <changes ver="0.5.15" date="2007-03-19">

  21485. <change type="feature">
  21486. <para lang="ru">
  21487. почтовый прокси-сервер поддерживает аутентифицированное SMTP-проксирование и
  21488. директивы smtp_auth, smtp_capabilities и xclient.<br/>
  21489. Спасибо Антону Южанинову и Максиму Дунину.
  21490. </para>
  21491. <para lang="en">
  21492. the mail proxy supports authenticated SMTP proxying and
  21493. the "smtp_auth", "smtp_capabilities", and "xclient" directives.<br/>
  21494. Thanks to Anton Yuzhaninov and Maxim Dounin.
  21495. </para>
  21496. </change>

  21497. <change type="feature">
  21498. <para lang="ru">
  21499. теперь keep-alive соединения закрываются сразу же по получении сигнала
  21500. переконфигурации.
  21501. </para>
  21502. <para lang="en">
  21503. now the keep-alive connections are closed just after receiving
  21504. the reconfiguration signal.
  21505. </para>
  21506. </change>

  21507. <change type="change">
  21508. <para lang="ru">
  21509. директивы imap и auth переименованы соответственно в mail и pop3_auth.
  21510. </para>
  21511. <para lang="en">
  21512. the "imap" and "auth" directives were renamed
  21513. to the "mail" and "pop3_auth" directives.
  21514. </para>
  21515. </change>

  21516. <change type="bugfix">
  21517. <para lang="ru">
  21518. если использовался метод аутентификации CRAM-MD5 и не был разрешён метод APOP,
  21519. то в рабочем процессе происходил segmentation fault.
  21520. </para>
  21521. <para lang="en">
  21522. a segmentation fault occurred in worker process
  21523. if the CRAM-MD5 authentication method was used
  21524. and the APOP method was disabled.
  21525. </para>
  21526. </change>

  21527. <change type="bugfix">
  21528. <para lang="ru">
  21529. при использовании директивы starttls only в протоколе POP3 nginx
  21530. разрешал аутентификацию без перехода в режим SSL.
  21531. </para>
  21532. <para lang="en">
  21533. if the "starttls only" directive was used in POP3 protocol,
  21534. then nginx allowed authentication without switching to the SSL mode.
  21535. </para>
  21536. </change>

  21537. <change type="bugfix">
  21538. <para lang="ru">
  21539. рабочие процессы не выходили после переконфигурации и не переоткрывали логи,
  21540. если использовался метод eventport.
  21541. </para>
  21542. <para lang="en">
  21543. worker processes did not exit after reconfiguration and
  21544. did not rotate logs if the eventport method was used.
  21545. </para>
  21546. </change>

  21547. <change type="bugfix">
  21548. <para lang="ru">
  21549. при использовании директивы ip_hash рабочий процесс мог зациклиться.
  21550. </para>
  21551. <para lang="en">
  21552. a worker process may got caught in an endless loop,
  21553. if the "ip_hash" directive was used.
  21554. </para>
  21555. </change>

  21556. <change type="bugfix">
  21557. <para lang="ru">
  21558. теперь nginx не пишет в лог некоторые alert'ы,
  21559. если используются методы eventport или /dev/poll.
  21560. </para>
  21561. <para lang="en">
  21562. now nginx does not log some alerts if eventport or /dev/poll methods are used.
  21563. </para>
  21564. </change>

  21565. </changes>


  21566. <changes ver="0.5.14" date="2007-02-23">

  21567. <change type="bugfix">
  21568. <para lang="ru">
  21569. nginx игнорировал лишние закрывающие скобки "}" в конце
  21570. конфигурационного файла.
  21571. </para>
  21572. <para lang="en">
  21573. nginx ignored superfluous closing "}" in the end of configuration file.
  21574. </para>
  21575. </change>

  21576. </changes>


  21577. <changes ver="0.5.13" date="2007-02-19">

  21578. <change type="feature">
  21579. <para lang="ru">
  21580. методы COPY и MOVE.
  21581. </para>
  21582. <para lang="en">
  21583. the COPY and MOVE methods.
  21584. </para>
  21585. </change>

  21586. <change type="bugfix">
  21587. <para lang="ru">
  21588. модуль ngx_http_realip_module устанавливал мусор для запросов,
  21589. переданных по keep-alive соединению.
  21590. </para>
  21591. <para lang="en">
  21592. the ngx_http_realip_module set garbage for requests passed via
  21593. keep-alive connection.
  21594. </para>
  21595. </change>

  21596. <change type="bugfix">
  21597. <para lang="ru">
  21598. nginx не работал на 64-битном big-endian Linux.<br/>
  21599. Спасибо Андрею Нигматулину.
  21600. </para>
  21601. <para lang="en">
  21602. nginx did not work on big-endian 64-bit Linux.<br/>
  21603. Thanks to Andrei Nigmatulin.
  21604. </para>
  21605. </change>

  21606. <change type="bugfix">
  21607. <para lang="ru">
  21608. при получении слишком длинной команды IMAP/POP3-прокси теперь сразу
  21609. закрывает соединение, а не по таймауту.
  21610. </para>
  21611. <para lang="en">
  21612. now when IMAP/POP3 proxy receives too long command it closes the connection
  21613. right away, but not after timeout.
  21614. </para>
  21615. </change>

  21616. <change type="bugfix">
  21617. <para lang="ru">
  21618. если при использовании метода epoll клиент закрывал преждевременно
  21619. соединение со своей стороны, то nginx закрывал это соединение только
  21620. по истечении таймаута на передачу.
  21621. </para>
  21622. <para lang="en">
  21623. if the "epoll" method was used and a client closed a connection prematurely,
  21624. then nginx closed the connection after a send timeout only.
  21625. </para>
  21626. </change>

  21627. <change type="bugfix">
  21628. <para lang="ru">
  21629. nginx не собирался на платформах, отличных от i386, amd64, sparc и ppc;
  21630. ошибка появилась в 0.5.8.
  21631. </para>
  21632. <para lang="en">
  21633. nginx could not be built on platforms different from i386, amd64, sparc,
  21634. and ppc;
  21635. the bug had appeared in 0.5.8.
  21636. </para>
  21637. </change>

  21638. </changes>


  21639. <changes ver="0.5.12" date="2007-02-12">

  21640. <change type="bugfix">
  21641. <para lang="ru">
  21642. nginx не собирался на платформах, отличных от i386, amd64, sparc и ppc;
  21643. ошибка появилась в 0.5.8.
  21644. </para>
  21645. <para lang="en">
  21646. nginx could not be built on platforms different from i386, amd64, sparc,
  21647. and ppc;
  21648. the bug had appeared in 0.5.8.
  21649. </para>
  21650. </change>

  21651. <change type="bugfix">
  21652. <para lang="ru">
  21653. при использовании временных файлов в время работы с FastCGI-сервером
  21654. в рабочем процессе мог произойти segmentation fault;
  21655. ошибка появилась в 0.5.8.
  21656. </para>
  21657. <para lang="en">
  21658. a segmentation fault might occur in worker process
  21659. if the temporary files were used while working with FastCGI server;
  21660. the bug had appeared in 0.5.8.
  21661. </para>
  21662. </change>

  21663. <change type="bugfix">
  21664. <para lang="ru">
  21665. если переменная $fastcgi_script_name записывалась в лог,
  21666. то в рабочем процессе мог произойти segmentation fault.
  21667. </para>
  21668. <para lang="en">
  21669. a segmentation fault might occur in worker process
  21670. if the $fastcgi_script_name variable was logged.
  21671. </para>
  21672. </change>

  21673. <change type="bugfix">
  21674. <para lang="ru">
  21675. ngx_http_perl_module не собирался на Solaris.
  21676. </para>
  21677. <para lang="en">
  21678. ngx_http_perl_module could not be built on Solaris.
  21679. </para>
  21680. </change>

  21681. </changes>


  21682. <changes ver="0.5.11" date="2007-02-05">

  21683. <change type="feature">
  21684. <para lang="ru">
  21685. теперь configure определяет библиотеку PCRE в MacPorts.<br/>
  21686. Спасибо Chris McGrath.
  21687. </para>
  21688. <para lang="en">
  21689. now configure detects system PCRE library in MacPorts.<br/>
  21690. Thanks to Chris McGrath.
  21691. </para>
  21692. </change>

  21693. <change type="bugfix">
  21694. <para lang="ru">
  21695. ответ был неверным, если запрашивалось несколько диапазонов;
  21696. ошибка появилась в 0.5.6.
  21697. </para>
  21698. <para lang="en">
  21699. the response was incorrect if several ranges were requested;
  21700. the bug had appeared in 0.5.6.
  21701. </para>
  21702. </change>

  21703. <change type="bugfix">
  21704. <para lang="ru">
  21705. директива create_full_put_path не могла создавать промежуточные каталоги,
  21706. если не была установлена директива dav_access.<br/>
  21707. Спасибо Evan Miller.
  21708. </para>
  21709. <para lang="en">
  21710. the "create_full_put_path" directive could not create the intermediate
  21711. directories if no "dav_access" directive was set.<br/>
  21712. Thanks to Evan Miller.
  21713. </para>
  21714. </change>

  21715. <change type="bugfix">
  21716. <para lang="ru">
  21717. вместо кодов ошибок "400" и "408" в access_log мог записываться код "0".
  21718. </para>
  21719. <para lang="en">
  21720. the "0" response code might be logged in the access_log instead of
  21721. the "400" and "408" error codes.
  21722. </para>
  21723. </change>

  21724. <change type="bugfix">
  21725. <para lang="ru">
  21726. при сборке с оптимизацией -O2 в рабочем процессе мог произойти
  21727. segmentation fault.
  21728. </para>
  21729. <para lang="en">
  21730. a segmentation fault might occur in worker process
  21731. if nginx was built with -O2 optimization.
  21732. </para>
  21733. </change>

  21734. </changes>


  21735. <changes ver="0.5.10" date="2007-01-26">

  21736. <change type="bugfix">
  21737. <para lang="ru">
  21738. во время обновления исполняемого файла новый процесс не наследовал
  21739. слушающие сокеты;
  21740. ошибка появилась в 0.5.9.
  21741. </para>
  21742. <para lang="en">
  21743. while online executable file upgrade the new master process did not
  21744. inherit the listening sockets;
  21745. the bug had appeared in 0.5.9.
  21746. </para>
  21747. </change>

  21748. <change type="bugfix">
  21749. <para lang="ru">
  21750. при сборке с оптимизацией -O2 в рабочем процессе мог произойти
  21751. segmentation fault;
  21752. ошибка появилась в 0.5.1.
  21753. </para>
  21754. <para lang="en">
  21755. a segmentation fault might occur in worker process
  21756. if nginx was built with -O2 optimization;
  21757. the bug had appeared in 0.5.1.
  21758. </para>
  21759. </change>

  21760. </changes>


  21761. <changes ver="0.5.9" date="2007-01-25">

  21762. <change type="change">
  21763. <para lang="ru">
  21764. модуль ngx_http_memcached_module теперь в качестве ключа использует
  21765. значение переменной $memcached_key.
  21766. </para>
  21767. <para lang="en">
  21768. now the ngx_http_memcached_module uses the $memcached_key variable value
  21769. as a key.
  21770. </para>
  21771. </change>

  21772. <change type="feature">
  21773. <para lang="ru">
  21774. переменная $memcached_key.
  21775. </para>
  21776. <para lang="en">
  21777. the $memcached_key variable.
  21778. </para>
  21779. </change>

  21780. <change type="feature">
  21781. <para lang="ru">
  21782. параметр clean в директиве client_body_in_file_only.
  21783. </para>
  21784. <para lang="en">
  21785. the "clean" parameter in the "client_body_in_file_only" directive.
  21786. </para>
  21787. </change>

  21788. <change type="feature">
  21789. <para lang="ru">
  21790. директива env.
  21791. </para>
  21792. <para lang="en">
  21793. the "env" directive.
  21794. </para>
  21795. </change>

  21796. <change type="feature">
  21797. <para lang="ru">
  21798. директива sendfile работает внутри блока if.
  21799. </para>
  21800. <para lang="en">
  21801. the "sendfile" directive is available inside the "if" block.
  21802. </para>
  21803. </change>

  21804. <change type="feature">
  21805. <para lang="ru">
  21806. теперь при ошибке записи в access_log nginx записывает сообщение в error_log,
  21807. но не чаще одного раза в минуту.
  21808. </para>
  21809. <para lang="en">
  21810. now on failure of the writing to access nginx logs a message to error_log,
  21811. but not more often than once a minute.
  21812. </para>
  21813. </change>

  21814. <change type="bugfix">
  21815. <para lang="ru">
  21816. директива "access_log off" не всегда запрещала запись в лог.
  21817. </para>
  21818. <para lang="en">
  21819. the "access_log off" directive did not always turn off the logging.
  21820. </para>
  21821. </change>

  21822. </changes>


  21823. <changes ver="0.5.8" date="2007-01-19">

  21824. <change type="bugfix">
  21825. <para lang="ru">
  21826. если использовалась директива <nobr>"client_body_in_file_only on"</nobr>
  21827. и тело запроса было небольшое, то мог произойти segmentation fault.
  21828. </para>
  21829. <para lang="en">
  21830. a segmentation fault might occur if
  21831. <nobr>"client_body_in_file_only on"</nobr> was used
  21832. and a request body was small.
  21833. </para>
  21834. </change>

  21835. <change type="bugfix">
  21836. <para lang="ru">
  21837. происходил segmentation fault, если использовались директивы
  21838. <nobr>"client_body_in_file_only on"</nobr>
  21839. и <nobr>"proxy_pass_request_body off"</nobr>
  21840. или <nobr>"fastcgi_pass_request_body off"</nobr>,
  21841. и делался переход к следующему бэкенду.
  21842. </para>
  21843. <para lang="en">
  21844. a segmentation fault occurred if <nobr>"client_body_in_file_only on"</nobr>
  21845. and <nobr>"proxy_pass_request_body off"</nobr>
  21846. or <nobr>"fastcgi_pass_request_body off"</nobr>
  21847. directives were used, and nginx switched to a next upstream.
  21848. </para>
  21849. </change>

  21850. <change type="bugfix">
  21851. <para lang="ru">
  21852. если при использовании директивы "proxy_buffering off" соединение с клиентом
  21853. было неактивно, то оно закрывалось по таймауту, заданному директивой
  21854. send_timeout;
  21855. ошибка появилась в 0.4.7.
  21856. </para>
  21857. <para lang="en">
  21858. if the "proxy_buffering off" directive was used and a client connection
  21859. was non-active, then the connection was closed after send timeout;
  21860. the bug had appeared in 0.4.7.
  21861. </para>
  21862. </change>

  21863. <change type="bugfix">
  21864. <para lang="ru">
  21865. если при использовании метода epoll клиент закрывал преждевременно
  21866. соединение со своей стороны, то nginx закрывал это соединение только
  21867. по истечении таймаута на передачу.
  21868. </para>
  21869. <para lang="en">
  21870. if the "epoll" method was used and a client closed a connection prematurely,
  21871. then nginx closed the connection after a send timeout only.
  21872. </para>
  21873. </change>

  21874. <change type="bugfix">
  21875. <para lang="ru">
  21876. ошибки "[alert] zero size buf" при работе с FastCGI-сервером.
  21877. </para>
  21878. <para lang="en">
  21879. the "[alert] zero size buf" error when FastCGI server was used.
  21880. </para>
  21881. </change>

  21882. <change>
  21883. <para lang="ru">
  21884. Исправление ошибок в директиве limit_zone.
  21885. </para>
  21886. <para lang="en">
  21887. Bugfixes in the "limit_zone" directive.
  21888. </para>
  21889. </change>

  21890. </changes>


  21891. <changes ver="0.5.7" date="2007-01-15">

  21892. <change type="feature">
  21893. <para lang="ru">
  21894. оптимизация использования памяти в ssl_session_cache.
  21895. </para>
  21896. <para lang="en">
  21897. the ssl_session_cache storage optimization.
  21898. </para>
  21899. </change>

  21900. <change>
  21901. <para lang="ru">
  21902. Исправление ошибок в директивах ssl_session_cache и limit_zone.
  21903. </para>
  21904. <para lang="en">
  21905. Bugfixes in the "ssl_session_cache" and "limit_zone" directives.
  21906. </para>
  21907. </change>

  21908. <change type="bugfix">
  21909. <para lang="ru">
  21910. на старте или во время переконфигурации происходил segmentation fault,
  21911. если директивы ssl_session_cache или limit_zone использовались
  21912. на 64-битных платформах.
  21913. </para>
  21914. <para lang="en">
  21915. the segmentation fault was occurred on start or while reconfiguration
  21916. if the "ssl_session_cache" or "limit_zone" directives were used
  21917. on 64-bit platforms.
  21918. </para>
  21919. </change>

  21920. <change type="bugfix">
  21921. <para lang="ru">
  21922. при использовании директив add_before_body или add_after_body происходил
  21923. segmentation fault, если в заголовке ответа нет строки "Content-Type".
  21924. </para>
  21925. <para lang="en">
  21926. a segmentation fault occurred if the "add_before_body" or "add_after_body"
  21927. directives were used and there was no "Content-Type" header line in response.
  21928. </para>
  21929. </change>

  21930. <change type="bugfix">
  21931. <para lang="ru">
  21932. библиотека OpenSSL всегда собиралась с поддержкой потоков.<br/>
  21933. Спасибо Дену Иванову.
  21934. </para>
  21935. <para lang="en">
  21936. the OpenSSL library was always built with the threads support.<br/>
  21937. Thanks to Den Ivanov.
  21938. </para>
  21939. </change>

  21940. <change type="bugfix">
  21941. <para lang="ru">
  21942. совместимость библиотеки PCRE-6.5+ и компилятора icc.
  21943. </para>
  21944. <para lang="en">
  21945. the PCRE-6.5+ library and the icc compiler compatibility.
  21946. </para>
  21947. </change>

  21948. </changes>


  21949. <changes ver="0.5.6" date="2007-01-09">

  21950. <change type="change">
  21951. <para lang="ru">
  21952. теперь модуль ngx_http_index_module игнорирует все методы,
  21953. кроме GET, HEAD и POST.
  21954. </para>
  21955. <para lang="en">
  21956. now the ngx_http_index_module ignores all methods except the GET, HEAD, and
  21957. POST methods.
  21958. </para>
  21959. </change>

  21960. <change type="feature">
  21961. <para lang="ru">
  21962. модуль ngx_http_limit_zone_module.
  21963. </para>
  21964. <para lang="en">
  21965. the ngx_http_limit_zone_module.
  21966. </para>
  21967. </change>

  21968. <change type="feature">
  21969. <para lang="ru">
  21970. переменная $binary_remote_addr.
  21971. </para>
  21972. <para lang="en">
  21973. the $binary_remote_addr variable.
  21974. </para>
  21975. </change>

  21976. <change type="feature">
  21977. <para lang="ru">
  21978. директивы ssl_session_cache модулей ngx_http_ssl_module и ngx_imap_ssl_module.
  21979. </para>
  21980. <para lang="en">
  21981. the "ssl_session_cache" directives
  21982. of the ngx_http_ssl_module and ngx_imap_ssl_module.
  21983. </para>
  21984. </change>

  21985. <change type="feature">
  21986. <para lang="ru">
  21987. метод DELETE поддерживает рекурсивное удаление.
  21988. </para>
  21989. <para lang="en">
  21990. the DELETE method supports recursive removal.
  21991. </para>
  21992. </change>

  21993. <change type="bugfix">
  21994. <para lang="ru">
  21995. при использовании $r->sendfile() byte-ranges передавались неверно.
  21996. </para>
  21997. <para lang="en">
  21998. the byte-ranges were transferred incorrectly if the $r->sendfile() was used.
  21999. </para>
  22000. </change>

  22001. </changes>


  22002. <changes ver="0.5.5" date="2006-12-24">

  22003. <change type="change">
  22004. <para lang="ru">
  22005. ключ -v больше не выводит информацию о компиляторе.
  22006. </para>
  22007. <para lang="en">
  22008. the -v switch does not show compiler information any more.
  22009. </para>
  22010. </change>

  22011. <change type="feature">
  22012. <para lang="ru">
  22013. ключ -V.
  22014. </para>
  22015. <para lang="en">
  22016. the -V switch.
  22017. </para>
  22018. </change>

  22019. <change type="feature">
  22020. <para lang="ru">
  22021. директива worker_rlimit_core поддерживает указание размера в K, M и G.
  22022. </para>
  22023. <para lang="en">
  22024. the "worker_rlimit_core" directive supports size in K, M, and G.
  22025. </para>
  22026. </change>

  22027. <change type="bugfix">
  22028. <para lang="ru">
  22029. модуль nginx.pm теперь может устанавливаться непривилегированным пользователем.
  22030. </para>
  22031. <para lang="en">
  22032. the nginx.pm module now could be installed by an unprivileged user.
  22033. </para>
  22034. </change>

  22035. <change type="bugfix">
  22036. <para lang="ru">
  22037. при использовании методов $r->request_body или $r->request_body_file мог
  22038. произойти segmentation fault.
  22039. </para>
  22040. <para lang="en">
  22041. a segmentation fault might occur if the $r->request_body or
  22042. $r->request_body_file methods were used.
  22043. </para>
  22044. </change>

  22045. <change type="bugfix">
  22046. <para lang="ru">
  22047. ошибок, специфичных для платформы ppc.
  22048. </para>
  22049. <para lang="en">
  22050. the ppc platform specific bugs.
  22051. </para>
  22052. </change>

  22053. </changes>


  22054. <changes ver="0.5.4" date="2006-12-15">

  22055. <change type="feature">
  22056. <para lang="ru">
  22057. директиву perl можно использовать внутри блока limit_except.
  22058. </para>
  22059. <para lang="en">
  22060. the "perl" directive may be used inside the "limit_except" block.
  22061. </para>
  22062. </change>

  22063. <change type="bugfix">
  22064. <para lang="ru">
  22065. модуль ngx_http_dav_module требовал строку "Date" в заголовке запроса
  22066. для метода DELETE.
  22067. </para>
  22068. <para lang="en">
  22069. the ngx_http_dav_module required the "Date" request header line
  22070. for the DELETE method.
  22071. </para>
  22072. </change>

  22073. <change type="bugfix">
  22074. <para lang="ru">
  22075. при использовании одного параметра в директиве dav_access nginx мог
  22076. сообщить об ошибке в конфигурации.
  22077. </para>
  22078. <para lang="en">
  22079. if one only parameter was used in the "dav_access" directive, then
  22080. nginx might report about configuration error.
  22081. </para>
  22082. </change>

  22083. <change type="bugfix">
  22084. <para lang="ru">
  22085. при использовании переменной $host мог произойти segmentation fault;
  22086. ошибка появилась в 0.4.14.
  22087. </para>
  22088. <para lang="en">
  22089. a segmentation fault might occur if the $host variable was used;
  22090. the bug had appeared in 0.4.14.
  22091. </para>
  22092. </change>

  22093. </changes>


  22094. <changes ver="0.5.3" date="2006-12-13">

  22095. <change type="feature">
  22096. <para lang="ru">
  22097. модуль ngx_http_perl_module поддерживает методы $r->status, $r->log_error
  22098. и $r->sleep.
  22099. </para>
  22100. <para lang="en">
  22101. the ngx_http_perl_module supports the $r->status, $r->log_error,
  22102. and $r->sleep methods.
  22103. </para>
  22104. </change>

  22105. <change type="feature">
  22106. <para lang="ru">
  22107. метод $r->variable поддерживает переменные, неописанные в конфигурации nginx'а.
  22108. </para>
  22109. <para lang="en">
  22110. the $r->variable method supports variables that do not exist in nginx
  22111. configuration.
  22112. </para>
  22113. </change>

  22114. <change type="bugfix">
  22115. <para lang="ru">
  22116. метод $r->has_request_body не работал.
  22117. </para>
  22118. <para lang="en">
  22119. the $r->has_request_body method did not work.
  22120. </para>
  22121. </change>

  22122. </changes>


  22123. <changes ver="0.5.2" date="2006-12-11">

  22124. <change type="bugfix">
  22125. <para lang="ru">
  22126. если в директивах proxy_pass использовалось имя, указанное в upstream,
  22127. то nginx пытался найти IP-адрес этого имени;
  22128. ошибка появилась в 0.5.1.
  22129. </para>
  22130. <para lang="en">
  22131. if the "proxy_pass" directive used the name of the "upstream" block,
  22132. then nginx tried to resolve the name;
  22133. the bug had appeared in 0.5.1.
  22134. </para>
  22135. </change>

  22136. </changes>


  22137. <changes ver="0.5.1" date="2006-12-11">

  22138. <change type="bugfix">
  22139. <para lang="ru">
  22140. директива post_action могла не работать после неудачного завершения запроса.
  22141. </para>
  22142. <para lang="en">
  22143. the "post_action" directive might not run after a unsuccessful completion
  22144. of a request.
  22145. </para>
  22146. </change>

  22147. <change type="workaround">
  22148. <para lang="ru">
  22149. обход ошибки в Eudora для Mac;
  22150. ошибка появилась в 0.4.11.<br/>
  22151. Спасибо Bron Gondwana.
  22152. </para>
  22153. <para lang="en">
  22154. for Eudora for Mac;
  22155. the bug had appeared in 0.4.11.<br/>
  22156. Thanks to Bron Gondwana.
  22157. </para>
  22158. </change>

  22159. <change type="bugfix">
  22160. <para lang="ru">
  22161. при указании в директиве fastcgi_pass имени описанного upstream'а выдавалось
  22162. сообщение "no port in upstream";
  22163. ошибка появилась в 0.5.0.
  22164. </para>
  22165. <para lang="en">
  22166. if the "upstream" name was used in the "fastcgi_pass", then the message
  22167. "no port in upstream" was issued;
  22168. the bug had appeared in 0.5.0.
  22169. </para>
  22170. </change>

  22171. <change type="bugfix">
  22172. <para lang="ru">
  22173. если в директивах proxy_pass и fastcgi_pass использовались одинаковых имена
  22174. серверов, но с разными портами, то эти директивы использовали первый
  22175. описанный порт;
  22176. ошибка появилась в 0.5.0.
  22177. </para>
  22178. <para lang="en">
  22179. if the "proxy_pass" and "fastcgi_pass" directives used the same servers but
  22180. different ports, then these directives uses the first described port;
  22181. the bug had appeared in 0.5.0.
  22182. </para>
  22183. </change>

  22184. <change type="bugfix">
  22185. <para lang="ru">
  22186. если в директивах proxy_pass и fastcgi_pass использовались unix domain сокеты,
  22187. то эти директивы использовали первый описанный сокет;
  22188. ошибка появилась в 0.5.0.
  22189. </para>
  22190. <para lang="en">
  22191. if the "proxy_pass" and "fastcgi_pass" directives used the unix domain sockets,
  22192. then these directives used first described socket;
  22193. the bug had appeared in 0.5.0.
  22194. </para>
  22195. </change>

  22196. <change type="bugfix">
  22197. <para lang="ru">
  22198. ngx_http_auth_basic_module игнорировал пользователя, если он был указан
  22199. в последней строке файла паролей и после пароля не было перевода строки,
  22200. возврата каретки или символа ":".
  22201. </para>
  22202. <para lang="en">
  22203. ngx_http_auth_basic_module ignored the user if it was in the last line in
  22204. the password file and there was no the carriage return, the line feed,
  22205. or the ":" symbol after the password.
  22206. </para>
  22207. </change>

  22208. <change type="bugfix">
  22209. <para lang="ru">
  22210. переменная $upstream_response_time могла быть равна "0.000", хотя время
  22211. обработки было больше 1 миллисекунды.
  22212. </para>
  22213. <para lang="en">
  22214. the $upstream_response_time variable might be equal to "0.000", although
  22215. response time was more than 1 millisecond.
  22216. </para>
  22217. </change>

  22218. </changes>


  22219. <changes ver="0.5.0" date="2006-12-04">

  22220. <change type="change">
  22221. <para lang="ru">
  22222. параметры в виде "%name" в директиве log_format больше не поддерживаются.
  22223. </para>
  22224. <para lang="en">
  22225. the parameters in the "%name" form in the "log_format" directive
  22226. are not supported anymore.
  22227. </para>
  22228. </change>

  22229. <change type="change">
  22230. <para lang="ru">
  22231. директивы proxy_upstream_max_fails, proxy_upstream_fail_timeout,
  22232. fastcgi_upstream_max_fails, и fastcgi_upstream_fail_timeout,
  22233. memcached_upstream_max_fails и memcached_upstream_fail_timeout
  22234. больше не поддерживаются.
  22235. </para>
  22236. <para lang="en">
  22237. the "proxy_upstream_max_fails", "proxy_upstream_fail_timeout",
  22238. "fastcgi_upstream_max_fails", "fastcgi_upstream_fail_timeout",
  22239. "memcached_upstream_max_fails", and "memcached_upstream_fail_timeout"
  22240. directives are not supported anymore.
  22241. </para>
  22242. </change>

  22243. <change type="feature">
  22244. <para lang="ru">
  22245. директива server в блоке upstream поддерживает параметры
  22246. max_fails, fail_timeout и down.
  22247. </para>
  22248. <para lang="en">
  22249. the "server" directive in the "upstream" context supports
  22250. the "max_fails", "fail_timeout", and "down" parameters.
  22251. </para>
  22252. </change>

  22253. <change type="feature">
  22254. <para lang="ru">
  22255. директива ip_hash в блоке upstream.
  22256. </para>
  22257. <para lang="en">
  22258. the "ip_hash" directive inside the "upstream" block.
  22259. </para>
  22260. </change>

  22261. <change type="feature">
  22262. <para lang="ru">
  22263. статус WAIT в строке "Auth-Status" в заголовке ответа сервера аутентификации
  22264. IMAP/POP3 прокси.
  22265. </para>
  22266. <para lang="en">
  22267. the WAIT status in the "Auth-Status" header line of the IMAP/POP3 proxy
  22268. authentication server response.
  22269. </para>
  22270. </change>

  22271. <change type="bugfix">
  22272. <para lang="ru">
  22273. nginx не собирался на 64-битных платформах;
  22274. ошибка появилась в 0.4.14.
  22275. </para>
  22276. <para lang="en">
  22277. nginx could not be built on 64-bit platforms;
  22278. the bug had appeared in 0.4.14.
  22279. </para>
  22280. </change>

  22281. </changes>


  22282. <changes ver="0.4.14" date="2006-11-27">

  22283. <change type="feature">
  22284. <para lang="ru">
  22285. директива proxy_pass_error_message в IMAP/POP3 прокси.
  22286. </para>
  22287. <para lang="en">
  22288. the "proxy_pass_error_message" directive in IMAP/POP3 proxy.
  22289. </para>
  22290. </change>

  22291. <change type="feature">
  22292. <para lang="ru">
  22293. теперь configure определяет библиотеку PCRE на FreeBSD, Linux и NetBSD.
  22294. </para>
  22295. <para lang="en">
  22296. now configure detects system PCRE library on FreeBSD, Linux, and NetBSD.
  22297. </para>
  22298. </change>

  22299. <change type="bugfix">
  22300. <para lang="ru">
  22301. ngx_http_perl_module не работал с перлом, собранным с поддержкой потоков;
  22302. ошибка появилась в 0.3.38.
  22303. </para>
  22304. <para lang="en">
  22305. ngx_http_perl_module did not work with perl built with the threads support;
  22306. the bug had appeared in 0.3.38.
  22307. </para>
  22308. </change>

  22309. <change type="bugfix">
  22310. <para lang="ru">
  22311. ngx_http_perl_module не работал корректно, если перл вызывался рекурсивно.
  22312. </para>
  22313. <para lang="en">
  22314. ngx_http_perl_module did not work if perl was called recursively.
  22315. </para>
  22316. </change>

  22317. <change type="bugfix">
  22318. <para lang="ru">
  22319. nginx игнорировал имя сервера в строке запроса.
  22320. </para>
  22321. <para lang="en">
  22322. nginx ignored a host name in a request line.
  22323. </para>
  22324. </change>

  22325. <change type="bugfix">
  22326. <para lang="ru">
  22327. если FastCGI сервер передавал много в stderr,
  22328. то рабочий процесс мог зациклиться.
  22329. </para>
  22330. <para lang="en">
  22331. a worker process may got caught in an endless loop,
  22332. if a FastCGI server sent too many data to the stderr.
  22333. </para>
  22334. </change>

  22335. <change type="bugfix">
  22336. <para lang="ru">
  22337. при изменении системного времени переменная $upstream_response_time
  22338. могла быть отрицательной.
  22339. </para>
  22340. <para lang="en">
  22341. the $upstream_response_time variable may be negative if the system time
  22342. was changed backward.
  22343. </para>
  22344. </change>

  22345. <change type="bugfix">
  22346. <para lang="ru">
  22347. при использовании POP3 серверу аутентификации IMAP/POP3 прокси
  22348. не передавался параметр Auth-Login-Attempt.
  22349. </para>
  22350. <para lang="en">
  22351. the "Auth-Login-Attempt" parameter was not sent to
  22352. IMAP/POP3 proxy authentication server when POP3 was used.
  22353. </para>
  22354. </change>

  22355. <change type="bugfix">
  22356. <para lang="ru">
  22357. при ошибке соединения с сервером аутентификации IMAP/POP3 прокси
  22358. мог произойти segmentation fault.
  22359. </para>
  22360. <para lang="en">
  22361. a segmentation fault might occur if connect to IMAP/POP3 proxy
  22362. authentication server failed.
  22363. </para>
  22364. </change>

  22365. </changes>


  22366. <changes ver="0.4.13" date="2006-11-15">

  22367. <change type="feature">
  22368. <para lang="ru">
  22369. директиву proxy_pass можно использовать внутри блока limit_except.
  22370. </para>
  22371. <para lang="en">
  22372. the "proxy_pass" directive may be used inside the "limit_except" block.
  22373. </para>
  22374. </change>

  22375. <change type="feature">
  22376. <para lang="ru">
  22377. директива limit_except поддерживает все WebDAV методы.
  22378. </para>
  22379. <para lang="en">
  22380. the "limit_except" directive supports all WebDAV methods.
  22381. </para>
  22382. </change>

  22383. <change type="bugfix">
  22384. <para lang="ru">
  22385. при использовании директивы add_before_body без директивы add_after_body
  22386. ответ передавался не полностью.
  22387. </para>
  22388. <para lang="en">
  22389. if the "add_before_body" directive was used without
  22390. the "add_after_body" directive, then a response did not transferred complete.
  22391. </para>
  22392. </change>

  22393. <change type="bugfix">
  22394. <para lang="ru">
  22395. большое тело запроса не принималось, если использовались метод epoll
  22396. и deferred accept().
  22397. </para>
  22398. <para lang="en">
  22399. a large request body did not receive if the epoll method
  22400. and the deferred accept() were used.
  22401. </para>
  22402. </change>

  22403. <change type="bugfix">
  22404. <para lang="ru">
  22405. для ответов модуля ngx_http_autoindex_module не выставлялась кодировка;
  22406. ошибка появилась в 0.3.50.
  22407. </para>
  22408. <para lang="en">
  22409. a charset could not be set for ngx_http_autoindex_module responses;
  22410. the bug had appeared in 0.3.50.
  22411. </para>
  22412. </change>

  22413. <change type="bugfix">
  22414. <para lang="ru">
  22415. ошибки "[alert] zero size buf" при работе с FastCGI-сервером;
  22416. </para>
  22417. <para lang="en">
  22418. the "[alert] zero size buf" error when FastCGI server was used;
  22419. </para>
  22420. </change>

  22421. <change type="bugfix">
  22422. <para lang="ru">
  22423. параметр конфигурации --group= игнорировался.<br/>
  22424. Спасибо Thomas Moschny.
  22425. </para>
  22426. <para lang="en">
  22427. the --group= configuration parameter was ignored.<br/>
  22428. Thanks to Thomas Moschny.
  22429. </para>
  22430. </change>

  22431. <change type="bugfix">
  22432. <para lang="ru">
  22433. 50-й подзапрос в SSI ответе не работал;
  22434. ошибка появилась в 0.3.50.
  22435. </para>
  22436. <para lang="en">
  22437. the 50th subrequest in SSI response did not work;
  22438. the bug had appeared in 0.3.50.
  22439. </para>
  22440. </change>

  22441. </changes>


  22442. <changes ver="0.4.12" date="2006-10-31">

  22443. <change type="feature">
  22444. <para lang="ru">
  22445. модуль ngx_http_perl_module поддерживает метод $r->variable.
  22446. </para>
  22447. <para lang="en">
  22448. the ngx_http_perl_module supports the $r->variable method.
  22449. </para>
  22450. </change>

  22451. <change type="bugfix">
  22452. <para lang="ru">
  22453. при включении в ответ большого статического файла с помощью SSI
  22454. ответ мог передаваться не полностью.
  22455. </para>
  22456. <para lang="en">
  22457. if a big static file was included using SSI in a response,
  22458. then the response may be transferred incomplete.
  22459. </para>
  22460. </change>

  22461. <change type="bugfix">
  22462. <para lang="ru">
  22463. nginx не убирал "#fragment" в URI.
  22464. </para>
  22465. <para lang="en">
  22466. nginx did not omit the "#fragment" part in URI.
  22467. </para>
  22468. </change>

  22469. </changes>


  22470. <changes ver="0.4.11" date="2006-10-25">

  22471. <change type="feature">
  22472. <para lang="ru">
  22473. POP3 прокси поддерживает AUTH LOGIN PLAIN и CRAM-MD5.
  22474. </para>
  22475. <para lang="en">
  22476. the POP3 proxy supports the AUTH LOGIN PLAIN and CRAM-MD5.
  22477. </para>
  22478. </change>

  22479. <change type="feature">
  22480. <para lang="ru">
  22481. модуль ngx_http_perl_module поддерживает метод $r->allow_ranges.
  22482. </para>
  22483. <para lang="en">
  22484. the ngx_http_perl_module supports the $r->allow_ranges method.
  22485. </para>
  22486. </change>

  22487. <change type="bugfix">
  22488. <para lang="ru">
  22489. при включённой поддержке команды APOP в POP3 прокси могли
  22490. не работать команды USER/PASS;
  22491. ошибка появилась в 0.4.10.
  22492. </para>
  22493. <para lang="en">
  22494. if the APOP was enabled in the POP3 proxy, then the USER/PASS commands
  22495. might not work;
  22496. the bug had appeared in 0.4.10.
  22497. </para>
  22498. </change>

  22499. </changes>


  22500. <changes ver="0.4.10" date="2006-10-23">

  22501. <change type="feature">
  22502. <para lang="ru">
  22503. POP3 прокси поддерживает APOP.
  22504. </para>
  22505. <para lang="en">
  22506. the POP3 proxy supports the APOP command.
  22507. </para>
  22508. </change>

  22509. <change type="bugfix">
  22510. <para lang="ru">
  22511. при использовании методов select, poll и /dev/poll во время ожидания
  22512. ответа от сервера аутентификации IMAP/POP3 прокси нагружал процессор.
  22513. </para>
  22514. <para lang="en">
  22515. if the select, poll or /dev/poll methods were used, then while
  22516. waiting authentication server response the IMAP/POP3 proxy hogged CPU.
  22517. </para>
  22518. </change>

  22519. <change type="bugfix">
  22520. <para lang="ru">
  22521. при использовании переменной $server_addr в директиве map мог
  22522. произойти segmentation fault.
  22523. </para>
  22524. <para lang="en">
  22525. a segmentation fault might occur if the $server_addr variable was used
  22526. in the "map" directive.
  22527. </para>
  22528. </change>

  22529. <change type="bugfix">
  22530. <para lang="ru">
  22531. модуль ngx_http_flv_module не поддерживал byte ranges для полных ответов;
  22532. ошибка появилась в 0.4.7.
  22533. </para>
  22534. <para lang="en">
  22535. the ngx_http_flv_module did not support the byte ranges for full responses;
  22536. the bug had appeared in 0.4.7.
  22537. </para>
  22538. </change>

  22539. <change type="bugfix">
  22540. <para lang="ru">
  22541. nginx не собирался на Debian amd64;
  22542. ошибка появилась в 0.4.9.
  22543. </para>
  22544. <para lang="en">
  22545. nginx could not be built on Debian amd64;
  22546. the bug had appeared in 0.4.9.
  22547. </para>
  22548. </change>

  22549. </changes>


  22550. <changes ver="0.4.9" date="2006-10-13">

  22551. <change type="feature">
  22552. <para lang="ru">
  22553. параметр set в команде SSI include.
  22554. </para>
  22555. <para lang="en">
  22556. the "set" parameter in the "include" SSI command.
  22557. </para>
  22558. </change>

  22559. <change type="feature">
  22560. <para lang="ru">
  22561. модуль ngx_http_perl_module теперь проверяет версию модуля nginx.pm.
  22562. </para>
  22563. <para lang="en">
  22564. the ngx_http_perl_module now tests the nginx.pm module version.
  22565. </para>
  22566. </change>

  22567. </changes>


  22568. <changes ver="0.4.8" date="2006-10-11">

  22569. <change type="bugfix">
  22570. <para lang="ru">
  22571. если до команды SSI include с параметром wait выполнялась ещё
  22572. одна команда SSI include, то параметр wait мог не работать.
  22573. </para>
  22574. <para lang="en">
  22575. if an "include" SSI command were before another "include" SSI command
  22576. with a "wait" parameter, then the "wait" parameter might not work.
  22577. </para>
  22578. </change>

  22579. <change type="bugfix">
  22580. <para lang="ru">
  22581. модуль ngx_http_flv_module добавлял FLV-заголовок для полных ответов.<br/>
  22582. Спасибо Алексею Ковырину.
  22583. </para>
  22584. <para lang="en">
  22585. the ngx_http_flv_module added the FLV header to the full responses.<br/>
  22586. Thanks to Alexey Kovyrin.
  22587. </para>
  22588. </change>

  22589. </changes>


  22590. <changes ver="0.4.7" date="2006-10-10">

  22591. <change type="feature">
  22592. <para lang="ru">
  22593. модуль ngx_http_flv_module.
  22594. </para>
  22595. <para lang="en">
  22596. the ngx_http_flv_module.
  22597. </para>
  22598. </change>

  22599. <change type="feature">
  22600. <para lang="ru">
  22601. переменная $request_body_file.
  22602. </para>
  22603. <para lang="en">
  22604. the $request_body_file variable.
  22605. </para>
  22606. </change>

  22607. <change type="feature">
  22608. <para lang="ru">
  22609. директивы charset и source_charset поддерживают переменные.
  22610. </para>
  22611. <para lang="en">
  22612. the "charset" and "source_charset" directives support the variables.
  22613. </para>
  22614. </change>

  22615. <change type="bugfix">
  22616. <para lang="ru">
  22617. если до команды SSI include с параметром wait выполнялась ещё
  22618. одна команда SSI include, то параметр wait мог не работать.
  22619. </para>
  22620. <para lang="en">
  22621. if an "include" SSI command were before another "include" SSI command
  22622. with a "wait" parameter, then the "wait" parameter might not work.
  22623. </para>
  22624. </change>

  22625. <change type="bugfix">
  22626. <para lang="ru">
  22627. при использовании директивы "proxy_buffering off" или при работе
  22628. с memcached соединения могли не закрываться по таймауту.
  22629. </para>
  22630. <para lang="en">
  22631. if the "proxy_buffering off" directive was used or while working with
  22632. memcached the connections might not be closed on timeout.
  22633. </para>
  22634. </change>

  22635. <change type="bugfix">
  22636. <para lang="ru">
  22637. nginx не запускался на 64-битных платформах, отличных от amd64, sparc64 и ppc64.
  22638. </para>
  22639. <para lang="en">
  22640. nginx did not run on 64-bit platforms except amd64, sparc64, and ppc64.
  22641. </para>
  22642. </change>

  22643. </changes>


  22644. <changes ver="0.4.6" date="2006-10-06">

  22645. <change type="bugfix">
  22646. <para lang="ru">
  22647. nginx не запускался на 64-битных платформах, отличных от amd64, sparc64 и ppc64.
  22648. </para>
  22649. <para lang="en">
  22650. nginx did not run on 64-bit platforms except amd64, sparc64, and ppc64.
  22651. </para>
  22652. </change>

  22653. <change type="bugfix">
  22654. <para lang="ru">
  22655. при запросе версии HTTP/1.1 nginx передавал ответ chunk'ами,
  22656. если длина ответа в методе $r->headers_out("Content-Length", ...)
  22657. была задана текстовой строкой.
  22658. </para>
  22659. <para lang="en">
  22660. nginx sent the chunked response for HTTP/1.1 request,<br/>
  22661. if its length was set by text string in
  22662. the $r->headers_out("Content-Length", ...) method.
  22663. </para>
  22664. </change>

  22665. <change type="bugfix">
  22666. <para lang="ru">
  22667. после перенаправления ошибки с помощью директивы error_page любая директива
  22668. модуля ngx_http_rewrite_module возвращала эту ошибку;
  22669. ошибка появилась в 0.4.4.
  22670. </para>
  22671. <para lang="en">
  22672. after redirecting error by an "error_page" directive
  22673. any ngx_http_rewrite_module directive returned this error code;
  22674. the bug had appeared in 0.4.4.
  22675. </para>
  22676. </change>

  22677. </changes>


  22678. <changes ver="0.4.5" date="2006-10-02">

  22679. <change type="bugfix">
  22680. <para lang="ru">
  22681. nginx не собирался на Linux и Solaris;
  22682. ошибка появилась в 0.4.4.
  22683. </para>
  22684. <para lang="en">
  22685. nginx could not be built on Linux and Solaris;
  22686. the bug had appeared in 0.4.4.
  22687. </para>
  22688. </change>

  22689. </changes>


  22690. <changes ver="0.4.4" date="2006-10-02">

  22691. <change type="feature">
  22692. <para lang="ru">
  22693. переменная $scheme.
  22694. </para>
  22695. <para lang="en">
  22696. the $scheme variable.
  22697. </para>
  22698. </change>

  22699. <change type="feature">
  22700. <para lang="ru">
  22701. директива expires поддерживает параметр max.
  22702. </para>
  22703. <para lang="en">
  22704. the "expires" directive supports the "max" parameter.
  22705. </para>
  22706. </change>

  22707. <change type="feature">
  22708. <para lang="ru">
  22709. директива include поддерживает маску "*".<br/>
  22710. Спасибо Jonathan Dance.
  22711. </para>
  22712. <para lang="en">
  22713. the "include" directive supports the "*" mask.<br/>
  22714. Thanks to Jonathan Dance.
  22715. </para>
  22716. </change>

  22717. <change type="bugfix">
  22718. <para lang="ru">
  22719. директива return всегда изменяла код ответа, перенаправленного
  22720. директивой error_page.
  22721. </para>
  22722. <para lang="en">
  22723. the "return" directive always overrode the "error_page" response code
  22724. redirected by the "error_page" directive.
  22725. </para>
  22726. </change>

  22727. <change type="bugfix">
  22728. <para lang="ru">
  22729. происходил segmentation fault, если в методе PUT передавалось
  22730. тело нулевой длины.
  22731. </para>
  22732. <para lang="en">
  22733. a segmentation fault occurred if zero-length body was in PUT method.
  22734. </para>
  22735. </change>

  22736. <change type="bugfix">
  22737. <para lang="ru">
  22738. при использовании переменных в директиве proxy_redirect редирект
  22739. изменялся неверно.
  22740. </para>
  22741. <para lang="en">
  22742. the redirect was changed incorrectly if the variables were used
  22743. in the "proxy_redirect" directive.
  22744. </para>
  22745. </change>

  22746. </changes>


  22747. <changes ver="0.4.3" date="2006-09-26">

  22748. <change type="change">
  22749. <para lang="ru">
  22750. ошибку 499 теперь нельзя перенаправить с помощью директивы error_page.
  22751. </para>
  22752. <para lang="en">
  22753. now the 499 error could not be redirected using an "error_page" directive.
  22754. </para>
  22755. </change>

  22756. <change type="feature">
  22757. <para lang="ru">
  22758. поддержка Solaris 10 event ports.
  22759. </para>
  22760. <para lang="en">
  22761. the Solaris 10 event ports support.
  22762. </para>
  22763. </change>

  22764. <change type="feature">
  22765. <para lang="ru">
  22766. модуль ngx_http_browser_module.
  22767. </para>
  22768. <para lang="en">
  22769. the ngx_http_browser_module.
  22770. </para>
  22771. </change>

  22772. <change type="bugfix">
  22773. <para lang="ru">
  22774. при перенаправлении ошибки 400 проксированному серверу
  22775. помощью директивы error_page мог произойти segmentation fault.
  22776. </para>
  22777. <para lang="en">
  22778. a segmentation fault may occur while redirecting the 400 error
  22779. to the proxied server using a "proxy_pass" directive.
  22780. </para>
  22781. </change>

  22782. <change type="bugfix">
  22783. <para lang="ru">
  22784. происходил segmentation fault, если в директиве proxy_pass использовался
  22785. unix domain сокет;
  22786. ошибка появилась в 0.3.47.
  22787. </para>
  22788. <para lang="en">
  22789. a segmentation fault occurred if an unix domain socket was used in
  22790. a "proxy_pass" directive;
  22791. the bug had appeared in 0.3.47.
  22792. </para>
  22793. </change>

  22794. <change type="bugfix">
  22795. <para lang="ru">
  22796. SSI не работал с ответами memcached и небуферизированными проксированными
  22797. ответами.
  22798. </para>
  22799. <para lang="en">
  22800. SSI did work with memcached and nonbuffered responses.
  22801. </para>
  22802. </change>

  22803. <change type="workaround">
  22804. <para lang="ru">
  22805. обход ошибки PAUSE hardware capability в Sun Studio.
  22806. </para>
  22807. <para lang="en">
  22808. of the Sun Studio PAUSE hardware capability bug.
  22809. </para>
  22810. </change>

  22811. </changes>


  22812. <changes ver="0.4.2" date="2006-09-14">

  22813. <change type="bugfix">
  22814. <para lang="ru">
  22815. убрана поддержка флага O_NOATIME на Linux;
  22816. ошибка появилась в 0.4.1.
  22817. </para>
  22818. <para lang="en">
  22819. the O_NOATIME flag support on Linux was canceled;
  22820. the bug had appeared in 0.4.1.
  22821. </para>
  22822. </change>

  22823. </changes>


  22824. <changes ver="0.4.1" date="2006-09-14">

  22825. <change type="bugfix">
  22826. <para lang="ru">
  22827. совместимость с DragonFlyBSD.<br/>
  22828. Спасибо Павлу Назарову.
  22829. </para>
  22830. <para lang="en">
  22831. the DragonFlyBSD compatibility.<br/>
  22832. Thanks to Pavel Nazarov.
  22833. </para>
  22834. </change>

  22835. <change type="workaround">
  22836. <para lang="ru">
  22837. обход ошибки в sendfile() в 64-битном Linux при передаче файлов больше 2G.
  22838. </para>
  22839. <para lang="en">
  22840. of bug in 64-bit Linux sendfile(), when file is more than 2G.
  22841. </para>
  22842. </change>

  22843. <change type="feature">
  22844. <para lang="ru">
  22845. теперь на Linux nginx для статических запросов использует флаг O_NOATIME.<br/>
  22846. Спасибо Yusuf Goolamabbas.
  22847. </para>
  22848. <para lang="en">
  22849. now on Linux nginx uses O_NOATIME flag for static requests.<br/>
  22850. Thanks to Yusuf Goolamabbas.
  22851. </para>
  22852. </change>

  22853. </changes>


  22854. <changes ver="0.4.0" date="2006-08-30">

  22855. <change>
  22856. <para lang="ru">
  22857. Изменение во внутреннем API: инициализация модулей HTTP перенесена из фазы
  22858. init module в фазу HTTP postconfiguration.
  22859. </para>
  22860. <para lang="en">
  22861. Change in internal API: the HTTP modules initialization was moved
  22862. from the init module phase to the HTTP postconfiguration phase.
  22863. </para>
  22864. </change>

  22865. <change type="change">
  22866. <para lang="ru">
  22867. теперь тело запроса в модуле ngx_http_perl_module не считывается
  22868. заранее: нужно явно инициировать чтение с помощью метода $r->has_request_body.
  22869. </para>
  22870. <para lang="en">
  22871. now the request body is not read beforehand for the ngx_http_perl_module:
  22872. it's required to start the reading using the $r->has_request_body method.
  22873. </para>
  22874. </change>

  22875. <change type="feature">
  22876. <para lang="ru">
  22877. модуль ngx_http_perl_module поддерживает код возврата DECLINED.
  22878. </para>
  22879. <para lang="en">
  22880. the ngx_http_perl_module supports the DECLINED return code.
  22881. </para>
  22882. </change>

  22883. <change type="feature">
  22884. <para lang="ru">
  22885. модуль ngx_http_dav_module поддерживает входящую строку заголовка "Date"
  22886. для метода PUT.
  22887. </para>
  22888. <para lang="en">
  22889. the ngx_http_dav_module supports the incoming "Date" header line
  22890. for the PUT method.
  22891. </para>
  22892. </change>

  22893. <change type="feature">
  22894. <para lang="ru">
  22895. директива ssi работает внутри блока if.
  22896. </para>
  22897. <para lang="en">
  22898. the "ssi" directive is available inside the "if" block.
  22899. </para>
  22900. </change>

  22901. <change type="bugfix">
  22902. <para lang="ru">
  22903. происходил segmentation fault, если в директиве index использовалась
  22904. переменные и при этом первое имя индексного файла было без переменных;
  22905. ошибка появилась в 0.1.29.
  22906. </para>
  22907. <para lang="en">
  22908. a segmentation fault occurred if there was an "index" directive with
  22909. variables and the first index name was without variables;
  22910. the bug had appeared in 0.1.29.
  22911. </para>
  22912. </change>

  22913. </changes>


  22914. <changes ver="0.3.61" date="2006-08-28">

  22915. <change type="change">
  22916. <para lang="ru">
  22917. директива tcp_nodelay теперь по умолчанию включена.
  22918. </para>
  22919. <para lang="en">
  22920. now the "tcp_nodelay" directive is turned on by default.
  22921. </para>
  22922. </change>

  22923. <change type="feature">
  22924. <para lang="ru">
  22925. директива msie_refresh.
  22926. </para>
  22927. <para lang="en">
  22928. the "msie_refresh" directive.
  22929. </para>
  22930. </change>

  22931. <change type="feature">
  22932. <para lang="ru">
  22933. директива recursive_error_pages.
  22934. </para>
  22935. <para lang="en">
  22936. the "recursive_error_pages" directive.
  22937. </para>
  22938. </change>

  22939. <change type="bugfix">
  22940. <para lang="ru">
  22941. директива rewrite возвращала неправильный редирект, если редирект
  22942. включал в себя выделенные закодированные символы из оригинального URI.
  22943. </para>
  22944. <para lang="en">
  22945. the "rewrite" directive returned incorrect redirect, if the redirect
  22946. had the captured escaped symbols from original URI.
  22947. </para>
  22948. </change>

  22949. </changes>


  22950. <changes ver="0.3.60" date="2006-08-18">

  22951. <change type="bugfix">
  22952. <para lang="ru">
  22953. во время перенаправления ошибки рабочий процесс мог зациклиться;
  22954. ошибка появилась в 0.3.59.
  22955. </para>
  22956. <para lang="en">
  22957. a worker process may got caught in an endless loop
  22958. while an error redirection;
  22959. the bug had appeared in 0.3.59.
  22960. </para>
  22961. </change>

  22962. </changes>


  22963. <changes ver="0.3.59" date="2006-08-16">

  22964. <change type="feature">
  22965. <para lang="ru">
  22966. теперь можно делать несколько перенаправлений через директиву error_page.
  22967. </para>
  22968. <para lang="en">
  22969. now is possible to do several redirection using the "error_page" directive.
  22970. </para>
  22971. </change>

  22972. <change type="bugfix">
  22973. <para lang="ru">
  22974. директива dav_access не поддерживала три параметра.
  22975. </para>
  22976. <para lang="en">
  22977. the "dav_access" directive did not support three parameters.
  22978. </para>
  22979. </change>

  22980. <change type="bugfix">
  22981. <para lang="ru">
  22982. директива error_page не изменяла строку "Content-Type"
  22983. после перенаправления с помощью "X-Accel-Redirect";
  22984. ошибка появилась в 0.3.58.
  22985. </para>
  22986. <para lang="en">
  22987. the "error_page" directive did not changes the "Content-Type" header line
  22988. after the "X-Accel-Redirect" was used;
  22989. the bug had appeared in 0.3.58.
  22990. </para>
  22991. </change>

  22992. </changes>


  22993. <changes ver="0.3.58" date="2006-08-14">

  22994. <change type="feature">
  22995. <para lang="ru">
  22996. директива error_page поддерживает переменные.
  22997. </para>
  22998. <para lang="en">
  22999. the "error_page" directive supports the variables.
  23000. </para>
  23001. </change>

  23002. <change type="change">
  23003. <para lang="ru">
  23004. теперь на Linux используется интерфейс procfs вместо sysctl.
  23005. </para>
  23006. <para lang="en">
  23007. now the procfs interface instead of sysctl is used on Linux.
  23008. </para>
  23009. </change>

  23010. <change type="change">
  23011. <para lang="ru">
  23012. теперь при использовании "X-Accel-Redirect" строка "Content-Type" наследуется
  23013. из первоначального ответа.
  23014. </para>
  23015. <para lang="en">
  23016. now the "Content-Type" header line is inherited from first response
  23017. when the "X-Accel-Redirect" was used.
  23018. </para>
  23019. </change>

  23020. <change type="bugfix">
  23021. <para lang="ru">
  23022. директива error_page не перенаправляла ошибку 413.
  23023. </para>
  23024. <para lang="en">
  23025. the "error_page" directive did not redirect the 413 error.
  23026. </para>
  23027. </change>

  23028. <change type="bugfix">
  23029. <para lang="ru">
  23030. завершающий "?" не удалял старые аргументы, если в переписанном URI
  23031. не было новых аргументов.
  23032. </para>
  23033. <para lang="en">
  23034. the trailing "?" did not remove old arguments if no new arguments
  23035. were added to a rewritten URI.
  23036. </para>
  23037. </change>

  23038. <change type="bugfix">
  23039. <para lang="ru">
  23040. nginx не запускался на 64-битной FreeBSD 7.0-CURRENT.
  23041. </para>
  23042. <para lang="en">
  23043. nginx could not run on 64-bit FreeBSD 7.0-CURRENT.
  23044. </para>
  23045. </change>

  23046. </changes>


  23047. <changes ver="0.3.57" date="2006-08-09">

  23048. <change type="feature">
  23049. <para lang="ru">
  23050. переменная $ssl_client_serial.
  23051. </para>
  23052. <para lang="en">
  23053. the $ssl_client_serial variable.
  23054. </para>
  23055. </change>

  23056. <change type="bugfix">
  23057. <para lang="ru">
  23058. в операторе "!-e" в директиве if.<br/>
  23059. Спасибо Андриану Буданцову.
  23060. </para>
  23061. <para lang="en">
  23062. in the "!-e" operator of the "if" directive.<br/>
  23063. Thanks to Andrian Budanstov.
  23064. </para>
  23065. </change>

  23066. <change type="bugfix">
  23067. <para lang="ru">
  23068. при проверке клиентского сертификата nginx не передавал клиенту
  23069. информацию о требуемых сертификатах.
  23070. </para>
  23071. <para lang="en">
  23072. while a client certificate verification nginx did not send to a client
  23073. the required certificates information.
  23074. </para>
  23075. </change>

  23076. <change type="bugfix">
  23077. <para lang="ru">
  23078. переменная $document_root не поддерживала переменные в директиве root.
  23079. </para>
  23080. <para lang="en">
  23081. the $document_root variable did not support the variables in the "root"
  23082. directive.
  23083. </para>
  23084. </change>

  23085. </changes>


  23086. <changes ver="0.3.56" date="2006-08-04">

  23087. <change type="feature">
  23088. <para lang="ru">
  23089. директива dav_access.
  23090. </para>
  23091. <para lang="en">
  23092. the "dav_access" directive.
  23093. </para>
  23094. </change>

  23095. <change type="feature">
  23096. <para lang="ru">
  23097. директива if поддерживает операторы "-d", "!-d", "-e", "!-e", "-x" и "!-x".
  23098. </para>
  23099. <para lang="en">
  23100. the "if" directive supports the "-d", "!-d", "-e", "!-e", "-x", and "!-x"
  23101. operators.
  23102. </para>
  23103. </change>

  23104. <change type="bugfix">
  23105. <para lang="ru">
  23106. при записи в access_log некоторых передаваемых клиенту строк заголовков
  23107. происходил segmentation fault, если запрос возвращал редирект.
  23108. </para>
  23109. <para lang="en">
  23110. a segmentation fault occurred if a request returned a redirect and
  23111. some sent to client header lines were logged in the access log.
  23112. </para>
  23113. </change>

  23114. </changes>


  23115. <changes ver="0.3.55" date="2006-07-28">

  23116. <change type="feature">
  23117. <para lang="ru">
  23118. параметр stub в команде SSI include.
  23119. </para>
  23120. <para lang="en">
  23121. the "stub" parameter in the "include" SSI command.
  23122. </para>
  23123. </change>

  23124. <change type="feature">
  23125. <para lang="ru">
  23126. команда SSI block.
  23127. </para>
  23128. <para lang="en">
  23129. the "block" SSI command.
  23130. </para>
  23131. </change>

  23132. <change type="feature">
  23133. <para lang="ru">
  23134. скрипт unicode2nginx добавлен в contrib.
  23135. </para>
  23136. <para lang="en">
  23137. the unicode2nginx script was added to contrib.
  23138. </para>
  23139. </change>

  23140. <change type="bugfix">
  23141. <para lang="ru">
  23142. если root был задан только переменной, то корень задавался
  23143. относительно префикса сервера.
  23144. </para>
  23145. <para lang="en">
  23146. if a "root" was specified by variable only, then the root was relative
  23147. to a server prefix.
  23148. </para>
  23149. </change>

  23150. <change type="bugfix">
  23151. <para lang="ru">
  23152. если в запросе был "//" или "/.", и после этого закодированные
  23153. символы в виде "%XX", то проксируемый запрос передавался незакодированным.
  23154. </para>
  23155. <para lang="en">
  23156. if the request contained "//" or "/./" and escaped symbols after them,
  23157. then the proxied request was sent unescaped.
  23158. </para>
  23159. </change>

  23160. <change type="bugfix">
  23161. <para lang="ru">
  23162. метод $r->header_in("Cookie") модуля ngx_http_perl_module теперь возвращает
  23163. все строки "Cookie" в заголовке запроса.
  23164. </para>
  23165. <para lang="en">
  23166. the $r->header_in("Cookie") of the ngx_http_perl_module now returns
  23167. all "Cookie" header lines.
  23168. </para>
  23169. </change>

  23170. <change type="bugfix">
  23171. <para lang="ru">
  23172. происходил segmentation fault, если использовался
  23173. <nobr>"client_body_in_file_only on"</nobr>
  23174. и делался переход к следующему бэкенду.
  23175. </para>
  23176. <para lang="en">
  23177. a segmentation fault occurred if <nobr>"client_body_in_file_only on"</nobr>
  23178. was used and nginx switched to a next upstream.
  23179. </para>
  23180. </change>

  23181. <change type="bugfix">
  23182. <para lang="ru">
  23183. при некоторых условиях во время переконфигурации коды символов
  23184. внутри директивы charset_map могли считаться неверными;
  23185. ошибка появилась в 0.3.50.
  23186. </para>
  23187. <para lang="en">
  23188. on some condition while reconfiguration character codes
  23189. inside the "charset_map" may be treated invalid;
  23190. the bug had appeared in 0.3.50.
  23191. </para>
  23192. </change>

  23193. </changes>


  23194. <changes ver="0.3.54" date="2006-07-11">

  23195. <change type="feature">
  23196. <para lang="ru">
  23197. nginx теперь записывает в лог информацию о подзапросах.
  23198. </para>
  23199. <para lang="en">
  23200. nginx now logs the subrequest information to the error log.
  23201. </para>
  23202. </change>

  23203. <change type="feature">
  23204. <para lang="ru">
  23205. директивы proxy_next_upstream, fastcgi_next_upstream и memcached_next_upstream
  23206. поддерживают параметр off.
  23207. </para>
  23208. <para lang="en">
  23209. the "proxy_next_upstream", "fastcgi_next_upstream",
  23210. and "memcached_next_upstream" directives support the "off" parameter.
  23211. </para>
  23212. </change>

  23213. <change type="feature">
  23214. <para lang="ru">
  23215. директива debug_connection поддерживает запись адресов в формате CIDR.
  23216. </para>
  23217. <para lang="en">
  23218. the "debug_connection" directive supports the CIDR address form.
  23219. </para>
  23220. </change>

  23221. <change type="bugfix">
  23222. <para lang="ru">
  23223. при перекодировании ответа проксированного сервера или сервера FastCGI
  23224. в UTF-8 или наоборот ответ мог передаваться не полностью.
  23225. </para>
  23226. <para lang="en">
  23227. if a response of proxied server or FastCGI server was converted from UTF-8
  23228. or back, then it may be transferred incomplete.
  23229. </para>
  23230. </change>

  23231. <change type="bugfix">
  23232. <para lang="ru">
  23233. переменная $upstream_response_time содержала время только первого
  23234. обращения к бэкенду.
  23235. </para>
  23236. <para lang="en">
  23237. the $upstream_response_time variable had the time of the first
  23238. request to a backend only.
  23239. </para>
  23240. </change>

  23241. <change type="bugfix">
  23242. <para lang="ru">
  23243. nginx не собирался на платформе amd64;
  23244. ошибка появилась в 0.3.53.
  23245. </para>
  23246. <para lang="en">
  23247. nginx could not be built on amd64 platform;
  23248. the bug had appeared in 0.3.53.
  23249. </para>
  23250. </change>

  23251. </changes>


  23252. <changes ver="0.3.53" date="2006-07-07">

  23253. <change type="change">
  23254. <para lang="ru">
  23255. директива add_header добавляет строки в ответы с кодом 204, 301 и 302.
  23256. </para>
  23257. <para lang="en">
  23258. the "add_header" directive adds the string to 204, 301, and 302 responses.
  23259. </para>
  23260. </change>

  23261. <change type="feature">
  23262. <para lang="ru">
  23263. директива server в блоке upstream поддерживает параметр weight.
  23264. </para>
  23265. <para lang="en">
  23266. the "server" directive in the "upstream" context supports
  23267. the "weight" parameter.
  23268. </para>
  23269. </change>

  23270. <change type="feature">
  23271. <para lang="ru">
  23272. директива server_name поддерживает маску "*".
  23273. </para>
  23274. <para lang="en">
  23275. the "server_name" directive supports the "*" wildcard.
  23276. </para>
  23277. </change>

  23278. <change type="feature">
  23279. <para lang="ru">
  23280. nginx поддерживает тело запроса больше 2G.
  23281. </para>
  23282. <para lang="en">
  23283. nginx supports the request body size more than 2G.
  23284. </para>
  23285. </change>

  23286. <change type="bugfix">
  23287. <para lang="ru">
  23288. если при использовании "satisfy_any on" клиент успешно проходил аутентификацию,
  23289. в лог всё равно записалоcь сообщение "access forbidden by rule".
  23290. </para>
  23291. <para lang="en">
  23292. if a client was successfully authorized using "satisfy_any on", then anyway
  23293. the message "access forbidden by rule" was written in the log.
  23294. </para>
  23295. </change>

  23296. <change type="bugfix">
  23297. <para lang="ru">
  23298. метод PUT мог ошибочно не создать файл и вернуть код 409.
  23299. </para>
  23300. <para lang="en">
  23301. the "PUT" method may erroneously not create a file and return the 409 code.
  23302. </para>
  23303. </change>

  23304. <change type="bugfix">
  23305. <para lang="ru">
  23306. если во время аутентификации IMAP/POP3 бэкенд возвращал ошибку, nginx
  23307. продолжал проксирование.
  23308. </para>
  23309. <para lang="en">
  23310. if the IMAP/POP3 backend returned an error, then nginx continued proxying
  23311. anyway.
  23312. </para>
  23313. </change>

  23314. </changes>


  23315. <changes ver="0.3.52" date="2006-07-03">

  23316. <change type="change">
  23317. <para lang="ru">
  23318. восстановлено поведение модуля ngx_http_index_module для запросов "POST /":
  23319. как в версии до 0.3.40, модуль теперь не выдаёт ошибку 405.
  23320. </para>
  23321. <para lang="en">
  23322. the ngx_http_index_module behavior for the "POST /" requests is reverted
  23323. to the 0.3.40 version state: the module now does not return the 405 error.
  23324. </para>
  23325. </change>

  23326. <change type="bugfix">
  23327. <para lang="ru">
  23328. при использовании ограничения скорости рабочий процесс мог зациклиться;
  23329. ошибка появилась в 0.3.37.
  23330. </para>
  23331. <para lang="en">
  23332. the worker process may got caught in an endless loop if the limit rate was used;
  23333. the bug had appeared in 0.3.37.
  23334. </para>
  23335. </change>

  23336. <change type="bugfix">
  23337. <para lang="ru">
  23338. модуль ngx_http_charset_module записывал в лог ошибку "unknown charset",
  23339. даже если перекодировка не требовалась;
  23340. ошибка появилась в 0.3.50.
  23341. </para>
  23342. <para lang="en">
  23343. ngx_http_charset_module logged "unknown charset" alert, even if the recoding
  23344. was not needed;
  23345. the bug had appeared in 0.3.50.
  23346. </para>
  23347. </change>

  23348. <change type="bugfix">
  23349. <para lang="ru">
  23350. если в результате запроса PUT возвращался код 409, то временный файл
  23351. не удалялся.
  23352. </para>
  23353. <para lang="en">
  23354. if a code response of the PUT request was 409, then a temporary file
  23355. was not removed.
  23356. </para>
  23357. </change>

  23358. </changes>


  23359. <changes ver="0.3.51" date="2006-06-30">

  23360. <change type="bugfix">
  23361. <para lang="ru">
  23362. при некоторых условиях в SSI мог пропадать символы "&lt;";
  23363. ошибка появилась в 0.3.50.
  23364. </para>
  23365. <para lang="en">
  23366. the "&lt;" symbols might disappeared some conditions in the SSI;
  23367. the bug had appeared in 0.3.50.
  23368. </para>
  23369. </change>

  23370. </changes>


  23371. <changes ver="0.3.50" date="2006-06-28">

  23372. <change type="change">
  23373. <para lang="ru">
  23374. директивы proxy_redirect_errors и fastcgi_redirect_errors
  23375. переименованы соответственно в proxy_intercept_errors и
  23376. fastcgi_intercept_errors.
  23377. </para>
  23378. <para lang="en">
  23379. the "proxy_redirect_errors" and "fastcgi_redirect_errors" directives
  23380. was renamed to the "proxy_intercept_errors" and
  23381. "fastcgi_intercept_errors" directives.
  23382. </para>
  23383. </change>

  23384. <change type="feature">
  23385. <para lang="ru">
  23386. модуль ngx_http_charset_module поддерживает перекодирование из
  23387. однобайтных кодировок в UTF-8 и обратно.
  23388. </para>
  23389. <para lang="en">
  23390. the ngx_http_charset_module supports the recoding from the single byte
  23391. encodings to the UTF-8 encoding and back.
  23392. </para>
  23393. </change>

  23394. <change type="feature">
  23395. <para lang="ru">
  23396. в режиме прокси и FastCGI поддерживается строка заголовка "X-Accel-Charset"
  23397. в ответе бэкенда.
  23398. </para>
  23399. <para lang="en">
  23400. the "X-Accel-Charset" response header line is supported in proxy
  23401. and FastCGI mode.
  23402. </para>
  23403. </change>

  23404. <change type="bugfix">
  23405. <para lang="ru">
  23406. символ "\" в парах "\"" и "\'" в SSI командах убирался, только если
  23407. также использовался символ "$".
  23408. </para>
  23409. <para lang="en">
  23410. the "\" escape symbol in the "\"" and "\'" pairs in the SSI command
  23411. was removed only if the command also has the "$" symbol.
  23412. </para>
  23413. </change>

  23414. <change type="bugfix">
  23415. <para lang="ru">
  23416. при некоторых условиях в SSI после вставки могла быть добавлена
  23417. строка "&lt;!--".
  23418. </para>
  23419. <para lang="en">
  23420. the "&lt;!--" string might be added on some conditions
  23421. in the SSI after inclusion.
  23422. </para>
  23423. </change>

  23424. <change type="bugfix">
  23425. <para lang="ru">
  23426. если в заголовке ответа была строка <nobr>"Content-Length: 0",</nobr>
  23427. то при использовании небуферизированного проксировании не закрывалось соединение
  23428. с клиентом.
  23429. </para>
  23430. <para lang="en">
  23431. if the "Content-Length: 0" header line was in response, then
  23432. in nonbuffered proxying mode the client connection was not closed.
  23433. </para>
  23434. </change>

  23435. </changes>


  23436. <changes ver="0.3.49" date="2006-05-31">

  23437. <change type="bugfix">
  23438. <para lang="ru">
  23439. в директиве set.
  23440. </para>
  23441. <para lang="en">
  23442. in the "set" directive.
  23443. </para>
  23444. </change>

  23445. <change type="bugfix">
  23446. <para lang="ru">
  23447. при включении в ssi двух и более подзапросов, обрабатываемых через FastCGI,
  23448. вместо вывода второго и остальных подзапросов в ответ включался вывод
  23449. первого подзапроса.
  23450. </para>
  23451. <para lang="en">
  23452. if two or more FastCGI subrequests was in SSI, then first subrequest output
  23453. was included instead of second and following subrequests.
  23454. </para>
  23455. </change>

  23456. </changes>


  23457. <changes ver="0.3.48" date="2006-05-29">

  23458. <change type="change">
  23459. <para lang="ru">
  23460. теперь модуль ngx_http_charset_module работает для подзапросов,
  23461. в ответах которых нет строки заголовка "Content-Type".
  23462. </para>
  23463. <para lang="en">
  23464. now the ngx_http_charset_module works for subrequests,
  23465. if the response has no "Content-Type" header line.
  23466. </para>
  23467. </change>

  23468. <change type="bugfix">
  23469. <para lang="ru">
  23470. если в директиве proxy_pass не было URI,
  23471. то директива "proxy_redirect  default" добавляла в переписанный
  23472. редирект в начало лишний слэш.
  23473. </para>
  23474. <para lang="en">
  23475. if the "proxy_pass" directive has no URI part,
  23476. then the "proxy_redirect  default" directive add the unnecessary slash
  23477. in start of the rewritten redirect.
  23478. </para>
  23479. </change>

  23480. <change type="bugfix">
  23481. <para lang="ru">
  23482. внутренний редирект всегда превращал любой HTTP-метод в GET,
  23483. теперь это делается только для редиректов, выполняемых с помощью
  23484. X-Accel-Redirect, и у которых метод не равен HEAD;
  23485. ошибка появилась в 0.3.42.
  23486. </para>
  23487. <para lang="en">
  23488. the internal redirect always transform client's HTTP method to GET,
  23489. now the transformation is made for the "X-Accel-Redirect" redirects only
  23490. and if the method is not HEAD;
  23491. the bug had appeared in 0.3.42.
  23492. </para>
  23493. </change>

  23494. <change type="bugfix">
  23495. <para lang="ru">
  23496. модуль ngx_http_perl_module не собирался, если перл был с поддержкой потоков;
  23497. ошибка появилась в 0.3.46.
  23498. </para>
  23499. <para lang="en">
  23500. the ngx_http_perl_module could not be built, if the perl was built
  23501. with the threads support;
  23502. the bug had appeared in 0.3.46.
  23503. </para>
  23504. </change>

  23505. </changes>


  23506. <changes ver="0.3.47" date="2006-05-23">

  23507. <change type="feature">
  23508. <para lang="ru">
  23509. директива upstream.
  23510. </para>
  23511. <para lang="en">
  23512. the "upstream" directive.
  23513. </para>
  23514. </change>

  23515. <change type="change">
  23516. <para lang="ru">
  23517. символ "\" в парах "\"" и "\'" в SSI командах теперь всегда убирается.
  23518. </para>
  23519. <para lang="en">
  23520. now the "\" escape symbol in the "\"" and "\'" pairs in the SSI command
  23521. is always removed.
  23522. </para>
  23523. </change>

  23524. </changes>


  23525. <changes ver="0.3.46" date="2006-05-11">

  23526. <change type="feature">
  23527. <para lang="ru">
  23528. директивы proxy_hide_header, proxy_pass_header, fastcgi_hide_header
  23529. и fastcgi_pass_header.
  23530. </para>
  23531. <para lang="en">
  23532. the "proxy_hide_header", "proxy_pass_header", "fastcgi_hide_header",
  23533. and "fastcgi_pass_header" directives.
  23534. </para>
  23535. </change>

  23536. <change type="change">
  23537. <para lang="ru">
  23538. директивы proxy_pass_x_powered_by, fastcgi_x_powered_by и proxy_pass_server
  23539. упразднены.
  23540. </para>
  23541. <para lang="en">
  23542. the "proxy_pass_x_powered_by", "fastcgi_x_powered_by", and "proxy_pass_server"
  23543. directives were canceled.
  23544. </para>
  23545. </change>

  23546. <change type="feature">
  23547. <para lang="ru">
  23548. в режиме прокси поддерживается строка заголовка "X-Accel-Buffering"
  23549. в ответе бэкенда.
  23550. </para>
  23551. <para lang="en">
  23552. the "X-Accel-Buffering" response header line is supported in proxy mode.
  23553. </para>
  23554. </change>

  23555. <change type="bugfix">
  23556. <para lang="ru">
  23557. ошибок и утечек памяти при переконфигурации в модуле ngx_http_perl_module.
  23558. </para>
  23559. <para lang="en">
  23560. the reconfiguration bug and memory leaks in the ngx_http_perl_module.
  23561. </para>
  23562. </change>

  23563. </changes>


  23564. <changes ver="0.3.45" date="2006-05-06">

  23565. <change type="feature">
  23566. <para lang="ru">
  23567. директивы ssl_verify_client, ssl_verify_depth и ssl_client_certificate.
  23568. </para>
  23569. <para lang="en">
  23570. the "ssl_verify_client", "ssl_verify_depth", and "ssl_client_certificate"
  23571. directives.
  23572. </para>
  23573. </change>

  23574. <change type="change">
  23575. <para lang="ru">
  23576. теперь переменная $request_method возвращает метод только основного запроса.
  23577. </para>
  23578. <para lang="en">
  23579. the $request_method variable now returns the main request method.
  23580. </para>
  23581. </change>

  23582. <change type="change">
  23583. <para lang="ru">
  23584. в таблице перекодировки koi-win изменены коды символа &amp;deg;.
  23585. </para>
  23586. <para lang="en">
  23587. the &amp;deg; symbol codes were changed in koi-win conversion table.
  23588. </para>
  23589. </change>

  23590. <change type="feature">
  23591. <para lang="ru">
  23592. в таблицу перекодировки koi-win добавлены символы евро и номера.
  23593. </para>
  23594. <para lang="en">
  23595. the euro and N symbols were added to koi-win conversion table.
  23596. </para>
  23597. </change>

  23598. <change type="bugfix">
  23599. <para lang="ru">
  23600. если nginx распределял запросы на несколько машин, то при падении
  23601. одной из них запросы, предназначенные для этой машины, перенаправлялись только
  23602. на одну машину вместо того, чтобы равномерно распределяться между остальными.
  23603. </para>
  23604. <para lang="en">
  23605. if nginx distributed the requests among several backends and some backend
  23606. failed, then requests intended for this backend was directed to one live
  23607. backend only instead of being distributed among the rest.
  23608. </para>
  23609. </change>

  23610. </changes>


  23611. <changes ver="0.3.44" date="2006-05-04">

  23612. <change type="feature">
  23613. <para lang="ru">
  23614. параметр wait в команде SSI include.
  23615. </para>
  23616. <para lang="en">
  23617. the "wait" parameter in the "include" SSI command.
  23618. </para>
  23619. </change>

  23620. <change type="feature">
  23621. <para lang="ru">
  23622. в таблицу перекодировки koi-win добавлены украинские и белорусские символы.
  23623. </para>
  23624. <para lang="en">
  23625. the Ukrainian and Byelorussian characters were added to koi-win conversion
  23626. table.
  23627. </para>
  23628. </change>

  23629. <change type="bugfix">
  23630. <para lang="ru">
  23631. в SSI.
  23632. </para>
  23633. <para lang="en">
  23634. in the SSI.
  23635. </para>
  23636. </change>

  23637. </changes>


  23638. <changes ver="0.3.43" date="2006-04-26">

  23639. <change type="bugfix">
  23640. <para lang="ru">
  23641. в SSI.
  23642. </para>
  23643. <para lang="en">
  23644. in the SSI.
  23645. </para>
  23646. </change>

  23647. </changes>


  23648. <changes ver="0.3.42" date="2006-04-26">

  23649. <change type="feature">
  23650. <para lang="ru">
  23651. параметр bind в директиве listen в IMAP/POP3 прокси.
  23652. </para>
  23653. <para lang="en">
  23654. the "bind" option of the "listen" directive in IMAP/POP3 proxy.
  23655. </para>
  23656. </change>

  23657. <change type="bugfix">
  23658. <para lang="ru">
  23659. ошибки при использовании в директиве rewrite одного и того же
  23660. выделения более одного раза.
  23661. </para>
  23662. <para lang="en">
  23663. if the same capture in the "rewrite" directive was used more then once.
  23664. </para>
  23665. </change>

  23666. <change type="bugfix">
  23667. <para lang="ru">
  23668. в лог не записывались переменные
  23669. $sent_http_content_type, $sent_http_content_length, $sent_http_last_modified,
  23670. $sent_http_connection, $sent_http_keep_alive и $sent_http_transfer_encoding.
  23671. </para>
  23672. <para lang="en">
  23673. the $sent_http_content_type, $sent_http_content_length,
  23674. $sent_http_last_modified, $sent_http_connection, $sent_http_keep_alive,
  23675. and $sent_http_transfer_encoding variables were not written to access log.
  23676. </para>
  23677. </change>

  23678. <change type="bugfix">
  23679. <para lang="ru">
  23680. переменная $sent_http_cache_control возвращала содержимое только одной
  23681. строки "Cache-Control" в заголовке ответа.
  23682. </para>
  23683. <para lang="en">
  23684. the $sent_http_cache_control returned value of the single "Cache-Control"
  23685. response header line.
  23686. </para>
  23687. </change>

  23688. </changes>


  23689. <changes ver="0.3.41" date="2006-04-21">

  23690. <change type="feature">
  23691. <para lang="ru">
  23692. ключ -v.
  23693. </para>
  23694. <para lang="en">
  23695. the -v switch.
  23696. </para>
  23697. </change>

  23698. <change type="bugfix">
  23699. <para lang="ru">
  23700. при включении в SSI удалённых подзапросов
  23701. мог произойти segmentation fault.
  23702. </para>
  23703. <para lang="en">
  23704. the segmentation fault may occurred if the SSI page has remote subrequests.
  23705. </para>
  23706. </change>

  23707. <change type="bugfix">
  23708. <para lang="ru">
  23709. в обработке FastCGI.
  23710. </para>
  23711. <para lang="en">
  23712. in FastCGI handling.
  23713. </para>
  23714. </change>

  23715. <change type="bugfix">
  23716. <para lang="ru">
  23717. если путь к перловым модулям не был указан с помощью
  23718. --with-perl_modules_path=PATH или директивы perl_modules,
  23719. то на старте происходил segmentation fault.
  23720. </para>
  23721. <para lang="en">
  23722. if the perl modules path was not set using
  23723. --with-perl_modules_path=PATH or the "perl_modules", then
  23724. the segmentation fault was occurred.
  23725. </para>
  23726. </change>

  23727. </changes>


  23728. <changes ver="0.3.40" date="2006-04-19">

  23729. <change type="feature">
  23730. <para lang="ru">
  23731. модуль ngx_http_dav_module поддерживает метод MKCOL.
  23732. </para>
  23733. <para lang="en">
  23734. the ngx_http_dav_module supports the MKCOL method.
  23735. </para>
  23736. </change>

  23737. <change type="feature">
  23738. <para lang="ru">
  23739. директива create_full_put_path.
  23740. </para>
  23741. <para lang="en">
  23742. the "create_full_put_path" directive.
  23743. </para>
  23744. </change>

  23745. <change type="feature">
  23746. <para lang="ru">
  23747. переменная $limit_rate.
  23748. </para>
  23749. <para lang="en">
  23750. the "$limit_rate" variable.
  23751. </para>
  23752. </change>

  23753. </changes>


  23754. <changes ver="0.3.39" date="2006-04-17">

  23755. <change type="feature">
  23756. <para lang="ru">
  23757. директива uninitialized_variable_warn; уровень логгирования сообщения
  23758. о неинициализированной переменной понижен с уровня alert на warn.
  23759. </para>
  23760. <para lang="en">
  23761. the "uninitialized_variable_warn" directive; the logging level of the
  23762. "uninitialized variable" message was lowered from "alert" to "warn".
  23763. </para>
  23764. </change>

  23765. <change type="feature">
  23766. <para lang="ru">
  23767. директива override_charset.
  23768. </para>
  23769. <para lang="en">
  23770. the "override_charset" directive.
  23771. </para>
  23772. </change>

  23773. <change type="change">
  23774. <para lang="ru">
  23775. при использовании неизвестной переменной в SSI-командах echo и if expr='$name'
  23776. теперь не записывается в лог сообщение о неизвестной переменной.
  23777. </para>
  23778. <para lang="en">
  23779. now if the unknown variable is used in the "echo" and "if expr='$name'"
  23780. SSI-commands, then the "unknown variable" message is not logged.
  23781. </para>
  23782. </change>

  23783. <change type="bugfix">
  23784. <para lang="ru">
  23785. счётчик активных соединений рос при превышении лимита соединений,
  23786. заданного директивой worker_connections;
  23787. ошибка появилась в 0.2.0.
  23788. </para>
  23789. <para lang="en">
  23790. the active connection counter increased on the exceeding of the connection
  23791. limit specified by the "worker_connections" directive;
  23792. the bug had appeared in 0.2.0.
  23793. </para>
  23794. </change>

  23795. <change type="bugfix">
  23796. <para lang="ru">
  23797. при некоторых условия ограничение скорости соединения могло не работать;
  23798. ошибка появилась в 0.3.38.
  23799. </para>
  23800. <para lang="en">
  23801. the limit rate might not work on some condition;
  23802. the bug had appeared in 0.3.38.
  23803. </para>
  23804. </change>

  23805. </changes>


  23806. <changes ver="0.3.38" date="2006-04-14">

  23807. <change type="feature">
  23808. <para lang="ru">
  23809. модуль ngx_http_dav_module.
  23810. </para>
  23811. <para lang="en">
  23812. the ngx_http_dav_module.
  23813. </para>
  23814. </change>

  23815. <change type="change">
  23816. <para lang="ru">
  23817. оптимизация модуля ngx_http_perl_module.<br/>
  23818. Спасибо Сергею Скворцову.
  23819. </para>
  23820. <para lang="en">
  23821. the ngx_http_perl_module optimizations.<br/>
  23822. Thanks to Sergey Skvortsov.
  23823. </para>
  23824. </change>

  23825. <change type="feature">
  23826. <para lang="ru">
  23827. модуль ngx_http_perl_module поддерживает метод $r->request_body_file.
  23828. </para>
  23829. <para lang="en">
  23830. the ngx_http_perl_module supports the $r->request_body_file method.
  23831. </para>
  23832. </change>

  23833. <change type="feature">
  23834. <para lang="ru">
  23835. директива client_body_in_file_only.
  23836. </para>
  23837. <para lang="en">
  23838. the "client_body_in_file_only" directive.
  23839. </para>
  23840. </change>

  23841. <change type="workaround">
  23842. <para lang="ru">
  23843. теперь при переполнении диска nginx пытается писать access_log'и только
  23844. раз в секунду.<br/>
  23845. Спасибо Антону Южанинову и Максиму Дунину.
  23846. </para>
  23847. <para lang="en">
  23848. now on disk overflow nginx tries to write access logs once a second only.<br/>
  23849. Thanks to Anton Yuzhaninov and Maxim Dounin.
  23850. </para>
  23851. </change>

  23852. <change type="bugfix">
  23853. <para lang="ru">
  23854. теперь директива limit_rate точнее ограничивает скорость при значениях
  23855. больше <nobr>100 Kbyte/s.</nobr><br/>
  23856. Спасибо ForJest.
  23857. </para>
  23858. <para lang="en">
  23859. now the "limit_rate" directive more precisely limits rate if rate is more
  23860. than <nobr>100 Kbyte/s.</nobr><br/>
  23861. Thanks to ForJest.
  23862. </para>
  23863. </change>

  23864. <change type="bugfix">
  23865. <para lang="ru">
  23866. IMAP/POP3 прокси теперь передаёт серверу авторизации символы "\r" и "\n"
  23867. в логине и пароле в закодированном виде.<br/>
  23868. Спасибо Максиму Дунину.
  23869. </para>
  23870. <para lang="en">
  23871. now the IMAP/POP3 proxy escapes the "\r" and "\n" symbols in login and
  23872. password to pass authorization server.<br/>
  23873. Thanks to Maxim Dounin.
  23874. </para>
  23875. </change>

  23876. </changes>


  23877. <changes ver="0.3.37" date="2006-04-07">

  23878. <change type="feature">
  23879. <para lang="ru">
  23880. директива limit_except.
  23881. </para>
  23882. <para lang="en">
  23883. the "limit_except" directive.
  23884. </para>
  23885. </change>

  23886. <change type="feature">
  23887. <para lang="ru">
  23888. директива if поддерживает операторы "!~", "!~*", "-f" и "!-f".
  23889. </para>
  23890. <para lang="en">
  23891. the "if" directive supports the "!~", "!~*", "-f", and "!-f" operators.
  23892. </para>
  23893. </change>

  23894. <change type="feature">
  23895. <para lang="ru">
  23896. модуль ngx_http_perl_module поддерживает метод $r->request_body.
  23897. </para>
  23898. <para lang="en">
  23899. the ngx_http_perl_module supports the $r->request_body method.
  23900. </para>
  23901. </change>

  23902. <change type="bugfix">
  23903. <para lang="ru">
  23904. в модуле ngx_http_addition_filter_module.
  23905. </para>
  23906. <para lang="en">
  23907. in the ngx_http_addition_filter_module.
  23908. </para>
  23909. </change>

  23910. </changes>


  23911. <changes ver="0.3.36" date="2006-04-05">

  23912. <change type="feature">
  23913. <para lang="ru">
  23914. модуль ngx_http_addition_filter_module.
  23915. </para>
  23916. <para lang="en">
  23917. the ngx_http_addition_filter_module.
  23918. </para>
  23919. </change>

  23920. <change type="feature">
  23921. <para lang="ru">
  23922. директивы proxy_pass и fastcgi_pass можно использовать внутри блока if.
  23923. </para>
  23924. <para lang="en">
  23925. the "proxy_pass" and "fastcgi_pass" directives may be used inside
  23926. the "if" block.
  23927. </para>
  23928. </change>

  23929. <change type="feature">
  23930. <para lang="ru">
  23931. директивы proxy_ignore_client_abort и fastcgi_ignore_client_abort.
  23932. </para>
  23933. <para lang="en">
  23934. the "proxy_ignore_client_abort" and "fastcgi_ignore_client_abort" directives.
  23935. </para>
  23936. </change>

  23937. <change type="feature">
  23938. <para lang="ru">
  23939. переменная $request_completion.
  23940. </para>
  23941. <para lang="en">
  23942. the "$request_completion" variable.
  23943. </para>
  23944. </change>

  23945. <change type="feature">
  23946. <para lang="ru">
  23947. модуль ngx_http_perl_module поддерживает методы $r->request_method и
  23948. $r->remote_addr.
  23949. </para>
  23950. <para lang="en">
  23951. the ngx_http_perl_module supports the $r->request_method and $r->remote_addr.
  23952. </para>
  23953. </change>

  23954. <change type="feature">
  23955. <para lang="ru">
  23956. модуль ngx_http_ssi_module поддерживает команду elif.
  23957. </para>
  23958. <para lang="en">
  23959. the ngx_http_ssi_module supports the "elif" command.
  23960. </para>
  23961. </change>

  23962. <change type="bugfix">
  23963. <para lang="ru">
  23964. строка "\/" в начале выражения команды if модуля ngx_http_ssi_module
  23965. воспринималась неверно.
  23966. </para>
  23967. <para lang="en">
  23968. the "\/" string in the expression of the "if" command of the
  23969. ngx_http_ssi_module was treated incorrectly.
  23970. </para>
  23971. </change>

  23972. <change type="bugfix">
  23973. <para lang="ru">
  23974. в использовании регулярных выражениях в команде if модуля ngx_http_ssi_module.
  23975. </para>
  23976. <para lang="en">
  23977. in the regular expressions in the "if" command of the ngx_http_ssi_module.
  23978. </para>
  23979. </change>

  23980. <change type="bugfix">
  23981. <para lang="ru">
  23982. при задании относительного пути в директивах
  23983. client_body_temp_path, proxy_temp_path, fastcgi_temp_path и perl_modules
  23984. использовался каталог относительно текущего каталога, а не относительно
  23985. префикса сервера.
  23986. </para>
  23987. <para lang="en">
  23988. if the relative path was specified in the "client_body_temp_path",
  23989. "proxy_temp_path", "fastcgi_temp_path", and "perl_modules" directives,
  23990. then the directory was used relatively to a current path but not
  23991. to a server prefix.
  23992. </para>
  23993. </change>

  23994. </changes>


  23995. <changes ver="0.3.35" date="2006-03-22">

  23996. <change type="bugfix">
  23997. <para lang="ru">
  23998. accept-фильтр и TCP_DEFER_ACCEPT устанавливались только для первой
  23999. директивы listen;
  24000. ошибка появилась в 0.3.31.
  24001. </para>
  24002. <para lang="en">
  24003. the accept-filter and the TCP_DEFER_ACCEPT option were set for first "listen"
  24004. directive only;
  24005. the bug had appeared in 0.3.31.
  24006. </para>
  24007. </change>

  24008. <change type="bugfix">
  24009. <para lang="ru">
  24010. в директиве proxy_pass без URI при использовании в подзапросе.
  24011. </para>
  24012. <para lang="en">
  24013. in the "proxy_pass" directive without the URI part in a subrequest.
  24014. </para>
  24015. </change>

  24016. </changes>


  24017. <changes ver="0.3.34" date="2006-03-21">

  24018. <change type="feature">
  24019. <para lang="ru">
  24020. директива add_header поддерживает переменные.
  24021. </para>
  24022. <para lang="en">
  24023. the "add_header" directive supports the variables.
  24024. </para>
  24025. </change>

  24026. </changes>


  24027. <changes ver="0.3.33" date="2006-03-15">

  24028. <change type="feature">
  24029. <para lang="ru">
  24030. параметр http_503 в директивах proxy_next_upstream или fastcgi_next_upstream.
  24031. </para>
  24032. <para lang="en">
  24033. the "http_503" parameter of the "proxy_next_upstream" or
  24034. "fastcgi_next_upstream" directives.
  24035. </para>
  24036. </change>

  24037. <change type="bugfix">
  24038. <para lang="ru">
  24039. ngx_http_perl_module не работал со встроенным в конфигурационный файл кодом,
  24040. если он не начинался сразу же с "sub".
  24041. </para>
  24042. <para lang="en">
  24043. ngx_http_perl_module did not work with inlined in the configuration code,
  24044. if it was not started with the "sub" word.
  24045. </para>
  24046. </change>

  24047. <change type="bugfix">
  24048. <para lang="ru">
  24049. в директиве post_action.
  24050. </para>
  24051. <para lang="en">
  24052. in the "post_action" directive.
  24053. </para>
  24054. </change>

  24055. </changes>


  24056. <changes ver="0.3.32" date="2006-03-11">

  24057. <change type="bugfix">
  24058. <para lang="ru">
  24059. удаление отладочного логгирования на старте и при переконфигурации;
  24060. ошибка появилась в 0.3.31.
  24061. </para>
  24062. <para lang="en">
  24063. the debug logging on startup and reconfiguration time was removed;
  24064. the bug had appeared in 0.3.31.
  24065. </para>
  24066. </change>

  24067. </changes>


  24068. <changes ver="0.3.31" date="2006-03-10">

  24069. <change type="change">
  24070. <para lang="ru">
  24071. теперь nginx передаёт неверные ответы проксированного бэкенда.
  24072. </para>
  24073. <para lang="en">
  24074. now nginx passes the malformed proxied backend responses.
  24075. </para>
  24076. </change>

  24077. <change type="feature">
  24078. <para lang="ru">
  24079. директивы listen поддерживают адрес в виде "*:порт".
  24080. </para>
  24081. <para lang="en">
  24082. the "listen" directives support the address in the "*:port" form.
  24083. </para>
  24084. </change>

  24085. <change type="feature">
  24086. <para lang="ru">
  24087. поддержка EVFILER_TIMER в MacOSX 10.4.
  24088. </para>
  24089. <para lang="en">
  24090. the EVFILER_TIMER support in MacOSX 10.4.
  24091. </para>
  24092. </change>

  24093. <change type="workaround">
  24094. <para lang="ru">
  24095. обход ошибки обработки миллисекундных таймаутов kqueue в 64-битном ядре
  24096. MacOSX.<br/>
  24097. Спасибо Андрею Нигматулину.
  24098. </para>
  24099. <para lang="en">
  24100. for MacOSX 64-bit kernel kqueue millisecond timeout bug.<br/>
  24101. Thanks to Andrei Nigmatulin.
  24102. </para>
  24103. </change>

  24104. <change type="bugfix">
  24105. <para lang="ru">
  24106. если внутри одного сервера описаны несколько директив listen, слушающих на
  24107. разных адресах, то имена серверов вида "*.domain.tld" работали только
  24108. для первого адреса;
  24109. ошибка появилась в 0.3.18.
  24110. </para>
  24111. <para lang="en">
  24112. if there were several "listen" directives listening one various addresses
  24113. inside one server, then server names like "*.domain.tld" worked for first
  24114. address only;
  24115. the bug had appeared in 0.3.18.
  24116. </para>
  24117. </change>

  24118. <change type="bugfix">
  24119. <para lang="ru">
  24120. при использовании протокола HTTPS в директиве proxy_pass не передавались
  24121. запросы с телом, записанным во временный файл.
  24122. </para>
  24123. <para lang="en">
  24124. if the HTTPS protocol was used in the "proxy_pass" directive and
  24125. the request body was in temporary file then the request was not transferred.
  24126. </para>
  24127. </change>

  24128. <change type="bugfix">
  24129. <para lang="ru">
  24130. совместимость с perl 5.8.8.
  24131. </para>
  24132. <para lang="en">
  24133. perl 5.8.8 compatibility.
  24134. </para>
  24135. </change>

  24136. </changes>


  24137. <changes ver="0.3.30" date="2006-02-22">

  24138. <change type="change">
  24139. <para lang="ru">
  24140. уровень записи в лог ошибки ECONNABORTED изменён на error с уровня crit.
  24141. </para>
  24142. <para lang="en">
  24143. the ECONNABORTED error log level was changed to "error" from "crit".
  24144. </para>
  24145. </change>

  24146. <change type="bugfix">
  24147. <para lang="ru">
  24148. модуль ngx_http_perl_module не собирался без модуля ngx_http_ssi_filter_module.
  24149. </para>
  24150. <para lang="en">
  24151. the ngx_http_perl_module could not be built without
  24152. the ngx_http_ssi_filter_module.
  24153. </para>
  24154. </change>

  24155. <change type="bugfix">
  24156. <para lang="ru">
  24157. nginx не собирался на i386 платформе, если использовался PIC;
  24158. ошибка появилась в 0.3.27.
  24159. </para>
  24160. <para lang="en">
  24161. nginx could not be built on i386 platform, if the PIC was used;
  24162. the bug had appeared in 0.3.27.
  24163. </para>
  24164. </change>

  24165. </changes>


  24166. <changes ver="0.3.29" date="2006-02-20">

  24167. <change type="feature">
  24168. <para lang="ru">
  24169. теперь nginx использует меньше памяти, если PHP в режиме FastCGI передаёт
  24170. большое количество предупреждений перед ответом.
  24171. </para>
  24172. <para lang="en">
  24173. now nginx uses less memory, if PHP in FastCGI mode sends many warnings
  24174. before the response.
  24175. </para>
  24176. </change>

  24177. <change type="bugfix">
  24178. <para lang="ru">
  24179. в ответах 204 для запросов версии HTTP/1.1 выдавалась строка заголовка
  24180. "Transfer-Encoding: chunked".
  24181. </para>
  24182. <para lang="en">
  24183. the "Transfer-Encoding: chunked" header line was issued in the 204 responses
  24184. for the HTTP/1.1 requests.
  24185. </para>
  24186. </change>

  24187. <change type="bugfix">
  24188. <para lang="ru">
  24189. nginx возвращал 502 код ответа, если FastCGI сервер передавал полные строки
  24190. заголовка ответа в отдельных FastCGI записях.
  24191. </para>
  24192. <para lang="en">
  24193. nginx returned the 502 response, if the complete response header lines
  24194. were transferred in a separate FastCGI records.
  24195. </para>
  24196. </change>

  24197. <change type="bugfix">
  24198. <para lang="ru">
  24199. если в директиве post_action был указан проксируемый URI, то он выполнялся
  24200. только после успешного завершения запроса.
  24201. </para>
  24202. <para lang="en">
  24203. if the proxied URI was specified in the "post_action" directive, then it ran
  24204. only after a successful completion of a request.
  24205. </para>
  24206. </change>

  24207. </changes>


  24208. <changes ver="0.3.28" date="2006-02-16">

  24209. <change type="feature">
  24210. <para lang="ru">
  24211. директива restrict_host_names упразднена.
  24212. </para>
  24213. <para lang="en">
  24214. the "restrict_host_names" directive was canceled.
  24215. </para>
  24216. </change>

  24217. <change type="feature">
  24218. <para lang="ru">
  24219. параметр конфигурации --with-cpu-opt=ppc64.
  24220. </para>
  24221. <para lang="en">
  24222. the --with-cpu-opt=ppc64 configuration parameter.
  24223. </para>
  24224. </change>

  24225. <change type="bugfix">
  24226. <para lang="ru">
  24227. при некоторых условиях проксированное соединение с клиентом завершалось
  24228. преждевременно.<br/>
  24229. Спасибо Владимиру Шутову.
  24230. </para>
  24231. <para lang="en">
  24232. on some condition the proxied connection with a client was terminated
  24233. prematurely.<br/>
  24234. Thanks to Vladimir Shutoff.
  24235. </para>
  24236. </change>

  24237. <change type="bugfix">
  24238. <para lang="ru">
  24239. строка заголовка "X-Accel-Limit-Rate" не учитывалась для запросов,
  24240. перенаправленных с помощью строки "X-Accel-Redirect".
  24241. </para>
  24242. <para lang="en">
  24243. the "X-Accel-Limit-Rate" header line was not taken into account
  24244. if the request was redirected using the "X-Accel-Redirect" header line.
  24245. </para>
  24246. </change>

  24247. <change type="bugfix">
  24248. <para lang="ru">
  24249. директива post_action работала только после успешного завершения запроса.
  24250. </para>
  24251. <para lang="en">
  24252. the "post_action" directive ran only after a successful completion of a request.
  24253. </para>
  24254. </change>

  24255. <change type="bugfix">
  24256. <para lang="ru">
  24257. тело проксированного ответа, создаваемого директивой post_action,
  24258. передавалось клиенту.
  24259. </para>
  24260. <para lang="en">
  24261. the proxied response body generated by the "post_action" directive
  24262. was transferred to a client.
  24263. </para>
  24264. </change>

  24265. </changes>


  24266. <changes ver="0.3.27" date="2006-02-08">

  24267. <change type="change">
  24268. <para lang="ru">
  24269. директивы variables_hash_max_size и variables_hash_bucket_size.
  24270. </para>
  24271. <para lang="en">
  24272. the "variables_hash_max_size" and "variables_hash_bucket_size" directives.
  24273. </para>
  24274. </change>

  24275. <change type="feature">
  24276. <para lang="ru">
  24277. переменная $body_bytes_sent доступна не только в директиве log_format.
  24278. </para>
  24279. <para lang="en">
  24280. the $body_bytes_sent variable can be used not only in the "log_format"
  24281. directive.
  24282. </para>
  24283. </change>

  24284. <change type="feature">
  24285. <para lang="ru">
  24286. переменные $ssl_protocol и $ssl_cipher.
  24287. </para>
  24288. <para lang="en">
  24289. the $ssl_protocol and $ssl_cipher variables.
  24290. </para>
  24291. </change>

  24292. <change type="feature">
  24293. <para lang="ru">
  24294. определение размера строки кэша распространённых процессоров при старте.
  24295. </para>
  24296. <para lang="en">
  24297. the cache line size detection for widespread CPUs at start time.
  24298. </para>
  24299. </change>

  24300. <change type="feature">
  24301. <para lang="ru">
  24302. директива accept_mutex теперь поддерживается посредством fcntl(2)
  24303. на платформах, отличных от i386, amd64, sparc64 и ppc.
  24304. </para>
  24305. <para lang="en">
  24306. now the "accept_mutex" directive is supported using fcntl(2)
  24307. on platforms different from i386, amd64, sparc64, and ppc.
  24308. </para>
  24309. </change>

  24310. <change type="feature">
  24311. <para lang="ru">
  24312. директива lock_file и параметр автоконфигурации --with-lock-path=PATH.
  24313. </para>
  24314. <para lang="en">
  24315. the "lock_file" directive and the --with-lock-path=PATH autoconfiguration
  24316. directive.
  24317. </para>
  24318. </change>

  24319. <change type="bugfix">
  24320. <para lang="ru">
  24321. при использовании протокола HTTPS в директиве proxy_pass не передавались
  24322. запросы с телом.
  24323. </para>
  24324. <para lang="en">
  24325. if the HTTPS protocol was used in the "proxy_pass" directive then
  24326. the requests with the body was not transferred.
  24327. </para>
  24328. </change>

  24329. </changes>


  24330. <changes ver="0.3.26" date="2006-02-03">

  24331. <change type="change">
  24332. <para lang="ru">
  24333. директива optimize_host_names переименована в optimize_server_names.
  24334. </para>
  24335. <para lang="en">
  24336. the "optimize_host_names" directive was renamed to the "optimize_server_names".
  24337. </para>
  24338. </change>

  24339. <change type="bugfix">
  24340. <para lang="ru">
  24341. при проксировании подзапроса в SSI бэкенду передавался URI основного запроса,
  24342. если в директиве proxy_pass отсутствовал URI.
  24343. </para>
  24344. <para lang="en">
  24345. if in the "proxy_pass" directive was no the URI part, then the main request
  24346. URI was transferred to a backend while proxying the SSI subrequest.
  24347. </para>
  24348. </change>

  24349. </changes>


  24350. <changes ver="0.3.25" date="2006-02-01">

  24351. <change type="bugfix">
  24352. <para lang="ru">
  24353. при неверной конфигурации на старте или во время переконфигурации происходил
  24354. segmentation fault;
  24355. ошибка появилась в 0.3.24.
  24356. </para>
  24357. <para lang="en">
  24358. the segmentation fault was occurred on start or while reconfiguration
  24359. if there was invalid configuration;
  24360. the bug had appeared in 0.3.24.
  24361. </para>
  24362. </change>

  24363. </changes>


  24364. <changes ver="0.3.24" date="2006-02-01">

  24365. <change type="workaround">
  24366. <para lang="ru">
  24367. обход ошибки в kqueue во FreeBSD.
  24368. </para>
  24369. <para lang="en">
  24370. for bug in FreeBSD kqueue.
  24371. </para>
  24372. </change>

  24373. <change type="bugfix">
  24374. <para lang="ru">
  24375. ответ, создаваемый директивой post_action, теперь не передаётся клиенту.
  24376. </para>
  24377. <para lang="en">
  24378. now a response generated by the "post_action" directive is not transferred
  24379. to a client.
  24380. </para>
  24381. </change>

  24382. <change type="bugfix">
  24383. <para lang="ru">
  24384. при использовании большого количества лог-файлов происходила утечка памяти.
  24385. </para>
  24386. <para lang="en">
  24387. the memory leaks were occurring if many log files were used.
  24388. </para>
  24389. </change>

  24390. <change type="bugfix">
  24391. <para lang="ru">
  24392. внутри одного location работала только первая директива proxy_redirect.
  24393. </para>
  24394. <para lang="en">
  24395. the first "proxy_redirect" directive was working inside one location.
  24396. </para>
  24397. </change>

  24398. <change type="bugfix">
  24399. <para lang="ru">
  24400. на 64-битных платформах при старте мог произойти segmentation fault,
  24401. если использовалось большое количество имён в директивах server_name;
  24402. ошибка появилась в 0.3.18.
  24403. </para>
  24404. <para lang="en">
  24405. on 64-bit platforms segmentation fault may occurred on start
  24406. if the many names were used in the "server_name" directives;
  24407. the bug had appeared in 0.3.18.
  24408. </para>
  24409. </change>

  24410. </changes>


  24411. <changes ver="0.3.23" date="2006-01-24">

  24412. <change type="feature">
  24413. <para lang="ru">
  24414. директива optimize_host_names.
  24415. </para>
  24416. <para lang="en">
  24417. the "optimize_host_names" directive.
  24418. </para>
  24419. </change>

  24420. <change type="bugfix">
  24421. <para lang="ru">
  24422. ошибки при использовании переменных в директивах path и alias.
  24423. </para>
  24424. <para lang="en">
  24425. in using of the variables in the "path" and "alias" directives.
  24426. </para>
  24427. </change>

  24428. <change type="bugfix">
  24429. <para lang="ru">
  24430. модуль ngx_http_perl_module неправильно собирался на Linux и Solaris.
  24431. </para>
  24432. <para lang="en">
  24433. the ngx_http_perl_module was incorrectly built on Linux and Solaris.
  24434. </para>
  24435. </change>

  24436. </changes>


  24437. <changes ver="0.3.22" date="2006-01-17">

  24438. <change type="feature">
  24439. <para lang="ru">
  24440. модуль ngx_http_perl_module поддерживает методы $r->args и $r->unescape.
  24441. </para>
  24442. <para lang="en">
  24443. the ngx_http_perl_module supports the $r->args and $r->unescape methods.
  24444. </para>
  24445. </change>

  24446. <change type="feature">
  24447. <para lang="ru">
  24448. метод $r->query_string в модуле ngx_http_perl_module упразднён.
  24449. </para>
  24450. <para lang="en">
  24451. the method $r->query_string of ngx_http_perl_module was canceled.
  24452. </para>
  24453. </change>

  24454. <change type="bugfix">
  24455. <para lang="ru">
  24456. если в директиве valid_referers указаны только none или blocked, то
  24457. происходил segmentation fault;
  24458. ошибка появилась в 0.3.18.
  24459. </para>
  24460. <para lang="en">
  24461. segmentation fault was occurred if the "none" or "blocked" values was
  24462. specified in the "valid_referers" directive;
  24463. the bug had appeared in 0.3.18.
  24464. </para>
  24465. </change>

  24466. </changes>


  24467. <changes ver="0.3.21" date="2006-01-16">

  24468. <change type="feature">
  24469. <para lang="ru">
  24470. модуль ngx_http_perl_module.
  24471. </para>
  24472. <para lang="en">
  24473. the ngx_http_perl_module.
  24474. </para>
  24475. </change>

  24476. <change type="change">
  24477. <para lang="ru">
  24478. директива valid_referers разрешает использовать рефереры совсем без URI.
  24479. </para>
  24480. <para lang="en">
  24481. the "valid_referers" directive allows the referrers without URI part.
  24482. </para>
  24483. </change>

  24484. </changes>


  24485. <changes ver="0.3.20" date="2006-01-11">

  24486. <change type="bugfix">
  24487. <para lang="ru">
  24488. ошибки в обработке SSI.
  24489. </para>
  24490. <para lang="en">
  24491. in SSI handling.
  24492. </para>
  24493. </change>

  24494. <change type="bugfix">
  24495. <para lang="ru">
  24496. модуль ngx_http_memcached_module не поддерживал ключи в виде /uri?args.
  24497. </para>
  24498. <para lang="en">
  24499. the ngx_http_memcached_module did not support the keys in the "/usr?args" form.
  24500. </para>
  24501. </change>

  24502. </changes>

  24503. <changes ver="0.3.19" date="2005-12-28">

  24504. <change type="feature">
  24505. <para lang="ru">
  24506. директивы path и alias поддерживают переменные.
  24507. </para>
  24508. <para lang="en">
  24509. the "path" and "alias" directives support the variables.
  24510. </para>
  24511. </change>

  24512. <change type="change">
  24513. <para lang="ru">
  24514. теперь директива valid_referers опять учитывает URI.
  24515. </para>
  24516. <para lang="en">
  24517. now the "valid_referers" directive again checks the URI part.
  24518. </para>
  24519. </change>

  24520. <change type="bugfix">
  24521. <para lang="ru">
  24522. ошибки в обработке SSI.
  24523. </para>
  24524. <para lang="en">
  24525. in SSI handling.
  24526. </para>
  24527. </change>

  24528. </changes>


  24529. <changes ver="0.3.18" date="2005-12-26">

  24530. <change type="feature">
  24531. <para lang="ru">
  24532. директива server_names поддерживает имена вида ".domain.tld".
  24533. </para>
  24534. <para lang="en">
  24535. the "server_names" directive supports the ".domain.tld" names.
  24536. </para>
  24537. </change>

  24538. <change type="feature">
  24539. <para lang="ru">
  24540. директива server_names использует хэш для имён вида "*.domain.tld"
  24541. и более эффективный хэш для обычных имён.
  24542. </para>
  24543. <para lang="en">
  24544. the "server_names" directive uses the hash for the "*.domain.tld" names
  24545. and more effective hash for usual names.
  24546. </para>
  24547. </change>

  24548. <change type="change">
  24549. <para lang="ru">
  24550. директивы server_names_hash_max_size и server_names_hash_bucket_size.
  24551. </para>
  24552. <para lang="en">
  24553. the "server_names_hash_max_size" and "server_names_hash_bucket_size" directives.
  24554. </para>
  24555. </change>

  24556. <change type="change">
  24557. <para lang="ru">
  24558. директивы server_names_hash и server_names_hash_threshold упразднены.
  24559. </para>
  24560. <para lang="en">
  24561. the "server_names_hash" and "server_names_hash_threshold" directives
  24562. were canceled.
  24563. </para>
  24564. </change>

  24565. <change type="feature">
  24566. <para lang="ru">
  24567. директива valid_referers использует хэш для имён сайтов.
  24568. </para>
  24569. <para lang="en">
  24570. the "valid_referers" directive uses the hash site names.
  24571. </para>
  24572. </change>

  24573. <change type="change">
  24574. <para lang="ru">
  24575. теперь директива valid_referers проверяет только имена сайтов без учёта URI.
  24576. </para>
  24577. <para lang="en">
  24578. now the "valid_referers" directive checks the site names only without
  24579. the URI part.
  24580. </para>
  24581. </change>

  24582. <change type="bugfix">
  24583. <para lang="ru">
  24584. некоторые имена вида ".domain.tld" неверно обрабатывались модулем
  24585. ngx_http_map_module.
  24586. </para>
  24587. <para lang="en">
  24588. some ".domain.tld" names incorrectly processed by the ngx_http_map_module.
  24589. </para>
  24590. </change>

  24591. <change type="bugfix">
  24592. <para lang="ru">
  24593. если конфигурационного файла не было, то происходил segmentation fault;
  24594. ошибка появилась в 0.3.12.
  24595. </para>
  24596. <para lang="en">
  24597. segmentation fault was occurred if configuration file did not exist;
  24598. the bug had appeared in 0.3.12.
  24599. </para>
  24600. </change>

  24601. <change type="bugfix">
  24602. <para lang="ru">
  24603. на 64-битных платформах при старте мог произойти segmentation fault;
  24604. ошибка появилась в 0.3.16.
  24605. </para>
  24606. <para lang="en">
  24607. on 64-bit platforms segmentation fault may occurred on start;
  24608. the bug had appeared in 0.3.16.
  24609. </para>
  24610. </change>

  24611. </changes>


  24612. <changes ver="0.3.17" date="2005-12-18">

  24613. <change type="change">
  24614. <para lang="ru">
  24615. на Linux configure теперь проверяет наличие epoll и sendfile64() в ядре.
  24616. </para>
  24617. <para lang="en">
  24618. now on Linux configure checks the presence of epoll and sendfile64() in kernel.
  24619. </para>
  24620. </change>

  24621. <change type="feature">
  24622. <para lang="ru">
  24623. директива map поддерживает доменные имена в формате ".domain.tld".
  24624. </para>
  24625. <para lang="en">
  24626. the "map" directive supports domain names in the ".domain.tld" form.
  24627. </para>
  24628. </change>

  24629. <change type="bugfix">
  24630. <para lang="ru">
  24631. во время SSL handshake не иcпользовались таймауты;
  24632. ошибка появилась в 0.2.4.
  24633. </para>
  24634. <para lang="en">
  24635. the timeouts were not used in SSL handshake;
  24636. the bug had appeared in 0.2.4.
  24637. </para>
  24638. </change>

  24639. <change type="bugfix">
  24640. <para lang="ru">
  24641. в использовании протокола HTTPS в директиве proxy_pass.
  24642. </para>
  24643. <para lang="en">
  24644. in the HTTPS protocol in the "proxy_pass" directive.
  24645. </para>
  24646. </change>

  24647. <change type="bugfix">
  24648. <para lang="ru">
  24649. при использовании протокола HTTPS в директиве proxy_pass по умолчанию
  24650. использовался порт 80.
  24651. </para>
  24652. <para lang="en">
  24653. when the HTTPS protocol was used in the "proxy_pass" directive the port 80
  24654. was used by default.
  24655. </para>
  24656. </change>

  24657. </changes>


  24658. <changes ver="0.3.16" date="2005-12-16">

  24659. <change type="feature">
  24660. <para lang="ru">
  24661. модуль ngx_http_map_module.
  24662. </para>
  24663. <para lang="en">
  24664. the ngx_http_map_module.
  24665. </para>
  24666. </change>

  24667. <change type="feature">
  24668. <para lang="ru">
  24669. директивы types_hash_max_size и types_hash_bucket_size.
  24670. </para>
  24671. <para lang="en">
  24672. the "types_hash_max_size" and "types_hash_bucket_size" directives.
  24673. </para>
  24674. </change>

  24675. <change type="feature">
  24676. <para lang="ru">
  24677. директива ssi_value_length.
  24678. </para>
  24679. <para lang="en">
  24680. the "ssi_value_length" directive.
  24681. </para>
  24682. </change>

  24683. <change type="feature">
  24684. <para lang="ru">
  24685. директива worker_rlimit_core.
  24686. </para>
  24687. <para lang="en">
  24688. the "worker_rlimit_core" directive.
  24689. </para>
  24690. </change>

  24691. <change type="workaround">
  24692. <para lang="ru">
  24693. при сборке компиляторами icc 8.1 и 9.0 с оптимизацией для
  24694. <nobr>Pentium 4</nobr> номер соединения в логах всегда был равен 1.
  24695. </para>
  24696. <para lang="en">
  24697. the connection number in logs was always 1 if nginx was built by the
  24698. icc 8.1 or 9.0 compilers with optimization for <nobr>Pentium 4.</nobr>
  24699. </para>
  24700. </change>

  24701. <change type="bugfix">
  24702. <para lang="ru">
  24703. команда config timefmt в SSI задавала неверный формат времени.
  24704. </para>
  24705. <para lang="en">
  24706. the "config timefmt" SSI command set incorrect time format.
  24707. </para>
  24708. </change>

  24709. <change type="bugfix">
  24710. <para lang="ru">
  24711. nginx не закрывал соединения с IMAP/POP3 бэкендом при использовании SSL
  24712. соединений;
  24713. ошибка появилась в 0.3.13.<br/>
  24714. Спасибо Rob Mueller.
  24715. </para>
  24716. <para lang="en">
  24717. nginx did not close connection to IMAP/POP3 backend for the SSL
  24718. connections;
  24719. the bug had appeared in 0.3.13.<br/>
  24720. Thanks to Rob Mueller.
  24721. </para>
  24722. </change>

  24723. <change type="bugfix">
  24724. <para lang="ru">
  24725. segmentation fault мог произойти во время SSL shutdown;
  24726. ошибка появилась в 0.3.13.
  24727. </para>
  24728. <para lang="en">
  24729. segmentation fault may occurred in at SSL shutdown;
  24730. the bug had appeared in 0.3.13.
  24731. </para>
  24732. </change>

  24733. </changes>


  24734. <changes ver="0.3.15" date="2005-12-07">

  24735. <change type="feature">
  24736. <para lang="ru">
  24737. новой код 444 в директиве return для закрытия соединения.
  24738. </para>
  24739. <para lang="en">
  24740. the new 444 code of the "return" directive to close connection.
  24741. </para>
  24742. </change>

  24743. <change type="feature">
  24744. <para lang="ru">
  24745. директива so_keepalive в IMAP/POP3 прокси.
  24746. </para>
  24747. <para lang="en">
  24748. the "so_keepalive" directive in IMAP/POP3 proxy.
  24749. </para>
  24750. </change>

  24751. <change type="bugfix">
  24752. <para lang="ru">
  24753. nginx теперь вызывает abort() при обнаружении незакрытых соединений
  24754. только при плавном выходе и включённой директиве debug_points.
  24755. </para>
  24756. <para lang="en">
  24757. if there are unclosed connection nginx now calls abort() only on graceful
  24758. quit and active "debug_points" directive.
  24759. </para>
  24760. </change>

  24761. </changes>


  24762. <changes ver="0.3.14" date="2005-12-05">

  24763. <change type="bugfix">
  24764. <para lang="ru">
  24765. в ответе 304 передавалось тело ответа;
  24766. ошибка появилась в 0.3.13.
  24767. </para>
  24768. <para lang="en">
  24769. in the 304 response the body was transferred;
  24770. the bug had appeared in 0.3.13.
  24771. </para>
  24772. </change>

  24773. </changes>


  24774. <changes ver="0.3.13" date="2005-12-05">

  24775. <change type="feature">
  24776. <para lang="ru">
  24777. IMAP/POP3 прокси поддерживает STARTTLS и STLS.
  24778. </para>
  24779. <para lang="en">
  24780. the IMAP/POP3 proxy supports STARTTLS and STLS.
  24781. </para>
  24782. </change>

  24783. <change type="bugfix">
  24784. <para lang="ru">
  24785. IMAP/POP3 прокси не работала с методами select, poll и /dev/poll.
  24786. </para>
  24787. <para lang="en">
  24788. the IMAP/POP3 proxy did not work with the select, poll, and /dev/poll methods.
  24789. </para>
  24790. </change>

  24791. <change type="bugfix">
  24792. <para lang="ru">
  24793. ошибки в обработке SSI.
  24794. </para>
  24795. <para lang="en">
  24796. in SSI handling.
  24797. </para>
  24798. </change>

  24799. <change type="bugfix">
  24800. <para lang="ru">
  24801. sendfilev() в Solaris теперь не используется при передаче тела запроса
  24802. FastCGI-серверу через unix domain сокет.
  24803. </para>
  24804. <para lang="en">
  24805. now Solaris sendfilev() is not used to transfer the client request body
  24806. to FastCGI-server via the unix domain socket.
  24807. </para>
  24808. </change>

  24809. <change type="bugfix">
  24810. <para lang="ru">
  24811. директива auth_basic не запрещала аутентификацию;
  24812. ошибка появилась в 0.3.11.
  24813. </para>
  24814. <para lang="en">
  24815. the "auth_basic" directive did not disable the authorization;
  24816. the bug had appeared in 0.3.11.
  24817. </para>
  24818. </change>

  24819. </changes>


  24820. <changes ver="0.3.12" date="2005-11-26">

  24821. <change type="security">
  24822. <para lang="ru">
  24823. если nginx был собран с модулем ngx_http_realip_module, то при использовании
  24824. директивы "satisfy_any on" директивы доступа и аутентификации не работали.
  24825. Модуль ngx_http_realip_module не собирался и не собирается по умолчанию.
  24826. </para>
  24827. <para lang="en">
  24828. if nginx was built with the ngx_http_realip_module and the "satisfy_any on"
  24829. directive was used, then access and authorization directives did not work.
  24830. The ngx_http_realip_module was not built and is not built by default.
  24831. </para>
  24832. </change>

  24833. <change type="change">
  24834. <para lang="ru">
  24835. имя переменной "$time_gmt" изменено на "$time_local".
  24836. </para>
  24837. <para lang="en">
  24838. the "$time_gmt" variable name was changed to "$time_local".
  24839. </para>
  24840. </change>

  24841. <change type="change">
  24842. <para lang="ru">
  24843. директивы proxy_header_buffer_size и fastcgi_header_buffer_size
  24844. переименованы соответственно в proxy_buffer_size и fastcgi_buffer_size.
  24845. </para>
  24846. <para lang="en">
  24847. the "proxy_header_buffer_size" and "fastcgi_header_buffer_size" directives
  24848. was renamed to the "proxy_buffer_size" and "fastcgi_buffer_size" directives.
  24849. </para>
  24850. </change>

  24851. <change type="feature">
  24852. <para lang="ru">
  24853. модуль ngx_http_memcached_module.
  24854. </para>
  24855. <para lang="en">
  24856. the ngx_http_memcached_module.
  24857. </para>
  24858. </change>

  24859. <change type="feature">
  24860. <para lang="ru">
  24861. директива proxy_buffering.
  24862. </para>
  24863. <para lang="en">
  24864. the "proxy_buffering" directive.
  24865. </para>
  24866. </change>

  24867. <change type="bugfix">
  24868. <para lang="ru">
  24869. изменение в работе с accept mutex при использовании метода rtsig;
  24870. ошибка появилась в 0.3.0.
  24871. </para>
  24872. <para lang="en">
  24873. the changes in accept mutex  handling when the "rtsig" method was used;
  24874. the bug had appeared in 0.3.0.
  24875. </para>
  24876. </change>

  24877. <change type="bugfix">
  24878. <para lang="ru">
  24879. если клиент передал строку "Transfer-Encoding: chunked" в заголовке
  24880. запроса, то nginx теперь выдаёт ошибку 411.
  24881. </para>
  24882. <para lang="en">
  24883. if the client sent the "Transfer-Encoding: chunked" header line, then
  24884. nginx returns the 411 error.
  24885. </para>
  24886. </change>

  24887. <change type="bugfix">
  24888. <para lang="ru">
  24889. при наследовании директивы auth_basic с уровня http в строке
  24890. "WWW-Authenticate" заголовка ответа выводился realm без текста "Basic realm".
  24891. </para>
  24892. <para lang="en">
  24893. if the "auth_basic" directive was inherited from the http level,
  24894. then the realm in the "WWW-Authenticate" header line was without
  24895. the "Basic realm" text.
  24896. </para>
  24897. </change>

  24898. <change type="bugfix">
  24899. <para lang="ru">
  24900. если в директиве access_log был явно указан формат combined, то в лог
  24901. записывались пустые строки;
  24902. ошибка появилась в 0.3.8.
  24903. </para>
  24904. <para lang="en">
  24905. if the "combined" format was explicitly specified in the "access_log" directive,
  24906. then the empty lines was written to the log;
  24907. the bug had appeared in 0.3.8.
  24908. </para>
  24909. </change>

  24910. <change type="bugfix">
  24911. <para lang="ru">
  24912. nginx не работал на платформе sparc под любыми OS, кроме Solaris.
  24913. </para>
  24914. <para lang="en">
  24915. nginx did not run on the sparc platform under any OS except Solaris.
  24916. </para>
  24917. </change>

  24918. <change type="bugfix">
  24919. <para lang="ru">
  24920. в директиве if теперь не нужно разделять пробелом строку в кавычках и
  24921. закрывающую скобку.
  24922. </para>
  24923. <para lang="en">
  24924. now it is not necessary to place space between the quoted string and closing
  24925. bracket in the "if" directive.
  24926. </para>
  24927. </change>

  24928. </changes>


  24929. <changes ver="0.3.11" date="2005-11-15">

  24930. <change type="bugfix">
  24931. <para lang="ru">
  24932. nginx не передавал при проксировании тело запроса и строки заголовка клиента;
  24933. ошибка появилась в 0.3.10.
  24934. </para>
  24935. <para lang="en">
  24936. nginx did not pass the client request headers and body while proxying;
  24937. the bug had appeared in 0.3.10.
  24938. </para>
  24939. </change>

  24940. </changes>


  24941. <changes ver="0.3.10" date="2005-11-15">

  24942. <change type="change">
  24943. <para lang="ru">
  24944. директива valid_referers и переменная $invalid_referer перенесены
  24945. из модуля ngx_http_rewrite_module в новый модуль ngx_http_referer_module.
  24946. </para>
  24947. <para lang="en">
  24948. the "valid_referers" directive and the "$invalid_referer" variable
  24949. were moved to the new ngx_http_referer_module from the ngx_http_rewrite_module.
  24950. </para>
  24951. </change>

  24952. <change type="change">
  24953. <para lang="ru">
  24954. имя переменной "$apache_bytes_sent" изменено на "$body_bytes_sent".
  24955. </para>
  24956. <para lang="en">
  24957. the "$apache_bytes_sent" variable name was changed to "$body_bytes_sent".
  24958. </para>
  24959. </change>

  24960. <change type="feature">
  24961. <para lang="ru">
  24962. переменные "$sent_http_...".
  24963. </para>
  24964. <para lang="en">
  24965. the "$sent_http_..." variables.
  24966. </para>
  24967. </change>

  24968. <change type="feature">
  24969. <para lang="ru">
  24970. директива if поддерживает операции "=" и "!=".
  24971. </para>
  24972. <para lang="en">
  24973. the "if" directive supports the "=" and "!=" operations.
  24974. </para>
  24975. </change>

  24976. <change type="feature">
  24977. <para lang="ru">
  24978. директива proxy_pass поддерживает протокол HTTPS.
  24979. </para>
  24980. <para lang="en">
  24981. the "proxy_pass" directive supports the HTTPS protocol.
  24982. </para>
  24983. </change>

  24984. <change type="feature">
  24985. <para lang="ru">
  24986. директива proxy_set_body.
  24987. </para>
  24988. <para lang="en">
  24989. the "proxy_set_body" directive.
  24990. </para>
  24991. </change>

  24992. <change type="feature">
  24993. <para lang="ru">
  24994. директива post_action.
  24995. </para>
  24996. <para lang="en">
  24997. the "post_action" directive.
  24998. </para>
  24999. </change>

  25000. <change type="feature">
  25001. <para lang="ru">
  25002. модуль ngx_http_empty_gif_module.
  25003. </para>
  25004. <para lang="en">
  25005. the ngx_http_empty_gif_module.
  25006. </para>
  25007. </change>

  25008. <change type="feature">
  25009. <para lang="ru">
  25010. директива worker_cpu_affinity для Linux.
  25011. </para>
  25012. <para lang="en">
  25013. the "worker_cpu_affinity" directive for Linux.
  25014. </para>
  25015. </change>

  25016. <change type="bugfix">
  25017. <para lang="ru">
  25018. директива rewrite не раскодировала символы в редиректах в URI,
  25019. теперь символы раскодируются, кроме символов %00-%25 и %7F-%FF.
  25020. </para>
  25021. <para lang="en">
  25022. the "rewrite" directive did not unescape URI part in redirect,
  25023. now it is unescaped except the %00-%25 and %7F-%FF characters.
  25024. </para>
  25025. </change>

  25026. <change type="bugfix">
  25027. <para lang="ru">
  25028. nginx не собирался компилятором icc 9.0.
  25029. </para>
  25030. <para lang="en">
  25031. nginx could not be built by the icc 9.0 compiler.
  25032. </para>
  25033. </change>

  25034. <change type="bugfix">
  25035. <para lang="ru">
  25036. если для статического файла нулевого размера был разрешён SSI,
  25037. то ответ передавался неверно при кодировании chunk'ами.
  25038. </para>
  25039. <para lang="en">
  25040. if the SSI was enabled for zero size static file, then the chunked
  25041. response was encoded incorrectly.
  25042. </para>
  25043. </change>

  25044. </changes>


  25045. <changes ver="0.3.9" date="2005-11-10">

  25046. <change type="bugfix">
  25047. <para lang="ru">
  25048. nginx считал небезопасными URI, в которых между двумя слэшами
  25049. находилось два любых символа;
  25050. ошибка появилась в 0.3.8.
  25051. </para>
  25052. <para lang="en">
  25053. nginx considered URI as unsafe if two any symbols was between two slashes;
  25054. the bug had appeared in 0.3.8.
  25055. </para>
  25056. </change>

  25057. </changes>


  25058. <changes ver="0.3.8" date="2005-11-09">

  25059. <change type="security">
  25060. <para lang="ru">
  25061. nginx теперь проверят URI, полученные от бэкенда в строке "X-Accel-Redirect"
  25062. в заголовке ответа, или в SSI файле на наличие путей "/../" и нулей.
  25063. </para>
  25064. <para lang="en">
  25065. nginx now checks URI got from a backend in "X-Accel-Redirect" header line
  25066. or in SSI file for the "/../" paths and zeroes.
  25067. </para>
  25068. </change>

  25069. <change type="change">
  25070. <para lang="ru">
  25071. nginx теперь не воспринимает пустое имя как правильное
  25072. в строке "Authorization" в заголовке запроса.
  25073. </para>
  25074. <para lang="en">
  25075. nginx now does not treat the empty user name in the "Authorization" header
  25076. line as valid one.
  25077. </para>
  25078. </change>

  25079. <change type="feature">
  25080. <para lang="ru">
  25081. директива ssl_session_timeout модулей
  25082. ngx_http_ssl_module и ngx_imap_ssl_module.
  25083. </para>
  25084. <para lang="en">
  25085. the "ssl_session_timeout" directives
  25086. of the ngx_http_ssl_module and ngx_imap_ssl_module.
  25087. </para>
  25088. </change>

  25089. <change type="feature">
  25090. <para lang="ru">
  25091. директива auth_http_header модуля ngx_imap_auth_http_module.
  25092. </para>
  25093. <para lang="en">
  25094. the "auth_http_header" directive of the ngx_imap_auth_http_module.
  25095. </para>
  25096. </change>

  25097. <change type="feature">
  25098. <para lang="ru">
  25099. директива add_header.
  25100. </para>
  25101. <para lang="en">
  25102. the "add_header" directive.
  25103. </para>
  25104. </change>

  25105. <change type="feature">
  25106. <para lang="ru">
  25107. модуль ngx_http_realip_module.
  25108. </para>
  25109. <para lang="en">
  25110. the ngx_http_realip_module.
  25111. </para>
  25112. </change>

  25113. <change type="feature">
  25114. <para lang="ru">
  25115. новые переменные для использования в директиве log_format:
  25116. $bytes_sent, $apache_bytes_sent, $status, $time_gmt,
  25117. $uri, $request_time, $request_length,
  25118. $upstream_status, $upstream_response_time,
  25119. $gzip_ratio,
  25120. $uid_got, $uid_set,
  25121. $connection, $pipe и $msec.
  25122. Параметры в виде "%name" скоро будут упразднены.
  25123. </para>
  25124. <para lang="en">
  25125. the new variables to use in the "log_format" directive:
  25126. $bytes_sent, $apache_bytes_sent, $status, $time_gmt,
  25127. $uri, $request_time, $request_length,
  25128. $upstream_status, $upstream_response_time,
  25129. $gzip_ratio,
  25130. $uid_got, $uid_set,
  25131. $connection, $pipe, and $msec.
  25132. The parameters in the "%name" form will be canceled soon.
  25133. </para>
  25134. </change>

  25135. <change type="change">
  25136. <para lang="ru">
  25137. в директиве "if" ложными значениями переменных теперь являются
  25138. пустая строка "" и строки, начинающиеся на "0".
  25139. </para>
  25140. <para lang="en">
  25141. now the false variable values in the "if" directive are the empty string ""
  25142. and string starting with "0".
  25143. </para>
  25144. </change>

  25145. <change type="bugfix">
  25146. <para lang="ru">
  25147. при работает с проксированными или FastCGI-серверами nginx мог оставлять
  25148. открытыми соединения и временные файлы с запросами клиентов.
  25149. </para>
  25150. <para lang="en">
  25151. while using proxied or FastCGI-server nginx may leave connections
  25152. and temporary files with client requests in open state.
  25153. </para>
  25154. </change>

  25155. <change type="bugfix">
  25156. <para lang="ru">
  25157. рабочие процессы не сбрасывали буферизированные логи при плавном выходе.
  25158. </para>
  25159. <para lang="en">
  25160. the worker processes did not flush the buffered logs on graceful exit.
  25161. </para>
  25162. </change>

  25163. <change type="bugfix">
  25164. <para lang="ru">
  25165. если URI запроса изменялось с помощью rewrite, а затем запрос проксировался
  25166. в location, заданном регулярным выражением, то бэкенду передавался
  25167. неверный запрос;
  25168. ошибка появилась в 0.2.6.
  25169. </para>
  25170. <para lang="en">
  25171. if the request URI was changes by the "rewrite" directive and the request
  25172. was proxied in location given by regular expression, then the incorrect
  25173. request was transferred to backend;
  25174. the bug had appeared in 0.2.6.
  25175. </para>
  25176. </change>

  25177. <change type="bugfix">
  25178. <para lang="ru">
  25179. директива expires не удаляла уже установленную строку заголовка "Expires".
  25180. </para>
  25181. <para lang="en">
  25182. the "expires" directive did not remove the previous "Expires" header.
  25183. </para>
  25184. </change>

  25185. <change type="bugfix">
  25186. <para lang="ru">
  25187. при использовании метода rtsig и нескольких рабочих процессах nginx
  25188. мог перестать принимать запросы.
  25189. </para>
  25190. <para lang="en">
  25191. nginx may stop to accept requests if the "rtsig" method and several worker
  25192. processes were used.
  25193. </para>
  25194. </change>

  25195. <change type="bugfix">
  25196. <para lang="ru">
  25197. в SSI командах неверно обрабатывались строки "\"" и "\'".
  25198. </para>
  25199. <para lang="en">
  25200. the "\"" and "\'" escape symbols were incorrectly handled in SSI commands.
  25201. </para>
  25202. </change>

  25203. <change type="bugfix">
  25204. <para lang="ru">
  25205. если ответ заканчивался сразу же после SSI команды, то при использовании
  25206. сжатия ответ передавался не до конца или не передавался вообще.
  25207. </para>
  25208. <para lang="en">
  25209. if the response was ended just after the SSI command and gzipping was used,
  25210. then the response did not transferred complete or did not transferred at all.
  25211. </para>
  25212. </change>

  25213. </changes>


  25214. <changes ver="0.3.7" date="2005-10-27">

  25215. <change type="feature">
  25216. <para lang="ru">
  25217. директива access_log поддерживает параметр buffer=.
  25218. </para>
  25219. <para lang="en">
  25220. the "access_log" supports the "buffer=" parameter.
  25221. </para>
  25222. </change>

  25223. <change type="bugfix">
  25224. <para lang="ru">
  25225. nginx не собирался на платформах, отличных от i386, amd64, sparc и ppc;
  25226. ошибка появилась в 0.3.2.
  25227. </para>
  25228. <para lang="en">
  25229. nginx could not be built on platforms different from i386, amd64, sparc,
  25230. and ppc;
  25231. the bug had appeared in 0.3.2.
  25232. </para>
  25233. </change>

  25234. </changes>


  25235. <changes ver="0.3.6" date="2005-10-24">

  25236. <change type="change">
  25237. <para lang="ru">
  25238. IMAP/POP3 прокси теперь не передаёт серверу авторизации пустой логин.
  25239. </para>
  25240. <para lang="en">
  25241. now the IMAP/POP3 proxy do not send the empty login to authorization server.
  25242. </para>
  25243. </change>

  25244. <change type="feature">
  25245. <para lang="ru">
  25246. директива log_format поддерживает переменные в виде $name.
  25247. </para>
  25248. <para lang="en">
  25249. the "log_format" supports the variables in the $name form.
  25250. </para>
  25251. </change>

  25252. <change type="bugfix">
  25253. <para lang="ru">
  25254. если хотя бы в одном сервере не было описано ни одной директивы listen, то
  25255. nginx не слушал на 80 порту;
  25256. ошибка появилась в 0.3.3.
  25257. </para>
  25258. <para lang="en">
  25259. if at least in one server was no the "listen" directive, then nginx did not
  25260. listen on the 80 port;
  25261. the bug had appeared in 0.3.3.
  25262. </para>
  25263. </change>

  25264. <change type="bugfix">
  25265. <para lang="ru">
  25266. если в директиве proxy_pass отсутствовал URI, то всегда использовался порт 80.
  25267. </para>
  25268. <para lang="en">
  25269. if the URI part is omitted in "proxy_pass" directive, the 80 port was
  25270. always used.
  25271. </para>
  25272. </change>

  25273. </changes>


  25274. <changes ver="0.3.5" date="2005-10-21">

  25275. <change type="bugfix">
  25276. <para lang="ru">
  25277. если логин IMAP/POP3 менялся сервером авторизации, то мог произойти
  25278. segmentation fault;
  25279. ошибка появилась в 0.2.2.
  25280. </para>
  25281. <para lang="en">
  25282. the segmentation fault may occurred if the IMAP/POP3 login was changed
  25283. by authorization server;
  25284. the bug had appeared in 0.2.2.
  25285. </para>
  25286. </change>

  25287. <change type="bugfix">
  25288. <para lang="ru">
  25289. accept mutex не работал, все соединения обрабатывались одним рабочим процессом;
  25290. ошибка появилась в 0.3.3.
  25291. </para>
  25292. <para lang="en">
  25293. the accept mutex did not work and all connections were handled by one process;
  25294. the bug had appeared in 0.3.3.
  25295. </para>
  25296. </change>

  25297. <change type="bugfix">
  25298. <para lang="ru">
  25299. при использовании метода rtsig и директивы timer_resolution
  25300. не работали таймауты.
  25301. </para>
  25302. <para lang="en">
  25303. the timeout did not work if the "rtsig" method and the "timer_resolution"
  25304. directive were used.
  25305. </para>
  25306. </change>

  25307. </changes>


  25308. <changes ver="0.3.4" date="2005-10-19">

  25309. <change type="bugfix">
  25310. <para lang="ru">
  25311. nginx не собирался на Linux 2.4+ и MacOS X;
  25312. ошибка появилась в 0.3.3.
  25313. </para>
  25314. <para lang="en">
  25315. nginx could not be built on Linux 2.4+ and MacOS X;
  25316. the bug had appeared in 0.3.3.
  25317. </para>
  25318. </change>

  25319. </changes>


  25320. <changes ver="0.3.3" date="2005-10-19">

  25321. <change type="change">
  25322. <para lang="ru">
  25323. параметры "bl" и "af" директивы listen переименованы в "backlog"
  25324. и "accept_filter".
  25325. </para>
  25326. <para lang="en">
  25327. the "bl" and "af" parameters of the "listen" directive was renamed to
  25328. the "backlog" and "accept_filter".
  25329. </para>
  25330. </change>

  25331. <change type="feature">
  25332. <para lang="ru">
  25333. параметры "rcvbuf" и "sndbuf" в директиве listen.
  25334. </para>
  25335. <para lang="en">
  25336. the "rcvbuf" and "sndbuf" parameters of the "listen" directive.
  25337. </para>
  25338. </change>

  25339. <change type="change">
  25340. <para lang="ru">
  25341. параметр лога $msec теперь не требует дополнительного системного
  25342. вызова gettimeofday().
  25343. </para>
  25344. <para lang="en">
  25345. the "$msec" log parameter does not require now the additional
  25346. the gettimeofday() system call.
  25347. </para>
  25348. </change>

  25349. <change type="feature">
  25350. <para lang="ru">
  25351. ключ -t теперь проверяет директивы listen.
  25352. </para>
  25353. <para lang="en">
  25354. the -t switch now tests the "listen" directives.
  25355. </para>
  25356. </change>

  25357. <change type="bugfix">
  25358. <para lang="ru">
  25359. если в директиве listen был указан неверный адрес, то nginx после
  25360. сигнала -HUP оставлял открытый сокет в состоянии CLOSED.
  25361. </para>
  25362. <para lang="en">
  25363. if the invalid address was specified in the "listen" directive, then
  25364. after the -HUP signal nginx left an open socket in the CLOSED state.
  25365. </para>
  25366. </change>

  25367. <change type="bugfix">
  25368. <para lang="ru">
  25369. для индексных файлов, содержащих в имени переменную, мог неверно выставляться
  25370. тип mime по умолчанию;
  25371. ошибка появилась в 0.3.0.
  25372. </para>
  25373. <para lang="en">
  25374. the mime type may be incorrectly set to default value for index file with
  25375. variable in the name;
  25376. the bug had appeared in 0.3.0.
  25377. </para>
  25378. </change>

  25379. <change type="feature">
  25380. <para lang="ru">
  25381. директива timer_resolution.
  25382. </para>
  25383. <para lang="en">
  25384. the "timer_resolution" directive.
  25385. </para>
  25386. </change>

  25387. <change type="feature">
  25388. <para lang="ru">
  25389. параметр лога $upstream_response_time в миллисекундах.
  25390. </para>
  25391. <para lang="en">
  25392. the millisecond "$upstream_response_time" log parameter.
  25393. </para>
  25394. </change>

  25395. <change type="bugfix">
  25396. <para lang="ru">
  25397. временный файл с телом запроса клиента теперь удаляется сразу после того,
  25398. как клиенту передан заголовок ответа.
  25399. </para>
  25400. <para lang="en">
  25401. a temporary file with client request body now is removed just after
  25402. the response header was transferred to a client.
  25403. </para>
  25404. </change>

  25405. <change type="bugfix">
  25406. <para lang="ru">
  25407. совместимость с OpenSSL 0.9.6.
  25408. </para>
  25409. <para lang="en">
  25410. OpenSSL 0.9.6 compatibility.
  25411. </para>
  25412. </change>

  25413. <change type="bugfix">
  25414. <para lang="ru">
  25415. пути к файлам с SSL сертификатом и ключом не могли быть относительными.
  25416. </para>
  25417. <para lang="en">
  25418. the SSL certificate and key file paths could not be relative.
  25419. </para>
  25420. </change>

  25421. <change type="bugfix">
  25422. <para lang="ru">
  25423. директива ssl_prefer_server_ciphers не работала для модуля ngx_imap_ssl_module.
  25424. </para>
  25425. <para lang="en">
  25426. the "ssl_prefer_server_ciphers" directive did not work in
  25427. the ngx_imap_ssl_module.
  25428. </para>
  25429. </change>

  25430. <change type="bugfix">
  25431. <para lang="ru">
  25432. директива ssl_protocols позволяла задать только один протокол.
  25433. </para>
  25434. <para lang="en">
  25435. the "ssl_protocols" directive allowed to specify the single protocol only.
  25436. </para>
  25437. </change>

  25438. </changes>


  25439. <changes ver="0.3.2" date="2005-10-12">

  25440. <change type="feature">
  25441. <para lang="ru">
  25442. поддержка Sun Studio 10 C compiler.
  25443. </para>
  25444. <para lang="en">
  25445. the Sun Studio 10 C compiler support.
  25446. </para>
  25447. </change>

  25448. <change type="feature">
  25449. <para lang="ru">
  25450. директивы proxy_upstream_max_fails, proxy_upstream_fail_timeout,
  25451. fastcgi_upstream_max_fails и fastcgi_upstream_fail_timeout.
  25452. </para>
  25453. <para lang="en">
  25454. the "proxy_upstream_max_fails", "proxy_upstream_fail_timeout",
  25455. "fastcgi_upstream_max_fails", and "fastcgi_upstream_fail_timeout"
  25456. directives.
  25457. </para>
  25458. </change>

  25459. </changes>


  25460. <changes ver="0.3.1" date="2005-10-10">

  25461. <change type="bugfix">
  25462. <para lang="ru">
  25463. во время переполнения очереди сигналов при использовании метода rtsig
  25464. происходил segmentation fault;
  25465. ошибка появилась в 0.2.0.
  25466. </para>
  25467. <para lang="en">
  25468. the segmentation fault occurred when the signal queue overflowed
  25469. if the "rtsig" method was used;
  25470. the bug had appeared in 0.2.0.
  25471. </para>
  25472. </change>

  25473. <change type="change">
  25474. <para lang="ru">
  25475. корректная обработка пар "\\", "\"", "\'" и "\$" в SSI.
  25476. </para>
  25477. <para lang="en">
  25478. correct handling of the "\\", "\"", "\'", and "\$" pairs in SSI.
  25479. </para>
  25480. </change>

  25481. </changes>


  25482. <changes ver="0.3.0" date="2005-10-07">

  25483. <change type="change">
  25484. <para lang="ru">
  25485. убрано десятидневное ограничение времени работы рабочего процесса.
  25486. Ограничение было введено из-за переполнения миллисекундных таймеров.
  25487. </para>
  25488. <para lang="en">
  25489. the 10-days live time limit of worker process was eliminated.
  25490. The limit was introduced because of millisecond timers overflow.
  25491. </para>
  25492. </change>

  25493. </changes>


  25494. <changes ver="0.2.6" date="2005-10-05">

  25495. <change type="change">
  25496. <para lang="ru">
  25497. с 60 до 10 секунд уменьшено время повторного обращения к бэкенду
  25498. при использовании распределения нагрузки.
  25499. </para>
  25500. <para lang="en">
  25501. while using load-balancing the time before the failed backend retry
  25502. was decreased from 60 to 10 seconds.
  25503. </para>
  25504. </change>

  25505. <change type="change">
  25506. <para lang="ru">
  25507. директива proxy_pass_unparsed_uri упразднена, оригинальный запрос теперь
  25508. передаётся, если в директиве proxy_pass отсутствует URI.
  25509. </para>
  25510. <para lang="en">
  25511. the "proxy_pass_unparsed_uri" was canceled, the original URI now passed,
  25512. if the URI part is omitted in "proxy_pass" directive.
  25513. </para>
  25514. </change>

  25515. <change type="feature">
  25516. <para lang="ru">
  25517. директива error_page поддерживает редиректы и позволяет более гибко
  25518. менять код ошибки.
  25519. </para>
  25520. <para lang="en">
  25521. the "error_page" directive supports redirects and allows more flexible
  25522. to change an error code.
  25523. </para>
  25524. </change>

  25525. <change type="change">
  25526. <para lang="ru">
  25527. в проксированных подзапросах теперь игнорируется переданный charset.
  25528. </para>
  25529. <para lang="en">
  25530. the charset in the "Content-Type" header line now is ignored
  25531. in proxied subrequests.
  25532. </para>
  25533. </change>

  25534. <change type="bugfix">
  25535. <para lang="ru">
  25536. если после изменения URI в блоке if для запроса не находилась
  25537. новая конфигурация, то правила модуля ngx_http_rewrite_module выполнялись
  25538. снова.
  25539. </para>
  25540. <para lang="en">
  25541. if the URI was changed in the "if" block and request did not found
  25542. new configuration, then the ngx_http_rewrite_module rules ran again.
  25543. </para>
  25544. </change>

  25545. <change type="bugfix">
  25546. <para lang="ru">
  25547. если директива set устанавливала переменную модуля ngx_http_geo_module
  25548. в какой-либо части конфигурации, то эта переменная не была доступна в
  25549. других частях конфигурации и выдавалась ошибка "using uninitialized variable";
  25550. ошибка появилась в 0.2.2.
  25551. </para>
  25552. <para lang="en">
  25553. if the "set" directive set the ngx_http_geo_module variable in some
  25554. configuration part, the this variable was not available in other
  25555. configuration parts and the "using uninitialized variable" error was occurred;
  25556. the bug had appeared in 0.2.2.
  25557. </para>
  25558. </change>

  25559. </changes>


  25560. <changes ver="0.2.5" date="2005-10-04">

  25561. <change type="change">
  25562. <para lang="ru">
  25563. дублирующее значение переменной модуля ngx_http_geo_module теперь
  25564. выдаёт предупреждение и изменяет старое значение.
  25565. </para>
  25566. <para lang="en">
  25567. the duplicate value of the ngx_http_geo_module variable now causes
  25568. the warning and changes old value.
  25569. </para>
  25570. </change>

  25571. <change type="feature">
  25572. <para lang="ru">
  25573. модуль ngx_http_ssi_module поддерживает команду set.
  25574. </para>
  25575. <para lang="en">
  25576. the ngx_http_ssi_module supports the "set" command.
  25577. </para>
  25578. </change>

  25579. <change type="feature">
  25580. <para lang="ru">
  25581. модуль ngx_http_ssi_module поддерживает параметр file в команде include.
  25582. </para>
  25583. <para lang="en">
  25584. the ngx_http_ssi_module supports the "file" parameter in the "include" command.
  25585. </para>
  25586. </change>

  25587. <change type="feature">
  25588. <para lang="ru">
  25589. модуль ngx_http_ssi_module поддерживает подстановку значений переменных
  25590. в выражениях команды if.
  25591. </para>
  25592. <para lang="en">
  25593. the ngx_http_ssi_module supports the variable value substitutions in
  25594. expressions of the "if" command.
  25595. </para>
  25596. </change>

  25597. </changes>


  25598. <changes ver="0.2.4" date="2005-10-03">

  25599. <change type="feature">
  25600. <para lang="ru">
  25601. модуль ngx_http_ssi_module поддерживает выражения
  25602. "$var=text", "$var!=text", "$var=/text/" и "$var!=/text/"
  25603. в команде if.
  25604. </para>
  25605. <para lang="en">
  25606. the ngx_http_ssi_module supports
  25607. "$var=text", "$var!=text", "$var=/text/", and "$var!=/text/" expressions
  25608. in the "if" command.
  25609. </para>
  25610. </change>

  25611. <change type="bugfix">
  25612. <para lang="ru">
  25613. ошибки при проксировании location без слэша в конце;
  25614. ошибка появилась в 0.1.44.
  25615. </para>
  25616. <para lang="en">
  25617. in proxying location without trailing slash;
  25618. the bug had appeared in 0.1.44.
  25619. </para>
  25620. </change>

  25621. <change type="bugfix">
  25622. <para lang="ru">
  25623. при использовании метода rtsig мог произойти segmentation fault;
  25624. ошибка появилась в 0.2.0.
  25625. </para>
  25626. <para lang="en">
  25627. the segmentation fault may occurred if the "rtsig" method was used;
  25628. the bug had appeared in 0.2.0.
  25629. </para>
  25630. </change>

  25631. </changes>


  25632. <changes ver="0.2.3" date="2005-09-30">

  25633. <change type="bugfix">
  25634. <para lang="ru">
  25635. nginx не собирался без параметра --with-debug;
  25636. ошибка появилась в 0.2.2.
  25637. </para>
  25638. <para lang="en">
  25639. nginx could not be built without the --with-debug option;
  25640. the bug had appeared in 0.2.2.
  25641. </para>
  25642. </change>

  25643. </changes>


  25644. <changes ver="0.2.2" date="2005-09-30">

  25645. <change type="feature">
  25646. <para lang="ru">
  25647. команда config errmsg в модуле ngx_http_ssi_module.
  25648. </para>
  25649. <para lang="en">
  25650. the "config errmsg" command of the ngx_http_ssi_module.
  25651. </para>
  25652. </change>

  25653. <change type="change">
  25654. <para lang="ru">
  25655. переменные модуля ngx_http_geo_module можно переопределять директивой set.
  25656. </para>
  25657. <para lang="en">
  25658. the ngx_http_geo_module variables can be overridden by the "set" directive.
  25659. </para>
  25660. </change>

  25661. <change type="feature">
  25662. <para lang="ru">
  25663. директивы ssl_protocols и ssl_prefer_server_ciphers модулей
  25664. ngx_http_ssl_module и ngx_imap_ssl_module.
  25665. </para>
  25666. <para lang="en">
  25667. the "ssl_protocols" and "ssl_prefer_server_ciphers" directives
  25668. of the ngx_http_ssl_module and ngx_imap_ssl_module.
  25669. </para>
  25670. </change>

  25671. <change type="bugfix">
  25672. <para lang="ru">
  25673. ошибка в модуле ngx_http_autoindex_module при показе длинных имён файлов;
  25674. </para>
  25675. <para lang="en">
  25676. the ngx_http_autoindex_module did not show correctly the long file names;
  25677. </para>
  25678. </change>

  25679. <change type="bugfix">
  25680. <para lang="ru">
  25681. модуль ngx_http_autoindex_module теперь не показывает файлы,
  25682. начинающиеся на точку.
  25683. </para>
  25684. <para lang="en">
  25685. the ngx_http_autoindex_module now do not show the files starting by dot.
  25686. </para>
  25687. </change>

  25688. <change type="bugfix">
  25689. <para lang="ru">
  25690. если SSL handshake завершался с ошибкой, то это могло привести также
  25691. к закрытию другого соединения.<br/>
  25692. Спасибо Rob Mueller.
  25693. </para>
  25694. <para lang="en">
  25695. if the SSL handshake failed then another connection may be closed too.<br/>
  25696. Thanks to Rob Mueller.
  25697. </para>
  25698. </change>

  25699. <change type="bugfix">
  25700. <para lang="ru">
  25701. экспортные версии MSIE 5.x не могли соединиться по HTTPS.
  25702. </para>
  25703. <para lang="en">
  25704. the export versions of MSIE 5.x could not connect via HTTPS.
  25705. </para>
  25706. </change>

  25707. </changes>


  25708. <changes ver="0.2.1" date="2005-09-23">

  25709. <change type="bugfix">
  25710. <para lang="ru">
  25711. если все бэкенды, используемые для балансировки нагрузки, оказывались
  25712. в нерабочем состоянии после одной ошибки, то nginx мог зациклится;
  25713. ошибка появилась в 0.2.0.
  25714. </para>
  25715. <para lang="en">
  25716. if all backend using in load-balancing failed after one error, then
  25717. nginx may got caught in an endless loop;
  25718. the bug had appeared in 0.2.0.
  25719. </para>
  25720. </change>

  25721. </changes>


  25722. <changes ver="0.2.0" date="2005-09-23">

  25723. <change>
  25724. <para lang="ru">
  25725. Изменились имена pid-файлов, используемые во время обновления исполняемого
  25726. файла. Ручное переименование теперь не нужно.
  25727. Старый основной процесс добавляет к своему pid-файл суффикс ".oldbin"
  25728. и запускает новый исполняемый файл.
  25729. Новый основной процесс создаёт обычный pid-файл без суффикса ".newbin".
  25730. Если новый основной процесс выходит, то старый процесс переименовывает свой
  25731. pid-файл c суффиксом ".oldbin" в pid-файл без суффикса.
  25732. При обновлении с версии 0.1.х до 0.2.0 нужно учитывать, что оба
  25733. процесса&mdash;старый 0.1.x и новый 0.2.0&mdash;используют pid-файл
  25734. без суффиксов.
  25735. </para>
  25736. <para lang="en">
  25737. The pid-file names used during online upgrade was changed and now is not
  25738. required a manual rename operation.
  25739. The old master process adds the ".oldbin" suffix to its pid-file and
  25740. executes a new binary file.
  25741. The new master process creates usual pid-file without the ".newbin" suffix.
  25742. If the master process exits, then old master process renames back
  25743. its pid-file with the ".oldbin" suffix to the pid-file without suffix.
  25744. </para>
  25745. </change>

  25746. <change type="change">
  25747. <para lang="ru">
  25748. директива worker_connections, новое название директивы connections;
  25749. директива теперь задаёт максимальное число соединений,
  25750. а не максимально возможный номер дескриптора для сокета.
  25751. </para>
  25752. <para lang="en">
  25753. the "worker_connections" directive, new name of the "connections" directive;
  25754. now the directive specifies maximum number of connections,
  25755. but not maximum socket descriptor number.
  25756. </para>
  25757. </change>

  25758. <change type="feature">
  25759. <para lang="ru">
  25760. SSL поддерживает кэширование сессий в пределах одного рабочего процесса.
  25761. </para>
  25762. <para lang="en">
  25763. SSL supports the session cache inside one worker process.
  25764. </para>
  25765. </change>

  25766. <change type="feature">
  25767. <para lang="ru">
  25768. директива satisfy_any.
  25769. </para>
  25770. <para lang="en">
  25771. the "satisfy_any" directive.
  25772. </para>
  25773. </change>

  25774. <change type="change">
  25775. <para lang="ru">
  25776. модули ngx_http_access_module и ngx_http_auth_basic_module не работают
  25777. для подзапросов.
  25778. </para>
  25779. <para lang="en">
  25780. the ngx_http_access_module and ngx_http_auth_basic_module do not run
  25781. for subrequests.
  25782. </para>
  25783. </change>

  25784. <change type="feature">
  25785. <para lang="ru">
  25786. директивы worker_rlimit_nofile и worker_rlimit_sigpending.
  25787. </para>
  25788. <para lang="en">
  25789. the "worker_rlimit_nofile" and "worker_rlimit_sigpending" directives.
  25790. </para>
  25791. </change>

  25792. <change type="bugfix">
  25793. <para lang="ru">
  25794. если все бэкенды, используемые для балансировки нагрузки, оказывались
  25795. в нерабочем состоянии после одной ошибки, то nginx не обращался к ним
  25796. в течение 60 секунд.
  25797. </para>
  25798. <para lang="en">
  25799. if all backend using in load-balancing failed after one error, then
  25800. nginx did not try do connect to them during 60 seconds.
  25801. </para>
  25802. </change>

  25803. <change type="bugfix">
  25804. <para lang="ru">
  25805. в парсинге аргументов IMAP/POP3 команд.<br/>
  25806. Спасибо Rob Mueller.
  25807. </para>
  25808. <para lang="en">
  25809. in IMAP/POP3 command argument parsing.<br/>
  25810. Thanks to Rob Mueller.
  25811. </para>
  25812. </change>

  25813. <change type="bugfix">
  25814. <para lang="ru">
  25815. ошибки при использовании SSL в IMAP/POP3 прокси.
  25816. </para>
  25817. <para lang="en">
  25818. errors while using SSL in IMAP/POP3 proxy.
  25819. </para>
  25820. </change>

  25821. <change type="bugfix">
  25822. <para lang="ru">
  25823. ошибки при использовании SSI и сжатия.
  25824. </para>
  25825. <para lang="en">
  25826. errors while using SSI and gzipping.
  25827. </para>
  25828. </change>

  25829. <change type="bugfix">
  25830. <para lang="ru">
  25831. в ответах 304 не добавлялись строки заголовка ответа "Expires" и
  25832. "Cache-Control".<br/>
  25833. Спасибо Александру Кукушкину.
  25834. </para>
  25835. <para lang="en">
  25836. the "Expires" and "Cache-Control" header lines were omitted
  25837. from the 304 responses.<br/>
  25838. Thanks to Alexandr Kukushkin.
  25839. </para>
  25840. </change>

  25841. </changes>


  25842. <changes ver="0.1.45" date="2005-09-08">

  25843. <change type="change">
  25844. <para lang="ru">
  25845. директива ssl_engine упразднена в модуле ngx_http_ssl_module и
  25846. перенесена на глобальный уровень.
  25847. </para>
  25848. <para lang="en">
  25849. the "ssl_engine" directive was canceled in the ngx_http_ssl_module
  25850. and now is introduced at global level.
  25851. </para>
  25852. </change>

  25853. <change type="bugfix">
  25854. <para lang="ru">
  25855. ответы с подзапросами, включённые с помощью SSI, не передавались
  25856. через SSL соединение.
  25857. </para>
  25858. <para lang="en">
  25859. the responses with SSI subrequests did not transferred via SSL connection.
  25860. </para>
  25861. </change>

  25862. <change>
  25863. <para lang="ru">
  25864. Разные исправления в IMAP/POP3 прокси.
  25865. </para>
  25866. <para lang="en">
  25867. Various bug fixes in the IMAP/POP3 proxy.
  25868. </para>
  25869. </change>

  25870. </changes>


  25871. <changes ver="0.1.44" date="2005-09-06">

  25872. <change type="feature">
  25873. <para lang="ru">
  25874. IMAP/POP3 прокси поддерживает SSL.
  25875. </para>
  25876. <para lang="en">
  25877. the IMAP/POP3 proxy supports SSL.
  25878. </para>
  25879. </change>

  25880. <change type="feature">
  25881. <para lang="ru">
  25882. директива proxy_timeout модуля ngx_imap_proxy_module.
  25883. </para>
  25884. <para lang="en">
  25885. the "proxy_timeout" directive of the ngx_imap_proxy_module.
  25886. </para>
  25887. </change>

  25888. <change type="feature">
  25889. <para lang="ru">
  25890. директива userid_mark.
  25891. </para>
  25892. <para lang="en">
  25893. the "userid_mark" directive.
  25894. </para>
  25895. </change>

  25896. <change type="feature">
  25897. <para lang="ru">
  25898. значение переменной $remote_user определяется независимо от того,
  25899. используется ли авторизация или нет.
  25900. </para>
  25901. <para lang="en">
  25902. the $remote_user variable value is determined independently of
  25903. authorization use.
  25904. </para>
  25905. </change>

  25906. </changes>


  25907. <changes ver="0.1.43" date="2005-08-30">

  25908. <change type="feature">
  25909. <para lang="ru">
  25910. listen(2) backlog в директиве listen можно менять по сигналу -HUP.
  25911. </para>
  25912. <para lang="en">
  25913. the listen(2) backlog in the "listen" directive
  25914. can be changed using the -HUP signal.
  25915. </para>
  25916. </change>

  25917. <change type="feature">
  25918. <para lang="ru">
  25919. скрипт geo2nginx.pl добавлен в contrib.
  25920. </para>
  25921. <para lang="en">
  25922. the geo2nginx.pl script was added to contrib.
  25923. </para>
  25924. </change>

  25925. <change type="change">
  25926. <para lang="ru">
  25927. параметры FastCGI с пустым значениями теперь передаются серверу.
  25928. </para>
  25929. <para lang="en">
  25930. the FastCGI parameters with the empty values now are passed to a server.
  25931. </para>
  25932. </change>

  25933. <!--

  25934. <change type="bugfix">
  25935. <para lang="ru">
  25936. при ошибках в работе с проксированным сервером или FastCGI сервером
  25937. мог произойти segmentation fault;
  25938. в режиме прокси ошибка появилась в 0.1.29.
  25939. </para>
  25940. <para lang="en">
  25941. the segmentation fault may occurred if there were errors while
  25942. working with proxied or FastCGI server;
  25943. in the proxied mode the bug had appeared in 0.1.29.
  25944. </para>
  25945. </change>

  25946. -->

  25947. <change type="bugfix">
  25948. <para lang="ru">
  25949. если в ответе проксированного сервера или FastCGI сервера была строка
  25950. "Cache-Control", то при использовании директивы expires происходил
  25951. segmentation fault или рабочий процесс мог зациклится;
  25952. в режиме прокси ошибка появилась в 0.1.29.
  25953. </para>
  25954. <para lang="en">
  25955. the segmentation fault occurred or the worker process may got caught
  25956. in an endless loop if the proxied or FastCGI server sent the "Cache-Control"
  25957. header line and the "expires" directive was used;
  25958. in the proxied mode the bug had appeared in 0.1.29.
  25959. </para>
  25960. </change>

  25961. </changes>


  25962. <changes ver="0.1.42" date="2005-08-23">

  25963. <change type="bugfix">
  25964. <para lang="ru">
  25965. если URI запроса получался нулевой длины после обработки модулем
  25966. ngx_http_rewrite_module, то в модуле ngx_http_proxy_module происходил
  25967. segmentation fault или bus error.
  25968. </para>
  25969. <para lang="en">
  25970. if the request URI had a zero length after the processing in
  25971. the ngx_http_proxy_module, then the segmentation fault or bus error occurred
  25972. in the ngx_http_proxy_module.
  25973. </para>
  25974. </change>

  25975. <change type="bugfix">
  25976. <para lang="ru">
  25977. директива limit_rate не работала внутри блока if;
  25978. ошибка появилась в 0.1.38.
  25979. </para>
  25980. <para lang="en">
  25981. the "limit_rate" directive did not work inside the "if" block;
  25982. the bug had appeared in 0.1.38.
  25983. </para>
  25984. </change>

  25985. </changes>


  25986. <changes ver="0.1.41" date="2005-07-25">

  25987. <change type="bugfix">
  25988. <para lang="ru">
  25989. если переменная использовалась в файле конфигурации,
  25990. то она не могла использоваться в SSI.
  25991. </para>
  25992. <para lang="en">
  25993. if the variable was used in the configuration file,
  25994. then it can not be used in SSI.
  25995. </para>
  25996. </change>

  25997. </changes>


  25998. <changes ver="0.1.40" date="2005-07-22">

  25999. <change type="bugfix">
  26000. <para lang="ru">
  26001. если клиент слал очень длинную строку заголовка, то в логе не помещалась
  26002. информация, связанная с этим запросом.
  26003. </para>
  26004. <para lang="en">
  26005. if a client sent too long header line, then the request information
  26006. did not logged in the error log.
  26007. </para>
  26008. </change>

  26009. <change type="bugfix">
  26010. <para lang="ru">
  26011. при использовании "X-Accel-Redirect" не передавалась строка "Set-Cookie";
  26012. ошибка появилась в 0.1.39.
  26013. </para>
  26014. <para lang="en">
  26015. the "Set-Cookie" header line was not transferred when the "X-Accel-Redirect"
  26016. was used;
  26017. the bug had appeared in 0.1.39.
  26018. </para>
  26019. </change>

  26020. <change type="bugfix">
  26021. <para lang="ru">
  26022. при использовании "X-Accel-Redirect" не передавалась строка
  26023. "Content-Disposition".
  26024. </para>
  26025. <para lang="en">
  26026. the "Content-Disposition" header line was not transferred when
  26027. the "X-Accel-Redirect" was used.
  26028. </para>
  26029. </change>

  26030. <change type="bugfix">
  26031. <para lang="ru">
  26032. по сигналу SIGQUIT основной процесс не закрывал сокеты, на которых он слушал.
  26033. </para>
  26034. <para lang="en">
  26035. the master process did not close the listen socket on the SIGQUIT signal.
  26036. </para>
  26037. </change>

  26038. <change type="bugfix">
  26039. <para lang="ru">
  26040. после обновления исполняемого файла на лету на Linux и Solaris
  26041. название процесса в команде ps становилось короче.
  26042. </para>
  26043. <para lang="en">
  26044. after on-line upgrade on Linux and Solaris the process name
  26045. became shorter in the "ps" command.
  26046. </para>
  26047. </change>

  26048. </changes>


  26049. <changes ver="0.1.39" date="2005-07-14">

  26050. <change>
  26051. <para lang="ru">
  26052. Изменения в модуле ngx_http_charset_module:
  26053. директива default_charset упразднена;
  26054. директива charset задаёт кодировку ответа;
  26055. директива source_charset задаёт только исходную кодировку.
  26056. </para>
  26057. <para lang="en">
  26058. The changes in the ngx_http_charset_module:
  26059. the "default_charset" directive was canceled;
  26060. the "charset" directive sets the response charset;
  26061. the "source_charset" directive sets the source charset only.
  26062. </para>
  26063. </change>

  26064. <change type="bugfix">
  26065. <para lang="ru">
  26066. при перенаправлении ошибки 401, полученной от бэкенда, не передавалась
  26067. строка заголовка "WWW-Authenticate".
  26068. </para>
  26069. <para lang="en">
  26070. the backend "WWW-Authenticate" header line did not transferred while
  26071. the 401 response code redirecting.
  26072. </para>
  26073. </change>

  26074. <change type="bugfix">
  26075. <para lang="ru">
  26076. модули ngx_http_proxy_module и ngx_http_fastcgi_module могли закрыть
  26077. соединение до того, как что-нибудь было передано клиенту;
  26078. ошибка появилась в 0.1.38.
  26079. </para>
  26080. <para lang="en">
  26081. the ngx_http_proxy_module and ngx_http_fastcgi_module may close
  26082. a connection before anything was transferred to a client;
  26083. the bug had appeared in 0.1.38.
  26084. </para>
  26085. </change>

  26086. <change type="workaround">
  26087. <para lang="ru">
  26088. обработка ошибки инициализации в crypt_r() в Linux glibc.
  26089. </para>
  26090. <para lang="en">
  26091. the Linux glibc crypt_r() initialization bug.
  26092. </para>
  26093. </change>

  26094. <change type="bugfix">
  26095. <para lang="ru">
  26096. модуль ngx_http_ssi_module не поддерживал относительные URI в
  26097. команде include virtual.
  26098. </para>
  26099. <para lang="en">
  26100. the ngx_http_ssi_module did not support the relative URI in
  26101. the "include virtual" command.
  26102. </para>
  26103. </change>

  26104. <change type="bugfix">
  26105. <para lang="ru">
  26106. если в строке заголовка ответа бэкенда была строка "Location",
  26107. которую nginx не должен был изменять, то в ответе передавалось тело 500 ошибки;
  26108. ошибка появилась в 0.1.29.
  26109. </para>
  26110. <para lang="en">
  26111. if the backend response had the "Location" header line and nginx
  26112. should not rewrite this line, then the 500 code response body was transferred;
  26113. the bug had appeared in 0.1.29.
  26114. </para>
  26115. </change>

  26116. <change type="bugfix">
  26117. <para lang="ru">
  26118. некоторые директивы модулей ngx_http_proxy_module и ngx_http_fastcgi_module
  26119. не наследовались с уровня server на уровень location;
  26120. ошибка появилась в 0.1.29.
  26121. </para>
  26122. <para lang="en">
  26123. some directives of the ngx_http_proxy_module and ngx_http_fastcgi_module
  26124. were not inherited from the server to the location level;
  26125. the bug had appeared in 0.1.29.
  26126. </para>
  26127. </change>

  26128. <change type="bugfix">
  26129. <para lang="ru">
  26130. модуль ngx_http_ssl_module не поддерживал цепочки сертификатов.
  26131. </para>
  26132. <para lang="en">
  26133. the ngx_http_ssl_module did not support the certificate chain.
  26134. </para>
  26135. </change>

  26136. <change type="bugfix">
  26137. <para lang="ru">
  26138. ошибка в модуле ngx_http_autoindex_module при показе длинных имён файлов;
  26139. ошибка появилась в 0.1.38.
  26140. </para>
  26141. <para lang="en">
  26142. the ngx_http_autoindex_module did not show correctly the long file names;
  26143. the bug had appeared in 0.1.38.
  26144. </para>
  26145. </change>

  26146. <change>
  26147. <para lang="ru">
  26148. Исправления в IMAP/POP3 прокси при взаимодействии с бэкендом на стадии login.
  26149. </para>
  26150. <para lang="en">
  26151. Bugfixes in IMAP/POP3 proxy in interaction with a backend at the login state.
  26152. </para>
  26153. </change>

  26154. </changes>


  26155. <changes ver="0.1.38" date="2005-07-08">

  26156. <change type="feature">
  26157. <para lang="ru">
  26158. директива limit_rate поддерживается в режиме прокси и FastCGI.
  26159. </para>
  26160. <para lang="en">
  26161. the "limit_rate" directive is supported in proxy and FastCGI mode.
  26162. </para>
  26163. </change>

  26164. <change type="feature">
  26165. <para lang="ru">
  26166. в режиме прокси и FastCGI поддерживается строка заголовка "X-Accel-Limit-Rate"
  26167. в ответе бэкенда.
  26168. </para>
  26169. <para lang="en">
  26170. the "X-Accel-Limit-Rate" response header line is supported in proxy
  26171. and FastCGI mode.
  26172. </para>
  26173. </change>

  26174. <change type="feature">
  26175. <para lang="ru">
  26176. директива break.
  26177. </para>
  26178. <para lang="en">
  26179. the "break" directive.
  26180. </para>
  26181. </change>

  26182. <change type="feature">
  26183. <para lang="ru">
  26184. директива log_not_found.
  26185. </para>
  26186. <para lang="en">
  26187. the "log_not_found" directive.
  26188. </para>
  26189. </change>

  26190. <change type="bugfix">
  26191. <para lang="ru">
  26192. при перенаправлении запроса с помощью строки заголовка "X-Accel-Redirect"
  26193. не изменялся код ответа.
  26194. </para>
  26195. <para lang="en">
  26196. the response status code was not changed when request was redirected
  26197. by the ""X-Accel-Redirect" header line.
  26198. </para>
  26199. </change>

  26200. <change type="bugfix">
  26201. <para lang="ru">
  26202. переменные, установленные директивой set не могли использоваться в SSI.
  26203. </para>
  26204. <para lang="en">
  26205. the variables set by the "set" directive could not be used in SSI.
  26206. </para>
  26207. </change>

  26208. <change type="bugfix">
  26209. <para lang="ru">
  26210. при включении в SSI более одного удалённого подзапроса
  26211. мог произойти segmentation fault.
  26212. </para>
  26213. <para lang="en">
  26214. the segmentation fault may occurred if the SSI page has more than one
  26215. remote subrequest.
  26216. </para>
  26217. </change>

  26218. <change type="bugfix">
  26219. <para lang="ru">
  26220. если статусная строка в ответе бэкенда передавалась в двух пакетах, то
  26221. nginx считал ответ неверным;
  26222. ошибка появилась в 0.1.29.
  26223. </para>
  26224. <para lang="en">
  26225. nginx treated the backend response as invalid if the status line in the
  26226. header was transferred in two packets;
  26227. the bug had appeared in 0.1.29.
  26228. </para>
  26229. </change>

  26230. <change type="feature">
  26231. <para lang="ru">
  26232. директива ssi_types.
  26233. </para>
  26234. <para lang="en">
  26235. the "ssi_types" directive.
  26236. </para>
  26237. </change>

  26238. <change type="feature">
  26239. <para lang="ru">
  26240. директива autoindex_exact_size.
  26241. </para>
  26242. <para lang="en">
  26243. the "autoindex_exact_size" directive.
  26244. </para>
  26245. </change>

  26246. <change type="bugfix">
  26247. <para lang="ru">
  26248. модуль ngx_http_autoindex_module не поддерживал длинные имена файлов в UTF-8.
  26249. </para>
  26250. <para lang="en">
  26251. the ngx_http_autoindex_module did not support the long file names in UTF-8.
  26252. </para>
  26253. </change>

  26254. <change type="feature">
  26255. <para lang="ru">
  26256. IMAP/POP3 прокси.
  26257. </para>
  26258. <para lang="en">
  26259. the IMAP/POP3 proxy.
  26260. </para>
  26261. </change>

  26262. </changes>


  26263. <changes ver="0.1.37" date="2005-06-23">

  26264. <change type="change">
  26265. <para lang="ru">
  26266. в конце файла nginx.pid теперь добавляется "\n".
  26267. </para>
  26268. <para lang="en">
  26269. now the "\n" is added to the end of the "nginx.pid" file.
  26270. </para>
  26271. </change>

  26272. <change type="bugfix">
  26273. <para lang="ru">
  26274. при включении большого количества вставок или нескольких больших вставок
  26275. с помощью SSI ответ мог передаваться не полностью.
  26276. </para>
  26277. <para lang="en">
  26278. the responses may be transferred not completely,
  26279. if many parts or the big parts were included by SSI.
  26280. </para>
  26281. </change>

  26282. <change type="bugfix">
  26283. <para lang="ru">
  26284. если все бэкенды возвращали ответ 404, то при использовании параметра http_404
  26285. в директивах proxy_next_upstream или fastcgi_next_upstream, nginx
  26286. начинал запрашивать все бэкенды снова.
  26287. </para>
  26288. <para lang="en">
  26289. if all backends had returned the 404 response and the "http_404" parameter of
  26290. the "proxy_next_upstream" or "fastcgi_next_upstream" directives was used,
  26291. then nginx started to request all backends again.
  26292. </para>
  26293. </change>

  26294. </changes>


  26295. <changes ver="0.1.36" date="2005-06-15">

  26296. <change type="change">
  26297. <para lang="ru">
  26298. если в заголовке запроса есть дублирующиеся строки "Host", "Connection",
  26299. "Content-Length" и "Authorization", то nginx теперь выдаёт ошибку 400.
  26300. </para>
  26301. <para lang="en">
  26302. if the request header has duplicate the "Host", "Connection", "Content-Length",
  26303. or "Authorization" lines, then nginx now returns the 400 error.
  26304. </para>
  26305. </change>

  26306. <change type="change">
  26307. <para lang="ru">
  26308. директива post_accept_timeout упразднена.
  26309. </para>
  26310. <para lang="en">
  26311. the "post_accept_timeout" directive was canceled.
  26312. </para>
  26313. </change>

  26314. <change type="feature">
  26315. <para lang="ru">
  26316. параметры default, af=, bl=, deferred и bind в директиве listen.
  26317. </para>
  26318. <para lang="en">
  26319. the "default", "af=", "bl=", "deferred", and "bind" parameters
  26320. of the "listen" directive.
  26321. </para>
  26322. </change>

  26323. <change type="feature">
  26324. <para lang="ru">
  26325. поддержка accept фильтров во FreeBSD.
  26326. </para>
  26327. <para lang="en">
  26328. the FreeBSD accept filters support.
  26329. </para>
  26330. </change>

  26331. <change type="feature">
  26332. <para lang="ru">
  26333. поддержка TCP_DEFER_ACCEPT в Linux.
  26334. </para>
  26335. <para lang="en">
  26336. the Linux TCP_DEFER_ACCEPT support.
  26337. </para>
  26338. </change>

  26339. <change type="bugfix">
  26340. <para lang="ru">
  26341. модуль ngx_http_autoindex_module не поддерживал имена файлов в UTF-8.
  26342. </para>
  26343. <para lang="en">
  26344. the ngx_http_autoindex_module did not support the file names in UTF-8.
  26345. </para>
  26346. </change>

  26347. <change type="bugfix">
  26348. <para lang="ru">
  26349. после добавления новый лог-файл ротация этого лога по сигналу -USR1
  26350. выполнялась, только если переконфигурировать nginx два раза по сигналу -HUP.
  26351. </para>
  26352. <para lang="en">
  26353. the new log file can be rotated by the -USR1 signal only if
  26354. the reconfiguration by the -HUP signal was made twice.
  26355. </para>
  26356. </change>

  26357. </changes>


  26358. <changes ver="0.1.35" date="2005-06-07">

  26359. <change type="feature">
  26360. <para lang="ru">
  26361. директива working_directory.
  26362. </para>
  26363. <para lang="en">
  26364. the "working_directory" directive.
  26365. </para>
  26366. </change>

  26367. <change type="feature">
  26368. <para lang="ru">
  26369. директива port_in_redirect.
  26370. </para>
  26371. <para lang="en">
  26372. the "port_in_redirect" directive.
  26373. </para>
  26374. </change>

  26375. <change type="bugfix">
  26376. <para lang="ru">
  26377. если заголовок ответа бэкенда не помещался в один пакет, то
  26378. происходил segmentation fault;
  26379. ошибка появилась в 0.1.29.
  26380. </para>
  26381. <para lang="en">
  26382. the segmentation fault was occurred if the backend response header was in
  26383. several packets;
  26384. the bug had appeared in 0.1.29.
  26385. </para>
  26386. </change>

  26387. <change type="bugfix">
  26388. <para lang="ru">
  26389. если было сконфигурировано более 10 серверов или в сервере не описана
  26390. директива "listen",
  26391. то при запуске мог произойти segmentation fault.
  26392. </para>
  26393. <para lang="en">
  26394. if more than 10 servers were configured or some server did not use the
  26395. "listen" directive, then the segmentation fault was occurred on the start.
  26396. </para>
  26397. </change>

  26398. <change type="bugfix">
  26399. <para lang="ru">
  26400. если ответ не помещался во временный файл,
  26401. то мог произойти segmentation fault.
  26402. </para>
  26403. <para lang="en">
  26404. the segmentation fault might occur if the response was bigger than
  26405. the temporary file.
  26406. </para>
  26407. </change>

  26408. <change type="bugfix">
  26409. <para lang="ru">
  26410. nginx возвращал ошибку 400 на запросы вида
  26411. <nobr>"GET http://www.domain.com/uri HTTP/1.0"</nobr>;
  26412. ошибка появилась в 0.1.28.
  26413. </para>
  26414. <para lang="en">
  26415. nginx returned the 400 response on requests like
  26416. <nobr>"GET http://www.domain.com/uri HTTP/1.0"</nobr>;
  26417. the bug had appeared in 0.1.28.
  26418. </para>
  26419. </change>

  26420. </changes>


  26421. <changes ver="0.1.34" date="2005-05-26">

  26422. <change type="bugfix">
  26423. <para lang="ru">
  26424. при включении больших ответов с помощью SSI рабочий процесс мог зациклиться.
  26425. </para>
  26426. <para lang="en">
  26427. the worker process may got caught in an endless loop if the big response
  26428. part were include by SSI.
  26429. </para>
  26430. </change>

  26431. <change type="bugfix">
  26432. <para lang="ru">
  26433. переменные, устанавливаемые директивой "set", не были доступны в SSI.
  26434. </para>
  26435. <para lang="en">
  26436. the variables set by the "set" directive were not available in SSI.
  26437. </para>
  26438. </change>

  26439. <change type="feature">
  26440. <para lang="ru">
  26441. директива autoindex_localtime.
  26442. </para>
  26443. <para lang="en">
  26444. the "autoindex_localtime" directive.
  26445. </para>
  26446. </change>

  26447. <change type="bugfix">
  26448. <para lang="ru">
  26449. пустое значение в директиве proxy_set_header запрещает передачу заголовка.
  26450. </para>
  26451. <para lang="en">
  26452. the empty value of the "proxy_set_header" directive forbids the client
  26453. request header line passing.
  26454. </para>
  26455. </change>

  26456. </changes>


  26457. <changes ver="0.1.33" date="2005-05-23">

  26458. <change type="bugfix">
  26459. <para lang="ru">
  26460. nginx не собирался с параметром --without-pcre;
  26461. ошибка появилась в 0.1.29.
  26462. </para>
  26463. <para lang="en">
  26464. nginx could not be built with the --without-pcre parameter;
  26465. the bug had appeared in 0.1.29.
  26466. </para>
  26467. </change>

  26468. <change type="bugfix">
  26469. <para lang="ru">
  26470. 3, 5, 7 и 8 директив proxy_set_header на одном уровне вызывали
  26471. bus fault при запуске.
  26472. </para>
  26473. <para lang="en">
  26474. 3, 4, 7, and 8 the "proxy_set_header" directives in one level cause
  26475. the bus fault on start up.
  26476. </para>
  26477. </change>

  26478. <change type="bugfix">
  26479. <para lang="ru">
  26480. в редиректах внутри HTTPS сервера был указан протокол HTTP.
  26481. </para>
  26482. <para lang="en">
  26483. the HTTP protocol was specified in the HTTPS redirects.
  26484. </para>
  26485. </change>

  26486. <change type="bugfix">
  26487. <para lang="ru">
  26488. если директива rewrite использовала выделения внутри директивы if, то
  26489. возвращалась ошибка 500.
  26490. </para>
  26491. <para lang="en">
  26492. if the "rewrite" directive used the captures inside the "if" directive, then
  26493. the 500 error code was returned.
  26494. </para>
  26495. </change>

  26496. </changes>


  26497. <changes ver="0.1.32" date="2005-05-19">

  26498. <change type="bugfix">
  26499. <para lang="ru">
  26500. в редиректах, выдаваемых с помощью директивы rewrite, не передавались аргументы;
  26501. ошибка появилась в 0.1.29.
  26502. </para>
  26503. <para lang="en">
  26504. the arguments were omitted in the redirects, issued by the "rewrite" directive;
  26505. the bug had appeared in 0.1.29.
  26506. </para>
  26507. </change>

  26508. <change type="feature">
  26509. <para lang="ru">
  26510. директива if поддерживает выделения в регулярных выражениях.
  26511. </para>
  26512. <para lang="en">
  26513. the "if" directive supports the captures in regular expressions.
  26514. </para>
  26515. </change>

  26516. <change type="feature">
  26517. <para lang="ru">
  26518. директива set поддерживает переменные и выделения из регулярных выражений.
  26519. </para>
  26520. <para lang="en">
  26521. the "set" directive supports the variables and the captures of regular
  26522. expressions.
  26523. </para>
  26524. </change>

  26525. <change type="feature">
  26526. <para lang="ru">
  26527. в режиме прокси и FastCGI поддерживается строка заголовка "X-Accel-Redirect"
  26528. в ответе бэкенда.
  26529. </para>
  26530. <para lang="en">
  26531. the "X-Accel-Redirect" response header line is supported in proxy and FastCGI
  26532. mode.
  26533. </para>
  26534. </change>

  26535. </changes>


  26536. <changes ver="0.1.31" date="2005-05-16">

  26537. <change type="bugfix">
  26538. <para lang="ru">
  26539. при использовании SSL ответ мог передаваться не до конца.
  26540. </para>
  26541. <para lang="en">
  26542. the response encrypted by SSL may not transferred complete.
  26543. </para>
  26544. </change>

  26545. <change type="bugfix">
  26546. <para lang="ru">
  26547. ошибки при обработке SSI в ответе, полученного от FastCGI-сервера.
  26548. </para>
  26549. <para lang="en">
  26550. errors while processing FastCGI response by SSI.
  26551. </para>
  26552. </change>

  26553. <change type="bugfix">
  26554. <para lang="ru">
  26555. ошибки при использовании SSI и сжатия.
  26556. </para>
  26557. <para lang="en">
  26558. errors while using SSI and gzipping.
  26559. </para>
  26560. </change>

  26561. <change type="bugfix">
  26562. <para lang="ru">
  26563. редирект с кодом 301 передавался без тела ответа;
  26564. ошибка появилась в 0.1.30.
  26565. </para>
  26566. <para lang="en">
  26567. the redirect with the 301 code was transferred without response body;
  26568. the bug had appeared in 0.1.30.
  26569. </para>
  26570. </change>

  26571. </changes>


  26572. <changes ver="0.1.30" date="2005-05-14">

  26573. <change type="bugfix">
  26574. <para lang="ru">
  26575. при использовании SSI рабочий процесс мог зациклиться.
  26576. </para>
  26577. <para lang="en">
  26578. the worker process may got caught in an endless loop if the SSI was used.
  26579. </para>
  26580. </change>

  26581. <change type="bugfix">
  26582. <para lang="ru">
  26583. при использовании SSL ответ мог передаваться не до конца.
  26584. </para>
  26585. <para lang="en">
  26586. the response encrypted by SSL may not transferred complete.
  26587. </para>
  26588. </change>

  26589. <change type="bugfix">
  26590. <para lang="ru">
  26591. если длина части ответа, полученного за один раз от проксируемого или
  26592. FastCGI сервера была равна 500 байт, то nginx возвращал код ответа 500;
  26593. в режиме прокси ошибка появилась только в 0.1.29.
  26594. </para>
  26595. <para lang="en">
  26596. if the length of the response part received at once from proxied
  26597. or FastCGI server was equal to 500, then nginx returns the 500 response code;
  26598. in proxy mode the bug had appeared in 0.1.29 only.
  26599. </para>
  26600. </change>

  26601. <change type="bugfix">
  26602. <para lang="ru">
  26603. nginx не считал неверными директивы с 8-ю или 9-ю параметрами.
  26604. </para>
  26605. <para lang="en">
  26606. nginx did not consider the directives with 8 or 9 parameters as invalid.
  26607. </para>
  26608. </change>

  26609. <change type="feature">
  26610. <para lang="ru">
  26611. директива return может возвращать код ответа 204.
  26612. </para>
  26613. <para lang="en">
  26614. the "return" directive can return the 204 response code.
  26615. </para>
  26616. </change>

  26617. <change type="feature">
  26618. <para lang="ru">
  26619. директива ignore_invalid_headers.
  26620. </para>
  26621. <para lang="en">
  26622. the "ignore_invalid_headers" directive.
  26623. </para>
  26624. </change>

  26625. </changes>


  26626. <changes ver="0.1.29" date="2005-05-12">

  26627. <change type="feature">
  26628. <para lang="ru">
  26629. модуль ngx_http_ssi_module поддерживает команду include virtual.
  26630. </para>
  26631. <para lang="en">
  26632. the ngx_http_ssi_module supports "include virtual" command.
  26633. </para>
  26634. </change>

  26635. <change type="feature">
  26636. <para lang="ru">
  26637. модуль ngx_http_ssi_module поддерживает условную команду вида
  26638. 'if expr="$NAME"' и команды else и endif.
  26639. Допускается только один уровень вложенности.
  26640. </para>
  26641. <para lang="en">
  26642. the ngx_http_ssi_module supports the condition command like
  26643. 'if expr="$NAME"' and "else" and "endif" commands.
  26644. Only one nested level is supported.
  26645. </para>
  26646. </change>

  26647. <change type="feature">
  26648. <para lang="ru">
  26649. модуль ngx_http_ssi_module поддерживает две переменные DATE_LOCAL и DATE_GMT
  26650. и команду config timefmt.
  26651. </para>
  26652. <para lang="en">
  26653. the ngx_http_ssi_module supports the DATE_LOCAL and DATE_GMT variables
  26654. and "config timefmt" command.
  26655. </para>
  26656. </change>

  26657. <change type="feature">
  26658. <para lang="ru">
  26659. директива ssi_ignore_recycled_buffers.
  26660. </para>
  26661. <para lang="en">
  26662. the "ssi_ignore_recycled_buffers" directive.
  26663. </para>
  26664. </change>

  26665. <change type="bugfix">
  26666. <para lang="ru">
  26667. если переменная QUERY_STRING не была определена, то в команде echo
  26668. не ставилось значение по умолчанию.
  26669. </para>
  26670. <para lang="en">
  26671. the "echo" command did not show the default value for the empty QUERY_STRING
  26672. variable.
  26673. </para>
  26674. </change>

  26675. <change type="change">
  26676. <para lang="ru">
  26677. модуль ngx_http_proxy_module полностью переписан.
  26678. </para>
  26679. <para lang="en">
  26680. the ngx_http_proxy_module was rewritten.
  26681. </para>
  26682. </change>

  26683. <change type="feature">
  26684. <para lang="ru">
  26685. директивы proxy_redirect, proxy_pass_request_headers,
  26686. proxy_pass_request_body и proxy_method.
  26687. </para>
  26688. <para lang="en">
  26689. the "proxy_redirect", "proxy_pass_request_headers",
  26690. "proxy_pass_request_body", and "proxy_method" directives.
  26691. </para>
  26692. </change>

  26693. <change type="feature">
  26694. <para lang="ru">
  26695. директива proxy_set_header.
  26696. Директива proxy_x_var упразднена и должна быть заменена директивой
  26697. proxy_set_header.
  26698. </para>
  26699. <para lang="en">
  26700. the "proxy_set_header" directive.
  26701. The "proxy_x_var" was canceled and must be replaced with the proxy_set_header
  26702. directive.
  26703. </para>
  26704. </change>

  26705. <change type="change">
  26706. <para lang="ru">
  26707. директива proxy_preserve_host упразднена и должна быть заменена директивами
  26708. "proxy_set_header Host $host" и "proxy_redirect off"
  26709. или директивой <nobr>"proxy_set_header Host $host:$proxy_port"</nobr>
  26710. и соответствующими ей директивами proxy_redirect.
  26711. </para>
  26712. <para lang="en">
  26713. the "proxy_preserve_host" is canceled and must be replaced with
  26714. the "proxy_set_header Host $host" and the "proxy_redirect off" directives,
  26715. the <nobr>"proxy_set_header Host $host:$proxy_port" directive</nobr>
  26716. and the appropriate proxy_redirect directives.
  26717. </para>
  26718. </change>

  26719. <change type="change">
  26720. <para lang="ru">
  26721. директива proxy_set_x_real_ip упразднена и должна быть заменена директивой
  26722. "proxy_set_header X-Real-IP $remote_addr".
  26723. </para>
  26724. <para lang="en">
  26725. the "proxy_set_x_real_ip" is canceled and must be replaced with
  26726. the "proxy_set_header X-Real-IP $remote_addr" directive.
  26727. </para>
  26728. </change>

  26729. <change type="change">
  26730. <para lang="ru">
  26731. директива proxy_add_x_forwarded_for упразднена и должна быть заменена
  26732. директивой
  26733. <nobr>"proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for".</nobr>
  26734. </para>
  26735. <para lang="en">
  26736. the "proxy_add_x_forwarded_for" is canceled and must be replaced with
  26737. <nobr>the "proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for"</nobr>
  26738. directive.
  26739. </para>
  26740. </change>

  26741. <change type="change">
  26742. <para lang="ru">
  26743. директива proxy_set_x_url упразднена и должна быть заменена директивой
  26744. <nobr>"proxy_set_header X-URL http://$host:$server_port$request_uri".</nobr>
  26745. </para>
  26746. <para lang="en">
  26747. the "proxy_set_x_url" is canceled and must be replaced with
  26748. the "proxy_set_header X-URL http://$host:$server_port$request_uri"
  26749. directive.
  26750. </para>
  26751. </change>

  26752. <change type="feature">
  26753. <para lang="ru">
  26754. директива fastcgi_param.
  26755. </para>
  26756. <para lang="en">
  26757. the "fastcgi_param" directive.
  26758. </para>
  26759. </change>

  26760. <change type="change">
  26761. <para lang="ru">
  26762. директивы fastcgi_root, fastcgi_set_var и fastcgi_params упразднены
  26763. и должны быть замены директивами fastcgi_param.
  26764. </para>
  26765. <para lang="en">
  26766. the "fastcgi_root", "fastcgi_set_var" and "fastcgi_params" directive
  26767. are canceled and must be replaced with the fastcgi_param directives.
  26768. </para>
  26769. </change>

  26770. <change type="feature">
  26771. <para lang="ru">
  26772. директива index может использовать переменные.
  26773. </para>
  26774. <para lang="en">
  26775. the "index" directive can use the variables.
  26776. </para>
  26777. </change>

  26778. <change type="feature">
  26779. <para lang="ru">
  26780. директива index может быть указана на уровне http и server.
  26781. </para>
  26782. <para lang="en">
  26783. the "index" directive can be used at http and server levels.
  26784. </para>
  26785. </change>

  26786. <change type="change">
  26787. <para lang="ru">
  26788. только последний параметр в директиве index может быть абсолютным.
  26789. </para>
  26790. <para lang="en">
  26791. the last index only in the "index" directive can be absolute.
  26792. </para>
  26793. </change>

  26794. <change type="feature">
  26795. <para lang="ru">
  26796. в директиве rewrite могут использоваться переменные.
  26797. </para>
  26798. <para lang="en">
  26799. the "rewrite" directive can use the variables.
  26800. </para>
  26801. </change>

  26802. <change type="feature">
  26803. <para lang="ru">
  26804. директива internal.
  26805. </para>
  26806. <para lang="en">
  26807. the "internal" directive.
  26808. </para>
  26809. </change>

  26810. <change type="feature">
  26811. <para lang="ru">
  26812. переменные CONTENT_LENGTH, CONTENT_TYPE, REMOTE_PORT, SERVER_ADDR,
  26813. SERVER_PORT, SERVER_PROTOCOL, DOCUMENT_ROOT, SERVER_NAME,
  26814. REQUEST_METHOD, REQUEST_URI и REMOTE_USER.
  26815. </para>
  26816. <para lang="en">
  26817. the CONTENT_LENGTH, CONTENT_TYPE, REMOTE_PORT, SERVER_ADDR,
  26818. SERVER_PORT, SERVER_PROTOCOL, DOCUMENT_ROOT, SERVER_NAME,
  26819. REQUEST_METHOD, REQUEST_URI, and REMOTE_USER variables.
  26820. </para>
  26821. </change>

  26822. <change type="change">
  26823. <para lang="ru">
  26824. nginx теперь передаёт неверные строки в заголовках запроса клиента и
  26825. ответа бэкенда.
  26826. </para>
  26827. <para lang="en">
  26828. nginx now passes the invalid lines in a client request headers
  26829. or a backend response header.
  26830. </para>
  26831. </change>

  26832. <change type="bugfix">
  26833. <para lang="ru">
  26834. если бэкенд долго не передавал ответ и send_timeout был меньше, чем
  26835. proxy_read_timeout, то клиенту возвращался ответ 408.
  26836. </para>
  26837. <para lang="en">
  26838. if the backend did not transfer response for a long time and
  26839. the "send_timeout" was less than "proxy_read_timeout", then nginx
  26840. returned the 408 response.
  26841. </para>
  26842. </change>

  26843. <change type="bugfix">
  26844. <para lang="ru">
  26845. если бэкенд передавал неверную строку в заголовке ответа, то происходил
  26846. segmentation fault;
  26847. ошибка появилась в 0.1.26.
  26848. </para>
  26849. <para lang="en">
  26850. the segmentation fault was occurred if the backend sent an invalid line
  26851. in response header;
  26852. the bug had appeared in 0.1.26.
  26853. </para>
  26854. </change>

  26855. <change type="bugfix">
  26856. <para lang="ru">
  26857. при использовании отказоустойчивой конфигурации в FastCGI мог
  26858. происходить segmentation fault.
  26859. </para>
  26860. <para lang="en">
  26861. the segmentation fault may occurred in FastCGI fault tolerance configuration.
  26862. </para>
  26863. </change>

  26864. <change type="bugfix">
  26865. <para lang="ru">
  26866. директива expires не удаляла уже установленные строки заголовка
  26867. "Expires" и "Cache-Control".
  26868. </para>
  26869. <para lang="en">
  26870. the "expires" directive did not remove the previous "Expires" and
  26871. "Cache-Control" headers.
  26872. </para>
  26873. </change>

  26874. <change type="bugfix">
  26875. <para lang="ru">
  26876. nginx не учитывал завершающую точку в строке заголовка запроса "Host".
  26877. </para>
  26878. <para lang="en">
  26879. nginx did not take into account trailing dot in "Host" header line.
  26880. </para>
  26881. </change>

  26882. <change type="bugfix">
  26883. <para lang="ru">
  26884. модуль ngx_http_auth_module не работал на Linux.
  26885. </para>
  26886. <para lang="en">
  26887. the ngx_http_auth_module did not work under Linux.
  26888. </para>
  26889. </change>

  26890. <change type="bugfix">
  26891. <para lang="ru">
  26892. директива rewrite неверно работала, если в запросе присутствовали аргументы.
  26893. </para>
  26894. <para lang="en">
  26895. the rewrite directive worked incorrectly, if the arguments were in a request.
  26896. </para>
  26897. </change>

  26898. <change type="bugfix">
  26899. <para lang="ru">
  26900. nginx не собирался на MacOS X.
  26901. </para>
  26902. <para lang="en">
  26903. nginx could not be built on MacOS X.
  26904. </para>
  26905. </change>

  26906. </changes>


  26907. <changes ver="0.1.28" date="2005-04-08">

  26908. <change type="bugfix">
  26909. <para lang="ru">
  26910. при проксировании больших файлов nginx сильно нагружал процессор.
  26911. </para>
  26912. <para lang="en">
  26913. nginx hogs CPU while proxying the huge files.
  26914. </para>
  26915. </change>

  26916. <change type="bugfix">
  26917. <para lang="ru">
  26918. nginx не собирался gcc 4.0 на Linux.
  26919. </para>
  26920. <para lang="en">
  26921. nginx could not be built by gcc 4.0 on Linux.
  26922. </para>
  26923. </change>

  26924. </changes>


  26925. <changes ver="0.1.27" date="2005-03-28">

  26926. <change type="feature">
  26927. <para lang="ru">
  26928. параметр blocked в директиве valid_referers.
  26929. </para>
  26930. <para lang="en">
  26931. the "blocked" parameter of the "valid_referers" directive.
  26932. </para>
  26933. </change>

  26934. <change type="change">
  26935. <para lang="ru">
  26936. ошибки обработки заголовка запроса теперь записываются на уровне
  26937. info, в лог также записывается имя сервера и строки заголовка
  26938. запроса "Host" и "Referer".
  26939. </para>
  26940. <para lang="en">
  26941. the errors while handling the request header now logged at "info" level.
  26942. The server name and the "Host" and "Referer" header lines also logged.
  26943. </para>
  26944. </change>

  26945. <change type="change">
  26946. <para lang="ru">
  26947. при записи ошибок в лог записывается также строка заголовка запроса "Host".
  26948. </para>
  26949. <para lang="en">
  26950. the "Host" header line is also logged in error log.
  26951. </para>
  26952. </change>

  26953. <change type="feature">
  26954. <para lang="ru">
  26955. директива proxy_pass_unparsed_uri.
  26956. Специальная обработка символов "://" в URI, введённая в версии 0.1.11,
  26957. теперь упразднена.
  26958. </para>
  26959. <para lang="en">
  26960. the proxy_pass_unparsed_uri directive.
  26961. The special handling of the "://" symbols in URI, appeared in 0.1.11 version,
  26962. now is canceled.
  26963. </para>
  26964. </change>

  26965. <change type="bugfix">
  26966. <para lang="ru">
  26967. nginx не собирался на FreeBSD и Linux, если был указан параметр конфигурации
  26968. --without-ngx_http_auth_basic_module.
  26969. </para>
  26970. <para lang="en">
  26971. nginx could not be built on FreeBSD and Linux, if the
  26972. --without-ngx_http_auth_basic_module configuration parameter was used.
  26973. </para>
  26974. </change>

  26975. </changes>


  26976. <changes ver="0.1.26" date="2005-03-22">

  26977. <change type="change">
  26978. <para lang="ru">
  26979. неверные строки заголовка, переданные клиентом, теперь игнорируется и
  26980. записываются в error_log на уровне info.
  26981. </para>
  26982. <para lang="en">
  26983. the invalid client header lines are now ignored and logged at the info level.
  26984. </para>
  26985. </change>

  26986. <change type="change">
  26987. <para lang="ru">
  26988. при записи ошибок в лог записывается также имя сервера, при обращении
  26989. к которому произошла ошибка.
  26990. </para>
  26991. <para lang="en">
  26992. the server name is also logged in error log.
  26993. </para>
  26994. </change>

  26995. <change type="feature">
  26996. <para lang="ru">
  26997. модуль ngx_http_auth_basic_module и директивы auth_basic и
  26998. auth_basic_user_file.
  26999. </para>
  27000. <para lang="en">
  27001. the ngx_http_auth_basic_module module and the auth_basic and
  27002. auth_basic_user_file directives.
  27003. </para>
  27004. </change>

  27005. </changes>


  27006. <changes ver="0.1.25" date="2005-03-19">

  27007. <change type="bugfix">
  27008. <para lang="ru">
  27009. nginx не работал на Linux parisc.
  27010. </para>
  27011. <para lang="en">
  27012. nginx did run on Linux parisc.
  27013. </para>
  27014. </change>

  27015. <change type="feature">
  27016. <para lang="ru">
  27017. nginx теперь не запускается под FreeBSD, если значение
  27018. sysctl kern.ipc.somaxconn слишком большое.
  27019. </para>
  27020. <para lang="en">
  27021. nginx now does not start under FreeBSD if the sysctl kern.ipc.somaxconn
  27022. value is too big.
  27023. </para>
  27024. </change>

  27025. <change type="bugfix">
  27026. <para lang="ru">
  27027. если модуль ngx_http_index_module делал внутреннее перенаправление запроса
  27028. в модули ngx_http_proxy_module или ngx_http_fastcgi_module, то файл индекса
  27029. не закрывался после обслуживания запроса.
  27030. </para>
  27031. <para lang="en">
  27032. if a request was internally redirected by the ngx_http_index_module
  27033. module to the ngx_http_proxy_module or ngx_http_fastcgi_module modules,
  27034. then the index file was not closed after request completion.
  27035. </para>
  27036. </change>

  27037. <change type="feature">
  27038. <para lang="ru">
  27039. директива proxy_pass может использоваться в location, заданных регулярным
  27040. выражением.
  27041. </para>
  27042. <para lang="en">
  27043. the "proxy_pass" can be used in location with regular expression.
  27044. </para>
  27045. </change>

  27046. <change type="feature">
  27047. <para lang="ru">
  27048. модуль ngx_http_rewrite_filter_module поддерживает условия вида
  27049. "if ($HTTP_USER_AGENT ~ MSIE)".
  27050. </para>
  27051. <para lang="en">
  27052. the ngx_http_rewrite_filter_module module supports the condition like
  27053. "if ($HTTP_USER_AGENT ~ MSIE)".
  27054. </para>
  27055. </change>

  27056. <change type="bugfix">
  27057. <para lang="ru">
  27058. nginx очень медленно запускался при большом количестве адресов и
  27059. использовании текстовых значений в директиве geo.
  27060. </para>
  27061. <para lang="en">
  27062. nginx started too slow if the large number of addresses and text values
  27063. were used in the "geo" directive.
  27064. </para>
  27065. </change>

  27066. <change type="change">
  27067. <para lang="ru">
  27068. имя переменной в директиве geo нужно указывать, как $name.
  27069. Прежний вариант без "$" пока работает, но вскоре будет убран.
  27070. </para>
  27071. <para lang="en">
  27072. a variable name must be declared as "$name" in the "geo" directive.
  27073. The previous variant without "$" is still supported, but will be removed soon.
  27074. </para>
  27075. </change>

  27076. <change type="feature">
  27077. <para lang="ru">
  27078. параметр лога "%{VARIABLE}v".
  27079. </para>
  27080. <para lang="en">
  27081. the "%{VARIABLE}v" logging parameter.
  27082. </para>
  27083. </change>

  27084. <change type="feature">
  27085. <para lang="ru">
  27086. директива "set $name value".
  27087. </para>
  27088. <para lang="en">
  27089. the "set $name value" directive.
  27090. </para>
  27091. </change>

  27092. <change type="bugfix">
  27093. <para lang="ru">
  27094. совместимость с gcc 4.0.
  27095. </para>
  27096. <para lang="en">
  27097. gcc 4.0 compatibility.
  27098. </para>
  27099. </change>

  27100. <change type="feature">
  27101. <para lang="ru">
  27102. параметр автоконфигурации --with-openssl-opt=OPTIONS.
  27103. </para>
  27104. <para lang="en">
  27105. the --with-openssl-opt=OPTIONS autoconfiguration directive.
  27106. </para>
  27107. </change>

  27108. </changes>


  27109. <changes ver="0.1.24" date="2005-03-04">

  27110. <change type="feature">
  27111. <para lang="ru">
  27112. модуль ngx_http_ssi_filter_module поддерживает переменные
  27113. QUERY_STRING и DOCUMENT_URI.
  27114. </para>
  27115. <para lang="en">
  27116. the ngx_http_ssi_filter_module supports the QUERY_STRING and DOCUMENT_URI
  27117. variables.
  27118. </para>
  27119. </change>

  27120. <change type="bugfix">
  27121. <para lang="ru">
  27122. модуль ngx_http_autoindex_module мог выдавать ответ 404
  27123. на существующий каталог, если этот каталог был указан как alias.
  27124. </para>
  27125. <para lang="en">
  27126. the ngx_http_autoindex_module may some times return the 404 response
  27127. for existent directory, if this directory was used in "alias" directive.
  27128. </para>
  27129. </change>

  27130. <change type="bugfix">
  27131. <para lang="ru">
  27132. модуль ngx_http_ssi_filter_module неправильно работал при больших
  27133. ответах.
  27134. </para>
  27135. <para lang="en">
  27136. the ngx_http_ssi_filter_module ran incorrectly for large responses.
  27137. </para>
  27138. </change>

  27139. <change type="bugfix">
  27140. <para lang="ru">
  27141. отсутствие строки заголовка "Referer" всегда считалось правильным referrer'ом.
  27142. </para>
  27143. <para lang="en">
  27144. the lack of the "Referer" header line was always accounted as valid referrer.
  27145. </para>
  27146. </change>

  27147. </changes>


  27148. <changes ver="0.1.23" date="2005-03-01">

  27149. <change type="feature">
  27150. <para lang="ru">
  27151. модуль ngx_http_ssi_filter_module и
  27152. директивы ssi, ssi_silent_errors и ssi_min_file_chunk.
  27153. Поддерживаются команды 'echo var="HTTP_..." default=""' и
  27154. 'echo var="REMOTE_ADDR"'.
  27155. </para>
  27156. <para lang="en">
  27157. the ngx_http_ssi_filter_module and
  27158. the ssi, ssi_silent_errors, and ssi_min_file_chunk directives.
  27159. The 'echo var="HTTP_..." default=""' and 'echo var="REMOTE_ADDR"' commands
  27160. are supported.
  27161. </para>
  27162. </change>

  27163. <change type="feature">
  27164. <para lang="ru">
  27165. параметр лога %request_time.
  27166. </para>
  27167. <para lang="en">
  27168. the %request_time log parameter.
  27169. </para>
  27170. </change>

  27171. <change type="feature">
  27172. <para lang="ru">
  27173. если запрос пришёл без строки заголовка "Host", то директива
  27174. proxy_preserve_host устанавливает в качестве этого заголовка первое имя
  27175. сервера из директивы server_name.
  27176. </para>
  27177. <para lang="en">
  27178. if the request has no the "Host" header line, then the "proxy_preserve_host"
  27179. directive set this header line to the first server name of the "server_name"
  27180. directive.
  27181. </para>
  27182. </change>

  27183. <change type="bugfix">
  27184. <para lang="ru">
  27185. nginx не собирался на платформах, отличных от i386, amd64, sparc и ppc;
  27186. ошибка появилась в 0.1.22.
  27187. </para>
  27188. <para lang="en">
  27189. nginx could not be built on platforms different from i386, amd64, sparc,
  27190. and ppc;
  27191. the bug had appeared in 0.1.22.
  27192. </para>
  27193. </change>

  27194. <change type="bugfix">
  27195. <para lang="ru">
  27196. модуль ngx_http_autoindex_module теперь показывает информацию не о
  27197. символическом линке, а о файле или каталоге, на который он указывает.
  27198. </para>
  27199. <para lang="en">
  27200. the ngx_http_autoindex_module now shows the information not about the symlink,
  27201. but about file or directory it points to.
  27202. </para>
  27203. </change>

  27204. <change type="bugfix">
  27205. <para lang="ru">
  27206. если клиенту ничего не передавалось, то параметр %apache_length
  27207. записывал в лог отрицательную длину заголовка ответа.
  27208. </para>
  27209. <para lang="en">
  27210. the %apache_length parameter logged the negative length
  27211. of the response header if the no response was transferred to a client.
  27212. </para>
  27213. </change>

  27214. </changes>


  27215. <changes ver="0.1.22" date="2005-02-22">

  27216. <change type="bugfix">
  27217. <para lang="ru">
  27218. модуль ngx_http_stub_status_module показывал неверную статистику
  27219. для обработанных соединений, если использовалось проксирование
  27220. или FastCGI-сервер.
  27221. </para>
  27222. <para lang="en">
  27223. the ngx_http_stub_status_module showed incorrect handled connections
  27224. statistics if the proxying or FastCGI server were used.
  27225. </para>
  27226. </change>

  27227. <change type="bugfix">
  27228. <para lang="ru">
  27229. на Linux и Solaris установочные пути были неверно заключены в кавычки;
  27230. ошибка появилась в 0.1.21.
  27231. </para>
  27232. <para lang="en">
  27233. the installation paths were incorrectly quoted on Linux and Solaris;
  27234. the bug had appeared in 0.1.21.
  27235. </para>
  27236. </change>

  27237. </changes>


  27238. <changes ver="0.1.21" date="2005-02-22">

  27239. <change type="bugfix">
  27240. <para lang="ru">
  27241. модуль ngx_http_stub_status_module показывал неверную статистику
  27242. при использовании метода rtsig или при использовании нескольких
  27243. рабочих процессов на SMP машине.
  27244. </para>
  27245. <para lang="en">
  27246. the ngx_http_stub_status_module showed incorrect statistics
  27247. if "rtsig" method was used or if several worker process ran on SMP.
  27248. </para>
  27249. </change>

  27250. <change type="bugfix">
  27251. <para lang="ru">
  27252. nginx не собирался компилятором icc под Линуксом или
  27253. если библиотека zlib-1.2.x собиралась из исходных текстов.
  27254. </para>
  27255. <para lang="en">
  27256. nginx could not be built by the icc compiler on Linux or
  27257. if the zlib-1.2.x library was building from sources.
  27258. </para>
  27259. </change>

  27260. <change type="bugfix">
  27261. <para lang="ru">
  27262. nginx не собирался под NetBSD 2.0.
  27263. </para>
  27264. <para lang="en">
  27265. nginx could not be built on NetBSD 2.0.
  27266. </para>
  27267. </change>

  27268. </changes>


  27269. <changes ver="0.1.20" date="2005-02-17">

  27270. <change type="feature">
  27271. <para lang="ru">
  27272. новые параметры script_filename и remote_port в директиве fastcgi_params.
  27273. </para>
  27274. <para lang="en">
  27275. the new "script_filename" and "remote_port" parameters
  27276. of the fastcgi_params directive.
  27277. </para>
  27278. </change>

  27279. <change type="bugfix">
  27280. <para lang="ru">
  27281. неправильно обрабатывался поток stderr от FastCGI-сервера.
  27282. </para>
  27283. <para lang="en">
  27284. the FastCGI stderr stream was handled incorrectly.
  27285. </para>
  27286. </change>

  27287. </changes>


  27288. <changes ver="0.1.19" date="2005-02-16">

  27289. <change type="bugfix">
  27290. <para lang="ru">
  27291. если в запросе есть нуль, то для локальных запросов теперь возвращается
  27292. ошибка 404.
  27293. </para>
  27294. <para lang="en">
  27295. now, if request contains the zero, then the 404 error is returned
  27296. for the local requests.
  27297. </para>
  27298. </change>

  27299. <change type="bugfix">
  27300. <para lang="ru">
  27301. nginx не собирался под NetBSD 2.0.
  27302. </para>
  27303. <para lang="en">
  27304. nginx could not be built on NetBSD 2.0.
  27305. </para>
  27306. </change>

  27307. <change type="bugfix">
  27308. <para lang="ru">
  27309. во время чтения тела запроса клиента в SSL соединении мог произойти таймаут.
  27310. </para>
  27311. <para lang="en">
  27312. the timeout may occur while reading of the client request body
  27313. via SSL connections.
  27314. </para>
  27315. </change>

  27316. </changes>


  27317. <changes ver="0.1.18" date="2005-02-09">

  27318. <change type="workaround">
  27319. <para lang="ru">
  27320. для совместимости с Solaris 10 в директивах devpoll_events и devpoll_changes
  27321. значения по умолчанию уменьшены с 512 до 32.
  27322. </para>
  27323. <para lang="en">
  27324. the default values of the devpoll_events and the devpoll_changes directives
  27325. changed from 512 to 32 to be compatible with Solaris 10.
  27326. </para>
  27327. </change>

  27328. <change type="bugfix">
  27329. <para lang="ru">
  27330. директивы proxy_set_x_var и fastcgi_set_var не наследовались.
  27331. </para>
  27332. <para lang="en">
  27333. the proxy_set_x_var and fastcgi_set_var directives were not inherited.
  27334. </para>
  27335. </change>

  27336. <change type="bugfix">
  27337. <para lang="ru">
  27338. в директиве rewrite, возвращающей редирект, аргументы присоединялись
  27339. к URI через символ "&amp;" вместо "?".
  27340. </para>
  27341. <para lang="en">
  27342. in a redirect rewrite directive arguments were concatenated with URI
  27343. by an "&amp;" rather than a "?".
  27344. </para>
  27345. </change>

  27346. <change type="bugfix">
  27347. <para lang="ru">
  27348. строки для модуля ngx_http_geo_module без символа ";" во включённом файле
  27349. игнорировались.
  27350. </para>
  27351. <para lang="en">
  27352. the lines without trailing ";" in the file being included
  27353. by the ngx_http_geo_module were silently ignored.
  27354. </para>
  27355. </change>

  27356. <change type="feature">
  27357. <para lang="ru">
  27358. модуль ngx_http_stub_status_module.
  27359. </para>
  27360. <para lang="en">
  27361. the ngx_http_stub_status_module.
  27362. </para>
  27363. </change>

  27364. <change type="bugfix">
  27365. <para lang="ru">
  27366. неизвестный формат лог-файла в директиве access_log вызывал segmentation fault.
  27367. </para>
  27368. <para lang="en">
  27369. the unknown log format in the access_log directive caused
  27370. the segmentation fault.
  27371. </para>
  27372. </change>

  27373. <change type="feature">
  27374. <para lang="ru">
  27375. новый параметр document_root в директиве fastcgi_params.
  27376. </para>
  27377. <para lang="en">
  27378. the new "document_root" parameter of the fastcgi_params directive.
  27379. </para>
  27380. </change>

  27381. <change type="feature">
  27382. <para lang="ru">
  27383. директива fastcgi_redirect_errors.
  27384. </para>
  27385. <para lang="en">
  27386. the fastcgi_redirect_errors directive.
  27387. </para>
  27388. </change>

  27389. <change type="feature">
  27390. <para lang="ru">
  27391. новый модификатор break в директиве rewrite позволяет прекратить
  27392. цикл rewrite/location и устанавливает текущую конфигурацию для запроса.
  27393. </para>
  27394. <para lang="en">
  27395. the new "break" modifier of the "rewrite" directive allows to stop
  27396. the rewrite/location cycle and sets the current configuration to the request.
  27397. </para>
  27398. </change>

  27399. </changes>


  27400. <changes ver="0.1.17" date="2005-02-03">

  27401. <change type="change">
  27402. <para lang="ru">
  27403. модуль ngx_http_rewrite_module полностью переписан.
  27404. Теперь можно делать редиректы, возвращать коды ошибок
  27405. и проверять переменные и рефереры.
  27406. Эти директивы можно использовать внутри location.
  27407. Директива redirect упразднена.
  27408. </para>
  27409. <para lang="en">
  27410. the ngx_http_rewrite_module was rewritten from the scratch.
  27411. Now it is possible to redirect, to return the error codes,
  27412. to check the variables and referrers. The directives can be used
  27413. inside locations.
  27414. The redirect directive was canceled.
  27415. </para>
  27416. </change>

  27417. <change type="feature">
  27418. <para lang="ru">
  27419. модуль ngx_http_geo_module.
  27420. </para>
  27421. <para lang="en">
  27422. the ngx_http_geo_module.
  27423. </para>
  27424. </change>

  27425. <change type="feature">
  27426. <para lang="ru">
  27427. директивы proxy_set_x_var и fastcgi_set_var.
  27428. </para>
  27429. <para lang="en">
  27430. the proxy_set_x_var and fastcgi_set_var directives.
  27431. </para>
  27432. </change>

  27433. <change type="bugfix">
  27434. <para lang="ru">
  27435. конфигурация location с модификатором "=" могла использоваться
  27436. в другом location.
  27437. </para>
  27438. <para lang="en">
  27439. the location configuration with "=" modifier may be used in another
  27440. location.
  27441. </para>
  27442. </change>

  27443. <change type="bugfix">
  27444. <para lang="ru">
  27445. правильный тип ответа выставлялся только для запросов, у которых в расширении
  27446. были только маленькие буквы.
  27447. </para>
  27448. <para lang="en">
  27449. the correct content type was set only for requests that use small caps letters
  27450. in extension.
  27451. </para>
  27452. </change>

  27453. <change type="bugfix">
  27454. <para lang="ru">
  27455. если для location установлен proxy_pass или fastcgi_pass, и доступ
  27456. к нему запрещался, а ошибка перенаправлялась на статическую страницу,
  27457. то происходил segmentation fault.
  27458. </para>
  27459. <para lang="en">
  27460. if the proxy_pass or fastcgi_pass directives were set in the location,
  27461. and access was denied, and the error was redirected to a static page,
  27462. then the segmentation fault occurred.
  27463. </para>
  27464. </change>

  27465. <change type="bugfix">
  27466. <para lang="ru">
  27467. если в проксированном ответе в заголовке "Location" передавался
  27468. относительный URL, то к нему добавлялось имя хоста и слэш;
  27469. ошибка появилась в 0.1.14.
  27470. </para>
  27471. <para lang="en">
  27472. if in a proxied "Location" header was a relative URL,
  27473. then a host name and a slash were added to them;
  27474. the bug had appeared in 0.1.14.
  27475. </para>
  27476. </change>

  27477. <change type="bugfix">
  27478. <para lang="ru">
  27479. на Linux в лог не записывался текст системной ошибки.
  27480. </para>
  27481. <para lang="en">
  27482. the system error message was not logged on Linux.
  27483. </para>
  27484. </change>

  27485. </changes>


  27486. <changes ver="0.1.16" date="2005-01-25">

  27487. <change type="bugfix">
  27488. <para lang="ru">
  27489. если ответ передавался chunk'ами, то при запросе HEAD выдавался
  27490. завершающий chunk.
  27491. </para>
  27492. <para lang="en">
  27493. if the response were transferred by chunks, then on the HEAD request
  27494. the final chunk was issued.
  27495. </para>
  27496. </change>

  27497. <change type="bugfix">
  27498. <para lang="ru">
  27499. заголовок "Connection: keep-alive" выдавался, даже если директива
  27500. keepalive_timeout запрещала использование keep-alive.
  27501. </para>
  27502. <para lang="en">
  27503. the "Connection: keep-alive" header were issued, even if the
  27504. keepalive_timeout directive forbade the keep-alive use.
  27505. </para>
  27506. </change>

  27507. <change type="bugfix">
  27508. <para lang="ru">
  27509. ошибки в модуле ngx_http_fastcgi_module вызывали segmentation fault.
  27510. </para>
  27511. <para lang="en">
  27512. the errors in the ngx_http_fastcgi_module caused the segmentation faults.
  27513. </para>
  27514. </change>

  27515. <change type="bugfix">
  27516. <para lang="ru">
  27517. при использовании SSL сжатый ответ мог передаваться не до конца.
  27518. </para>
  27519. <para lang="en">
  27520. the compressed response encrypted by SSL may not transferred complete.
  27521. </para>
  27522. </change>

  27523. <change type="bugfix">
  27524. <para lang="ru">
  27525. опции TCP_NODELAY, TCP_NOPUSH и TCP_CORK, специфичные для TCP сокетов,
  27526. не используются для unix domain сокетов.
  27527. </para>
  27528. <para lang="en">
  27529. the TCP-specific TCP_NODELAY, TCP_NOPUSH, and TCP_CORK options,
  27530. are not used for the unix domain sockets.
  27531. </para>
  27532. </change>

  27533. <change type="feature">
  27534. <para lang="ru">
  27535. директива rewrite поддерживает перезаписывание аргументов.
  27536. </para>
  27537. <para lang="en">
  27538. the rewrite directive supports the arguments rewriting.
  27539. </para>
  27540. </change>

  27541. <change type="bugfix">
  27542. <para lang="ru">
  27543. на запрос POST с заголовком "Content-Length: 0" возвращался ответ 400;
  27544. ошибка появилась в 0.1.14.
  27545. </para>
  27546. <para lang="en">
  27547. the response code 400 was returned for the POST request with the
  27548. "Content-Length: 0" header;
  27549. the bug had appeared in 0.1.14.
  27550. </para>
  27551. </change>

  27552. </changes>


  27553. <changes ver="0.1.15" date="2005-01-19">

  27554. <change type="bugfix">
  27555. <para lang="ru">
  27556. ошибка соединения с FastCGI-сервером вызывала segmentation fault.
  27557. </para>
  27558. <para lang="en">
  27559. the error while the connecting to the FastCGI server caused
  27560. segmentation fault.
  27561. </para>
  27562. </change>

  27563. <change type="bugfix">
  27564. <para lang="ru">
  27565. корректная обработка регулярного выражения, в котором число
  27566. выделенных частей не совпадает с числом подстановок.
  27567. </para>
  27568. <para lang="en">
  27569. the correct handling of the regular expression, that
  27570. has different number of the captures and substitutions.
  27571. </para>
  27572. </change>

  27573. <change type="feature">
  27574. <para lang="ru">
  27575. location, который передаётся FastCGI-серверу, может быть задан
  27576. с помощью регулярного выражения.
  27577. </para>
  27578. <para lang="en">
  27579. the location, that is passed to the FastCGI server, can be
  27580. regular expression.
  27581. </para>
  27582. </change>

  27583. <change type="bugfix">
  27584. <para lang="ru">
  27585. параметр FastCGI REQUEST_URI теперь передаётся вместе с аргументами
  27586. и в том виде, в котором был получен от клиента.
  27587. </para>
  27588. <para lang="en">
  27589. the FastCGI's parameter REQUEST_URI is now passed with the arguments
  27590. and in the original state.
  27591. </para>
  27592. </change>

  27593. <change type="bugfix">
  27594. <para lang="ru">
  27595. для использования регулярных выражений в location нужно было
  27596. собирать nginx вместе с ngx_http_rewrite_module.
  27597. </para>
  27598. <para lang="en">
  27599. the ngx_http_rewrite_module module was required to be built to use
  27600. the regular expressions in locations.
  27601. </para>
  27602. </change>

  27603. <change type="bugfix">
  27604. <para lang="ru">
  27605. если бэкенд слушал на 80-ом порту, то при использовании директивы
  27606. <nobr>"proxy_preserve_host  on"</nobr> в заголовке "Host" указывался
  27607. также порт 80;
  27608. ошибка появилась в 0.1.14.
  27609. </para>
  27610. <para lang="en">
  27611. the directive <nobr>"proxy_preserve_host  on"</nobr> adds port 80
  27612. to the "Host" headers, if upstream listen on port 80;
  27613. the bug had appeared in 0.1.14.
  27614. </para>
  27615. </change>

  27616. <change type="bugfix">
  27617. <para lang="ru">
  27618. если задать одинаковые пути в параметрах автоконфигурации
  27619. --http-client-body-temp-path=PATH и --http-proxy-temp-path=PATH
  27620. или --http-client-body-temp-path=PATH и --http-fastcgi-temp-path=PATH,
  27621. то происходил segmentation fault.
  27622. </para>
  27623. <para lang="en">
  27624. the same paths in autoconfiguration parameters
  27625. --http-client-body-temp-path=PATH and --http-proxy-temp-path=PATH,
  27626. or --http-client-body-temp-path=PATH and --http-fastcgi-temp-path=PATH
  27627. caused segmentation fault.
  27628. </para>
  27629. </change>

  27630. </changes>


  27631. <changes ver="0.1.14" date="2005-01-18">

  27632. <change type="feature">
  27633. <para lang="ru">
  27634. параметры автоконфигурации
  27635. --http-client-body-temp-path=PATH,
  27636. --http-proxy-temp-path=PATH
  27637. и --http-fastcgi-temp-path=PATH
  27638. </para>
  27639. <para lang="en">
  27640. the autoconfiguration directives:
  27641. --http-client-body-temp-path=PATH,
  27642. --http-proxy-temp-path=PATH,
  27643. and --http-fastcgi-temp-path=PATH
  27644. </para>
  27645. </change>

  27646. <change type="change">
  27647. <para lang="ru">
  27648. имя каталога с временными файлами, содержащие тело запроса клиента,
  27649. задаётся директивой client_body_temp_path,
  27650. по умолчанию &lt;prefix&gt;/client_body_temp.
  27651. </para>
  27652. <para lang="en">
  27653. the directory name for the temporary files with the client request body
  27654. is specified by directive client_body_temp_path,
  27655. by default it is &lt;prefix&gt;/client_body_temp.
  27656. </para>
  27657. </change>

  27658. <change type="feature">
  27659. <para lang="ru">
  27660. модуль ngx_http_fastcgi_module и директивы
  27661. fastcgi_pass,
  27662. fastcgi_root,
  27663. fastcgi_index,
  27664. fastcgi_params,
  27665. fastcgi_connect_timeout,
  27666. fastcgi_send_timeout,
  27667. fastcgi_read_timeout,
  27668. fastcgi_send_lowat,
  27669. fastcgi_header_buffer_size,
  27670. fastcgi_buffers,
  27671. fastcgi_busy_buffers_size,
  27672. fastcgi_temp_path,
  27673. fastcgi_max_temp_file_size,
  27674. fastcgi_temp_file_write_size,
  27675. fastcgi_next_upstream
  27676. и fastcgi_x_powered_by.

  27677. </para>
  27678. <para lang="en">
  27679. the ngx_http_fastcgi_module and the directives:
  27680. fastcgi_pass,
  27681. fastcgi_root,
  27682. fastcgi_index,
  27683. fastcgi_params,
  27684. fastcgi_connect_timeout,
  27685. fastcgi_send_timeout,
  27686. fastcgi_read_timeout,
  27687. fastcgi_send_lowat,
  27688. fastcgi_header_buffer_size,
  27689. fastcgi_buffers,
  27690. fastcgi_busy_buffers_size,
  27691. fastcgi_temp_path,
  27692. fastcgi_max_temp_file_size,
  27693. fastcgi_temp_file_write_size,
  27694. fastcgi_next_upstream,
  27695. and fastcgi_x_powered_by.
  27696. </para>
  27697. </change>

  27698. <change type="bugfix">
  27699. <para lang="ru">
  27700. ошибка "[alert] zero size buf";
  27701. ошибка появилась в 0.1.3.
  27702. </para>
  27703. <para lang="en">
  27704. the "[alert] zero size buf" error;
  27705. the bug had appeared in 0.1.3.
  27706. </para>
  27707. </change>

  27708. <change type="change">
  27709. <para lang="ru">
  27710. в директиве proxy_pass нужно обязательно указывать URI после имени хоста.
  27711. </para>
  27712. <para lang="en">
  27713. the URI must be specified after the host name in the proxy_pass directive.
  27714. </para>
  27715. </change>

  27716. <change type="change">
  27717. <para lang="ru">
  27718. если в URI встречался символ %3F, то он считался началом строки аргументов.
  27719. </para>
  27720. <para lang="en">
  27721. the %3F symbol in the URI was considered as the argument string start.
  27722. </para>
  27723. </change>

  27724. <change type="feature">
  27725. <para lang="ru">
  27726. поддержка unix domain сокетов в модуле ngx_http_proxy_module.
  27727. </para>
  27728. <para lang="en">
  27729. the unix domain sockets support in the ngx_http_proxy_module.
  27730. </para>
  27731. </change>

  27732. <change type="feature">
  27733. <para lang="ru">
  27734. директивы ssl_engine и ssl_ciphers.<br/>
  27735. Спасибо Сергею Скворцову за SSL-акселератор.
  27736. </para>
  27737. <para lang="en">
  27738. the ssl_engine and ssl_ciphers directives.<br/>
  27739. Thanks to Sergey Skvortsov for SSL-accelerator.
  27740. </para>
  27741. </change>

  27742. </changes>


  27743. <changes ver="0.1.13" date="2004-12-21">

  27744. <change type="feature">
  27745. <para lang="ru">
  27746. директивы server_names_hash и server_names_hash_threshold.
  27747. </para>
  27748. <para lang="en">
  27749. the server_names_hash and server_names_hash_threshold directives.
  27750. </para>
  27751. </change>

  27752. <change type="bugfix">
  27753. <para lang="ru">
  27754. имена *.domain.tld в директиве server_name не работали.
  27755. </para>
  27756. <para lang="en">
  27757. the *.domain.tld names in the "server_name" directive did not work.
  27758. </para>
  27759. </change>

  27760. <change type="bugfix">
  27761. <para lang="ru">
  27762. параметр лога %request_length записывал неверную длину.
  27763. </para>
  27764. <para lang="en">
  27765. the %request_length log parameter logged the incorrect length.
  27766. </para>
  27767. </change>

  27768. </changes>


  27769. <changes ver="0.1.12" date="2004-12-06">

  27770. <change type="feature">
  27771. <para lang="ru">
  27772. параметр лога %request_length.
  27773. </para>
  27774. <para lang="en">
  27775. the %request_length log parameter.
  27776. </para>
  27777. </change>

  27778. <change type="bugfix">
  27779. <para lang="ru">
  27780. при использовании /dev/poll, select и poll на платформах, где возможны
  27781. ложные срабатывания указанных методов, могли быть длительные задержки
  27782. при обработке запроса по keep-alive соединению.
  27783. Наблюдалось по крайней мере на Solaris с использованием /dev/poll.
  27784. </para>
  27785. <para lang="en">
  27786. when using the /dev/poll, select and poll on the platforms, where
  27787. these methods may do the false reports, there may be the long delay when
  27788. the request was passed via the keep-alive connection.
  27789. It may be at least on Solaris when using the /dev/poll.
  27790. </para>
  27791. </change>

  27792. <change type="bugfix">
  27793. <para lang="ru">
  27794. директива send_lowat игнорируется на Linux, так как Linux не поддерживает
  27795. опцию SO_SNDLOWAT.
  27796. </para>
  27797. <para lang="en">
  27798. the send_lowat directive is ignored on Linux because Linux does not support
  27799. the SO_SNDLOWAT option.
  27800. </para>
  27801. </change>

  27802. </changes>


  27803. <changes ver="0.1.11" date="2004-12-02">

  27804. <change type="feature">
  27805. <para lang="ru">
  27806. директива worker_priority.
  27807. </para>
  27808. <para lang="en">
  27809. the worker_priority directive.
  27810. </para>
  27811. </change>

  27812. <change type="change">
  27813. <para lang="ru">
  27814. под FreeBSD директивы tcp_nopush и tcp_nodelay вместе влияют на передачу
  27815. ответа.
  27816. </para>
  27817. <para lang="en">
  27818. both tcp_nopush and tcp_nodelay directives affect the transferred response.
  27819. </para>
  27820. </change>

  27821. <change type="bugfix">
  27822. <para lang="ru">
  27823. nginx не вызывал initgroups().<br/>
  27824. Спасибо Андрею Ситникову и Андрею Нигматулину.
  27825. </para>
  27826. <para lang="en">
  27827. nginx did not call initgroups().<br/>
  27828. Thanks to Andrew Sitnikov and Andrei Nigmatulin.
  27829. </para>
  27830. </change>

  27831. <change type="change">
  27832. <para lang="ru">
  27833. ngx_http_auto_index_module теперь выдаёт размер файлов в байтах.
  27834. </para>
  27835. <para lang="en">
  27836. now the ngx_http_autoindex_module shows the file size in the bytes.
  27837. </para>
  27838. </change>

  27839. <change type="bugfix">
  27840. <para lang="ru">
  27841. ngx_http_auto_index_module возвращал ошибку 500, если в каталоге есть
  27842. битый symlink.
  27843. </para>
  27844. <para lang="en">
  27845. the ngx_http_autoindex_module returned the 500 error if the broken symlink
  27846. was in a directory.
  27847. </para>
  27848. </change>

  27849. <change type="bugfix">
  27850. <para lang="ru">
  27851. файлы больше 4G не передавались с использованием sendfile.
  27852. </para>
  27853. <para lang="en">
  27854. the files bigger than 4G could not be transferred using sendfile.
  27855. </para>
  27856. </change>

  27857. <change type="bugfix">
  27858. <para lang="ru">
  27859. если бэкенд резолвился в несколько адресов и при ожидании от него ответа
  27860. происходила ошибка, то процесс зацикливался.
  27861. </para>
  27862. <para lang="en">
  27863. if the backend was resolved to several backends and there was an error while
  27864. the response waiting then process may got caught in an endless loop.
  27865. </para>
  27866. </change>

  27867. <change type="bugfix">
  27868. <para lang="ru">
  27869. при использовании метода /dev/poll рабочий процесс мог завершиться
  27870. с сообщением "unknown cycle".
  27871. </para>
  27872. <para lang="en">
  27873. the worker process may exit with the "unknown cycle" message when the /dev/poll
  27874. method was used.
  27875. </para>
  27876. </change>

  27877. <change type="bugfix">
  27878. <para lang="ru">
  27879. ошибки "close() channel failed".
  27880. </para>
  27881. <para lang="en">
  27882. "close() channel failed" errors.
  27883. </para>
  27884. </change>

  27885. <change type="bugfix">
  27886. <para lang="ru">
  27887. автоматическое определение групп nobody и nogroup.
  27888. </para>
  27889. <para lang="en">
  27890. the autodetection of the "nobody" and "nogroup" groups.
  27891. </para>
  27892. </change>

  27893. <change type="bugfix">
  27894. <para lang="ru">
  27895. директива send_lowat не работала на Linux.
  27896. </para>
  27897. <para lang="en">
  27898. the send_lowat directive did not work on Linux.
  27899. </para>
  27900. </change>

  27901. <change type="bugfix">
  27902. <para lang="ru">
  27903. если в конфигурации не было раздела events, то происходил segmentation fault.
  27904. </para>
  27905. <para lang="en">
  27906. the segmentation fault occurred if there was no events section
  27907. in configuration.
  27908. </para>
  27909. </change>

  27910. <change type="bugfix">
  27911. <para lang="ru">
  27912. nginx не собирался под OpenBSD.
  27913. </para>
  27914. <para lang="en">
  27915. nginx could not be built on OpenBSD.
  27916. </para>
  27917. </change>

  27918. <change type="bugfix">
  27919. <para lang="ru">
  27920. двойные слэшы в "://" в URI превращались в ":/".
  27921. </para>
  27922. <para lang="en">
  27923. the double slashes in "://" in the URI were converted to ":/".
  27924. </para>
  27925. </change>

  27926. </changes>


  27927. <changes ver="0.1.10" date="2004-11-26">

  27928. <change type="bugfix">
  27929. <para lang="ru">
  27930. если в запросе без аргументов есть "//", "/./", "/../" или "%XX",
  27931. то терялся последний символ в строке запроса;
  27932. ошибка появилась в 0.1.9.
  27933. </para>
  27934. <para lang="en">
  27935. if the request without arguments contains "//", "/./", "/../" or "%XX"
  27936. then the last character in the request line was lost;
  27937. the bug had appeared in 0.1.9.
  27938. </para>
  27939. </change>

  27940. <change type="bugfix">
  27941. <para lang="ru">
  27942. исправление в версии 0.1.9 для файлов больше 2G на Linux не работало.
  27943. </para>
  27944. <para lang="en">
  27945. the fix in 0.1.9 for the files bigger than 2G on Linux did not work.
  27946. </para>
  27947. </change>

  27948. </changes>


  27949. <changes ver="0.1.9" date="2004-11-25">

  27950. <change type="bugfix">
  27951. <para lang="ru">
  27952. если в запросе есть "//", "/./", "/../" или "%XX", то проксируемый
  27953. запрос передавался без аргументов.
  27954. </para>
  27955. <para lang="en">
  27956. the proxied request was sent without arguments if the request contains
  27957. "//", "/./", "/../" or "%XX".
  27958. </para>
  27959. </change>

  27960. <change type="bugfix">
  27961. <para lang="ru">
  27962. при сжатии больших ответов иногда они передавались не полностью.
  27963. </para>
  27964. <para lang="en">
  27965. the large compressed responses may be transferred not completely.
  27966. </para>
  27967. </change>

  27968. <change type="bugfix">
  27969. <para lang="ru">
  27970. не передавались файлы больше 2G на Linux, неподдерживающем sendfile64().
  27971. </para>
  27972. <para lang="en">
  27973. the files bigger than 2G was not transferred on Linux that does not support
  27974. sendfile64().
  27975. </para>
  27976. </change>

  27977. <change type="bugfix">
  27978. <para lang="ru">
  27979. на Linux при конфигурации сборки нужно было обязательно использовать
  27980. параметр --with-poll_module;
  27981. ошибка появилась в 0.1.8.
  27982. </para>
  27983. <para lang="en">
  27984. while the build configuration on Linux the --with-poll_module parameter
  27985. was required;
  27986. the bug had appeared in 0.1.8.
  27987. </para>
  27988. </change>

  27989. </changes>


  27990. <changes ver="0.1.8" date="2004-11-20">

  27991. <change type="bugfix">
  27992. <para lang="ru">
  27993. ошибка в модуле ngx_http_autoindex_module при показе длинных имён файлов.
  27994. </para>
  27995. <para lang="en">
  27996. in the ngx_http_autoindex_module if the long file names were in the listing.
  27997. </para>
  27998. </change>

  27999. <change type="feature">
  28000. <para lang="ru">
  28001. модификатор "^~" в директиве location.
  28002. </para>
  28003. <para lang="en">
  28004. the "^~" modifier in the location directive.
  28005. </para>
  28006. </change>

  28007. <change type="feature">
  28008. <para lang="ru">
  28009. директива proxy_max_temp_file_size.
  28010. </para>
  28011. <para lang="en">
  28012. the proxy_max_temp_file_size directive.
  28013. </para>
  28014. </change>

  28015. </changes>


  28016. <changes ver="0.1.7" date="2004-11-12">

  28017. <change type="bugfix">
  28018. <para lang="ru">
  28019. при использовании sendfile, если передаваемый файл менялся, то мог
  28020. произойти segmentation fault на FreeBSD;
  28021. ошибка появилась в 0.1.5.
  28022. </para>
  28023. <para lang="en">
  28024. on FreeBSD the segmentation fault may occur if the size of the transferred
  28025. file was changed;
  28026. the bug had appeared in 0.1.5.
  28027. </para>
  28028. </change>

  28029. </changes>


  28030. <changes ver="0.1.6" date="2004-11-11">

  28031. <change type="bugfix">
  28032. <para lang="ru">
  28033. при некоторых комбинациях директив location c регулярными выражениями
  28034. использовалась конфигурация не из того location.
  28035. </para>
  28036. <para lang="en">
  28037. some location directive combinations with the regular expressions caused
  28038. the wrong configuration choose.
  28039. </para>
  28040. </change>

  28041. </changes>


  28042. <changes ver="0.1.5" date="2004-11-11">

  28043. <change type="bugfix">
  28044. <para lang="ru">
  28045. на Solaris и Linux могло быть очень много сообщений "recvmsg() returned
  28046. not enough data".
  28047. </para>
  28048. <para lang="en">
  28049. on Solaris and Linux there may be too many "recvmsg() returned not enough data"
  28050. alerts.
  28051. </para>
  28052. </change>

  28053. <change type="bugfix">
  28054. <para lang="ru">
  28055. в режиме прокси без использования sendfile на Solaris возникала
  28056. ошибка "writev() failed <nobr>(22: Invalid argument)".</nobr>
  28057. На других платформах, не поддерживающих sendfile, процесс зацикливался.
  28058. </para>
  28059. <para lang="en">
  28060. there were the "writev() failed <nobr>(22: Invalid argument)"</nobr> errors on
  28061. Solaris in proxy mode without sendfile. On other platforms that do not
  28062. support sendfile at all the process got caught in an endless loop.
  28063. </para>
  28064. </change>

  28065. <change type="bugfix">
  28066. <para lang="ru">
  28067. при использовании sendfile в режиме прокси на Solaris возникал
  28068. segmentation fault.
  28069. </para>
  28070. <para lang="en">
  28071. segmentation fault on Solaris in proxy mode and using sendfile.
  28072. </para>
  28073. </change>

  28074. <change type="bugfix">
  28075. <para lang="ru">
  28076. segmentation fault на Solaris.
  28077. </para>
  28078. <para lang="en">
  28079. segmentation fault on Solaris.
  28080. </para>
  28081. </change>

  28082. <change type="bugfix">
  28083. <para lang="ru">
  28084. обновление исполняемого файла на лету не работало на Linux.
  28085. </para>
  28086. <para lang="en">
  28087. on-line upgrade did not work on Linux.
  28088. </para>
  28089. </change>

  28090. <change type="bugfix">
  28091. <para lang="ru">
  28092. в списке файлов, выдаваемом модулем ngx_http_autoindex_module,
  28093. не перекодировались пробелы, кавычки и знаки процента.
  28094. </para>
  28095. <para lang="en">
  28096. the ngx_http_autoindex_module module did not escape the spaces,
  28097. the quotes, and the percent signs in the directory listing.
  28098. </para>
  28099. </change>

  28100. <change type="change">
  28101. <para lang="ru">
  28102. уменьшение операций копирования.
  28103. </para>
  28104. <para lang="en">
  28105. the decrease of the copy operations.
  28106. </para>
  28107. </change>

  28108. <change type="feature">
  28109. <para lang="ru">
  28110. директива userid_p3p.
  28111. </para>
  28112. <para lang="en">
  28113. the userid_p3p directive.
  28114. </para>
  28115. </change>

  28116. </changes>


  28117. <changes ver="0.1.4" date="2004-10-26">

  28118. <change type="bugfix">
  28119. <para lang="ru">
  28120. ошибка в модуле ngx_http_autoindex_module.
  28121. </para>
  28122. <para lang="en">
  28123. in the ngx_http_autoindex_module.
  28124. </para>
  28125. </change>

  28126. </changes>


  28127. <changes ver="0.1.3" date="2004-10-25">

  28128. <change type="feature">
  28129. <para lang="ru">
  28130. модуль ngx_http_autoindex_module и директива autoindex.
  28131. </para>
  28132. <para lang="en">
  28133. the ngx_http_autoindex_module and the autoindex directive.
  28134. </para>
  28135. </change>

  28136. <change type="feature">
  28137. <para lang="ru">
  28138. директива proxy_set_x_url.
  28139. </para>
  28140. <para lang="en">
  28141. the proxy_set_x_url directive.
  28142. </para>
  28143. </change>

  28144. <change type="bugfix">
  28145. <para lang="ru">
  28146. модуль проксировании мог привести к зацикливанию, если не использовался
  28147. sendfile.
  28148. </para>
  28149. <para lang="en">
  28150. proxy module may get caught in an endless loop when sendfile is not used.
  28151. </para>
  28152. </change>

  28153. </changes>


  28154. <changes ver="0.1.2" date="2004-10-21">

  28155. <change type="feature">
  28156. <para lang="ru">
  28157. параметры --user=USER, --group=GROUP и --with-ld-opt=OPTIONS в configure.
  28158. </para>
  28159. <para lang="en">
  28160. the --user=USER, --group=GROUP, and --with-ld-opt=OPTIONS options in configure.
  28161. </para>
  28162. </change>

  28163. <change type="feature">
  28164. <para lang="ru">
  28165. директива server_name поддерживает *.domain.tld.
  28166. </para>
  28167. <para lang="en">
  28168. the server_name directive supports *.domain.tld.
  28169. </para>
  28170. </change>

  28171. <change type="bugfix">
  28172. <para lang="ru">
  28173. улучшена переносимость на неизвестные платформы.
  28174. </para>
  28175. <para lang="en">
  28176. the portability improvements.
  28177. </para>
  28178. </change>

  28179. <change type="bugfix">
  28180. <para lang="ru">
  28181. нельзя переконфигурировать nginx, если конфигурационный файл указан
  28182. в командной строке;
  28183. ошибка появилась в 0.1.1.
  28184. </para>
  28185. <para lang="en">
  28186. if configuration file was set in command line, the reconfiguration
  28187. was impossible;
  28188. the bug had appeared in 0.1.1.
  28189. </para>
  28190. </change>

  28191. <change type="bugfix">
  28192. <para lang="ru">
  28193. модуль проксировании мог привести к зацикливанию, если не использовался
  28194. sendfile.
  28195. </para>
  28196. <para lang="en">
  28197. proxy module may get caught in an endless loop when sendfile is not used.
  28198. </para>
  28199. </change>

  28200. <change type="bugfix">
  28201. <para lang="ru">
  28202. при использовании sendfile текст ответа не перекодировался
  28203. согласно директивам модуля charset;
  28204. ошибка появилась в 0.1.1.
  28205. </para>
  28206. <para lang="en">
  28207. with sendfile the response was not recoded according to the charset
  28208. module directives;
  28209. the bug had appeared in 0.1.1.
  28210. </para>
  28211. </change>

  28212. <change type="bugfix">
  28213. <para lang="ru">
  28214. очень редкая ошибка при обработке kqueue.
  28215. </para>
  28216. <para lang="en">
  28217. very seldom bug in the kqueue processing.
  28218. </para>
  28219. </change>

  28220. <change type="bugfix">
  28221. <para lang="ru">
  28222. модуль сжатия сжимал уже сжатые ответы, полученные при проксировании.
  28223. </para>
  28224. <para lang="en">
  28225. the gzip module compressed the proxied responses that was already compressed.
  28226. </para>
  28227. </change>

  28228. </changes>


  28229. <changes ver="0.1.1" date="2004-10-11">

  28230. <change type="feature">
  28231. <para lang="ru">
  28232. директива gzip_types.
  28233. </para>
  28234. <para lang="en">
  28235. the gzip_types directive.
  28236. </para>
  28237. </change>

  28238. <change type="feature">
  28239. <para lang="ru">
  28240. директива tcp_nodelay.
  28241. </para>
  28242. <para lang="en">
  28243. the tcp_nodelay directive.
  28244. </para>
  28245. </change>

  28246. <change type="feature">
  28247. <para lang="ru">
  28248. директива send_lowat работает не только на платформах, поддерживающих
  28249. kqueue NOTE_LOWAT, но и на всех, поддерживающих SO_SNDLOWAT.
  28250. </para>
  28251. <para lang="en">
  28252. the send_lowat directive is working not only on OSes that support
  28253. kqueue NOTE_LOWAT, but also on OSes that support SO_SNDLOWAT.
  28254. </para>
  28255. </change>

  28256. <change type="feature">
  28257. <para lang="ru">
  28258. эмуляция setproctitle() для Linux и Solaris.
  28259. </para>
  28260. <para lang="en">
  28261. the setproctitle() emulation for Linux and Solaris.
  28262. </para>
  28263. </change>

  28264. <change type="bugfix">
  28265. <para lang="ru">
  28266. ошибка при переписывании заголовка "Location" при проксировании.
  28267. </para>
  28268. <para lang="en">
  28269. the "Location" header rewrite bug fixed while the proxying.
  28270. </para>
  28271. </change>

  28272. <change type="bugfix">
  28273. <para lang="ru">
  28274. ошибка в модуле ngx_http_chunked_module, приводившая к зацикливанию.
  28275. </para>
  28276. <para lang="en">
  28277. the ngx_http_chunked_module module may get caught in an endless loop.
  28278. </para>
  28279. </change>

  28280. <change type="bugfix">
  28281. <para lang="ru">
  28282. ошибки в модуле /dev/poll.
  28283. </para>
  28284. <para lang="en">
  28285. the /dev/poll module bugs fixed.
  28286. </para>
  28287. </change>

  28288. <change type="bugfix">
  28289. <para lang="ru">
  28290. при проксировании и использовании временных файлов ответы портились.
  28291. </para>
  28292. <para lang="en">
  28293. the responses were corrupted when the temporary files were used
  28294. while the proxying.
  28295. </para>
  28296. </change>

  28297. <change type="bugfix">
  28298. <para lang="ru">
  28299. бэкенду передавались запросы с неперекодированными символами.
  28300. </para>
  28301. <para lang="en">
  28302. the unescaped requests were passed to the backend.
  28303. </para>
  28304. </change>

  28305. <change type="bugfix">
  28306. <para lang="ru">
  28307. на Linux 2.4 при конфигурации сборки нужно было обязательно использовать
  28308. параметр --with-poll_module.
  28309. </para>
  28310. <para lang="en">
  28311. while the build configuration on Linux 2.4 the --with-poll_module parameter
  28312. was required.
  28313. </para>
  28314. </change>

  28315. </changes>


  28316. <changes ver="0.1.0" date="2004-10-04">

  28317. <change>
  28318. <para lang="ru">
  28319. Первая публично доступная версия.
  28320. </para>
  28321. <para lang="en">
  28322. The first public version.
  28323. </para>
  28324. </change>

  28325. </changes>


  28326. </change_log>