docs/xml/nginx/changes.xml - nginx source code

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


  3. <change_log title="nginx">


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

  5. <change type="feature">
  6. <para lang="ru">
  7. директива server в блоке upstream поддерживает
  8. параметр resolve.
  9. </para>
  10. <para lang="en">
  11. the "server" directive in the "upstream" block supports
  12. the "resolve" parameter.
  13. </para>
  14. </change>

  15. <change type="feature">
  16. <para lang="ru">
  17. директивы resolver и resolver_timeout в блоке upstream.
  18. </para>
  19. <para lang="en">
  20. the "resolver" and "resolver_timeout" directives in the "upstream" block.
  21. </para>
  22. </change>

  23. <change type="feature">
  24. <para lang="ru">
  25. поддержка SmarterMail-специфичного режима
  26. IMAP LOGIN с нетегированным ответом CAPABILITY
  27. в почтовом прокси-сервере.
  28. </para>
  29. <para lang="en">
  30. SmarterMail specific mode support
  31. for IMAP LOGIN with untagged CAPABILITY response
  32. in the mail proxy module.
  33. </para>
  34. </change>

  35. <change type="change">
  36. <para lang="ru">
  37. теперь протоколы TLSv1 и TLSv1.1 по умолчанию запрещены.
  38. </para>
  39. <para lang="en">
  40. now TLSv1 and TLSv1.1 protocols are disabled by default.
  41. </para>
  42. </change>

  43. <change type="change">
  44. <para lang="ru">
  45. IPv6-адрес в квадратных скобках без порта теперь можно указывать
  46. в директивах proxy_bind, fastcgi_bind, grpc_bind, memcached_bind,
  47. scgi_bind и uwsgi_bind,
  48. а также как адрес клиента в модуле ngx_http_realip_module.
  49. </para>
  50. <para lang="en">
  51. an IPv6 address in square brackets and no port can be specified
  52. in the "proxy_bind", "fastcgi_bind", "grpc_bind", "memcached_bind",
  53. "scgi_bind", and "uwsgi_bind" directives,
  54. and as client address in ngx_http_realip_module.
  55. </para>
  56. </change>

  57. <change type="bugfix">
  58. <para lang="ru">
  59. в модуле ngx_http_mp4_module.<br/>
  60. Спасибо Nils Bars.
  61. </para>
  62. <para lang="en">
  63. in the ngx_http_mp4_module.<br/>
  64. Thanks to Nils Bars.
  65. </para>
  66. </change>

  67. <change type="bugfix">
  68. <para lang="ru">
  69. параметр so_keepalive директивы listen
  70. мог работать некорректно на DragonFly BSD.
  71. </para>
  72. <para lang="en">
  73. the "so_keepalive" parameter of the "listen" directive
  74. might be handled incorrectly on DragonFly BSD.
  75. </para>
  76. </change>

  77. <change type="bugfix">
  78. <para lang="ru">
  79. в директиве proxy_store.
  80. </para>
  81. <para lang="en">
  82. in the "proxy_store" directive.
  83. </para>
  84. </change>

  85. </changes>


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

  87. <change type="feature">
  88. <para lang="ru">
  89. SSL-сертификаты, секретные ключи и списки CRL теперь кешируются
  90. на старте или во время переконфигурации.
  91. </para>
  92. <para lang="en">
  93. SSL certificates, secret keys, and CRLs are now cached
  94. on start or during reconfiguration.
  95. </para>
  96. </change>

  97. <change type="feature">
  98. <para lang="ru">
  99. проверка клиентских сертификатов с помощью OCSP в модуле stream.
  100. </para>
  101. <para lang="en">
  102. client certificate validation with OCSP in the stream module.
  103. </para>
  104. </change>

  105. <change type="feature">
  106. <para lang="ru">
  107. поддержка OCSP stapling в модуле stream.
  108. </para>
  109. <para lang="en">
  110. OCSP stapling support in the stream module.
  111. </para>
  112. </change>

  113. <change type="feature">
  114. <para lang="ru">
  115. директива proxy_pass_trailers в модуле ngx_http_proxy_module.
  116. </para>
  117. <para lang="en">
  118. the "proxy_pass_trailers" directive in the ngx_http_proxy_module.
  119. </para>
  120. </change>

  121. <change type="feature">
  122. <para lang="ru">
  123. директива ssl_client_certificate теперь поддерживает сертификаты
  124. с дополнительными данными.
  125. </para>
  126. <para lang="en">
  127. the "ssl_client_certificate" directive now supports certificates
  128. with auxiliary information.
  129. </para>
  130. </change>

  131. <change type="change">
  132. <para lang="ru">
  133. теперь наличие директивы ssl_client_certificate не обязательно
  134. для проверки клиентских SSL-сертификатов.
  135. </para>
  136. <para lang="en">
  137. now the "ssl_client_certificate" directive is not required
  138. for client SSL certificates verification.
  139. </para>
  140. </change>

  141. </changes>


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

  143. <change type="security">
  144. <para lang="ru">
  145. обработка специально созданного mp4-файла модулем ngx_http_mp4_module
  146. могла приводить к падению рабочего процесса (CVE-2024-7347).<br/>
  147. Спасибо Nils Bars.
  148. </para>
  149. <para lang="en">
  150. processing of a specially crafted mp4 file by the ngx_http_mp4_module
  151. might cause a worker process crash (CVE-2024-7347).<br/>
  152. Thanks to Nils Bars.
  153. </para>
  154. </change>

  155. <change type="change">
  156. <para lang="ru">
  157. теперь обработчик в модуле stream не является обязательным.
  158. </para>
  159. <para lang="en">
  160. now the stream module handler is not mandatory.
  161. </para>
  162. </change>

  163. <change type="bugfix">
  164. <para lang="ru">
  165. новые HTTP/2-соединения могли игнорировать
  166. плавное завершение старых рабочих процессов.<br/>
  167. Спасибо Kasei Wang.
  168. </para>
  169. <para lang="en">
  170. new HTTP/2 connections might ignore
  171. graceful shutdown of old worker processes.<br/>
  172. Thanks to Kasei Wang.
  173. </para>
  174. </change>

  175. <change>
  176. <para lang="ru">
  177. Исправления в HTTP/3.
  178. </para>
  179. <para lang="en">
  180. Bugfixes in HTTP/3.
  181. </para>
  182. </change>

  183. </changes>


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

  185. <change type="security">
  186. <para lang="ru">
  187. при использовании HTTP/3 обработка специально созданной QUIC-сессии могла
  188. приводить к падению рабочего процесса, отправке клиенту содержимого памяти
  189. рабочего процесса на системах с MTU больше 4096 байт, а также потенциально
  190. могла иметь другие последствия
  191. (CVE-2024-32760, CVE-2024-31079, CVE-2024-35200, CVE-2024-34161).<br/>
  192. Спасибо Nils Bars из CISPA.
  193. </para>
  194. <para lang="en">
  195. when using HTTP/3, processing of a specially crafted QUIC session might
  196. cause a worker process crash, worker process memory disclosure on systems
  197. with MTU larger than 4096 bytes, or might have potential other impact
  198. (CVE-2024-32760, CVE-2024-31079, CVE-2024-35200, CVE-2024-34161).<br/>
  199. Thanks to Nils Bars of CISPA.
  200. </para>
  201. </change>

  202. <change type="feature">
  203. <para lang="ru">
  204. директивы proxy_limit_rate, fastcgi_limit_rate,
  205. scgi_limit_rate и uwsgi_limit_rate поддерживают переменные.
  206. </para>
  207. <para lang="en">
  208. variables support
  209. in the "proxy_limit_rate", "fastcgi_limit_rate", "scgi_limit_rate",
  210. and "uwsgi_limit_rate" directives.
  211. </para>
  212. </change>

  213. <change type="bugfix">
  214. <para lang="ru">
  215. уменьшено потребление памяти для долгоживущих запросов,
  216. если используются директивы gzip, gunzip, ssi, sub_filter или grpc_pass.
  217. </para>
  218. <para lang="en">
  219. reduced memory consumption for long-lived requests
  220. if "gzip", "gunzip", "ssi", "sub_filter", or "grpc_pass" directives are used.
  221. </para>
  222. </change>

  223. <change type="bugfix">
  224. <para lang="ru">
  225. nginx не собирался gcc 14,
  226. если использовался параметр --with-libatomic.<br/>
  227. Спасибо Edgar Bonet.
  228. </para>
  229. <para lang="en">
  230. nginx could not be built by gcc 14
  231. if the --with-libatomic option was used.<br/>
  232. Thanks to Edgar Bonet.
  233. </para>
  234. </change>

  235. <change>
  236. <para lang="ru">
  237. Исправления в HTTP/3.
  238. </para>
  239. <para lang="en">
  240. Bugfixes in HTTP/3.
  241. </para>
  242. </change>

  243. </changes>


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

  245. <change type="feature">
  246. <para lang="ru">
  247. виртуальные сервера в модуле stream.
  248. </para>
  249. <para lang="en">
  250. virtual servers in the stream module.
  251. </para>
  252. </change>

  253. <change type="feature">
  254. <para lang="ru">
  255. модуль ngx_stream_pass_module.
  256. </para>
  257. <para lang="en">
  258. the ngx_stream_pass_module.
  259. </para>
  260. </change>

  261. <change type="feature">
  262. <para lang="ru">
  263. параметры deferred, accept_filter и setfib директивы listen в модуле stream.
  264. </para>
  265. <para lang="en">
  266. the "deferred", "accept_filter", and "setfib" parameters of the "listen"
  267. directive in the stream module.
  268. </para>
  269. </change>

  270. <change type="feature">
  271. <para lang="ru">
  272. определение размера строки кеша процессора для некоторых архитектур.<br/>
  273. Спасибо Piotr Sikora.
  274. </para>
  275. <para lang="en">
  276. cache line size detection for some architectures.<br/>
  277. Thanks to Piotr Sikora.
  278. </para>
  279. </change>

  280. <change type="feature">
  281. <para lang="ru">
  282. поддержка Homebrew на Apple Silicon.<br/>
  283. Спасибо Piotr Sikora.
  284. </para>
  285. <para lang="en">
  286. support for Homebrew on Apple Silicon.<br/>
  287. Thanks to Piotr Sikora.
  288. </para>
  289. </change>

  290. <change type="bugfix">
  291. <para lang="ru">
  292. улучшения и исправления кросс-компиляции для Windows.<br/>
  293. Спасибо Piotr Sikora.
  294. </para>
  295. <para lang="en">
  296. Windows cross-compilation bugfixes and improvements.<br/>
  297. Thanks to Piotr Sikora.
  298. </para>
  299. </change>

  300. <change type="bugfix">
  301. <para lang="ru">
  302. неожиданное закрытие соединения при использовании 0-RTT в QUIC.<br/>
  303. Спасибо Владимиру Хомутову.
  304. </para>
  305. <para lang="en">
  306. unexpected connection closure while using 0-RTT in QUIC.<br/>
  307. Thanks to Vladimir Khomutov.
  308. </para>
  309. </change>

  310. </changes>


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

  312. <change type="security">
  313. <para lang="ru">
  314. при использовании HTTP/3 в рабочем процессе мог произойти segmentation fault
  315. во время обработки специально созданной QUIC-сессии
  316. (CVE-2024-24989, CVE-2024-24990).
  317. </para>
  318. <para lang="en">
  319. when using HTTP/3 a segmentation fault might occur in a worker process
  320. while processing a specially crafted QUIC session
  321. (CVE-2024-24989, CVE-2024-24990).
  322. </para>
  323. </change>

  324. <change type="bugfix">
  325. <para lang="ru">
  326. соединения с незавершенными AIO-операциями могли закрываться преждевременно
  327. во время плавного завершения старых рабочих процессов.
  328. </para>
  329. <para lang="en">
  330. connections with pending AIO operations might be closed prematurely
  331. during graceful shutdown of old worker processes.
  332. </para>
  333. </change>

  334. <change type="bugfix">
  335. <para lang="ru">
  336. теперь nginx не пишет в лог сообщения об утечке сокетов,
  337. если во время плавного завершения старых рабочих процессов
  338. было запрошено быстрое завершение.
  339. </para>
  340. <para lang="en">
  341. socket leak alerts no longer logged when fast shutdown
  342. was requested after graceful shutdown of old worker processes.
  343. </para>
  344. </change>

  345. <change type="bugfix">
  346. <para lang="ru">
  347. при использовании AIO в подзапросе могла происходить
  348. ошибка на сокете, утечка сокетов,
  349. либо segmentation fault в рабочем процессе (при SSL-проксировании).
  350. </para>
  351. <para lang="en">
  352. a socket descriptor error, a socket leak,
  353. or a segmentation fault in a worker process (for SSL proxying)
  354. might occur if AIO was used in a subrequest.
  355. </para>
  356. </change>

  357. <change type="bugfix">
  358. <para lang="ru">
  359. в рабочем процессе мог произойти segmentation fault,
  360. если использовалось SSL-проксирование и директива image_filter,
  361. а ошибки с кодом 415 перенаправлялись с помощью директивы error_page.
  362. </para>
  363. <para lang="en">
  364. a segmentation fault might occur in a worker process
  365. if SSL proxying was used along with the "image_filter" directive
  366. and errors with code 415 were redirected with the "error_page" directive.
  367. </para>
  368. </change>

  369. <change>
  370. <para lang="ru">
  371. Исправления и улучшения в HTTP/3.
  372. </para>
  373. <para lang="en">
  374. Bugfixes and improvements in HTTP/3.
  375. </para>
  376. </change>

  377. </changes>


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

  379. <change type="change">
  380. <para lang="ru">
  381. улучшено детектирование некорректного поведения клиентов
  382. при использовании HTTP/2.
  383. </para>
  384. <para lang="en">
  385. improved detection of misbehaving clients
  386. when using HTTP/2.
  387. </para>
  388. </change>

  389. <change type="feature">
  390. <para lang="ru">
  391. уменьшение времени запуска
  392. при использовании большого количества location'ов.<br/>
  393. Спасибо Yusuke Nojima.
  394. </para>
  395. <para lang="en">
  396. startup speedup
  397. when using a large number of locations.<br/>
  398. Thanks to Yusuke Nojima.
  399. </para>
  400. </change>

  401. <change type="bugfix">
  402. <para lang="ru">
  403. при использовании HTTP/2 без SSL
  404. в рабочем процессе мог произойти segmentation fault;
  405. ошибка появилась в 1.25.1.
  406. </para>
  407. <para lang="en">
  408. a segmentation fault might occur in a worker process
  409. when using HTTP/2 without SSL;
  410. the bug had appeared in 1.25.1.
  411. </para>
  412. </change>

  413. <change type="bugfix">
  414. <para lang="ru">
  415. строка "Status" в заголовке ответа бэкенда с пустой поясняющей фразой
  416. обрабатывалась некорректно.
  417. </para>
  418. <para lang="en">
  419. the "Status" backend response header line with an empty reason phrase
  420. was handled incorrectly.
  421. </para>
  422. </change>

  423. <change type="bugfix">
  424. <para lang="ru">
  425. утечки памяти во время переконфигурации
  426. при использовании библиотеки PCRE2.<br/>
  427. Спасибо ZhenZhong Wu.
  428. </para>
  429. <para lang="en">
  430. memory leak during reconfiguration
  431. when using the PCRE2 library.<br/>
  432. Thanks to ZhenZhong Wu.
  433. </para>
  434. </change>

  435. <change>
  436. <para lang="ru">
  437. Исправления и улучшения в HTTP/3.
  438. </para>
  439. <para lang="en">
  440. Bugfixes and improvements in HTTP/3.
  441. </para>
  442. </change>

  443. </changes>


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

  445. <change type="feature">
  446. <para lang="ru">
  447. path MTU discovery при использовании HTTP/3.
  448. </para>
  449. <para lang="en">
  450. path MTU discovery when using HTTP/3.
  451. </para>
  452. </change>

  453. <change type="feature">
  454. <para lang="ru">
  455. поддержка шифра TLS_AES_128_CCM_SHA256 при использовании HTTP/3.
  456. </para>
  457. <para lang="en">
  458. TLS_AES_128_CCM_SHA256 cipher suite support when using HTTP/3.
  459. </para>
  460. </change>

  461. <change type="change">
  462. <para lang="ru">
  463. теперь при загрузке конфигурации OpenSSL
  464. nginx использует appname "nginx".
  465. </para>
  466. <para lang="en">
  467. now nginx uses appname "nginx"
  468. when loading OpenSSL configuration.
  469. </para>
  470. </change>

  471. <change type="change">
  472. <para lang="ru">
  473. теперь nginx не пытается загружать конфигурацию OpenSSL,
  474. если для сборки OpenSSL использовался параметр --with-openssl
  475. и переменная окружения OPENSSL_CONF не установлена.
  476. </para>
  477. <para lang="en">
  478. now nginx does not try to load OpenSSL configuration
  479. if the --with-openssl option was used to built OpenSSL
  480. and the OPENSSL_CONF environment variable is not set.
  481. </para>
  482. </change>

  483. <change type="bugfix">
  484. <para lang="ru">
  485. в переменной $body_bytes_sent при использовании HTTP/3.
  486. </para>
  487. <para lang="en">
  488. in the $body_bytes_sent variable when using HTTP/3.
  489. </para>
  490. </change>

  491. <change type="bugfix">
  492. <para lang="ru">
  493. в HTTP/3.
  494. </para>
  495. <para lang="en">
  496. in HTTP/3.
  497. </para>
  498. </change>

  499. </changes>


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

  501. <change type="feature">
  502. <para lang="ru">
  503. директива http2, позволяющая включать HTTP/2 в отдельных блоках server;
  504. параметр http2 директивы listen объявлен устаревшим.
  505. </para>
  506. <para lang="en">
  507. the "http2" directive, which enables HTTP/2 on a per-server basis;
  508. the "http2" parameter of the "listen" directive is now deprecated.
  509. </para>
  510. </change>

  511. <change type="change">
  512. <para lang="ru">
  513. поддержка HTTP/2 server push упразднена.
  514. </para>
  515. <para lang="en">
  516. HTTP/2 server push support has been removed.
  517. </para>
  518. </change>

  519. <change type="change">
  520. <para lang="ru">
  521. устаревшая директива ssl больше не поддерживается.
  522. </para>
  523. <para lang="en">
  524. the deprecated "ssl" directive is not supported anymore.
  525. </para>
  526. </change>

  527. <change type="bugfix">
  528. <para lang="ru">
  529. в HTTP/3 при использовании OpenSSL.
  530. </para>
  531. <para lang="en">
  532. in HTTP/3 when using OpenSSL.
  533. </para>
  534. </change>

  535. </changes>


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

  537. <change type="feature">
  538. <para lang="ru">
  539. экспериментальная поддержка HTTP/3.
  540. </para>
  541. <para lang="en">
  542. experimental HTTP/3 support.
  543. </para>
  544. </change>

  545. </changes>


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

  547. <change type="change">
  548. <para lang="ru">
  549. теперь протокол TLSv1.3 разрешён по умолчанию.
  550. </para>
  551. <para lang="en">
  552. now TLSv1.3 protocol is enabled by default.
  553. </para>
  554. </change>

  555. <change type="change">
  556. <para lang="ru">
  557. теперь nginx выдаёт предупреждение
  558. при переопределении параметров listen-сокета, задающих используемые протоколы.
  559. </para>
  560. <para lang="en">
  561. now nginx issues a warning
  562. if protocol parameters of a listening socket are redefined.
  563. </para>
  564. </change>

  565. <change type="change">
  566. <para lang="ru">
  567. теперь, если клиент использует pipelining,
  568. nginx закрывает соединения с ожиданием дополнительных данных (lingering close).
  569. </para>
  570. <para lang="en">
  571. now nginx closes connections with lingering
  572. if pipelining was used by the client.
  573. </para>
  574. </change>

  575. <change type="feature">
  576. <para lang="ru">
  577. поддержка byte ranges для ответов модуля ngx_http_gzip_static_module.
  578. </para>
  579. <para lang="en">
  580. byte ranges support in the ngx_http_gzip_static_module.
  581. </para>
  582. </change>

  583. <change type="bugfix">
  584. <para lang="ru">
  585. диапазоны портов в директиве listen не работали;
  586. ошибка появилась в 1.23.3.<br/>
  587. Спасибо Валентину Бартеневу.
  588. </para>
  589. <para lang="en">
  590. port ranges in the "listen" directive did not work;
  591. the bug had appeared in 1.23.3.<br/>
  592. Thanks to Valentin Bartenev.
  593. </para>
  594. </change>

  595. <change type="bugfix">
  596. <para lang="ru">
  597. для обработки запроса мог быть выбран неверный location,
  598. если в конфигурации использовался
  599. префиксный location длиннее 255 символов.
  600. </para>
  601. <para lang="en">
  602. incorrect location might be chosen to process a request
  603. if a prefix location longer than 255 characters
  604. was used in the configuration.
  605. </para>
  606. </change>

  607. <change type="bugfix">
  608. <para lang="ru">
  609. не-ASCII символы в именах файлов на Windows
  610. не поддерживались модулями ngx_http_autoindex_module и
  611. ngx_http_dav_module, а также директивой include.
  612. </para>
  613. <para lang="en">
  614. non-ASCII characters in file names on Windows were not supported
  615. by the ngx_http_autoindex_module, the ngx_http_dav_module,
  616. and the "include" directive.
  617. </para>
  618. </change>

  619. <change type="change">
  620. <para lang="ru">
  621. уровень логгирования ошибок SSL
  622. "data length too long", "length too short", "bad legacy version",
  623. "no shared signature algorithms", "bad digest length",
  624. "missing sigalgs extension", "encrypted length too long",
  625. "bad length", "bad key update", "mixed handshake and non handshake data",
  626. "ccs received early", "data between ccs and finished",
  627. "packet length too long", "too many warn alerts", "record too small",
  628. и "got a fin before a ccs"
  629. понижен с уровня crit до info.
  630. </para>
  631. <para lang="en">
  632. the logging level of the
  633. "data length too long", "length too short", "bad legacy version",
  634. "no shared signature algorithms", "bad digest length",
  635. "missing sigalgs extension", "encrypted length too long",
  636. "bad length", "bad key update", "mixed handshake and non handshake data",
  637. "ccs received early", "data between ccs and finished",
  638. "packet length too long", "too many warn alerts", "record too small",
  639. and "got a fin before a ccs" SSL errors
  640. has been lowered from "crit" to "info".
  641. </para>
  642. </change>

  643. <change type="bugfix">
  644. <para lang="ru">
  645. при использовании HTTP/2 и директивы error_page
  646. для перенаправления ошибок с кодом 400
  647. могла происходить утечка сокетов.
  648. </para>
  649. <para lang="en">
  650. a socket leak might occur
  651. when using HTTP/2 and the "error_page" directive
  652. to redirect errors with code 400.
  653. </para>
  654. </change>

  655. <change type="bugfix">
  656. <para lang="ru">
  657. сообщения об ошибках записи в syslog
  658. не содержали информации о том, что
  659. ошибки происходили в процессе записи в syslog.<br/>
  660. Спасибо Safar Safarly.
  661. </para>
  662. <para lang="en">
  663. messages about logging to syslog errors
  664. did not contain information
  665. that the errors happened while logging to syslog.<br/>
  666. Thanks to Safar Safarly.
  667. </para>
  668. </change>

  669. <change type="workaround">
  670. <para lang="ru">
  671. при использовании zlib-ng
  672. в логах появлялись сообщения "gzip filter failed to use preallocated memory".
  673. </para>
  674. <para lang="en">
  675. "gzip filter failed to use preallocated memory" alerts appeared in logs
  676. when using zlib-ng.
  677. </para>
  678. </change>

  679. <change type="bugfix">
  680. <para lang="ru">
  681. в почтовом прокси-сервере.
  682. </para>
  683. <para lang="en">
  684. in the mail proxy server.
  685. </para>
  686. </change>

  687. </changes>


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

  689. <change type="bugfix">
  690. <para lang="ru">
  691. при чтении заголовка протокола PROXY версии 2, содержащего
  692. большое количество TLV, могла возникать ошибка.
  693. </para>
  694. <para lang="en">
  695. an error might occur when reading PROXY protocol version 2 header
  696. with large number of TLVs.
  697. </para>
  698. </change>

  699. <change type="bugfix">
  700. <para lang="ru">
  701. при использовании SSI для обработки подзапросов, созданных другими модулями,
  702. в рабочем процессе мог произойти segmentation fault.<br/>
  703. Спасибо Ciel Zhao.
  704. </para>
  705. <para lang="en">
  706. a segmentation fault might occur in a worker process
  707. if SSI was used to process subrequests created by other modules.<br/>
  708. Thanks to Ciel Zhao.
  709. </para>
  710. </change>

  711. <change type="workaround">
  712. <para lang="ru">
  713. теперь, если при преобразовании в адреса имени хоста,
  714. указанного в директиве listen, возвращается несколько адресов,
  715. nginx игнорирует дубликаты среди этих адресов.
  716. </para>
  717. <para lang="en">
  718. when a hostname used in the "listen" directive
  719. resolves to multiple addresses,
  720. nginx now ignores duplicates within these addresses.
  721. </para>
  722. </change>

  723. <change type="bugfix">
  724. <para lang="ru">
  725. nginx мог нагружать процессор
  726. при небуферизированном проксировании,
  727. если использовались SSL-соединения с бэкендами.
  728. </para>
  729. <para lang="en">
  730. nginx might hog CPU
  731. during unbuffered proxying
  732. if SSL connections to backends were used.
  733. </para>
  734. </change>

  735. </changes>


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

  737. <change type="security">
  738. <para lang="ru">
  739. обработка специально созданного mp4-файла модулем ngx_http_mp4_module
  740. могла приводить к падению рабочего процесса,
  741. отправке клиенту части содержимого памяти рабочего процесса,
  742. а также потенциально могла иметь другие последствия
  743. (CVE-2022-41741, CVE-2022-41742).
  744. </para>
  745. <para lang="en">
  746. processing of a specially crafted mp4 file by the ngx_http_mp4_module
  747. might cause a worker process crash,
  748. worker process memory disclosure,
  749. or might have potential other impact
  750. (CVE-2022-41741, CVE-2022-41742).
  751. </para>
  752. </change>

  753. <change type="feature">
  754. <para lang="ru">
  755. переменные "$proxy_protocol_tlv_...".
  756. </para>
  757. <para lang="en">
  758. the "$proxy_protocol_tlv_..." variables.
  759. </para>
  760. </change>

  761. <change type="feature">
  762. <para lang="ru">
  763. ключи шифрования TLS session tickets теперь автоматически меняются
  764. при использовании разделяемой памяти в ssl_session_cache.
  765. </para>
  766. <para lang="en">
  767. TLS session tickets encryption keys are now automatically rotated
  768. when using shared memory in the "ssl_session_cache" directive.
  769. </para>
  770. </change>

  771. <change type="change">
  772. <para lang="ru">
  773. уровень логгирования ошибок SSL "bad record type"
  774. понижен с уровня crit до info.<br/>
  775. Спасибо Murilo Andrade.
  776. </para>
  777. <para lang="en">
  778. the logging level of the "bad record type" SSL errors
  779. has been lowered from "crit" to "info".<br/>
  780. Thanks to Murilo Andrade.
  781. </para>
  782. </change>

  783. <change type="change">
  784. <para lang="ru">
  785. теперь при использовании разделяемой памяти в ssl_session_cache
  786. сообщения "could not allocate new session"
  787. логгируются на уровне warn вместо alert
  788. и не чаще одного раза в секунду.
  789. </para>
  790. <para lang="en">
  791. now when using shared memory in the "ssl_session_cache" directive
  792. the "could not allocate new session" errors
  793. are logged at the "warn" level instead of "alert"
  794. and not more often than once per second.
  795. </para>
  796. </change>

  797. <change type="bugfix">
  798. <para lang="ru">
  799. nginx/Windows не собирался с OpenSSL 3.0.x.
  800. </para>
  801. <para lang="en">
  802. nginx/Windows could not be built with OpenSSL 3.0.x.
  803. </para>
  804. </change>

  805. <change type="bugfix">
  806. <para lang="ru">
  807. в логгировании ошибок протокола PROXY.<br/>
  808. Спасибо Сергею Брестеру.
  809. </para>
  810. <para lang="en">
  811. in logging of the PROXY protocol errors.<br/>
  812. Thanks to Sergey Brester.
  813. </para>
  814. </change>

  815. <change type="workaround">
  816. <para lang="ru">
  817. при использовании TLSv1.3 с OpenSSL
  818. разделяемая память из ssl_session_cache расходовалась
  819. в том числе на сессии, использующие TLS session tickets.
  820. </para>
  821. <para lang="en">
  822. shared memory from the "ssl_session_cache" directive
  823. was spent on sessions using TLS session tickets
  824. when using TLSv1.3 with OpenSSL.
  825. </para>
  826. </change>

  827. <change type="workaround">
  828. <para lang="ru">
  829. таймаут, заданный с помощью директивы ssl_session_timeout,
  830. не работал при использовании TLSv1.3 с OpenSSL или BoringSSL.
  831. </para>
  832. <para lang="en">
  833. timeout specified with the "ssl_session_timeout" directive
  834. did not work when using TLSv1.3 with OpenSSL or BoringSSL.
  835. </para>
  836. </change>

  837. </changes>


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

  839. <change type="feature">
  840. <para lang="ru">
  841. оптимизация использования памяти
  842. в конфигурациях с SSL-проксированием.
  843. </para>
  844. <para lang="en">
  845. memory usage optimization
  846. in configurations with SSL proxying.
  847. </para>
  848. </change>

  849. <change type="feature">
  850. <para lang="ru">
  851. теперь с помощью параметра "ipv4=off" директивы "resolver"
  852. можно запретить поиск IPv4-адресов при преобразовании имён в адреса.
  853. </para>
  854. <para lang="en">
  855. looking up of IPv4 addresses while resolving now can be disabled
  856. with the "ipv4=off" parameter of the "resolver" directive.
  857. </para>
  858. </change>

  859. <change type="change">
  860. <para lang="ru">
  861. уровень логгирования ошибок SSL "bad key share", "bad extension",
  862. "bad cipher" и "bad ecpoint"
  863. понижен с уровня crit до info.
  864. </para>
  865. <para lang="en">
  866. the logging level of the "bad key share", "bad extension",
  867. "bad cipher", and "bad ecpoint" SSL errors
  868. has been lowered from "crit" to "info".
  869. </para>
  870. </change>

  871. <change type="bugfix">
  872. <para lang="ru">
  873. при возврате диапазонов
  874. nginx не удалял строку заголовка "Content-Range",
  875. если она присутствовала в исходном ответе бэкенда.
  876. </para>
  877. <para lang="en">
  878. while returning byte ranges
  879. nginx did not remove the "Content-Range" header line
  880. if it was present in the original backend response.
  881. </para>
  882. </change>

  883. <change type="bugfix">
  884. <para lang="ru">
  885. проксированный ответ мог быть отправлен не полностью
  886. при переконфигурации на Linux;
  887. ошибка появилась в 1.17.5.
  888. </para>
  889. <para lang="en">
  890. a proxied response might be truncated
  891. during reconfiguration on Linux;
  892. the bug had appeared in 1.17.5.
  893. </para>
  894. </change>

  895. </changes>


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

  897. <change>
  898. <para lang="ru">
  899. Изменение во внутреннем API:
  900. теперь строки заголовков представлены связными списками.
  901. </para>
  902. <para lang="en">
  903. Change in internal API:
  904. now header lines are represented as linked lists.
  905. </para>
  906. </change>

  907. <change type="change">
  908. <para lang="ru">
  909. теперь nginx объединяет произвольные строки заголовков с одинаковыми именами
  910. при отправке на FastCGI-, SCGI- и uwsgi-бэкенды,
  911. в методе $r->header_in() модуля ngx_http_perl_module,
  912. и при доступе через переменные "$http_...", "$sent_http_...",
  913. "$sent_trailer_...", "$upstream_http_..." и "$upstream_trailer_...".
  914. </para>
  915. <para lang="en">
  916. now nginx combines arbitrary header lines with identical names
  917. when sending to FastCGI, SCGI, and uwsgi backends,
  918. in the $r->header_in() method of the ngx_http_perl_module,
  919. and during lookup of the "$http_...", "$sent_http_...",
  920. "$sent_trailer_...", "$upstream_http_...", and "$upstream_trailer_..."
  921. variables.
  922. </para>
  923. </change>

  924. <change type="bugfix">
  925. <para lang="ru">
  926. если в заголовке ответа бэкенда было несколько строк "Vary",
  927. при кэшировании nginx учитывал только последнюю из них.
  928. </para>
  929. <para lang="en">
  930. if there were multiple "Vary" header lines in the backend response,
  931. nginx only used the last of them when caching.
  932. </para>
  933. </change>

  934. <change type="bugfix">
  935. <para lang="ru">
  936. если в заголовке ответа бэкенда было несколько строк "WWW-Authenticate"
  937. и использовался перехват ошибок с кодом 401 от бэкенда
  938. или директива auth_request,
  939. nginx пересылал клиенту только первую из этих строк.
  940. </para>
  941. <para lang="en">
  942. if there were multiple "WWW-Authenticate" header lines in the backend response
  943. and errors with code 401 were intercepted
  944. or the "auth_request" directive was used,
  945. nginx only sent the first of the header lines to the client.
  946. </para>
  947. </change>

  948. <change type="change">
  949. <para lang="ru">
  950. уровень логгирования ошибок SSL "application data after close notify"
  951. понижен с уровня crit до info.
  952. </para>
  953. <para lang="en">
  954. the logging level of the "application data after close notify" SSL errors
  955. has been lowered from "crit" to "info".
  956. </para>
  957. </change>

  958. <change type="bugfix">
  959. <para lang="ru">
  960. соединения могли зависать, если nginx был собран на Linux 2.6.17 и новее,
  961. а использовался на системах без поддержки EPOLLRDHUP, в частности, на
  962. системах с эмуляцией epoll;
  963. ошибка появилась в 1.17.5.<br/>
  964. Спасибо Marcus Ball.
  965. </para>
  966. <para lang="en">
  967. connections might hang if nginx was built on Linux 2.6.17 or newer,
  968. but was used on systems without EPOLLRDHUP support, notably with epoll
  969. emulation layers;
  970. the bug had appeared in 1.17.5.<br/>
  971. Thanks to Marcus Ball.
  972. </para>
  973. </change>

  974. <change type="bugfix">
  975. <para lang="ru">
  976. nginx не кэшировал ответ,
  977. если строка заголовка ответа "Expires" запрещала кэширование,
  978. а последующая строка заголовка "Cache-Control" разрешала кэширование.
  979. </para>
  980. <para lang="en">
  981. nginx did not cache the response
  982. if the "Expires" response header line disabled caching,
  983. but following "Cache-Control" header line enabled caching.
  984. </para>
  985. </change>

  986. </changes>


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

  988. <change type="bugfix">
  989. <para lang="ru">
  990. при использование EPOLLEXCLUSIVE на Linux
  991. распределение клиентских соединений между рабочими процессами
  992. было неравномерным.
  993. </para>
  994. <para lang="en">
  995. when using EPOLLEXCLUSIVE on Linux
  996. client connections were unevenly distributed
  997. among worker processes.
  998. </para>
  999. </change>

  1000. <change type="bugfix">
  1001. <para lang="ru">
  1002. во время плавного завершения старых рабочих процессов
  1003. nginx возвращал в ответах строку заголовка "Connection: keep-alive".
  1004. </para>
  1005. <para lang="en">
  1006. nginx returned the "Connection: keep-alive" header line in responses
  1007. during graceful shutdown of old worker processes.
  1008. </para>
  1009. </change>

  1010. <change type="bugfix">
  1011. <para lang="ru">
  1012. в директиве ssl_session_ticket_key при использовании TLSv1.3.
  1013. </para>
  1014. <para lang="en">
  1015. in the "ssl_session_ticket_key" when using TLSv1.3.
  1016. </para>
  1017. </change>

  1018. </changes>


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

  1020. <change type="change">
  1021. <para lang="ru">
  1022. теперь nginx по умолчанию собирается с библиотекой PCRE2.
  1023. </para>
  1024. <para lang="en">
  1025. now nginx is built with the PCRE2 library by default.
  1026. </para>
  1027. </change>

  1028. <change type="change">
  1029. <para lang="ru">
  1030. теперь nginx всегда использует sendfile(SF_NODISKIO) на FreeBSD.
  1031. </para>
  1032. <para lang="en">
  1033. now nginx always uses sendfile(SF_NODISKIO) on FreeBSD.
  1034. </para>
  1035. </change>

  1036. <change type="feature">
  1037. <para lang="ru">
  1038. поддержка sendfile(SF_NOCACHE) на FreeBSD.
  1039. </para>
  1040. <para lang="en">
  1041. support for sendfile(SF_NOCACHE) on FreeBSD.
  1042. </para>
  1043. </change>

  1044. <change type="feature">
  1045. <para lang="ru">
  1046. переменная $ssl_curve.
  1047. </para>
  1048. <para lang="en">
  1049. the $ssl_curve variable.
  1050. </para>
  1051. </change>

  1052. <change type="bugfix">
  1053. <para lang="ru">
  1054. при использовании HTTP/2 без SSL вместе с директивами sendfile и aio
  1055. соединения могли зависать.
  1056. </para>
  1057. <para lang="en">
  1058. connections might hang
  1059. when using HTTP/2 without SSL with the "sendfile" and "aio" directives.
  1060. </para>
  1061. </change>

  1062. </changes>


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

  1064. <change type="change">
  1065. <para lang="ru">
  1066. поддержка NPN вместо ALPN для установления HTTP/2-соединений
  1067. упразднена.
  1068. </para>
  1069. <para lang="en">
  1070. support for NPN instead of ALPN to establish HTTP/2 connections
  1071. has been removed.
  1072. </para>
  1073. </change>

  1074. <change type="change">
  1075. <para lang="ru">
  1076. теперь nginx закрывает SSL соединение, если клиент использует ALPN,
  1077. но nginx не поддерживает ни один из присланных клиентом протоколов.
  1078. </para>
  1079. <para lang="en">
  1080. now nginx rejects SSL connections if ALPN is used by the client,
  1081. but no supported protocols can be negotiated.
  1082. </para>
  1083. </change>

  1084. <change type="change">
  1085. <para lang="ru">
  1086. в директиве sendfile_max_chunk значение по умолчанию
  1087. изменено на 2 мегабайта.
  1088. </para>
  1089. <para lang="en">
  1090. the default value of the "sendfile_max_chunk" directive
  1091. was changed to 2 megabytes.
  1092. </para>
  1093. </change>

  1094. <change type="feature">
  1095. <para lang="ru">
  1096. директива proxy_half_close в модуле stream.
  1097. </para>
  1098. <para lang="en">
  1099. the "proxy_half_close" directive in the stream module.
  1100. </para>
  1101. </change>

  1102. <change type="feature">
  1103. <para lang="ru">
  1104. директива ssl_alpn в модуле stream.
  1105. </para>
  1106. <para lang="en">
  1107. the "ssl_alpn" directive in the stream module.
  1108. </para>
  1109. </change>

  1110. <change type="feature">
  1111. <para lang="ru">
  1112. переменная $ssl_alpn_protocol.
  1113. </para>
  1114. <para lang="en">
  1115. the $ssl_alpn_protocol variable.
  1116. </para>
  1117. </change>

  1118. <change type="feature">
  1119. <para lang="ru">
  1120. поддержка SSL_sendfile() при использовании OpenSSL 3.0.
  1121. </para>
  1122. <para lang="en">
  1123. support for SSL_sendfile() when using OpenSSL 3.0.
  1124. </para>
  1125. </change>

  1126. <change type="feature">
  1127. <para lang="ru">
  1128. директива mp4_start_key_frame в модуле ngx_http_mp4_module.<br/>
  1129. Спасибо Tracey Jaquith.
  1130. </para>
  1131. <para lang="en">
  1132. the "mp4_start_key_frame" directive in the ngx_http_mp4_module.<br/>
  1133. Thanks to Tracey Jaquith.
  1134. </para>
  1135. </change>

  1136. <change type="bugfix">
  1137. <para lang="ru">
  1138. в переменной $content_length при использовании chunked transfer encoding.
  1139. </para>
  1140. <para lang="en">
  1141. in the $content_length variable when using chunked transfer encoding.
  1142. </para>
  1143. </change>

  1144. <change type="bugfix">
  1145. <para lang="ru">
  1146. при получении ответа некорректной длины от проксируемого бэкенда
  1147. nginx мог тем не менее закэшировать соединение.<br/>
  1148. Спасибо Awdhesh Mathpal.
  1149. </para>
  1150. <para lang="en">
  1151. after receiving a response with incorrect length from a proxied backend
  1152. nginx might nevertheless cache the connection.<br/>
  1153. Thanks to Awdhesh Mathpal.
  1154. </para>
  1155. </change>

  1156. <change type="bugfix">
  1157. <para lang="ru">
  1158. некорректные заголовки от бэкендов
  1159. логгировались на уровне info вместо error;
  1160. ошибка появилась в 1.21.1.
  1161. </para>
  1162. <para lang="en">
  1163. invalid headers from backends
  1164. were logged at the "info" level instead of "error";
  1165. the bug had appeared in 1.21.1.
  1166. </para>
  1167. </change>

  1168. <change type="bugfix">
  1169. <para lang="ru">
  1170. при использовании HTTP/2 и директивы aio_write
  1171. запросы могли зависать.
  1172. </para>
  1173. <para lang="en">
  1174. requests might hang
  1175. when using HTTP/2 and the "aio_write" directive.
  1176. </para>
  1177. </change>

  1178. </changes>


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

  1180. <change type="change">
  1181. <para lang="ru">
  1182. оптимизация чтения тела запроса
  1183. при использовании HTTP/2.
  1184. </para>
  1185. <para lang="en">
  1186. optimization of client request body reading
  1187. when using HTTP/2.
  1188. </para>
  1189. </change>

  1190. <change type="bugfix">
  1191. <para lang="ru">
  1192. во внутреннем API для обработки тела запроса
  1193. при использовании HTTP/2 и буферизации обрабатываемых данных.
  1194. </para>
  1195. <para lang="en">
  1196. in request body filters internal API
  1197. when using HTTP/2 and buffering of the data being processed.
  1198. </para>
  1199. </change>

  1200. </changes>


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

  1202. <change type="change">
  1203. <para lang="ru">
  1204. теперь nginx возвращает ошибку,
  1205. если в запросе по протоколу HTTP/1.0 присутствует
  1206. строка заголовка "Transfer-Encoding".
  1207. </para>
  1208. <para lang="en">
  1209. now nginx rejects HTTP/1.0 requests
  1210. with the "Transfer-Encoding" header line.
  1211. </para>
  1212. </change>

  1213. <change type="change">
  1214. <para lang="ru">
  1215. экспортные шифры больше не поддерживаются.
  1216. </para>
  1217. <para lang="en">
  1218. export ciphers are no longer supported.
  1219. </para>
  1220. </change>

  1221. <change type="feature">
  1222. <para lang="ru">
  1223. совместимость с OpenSSL 3.0.
  1224. </para>
  1225. <para lang="en">
  1226. OpenSSL 3.0 compatibility.
  1227. </para>
  1228. </change>

  1229. <change type="feature">
  1230. <para lang="ru">
  1231. теперь серверу аутентификации почтового прокси-сервера
  1232. передаются строки заголовка "Auth-SSL-Protocol" и "Auth-SSL-Cipher".<br/>
  1233. Спасибо Rob Mueller.
  1234. </para>
  1235. <para lang="en">
  1236. the "Auth-SSL-Protocol" and "Auth-SSL-Cipher" header lines
  1237. are now passed to the mail proxy authentication server.<br/>
  1238. Thanks to Rob Mueller.
  1239. </para>
  1240. </change>

  1241. <change type="feature">
  1242. <para lang="ru">
  1243. API для обработки тела запроса
  1244. теперь позволяет буферизировать обрабатываемые данные.
  1245. </para>
  1246. <para lang="en">
  1247. request body filters API
  1248. now permits buffering of the data being processed.
  1249. </para>
  1250. </change>

  1251. <change type="bugfix">
  1252. <para lang="ru">
  1253. SSL-соединения к бэкендам в модуле stream
  1254. могли зависать после SSL handshake.
  1255. </para>
  1256. <para lang="en">
  1257. backend SSL connections in the stream module
  1258. might hang after an SSL handshake.
  1259. </para>
  1260. </change>

  1261. <change type="bugfix">
  1262. <para lang="ru">
  1263. уровень безопасности, доступный в OpenSSL 1.1.0 и новее,
  1264. не учитывался при загрузке сертификатов сервера,
  1265. если был задан через "@SECLEVEL=N" в директиве ssl_ciphers.
  1266. </para>
  1267. <para lang="en">
  1268. the security level, which is available in OpenSSL 1.1.0 or newer,
  1269. did not affect loading of the server certificates
  1270. when set with "@SECLEVEL=N" in the "ssl_ciphers" directive.
  1271. </para>
  1272. </change>

  1273. <change type="bugfix">
  1274. <para lang="ru">
  1275. SSL-соединения с gRPC-бэкендами могли зависать,
  1276. если использовались методы select, poll или /dev/poll.
  1277. </para>
  1278. <para lang="en">
  1279. SSL connections with gRPC backends might hang
  1280. if select, poll, or /dev/poll methods were used.
  1281. </para>
  1282. </change>

  1283. <change type="bugfix">
  1284. <para lang="ru">
  1285. при использовании HTTP/2
  1286. тело запроса всегда записывалось на диск,
  1287. если в запросе не было строки заголовка "Content-Length".
  1288. </para>
  1289. <para lang="en">
  1290. when using HTTP/2
  1291. client request body was always written to disk
  1292. if the "Content-Length" header line was not present in the request.
  1293. </para>
  1294. </change>

  1295. </changes>


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

  1297. <change type="change">
  1298. <para lang="ru">
  1299. теперь nginx для метода CONNECT всегда возвращает ошибку.
  1300. </para>
  1301. <para lang="en">
  1302. now nginx always returns an error for the CONNECT method.
  1303. </para>
  1304. </change>

  1305. <change type="change">
  1306. <para lang="ru">
  1307. теперь nginx всегда возвращает ошибку,
  1308. если в запросе одновременно присутствуют строки заголовка "Content-Length"
  1309. и "Transfer-Encoding".
  1310. </para>
  1311. <para lang="en">
  1312. now nginx always returns an error
  1313. if both "Content-Length" and "Transfer-Encoding" header lines
  1314. are present in the request.
  1315. </para>
  1316. </change>

  1317. <change type="change">
  1318. <para lang="ru">
  1319. теперь nginx всегда возвращает ошибку,
  1320. если в строке запроса используются пробелы или управляющие символы.
  1321. </para>
  1322. <para lang="en">
  1323. now nginx always returns an error
  1324. if spaces or control characters are used in the request line.
  1325. </para>
  1326. </change>

  1327. <change type="change">
  1328. <para lang="ru">
  1329. теперь nginx всегда возвращает ошибку,
  1330. если в имени заголовка используются пробелы или управляющие символы.
  1331. </para>
  1332. <para lang="en">
  1333. now nginx always returns an error
  1334. if spaces or control characters are used in a header name.
  1335. </para>
  1336. </change>

  1337. <change type="change">
  1338. <para lang="ru">
  1339. теперь nginx всегда возвращает ошибку,
  1340. если в строке "Host" заголовка запроса
  1341. используются пробелы или управляющие символы.
  1342. </para>
  1343. <para lang="en">
  1344. now nginx always returns an error
  1345. if spaces or control characters
  1346. are used in the "Host" request header line.
  1347. </para>
  1348. </change>

  1349. <change type="change">
  1350. <para lang="ru">
  1351. оптимизация тестирования конфигурации
  1352. при использовании большого количества listen-сокетов.
  1353. </para>
  1354. <para lang="en">
  1355. optimization of configuration testing
  1356. when using many listening sockets.
  1357. </para>
  1358. </change>

  1359. <change type="bugfix">
  1360. <para lang="ru">
  1361. nginx не экранировал
  1362. символы """, "&lt;", ">", "\", "^", "`", "{", "|", и "}"
  1363. при проксировании с изменением URI запроса.
  1364. </para>
  1365. <para lang="en">
  1366. nginx did not escape
  1367. """, "&lt;", ">", "\", "^", "`", "{", "|", and "}" characters
  1368. when proxying with changed URI.
  1369. </para>
  1370. </change>

  1371. <change type="bugfix">
  1372. <para lang="ru">
  1373. SSL-переменные могли быть пустыми при записи в лог;
  1374. ошибка появилась в 1.19.5.
  1375. </para>
  1376. <para lang="en">
  1377. SSL variables might be empty when used in logs;
  1378. the bug had appeared in 1.19.5.
  1379. </para>
  1380. </change>

  1381. <change type="bugfix">
  1382. <para lang="ru">
  1383. keepalive-соединения с gRPC-бэкендами могли не закрываться
  1384. после получения GOAWAY-фрейма.
  1385. </para>
  1386. <para lang="en">
  1387. keepalive connections with gRPC backends might not be closed
  1388. after receiving a GOAWAY frame.
  1389. </para>
  1390. </change>

  1391. <change type="bugfix">
  1392. <para lang="ru">
  1393. уменьшено потребление памяти для долгоживущих запросов
  1394. при проксировании с использованием более 64 буферов.
  1395. </para>
  1396. <para lang="en">
  1397. reduced memory consumption for long-lived requests
  1398. when proxying with more than 64 buffers.
  1399. </para>
  1400. </change>

  1401. </changes>


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

  1403. <change type="security">
  1404. <para lang="ru">
  1405. при использовании директивы resolver
  1406. во время обработки ответа DNS-сервера
  1407. могла происходить перезапись одного байта памяти,
  1408. что позволяло атакующему,
  1409. имеющему возможность подделывать UDP-пакеты от DNS-сервера,
  1410. вызвать падение рабочего процесса
  1411. или, потенциально, выполнение произвольного кода (CVE-2021-23017).
  1412. </para>
  1413. <para lang="en">
  1414. 1-byte memory overwrite might occur
  1415. during DNS server response processing
  1416. if the "resolver" directive was used,
  1417. allowing an attacker
  1418. who is able to forge UDP packets from the DNS server
  1419. to cause worker process crash
  1420. or, potentially, arbitrary code execution (CVE-2021-23017).
  1421. </para>
  1422. </change>

  1423. <change type="feature">
  1424. <para lang="ru">
  1425. директивы proxy_ssl_certificate, proxy_ssl_certificate_key,
  1426. grpc_ssl_certificate, grpc_ssl_certificate_key,
  1427. uwsgi_ssl_certificate и uwsgi_ssl_certificate_key
  1428. поддерживают переменные.
  1429. </para>
  1430. <para lang="en">
  1431. variables support
  1432. in the "proxy_ssl_certificate", "proxy_ssl_certificate_key"
  1433. "grpc_ssl_certificate", "grpc_ssl_certificate_key",
  1434. "uwsgi_ssl_certificate", and "uwsgi_ssl_certificate_key" directives.
  1435. </para>
  1436. </change>

  1437. <change type="feature">
  1438. <para lang="ru">
  1439. директива max_errors в почтовом прокси-сервере.
  1440. </para>
  1441. <para lang="en">
  1442. the "max_errors" directive in the mail proxy module.
  1443. </para>
  1444. </change>

  1445. <change type="feature">
  1446. <para lang="ru">
  1447. почтовый прокси-сервер поддерживает POP3 и IMAP pipelining.
  1448. </para>
  1449. <para lang="en">
  1450. the mail proxy module supports POP3 and IMAP pipelining.
  1451. </para>
  1452. </change>

  1453. <change type="feature">
  1454. <para lang="ru">
  1455. параметр fastopen директивы listen в модуле stream.<br/>
  1456. Спасибо Anbang Wen.
  1457. </para>
  1458. <para lang="en">
  1459. the "fastopen" parameter of the "listen" directive in the stream module.<br/>
  1460. Thanks to Anbang Wen.
  1461. </para>
  1462. </change>

  1463. <change type="bugfix">
  1464. <para lang="ru">
  1465. специальные символы не экранировались
  1466. при автоматическом перенаправлении с добавлением завершающего слэша.
  1467. </para>
  1468. <para lang="en">
  1469. special characters were not escaped
  1470. during automatic redirect with appended trailing slash.
  1471. </para>
  1472. </change>

  1473. <change type="bugfix">
  1474. <para lang="ru">
  1475. при использовании SMTP pipelining
  1476. соединения с клиентами в почтовом прокси-сервере
  1477. могли неожиданно закрываться.
  1478. </para>
  1479. <para lang="en">
  1480. connections with clients in the mail proxy module
  1481. might be closed unexpectedly
  1482. when using SMTP pipelining.
  1483. </para>
  1484. </change>

  1485. </changes>


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

  1487. <change type="change">
  1488. <para lang="ru">
  1489. в директиве keepalive_requests значение по умолчанию изменено на 1000.
  1490. </para>
  1491. <para lang="en">
  1492. the default value of the "keepalive_requests" directive was changed to 1000.
  1493. </para>
  1494. </change>

  1495. <change type="feature">
  1496. <para lang="ru">
  1497. директива keepalive_time.
  1498. </para>
  1499. <para lang="en">
  1500. the "keepalive_time" directive.
  1501. </para>
  1502. </change>

  1503. <change type="feature">
  1504. <para lang="ru">
  1505. переменная $connection_time.
  1506. </para>
  1507. <para lang="en">
  1508. the $connection_time variable.
  1509. </para>
  1510. </change>

  1511. <change type="workaround">
  1512. <para lang="ru">
  1513. при использовании zlib-ng
  1514. в логах появлялись сообщения "gzip filter failed to use preallocated memory".
  1515. </para>
  1516. <para lang="en">
  1517. "gzip filter failed to use preallocated memory" alerts appeared in logs
  1518. when using zlib-ng.
  1519. </para>
  1520. </change>

  1521. </changes>


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

  1523. <change type="bugfix">
  1524. <para lang="ru">
  1525. nginx не собирался с почтовым прокси-сервером,
  1526. но без модуля ngx_mail_ssl_module;
  1527. ошибка появилась в 1.19.8.
  1528. </para>
  1529. <para lang="en">
  1530. nginx could not be built with the mail proxy module,
  1531. but without the ngx_mail_ssl_module;
  1532. the bug had appeared in 1.19.8.
  1533. </para>
  1534. </change>

  1535. <change type="bugfix">
  1536. <para lang="ru">
  1537. при работе с gRPC-бэкендами могли возникать ошибки
  1538. "upstream sent response body larger than indicated content length";
  1539. ошибка появилась в 1.19.1.
  1540. </para>
  1541. <para lang="en">
  1542. "upstream sent response body larger than indicated content length"
  1543. errors might occur when working with gRPC backends;
  1544. the bug had appeared in 1.19.1.
  1545. </para>
  1546. </change>

  1547. <change type="bugfix">
  1548. <para lang="ru">
  1549. если клиент закрывал соединение в момент отбрасывания тела запроса,
  1550. nginx мог не закрыть соединение до истечения keepalive-таймаута.
  1551. </para>
  1552. <para lang="en">
  1553. nginx might not close a connection till keepalive timeout expiration
  1554. if the connection was closed by the client while discarding the request body.
  1555. </para>
  1556. </change>

  1557. <change type="bugfix">
  1558. <para lang="ru">
  1559. при ожидании задержки limit_req или auth_delay, а также при работе с бэкендами
  1560. nginx мог не обнаружить, что соединение уже закрыто клиентом.
  1561. </para>
  1562. <para lang="en">
  1563. nginx might not detect that a connection was already closed by the client
  1564. when waiting for auth_delay or limit_req delay, or when working with backends.
  1565. </para>
  1566. </change>

  1567. <change type="bugfix">
  1568. <para lang="ru">
  1569. в методе обработки соединений eventport.
  1570. </para>
  1571. <para lang="en">
  1572. in the eventport method.
  1573. </para>
  1574. </change>

  1575. </changes>


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

  1577. <change type="feature">
  1578. <para lang="ru">
  1579. в директиве proxy_cookie_flags теперь
  1580. флаги можно задавать с помощью переменных.
  1581. </para>
  1582. <para lang="en">
  1583. flags in the "proxy_cookie_flags" directive
  1584. can now contain variables.
  1585. </para>
  1586. </change>

  1587. <change type="feature">
  1588. <para lang="ru">
  1589. параметр proxy_protocol в директиве listen,
  1590. директивы proxy_protocol и set_real_ip_from
  1591. в почтовом прокси-сервере.
  1592. </para>
  1593. <para lang="en">
  1594. the "proxy_protocol" parameter of the "listen" directive,
  1595. the "proxy_protocol" and "set_real_ip_from" directives
  1596. in mail proxy.
  1597. </para>
  1598. </change>

  1599. <change type="bugfix">
  1600. <para lang="ru">
  1601. HTTP/2-соединения сразу закрывались
  1602. при использовании "keepalive_timeout 0";
  1603. ошибка появилась в 1.19.7.
  1604. </para>
  1605. <para lang="en">
  1606. HTTP/2 connections were immediately closed
  1607. when using "keepalive_timeout 0";
  1608. the bug had appeared in 1.19.7.
  1609. </para>
  1610. </change>

  1611. <change type="bugfix">
  1612. <para lang="ru">
  1613. некоторые ошибки логгировались как неизвестные,
  1614. если nginx был собран с glibc 2.32.
  1615. </para>
  1616. <para lang="en">
  1617. some errors were logged as unknown
  1618. if nginx was built with glibc 2.32.
  1619. </para>
  1620. </change>

  1621. <change type="bugfix">
  1622. <para lang="ru">
  1623. в методе обработки соединений eventport.
  1624. </para>
  1625. <para lang="en">
  1626. in the eventport method.
  1627. </para>
  1628. </change>

  1629. </changes>


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

  1631. <change type="change">
  1632. <para lang="ru">
  1633. обработка соединений в HTTP/2 была изменена
  1634. и теперь более соответствует HTTP/1.x;
  1635. директивы http2_recv_timeout, http2_idle_timeout
  1636. и http2_max_requests упразднены,
  1637. вместо них следует использовать директивы
  1638. keepalive_timeout и keepalive_requests.
  1639. </para>
  1640. <para lang="en">
  1641. connections handling in HTTP/2 has been changed
  1642. to better match HTTP/1.x;
  1643. the "http2_recv_timeout", "http2_idle_timeout",
  1644. and "http2_max_requests" directives have been removed,
  1645. the "keepalive_timeout" and "keepalive_requests" directives
  1646. should be used instead.
  1647. </para>
  1648. </change>

  1649. <change type="change">
  1650. <para lang="ru">
  1651. директивы http2_max_field_size и http2_max_header_size упразднены,
  1652. вместо них следует использовать директиву large_client_header_buffers.
  1653. </para>
  1654. <para lang="en">
  1655. the "http2_max_field_size" and "http2_max_header_size" directives
  1656. have been removed,
  1657. the "large_client_header_buffers" directive should be used instead.
  1658. </para>
  1659. </change>

  1660. <change type="feature">
  1661. <para lang="ru">
  1662. теперь при исчерпании свободных соединений
  1663. nginx закрывает не только keepalive-соединения,
  1664. но и соединения в lingering close.
  1665. </para>
  1666. <para lang="en">
  1667. now, if free worker connections are exhausted,
  1668. nginx starts closing not only keepalive connections,
  1669. but also connections in lingering close.
  1670. </para>
  1671. </change>

  1672. <change type="bugfix">
  1673. <para lang="ru">
  1674. в логах могли появляться сообщения "zero size buf in output",
  1675. если бэкенд возвращал некорректный ответ
  1676. при небуферизированном проксировании;
  1677. ошибка появилась в 1.19.1.
  1678. </para>
  1679. <para lang="en">
  1680. "zero size buf in output" alerts might appear in logs
  1681. if an upstream server returned an incorrect response
  1682. during unbuffered proxying;
  1683. the bug had appeared in 1.19.1.
  1684. </para>
  1685. </change>

  1686. <change type="bugfix">
  1687. <para lang="ru">
  1688. при использовании директивы return
  1689. вместе с image_filter или xslt_stylesheet
  1690. HEAD-запросы обрабатывались некорректно.
  1691. </para>
  1692. <para lang="en">
  1693. HEAD requests were handled incorrectly
  1694. if the "return" directive was used
  1695. with the "image_filter" or "xslt_stylesheet" directives.
  1696. </para>
  1697. </change>

  1698. <change type="bugfix">
  1699. <para lang="ru">
  1700. в директиве add_trailer.
  1701. </para>
  1702. <para lang="en">
  1703. in the "add_trailer" directive.
  1704. </para>
  1705. </change>

  1706. </changes>


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

  1708. <change type="bugfix">
  1709. <para lang="ru">
  1710. ошибки "no live upstreams",
  1711. если server в блоке upstream был помечен как down.
  1712. </para>
  1713. <para lang="en">
  1714. "no live upstreams" errors
  1715. if a "server" inside "upstream" block was marked as "down".
  1716. </para>
  1717. </change>

  1718. <change type="bugfix">
  1719. <para lang="ru">
  1720. при использовании HTTPS в рабочем процессе мог произойти segmentation fault;
  1721. ошибка появилась в 1.19.5.
  1722. </para>
  1723. <para lang="en">
  1724. a segmentation fault might occur in a worker process if HTTPS was used;
  1725. the bug had appeared in 1.19.5.
  1726. </para>
  1727. </change>

  1728. <change type="bugfix">
  1729. <para lang="ru">
  1730. nginx возвращал ошибку 400 на запросы вида
  1731. <nobr>"GET http://example.com?args HTTP/1.0"</nobr>.
  1732. </para>
  1733. <para lang="en">
  1734. nginx returned the 400 response on requests like
  1735. <nobr>"GET http://example.com?args HTTP/1.0"</nobr>.
  1736. </para>
  1737. </change>

  1738. <change type="bugfix">
  1739. <para lang="ru">
  1740. в модулях ngx_http_flv_module и ngx_http_mp4_module.<br/>
  1741. Спасибо Chris Newton.
  1742. </para>
  1743. <para lang="en">
  1744. in the ngx_http_flv_module and ngx_http_mp4_module.<br/>
  1745. Thanks to Chris Newton.
  1746. </para>
  1747. </change>

  1748. </changes>


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

  1750. <change type="feature">
  1751. <para lang="ru">
  1752. ключ -e.
  1753. </para>
  1754. <para lang="en">
  1755. the -e switch.
  1756. </para>
  1757. </change>

  1758. <change type="feature">
  1759. <para lang="ru">
  1760. при сборке дополнительных модулей
  1761. теперь можно указывать одни и те же исходные файлы в разных модулях.
  1762. </para>
  1763. <para lang="en">
  1764. the same source files can now be specified in different modules
  1765. while building addon modules.
  1766. </para>
  1767. </change>

  1768. <change type="bugfix">
  1769. <para lang="ru">
  1770. SSL shutdown не работал
  1771. при закрытии соединений с ожиданием дополнительных данных (lingering close).
  1772. </para>
  1773. <para lang="en">
  1774. SSL shutdown did not work
  1775. when lingering close was used.
  1776. </para>
  1777. </change>

  1778. <change type="bugfix">
  1779. <para lang="ru">
  1780. при работе с gRPC-бэкендами
  1781. могли возникать ошибки "upstream sent frame for closed stream".
  1782. </para>
  1783. <para lang="en">
  1784. "upstream sent frame for closed stream" errors might occur
  1785. when working with gRPC backends.
  1786. </para>
  1787. </change>

  1788. <change type="bugfix">
  1789. <para lang="ru">
  1790. во внутреннем API для обработки тела запроса.
  1791. </para>
  1792. <para lang="en">
  1793. in request body filters internal API.
  1794. </para>
  1795. </change>

  1796. </changes>


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

  1798. <change type="feature">
  1799. <para lang="ru">
  1800. директивы ssl_conf_command, proxy_ssl_conf_command, grpc_ssl_conf_command
  1801. и uwsgi_ssl_conf_command.
  1802. </para>
  1803. <para lang="en">
  1804. the "ssl_conf_command", "proxy_ssl_conf_command", "grpc_ssl_conf_command",
  1805. and "uwsgi_ssl_conf_command" directives.
  1806. </para>
  1807. </change>

  1808. <change type="feature">
  1809. <para lang="ru">
  1810. директива ssl_reject_handshake.
  1811. </para>
  1812. <para lang="en">
  1813. the "ssl_reject_handshake" directive.
  1814. </para>
  1815. </change>

  1816. <change type="feature">
  1817. <para lang="ru">
  1818. директива proxy_smtp_auth в почтовом прокси-сервере.
  1819. </para>
  1820. <para lang="en">
  1821. the "proxy_smtp_auth" directive in mail proxy.
  1822. </para>
  1823. </change>

  1824. </changes>


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

  1826. <change type="feature">
  1827. <para lang="ru">
  1828. модуль ngx_stream_set_module.
  1829. </para>
  1830. <para lang="en">
  1831. the ngx_stream_set_module.
  1832. </para>
  1833. </change>

  1834. <change type="feature">
  1835. <para lang="ru">
  1836. директива proxy_cookie_flags.
  1837. </para>
  1838. <para lang="en">
  1839. the "proxy_cookie_flags" directive.
  1840. </para>
  1841. </change>

  1842. <change type="feature">
  1843. <para lang="ru">
  1844. директива userid_flags.
  1845. </para>
  1846. <para lang="en">
  1847. the "userid_flags" directive.
  1848. </para>
  1849. </change>

  1850. <change type="bugfix">
  1851. <para lang="ru">
  1852. расширение управления кэшированием stale-if-error
  1853. ошибочно применялось, если бэкенд возвращал ответ
  1854. с кодом 500, 502, 503, 504, 403, 404 или 429.
  1855. </para>
  1856. <para lang="en">
  1857. the "stale-if-error" cache control extension
  1858. was erroneously applied if backend returned a response
  1859. with status code 500, 502, 503, 504, 403, 404, or 429.
  1860. </para>
  1861. </change>

  1862. <change type="bugfix">
  1863. <para lang="ru">
  1864. если использовалось кэширование
  1865. и бэкенд возвращал ответы с строкой заголовка Vary,
  1866. в логах могли появляться сообщения "[crit] cache file ... has too long header".
  1867. </para>
  1868. <para lang="en">
  1869. "[crit] cache file ... has too long header" messages might appear in logs
  1870. if caching was used
  1871. and the backend returned responses with the "Vary" header line.
  1872. </para>
  1873. </change>

  1874. <change type="workaround">
  1875. <para lang="ru">
  1876. при использовании OpenSSL 1.1.1
  1877. в логах могли появляться сообщения "[crit] SSL_write() failed".
  1878. </para>
  1879. <para lang="en">
  1880. "[crit] SSL_write() failed" messages might appear in logs
  1881. when using OpenSSL 1.1.1.
  1882. </para>
  1883. </change>

  1884. <change type="bugfix">
  1885. <para lang="ru">
  1886. в логах могли появляться сообщения
  1887. "SSL_shutdown() failed (SSL: ... bad write retry)";
  1888. ошибка появилась в 1.19.2.
  1889. </para>
  1890. <para lang="en">
  1891. "SSL_shutdown() failed (SSL: ... bad write retry)"
  1892. messages might appear in logs;
  1893. the bug had appeared in 1.19.2.
  1894. </para>
  1895. </change>

  1896. <change type="bugfix">
  1897. <para lang="ru">
  1898. при использовании HTTP/2
  1899. в рабочем процессе мог произойти segmentation fault,
  1900. если ошибки с кодом 400 с помощью директивы error_page
  1901. перенаправлялись в проксируемый location.
  1902. </para>
  1903. <para lang="en">
  1904. a segmentation fault might occur in a worker process
  1905. when using HTTP/2
  1906. if errors with code 400 were redirected to a proxied location
  1907. using the "error_page" directive.
  1908. </para>
  1909. </change>

  1910. <change type="bugfix">
  1911. <para lang="ru">
  1912. утечки сокетов при использовании HTTP/2 и подзапросов в модуле njs.
  1913. </para>
  1914. <para lang="en">
  1915. socket leak when using HTTP/2 and subrequests in the njs module.
  1916. </para>
  1917. </change>

  1918. </changes>


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

  1920. <change type="change">
  1921. <para lang="ru">
  1922. теперь nginx начинает закрывать keepalive-соединения,
  1923. не дожидаясь исчерпания всех свободных соединений,
  1924. а также пишет об этом предупреждение в лог ошибок.
  1925. </para>
  1926. <para lang="en">
  1927. now nginx starts closing keepalive connections
  1928. before all free worker connections are exhausted,
  1929. and logs a warning about this to the error log.
  1930. </para>
  1931. </change>

  1932. <change type="change">
  1933. <para lang="ru">
  1934. оптимизация чтения тела запроса
  1935. при использовании chunked transfer encoding.
  1936. </para>
  1937. <para lang="en">
  1938. optimization of client request body reading
  1939. when using chunked transfer encoding.
  1940. </para>
  1941. </change>

  1942. <change type="bugfix">
  1943. <para lang="ru">
  1944. утечки памяти при использовании директивы ssl_ocsp.
  1945. </para>
  1946. <para lang="en">
  1947. memory leak if the "ssl_ocsp" directive was used.
  1948. </para>
  1949. </change>

  1950. <change type="bugfix">
  1951. <para lang="ru">
  1952. в логах могли появляться сообщения "zero size buf in output",
  1953. если FastCGI-сервер возвращал некорректный ответ;
  1954. ошибка появилась в 1.19.1.
  1955. </para>
  1956. <para lang="en">
  1957. "zero size buf in output" alerts might appear in logs
  1958. if a FastCGI server returned an incorrect response;
  1959. the bug had appeared in 1.19.1.
  1960. </para>
  1961. </change>

  1962. <change type="bugfix">
  1963. <para lang="ru">
  1964. в рабочем процессе мог произойти segmentation fault,
  1965. если размеры large_client_header_buffers отличались
  1966. в разных виртуальных серверах.
  1967. </para>
  1968. <para lang="en">
  1969. a segmentation fault might occur in a worker process
  1970. if different large_client_header_buffers sizes were used
  1971. in different virtual servers.
  1972. </para>
  1973. </change>

  1974. <change type="bugfix">
  1975. <para lang="ru">
  1976. SSL shutdown мог не работать.
  1977. </para>
  1978. <para lang="en">
  1979. SSL shutdown might not work.
  1980. </para>
  1981. </change>

  1982. <change type="bugfix">
  1983. <para lang="ru">
  1984. в логах могли появляться сообщения
  1985. "SSL_shutdown() failed (SSL: ... bad write retry)".
  1986. </para>
  1987. <para lang="en">
  1988. "SSL_shutdown() failed (SSL: ... bad write retry)"
  1989. messages might appear in logs.
  1990. </para>
  1991. </change>

  1992. <change type="bugfix">
  1993. <para lang="ru">
  1994. в модуле ngx_http_slice_module.
  1995. </para>
  1996. <para lang="en">
  1997. in the ngx_http_slice_module.
  1998. </para>
  1999. </change>

  2000. <change type="bugfix">
  2001. <para lang="ru">
  2002. в модуле ngx_http_xslt_filter_module.
  2003. </para>
  2004. <para lang="en">
  2005. in the ngx_http_xslt_filter_module.
  2006. </para>
  2007. </change>

  2008. </changes>


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

  2010. <change type="change">
  2011. <para lang="ru">
  2012. директивы lingering_close, lingering_time и lingering_timeout
  2013. теперь работают при использовании HTTP/2.
  2014. </para>
  2015. <para lang="en">
  2016. the "lingering_close", "lingering_time", and "lingering_timeout" directives
  2017. now work when using HTTP/2.
  2018. </para>
  2019. </change>

  2020. <change type="change">
  2021. <para lang="ru">
  2022. теперь лишние данные, присланные бэкендом, всегда отбрасываются.
  2023. </para>
  2024. <para lang="en">
  2025. now extra data sent by a backend are always discarded.
  2026. </para>
  2027. </change>

  2028. <change type="change">
  2029. <para lang="ru">
  2030. теперь при получении слишком короткого ответа от FastCGI-сервера
  2031. nginx пытается отправить клиенту доступную часть ответа,
  2032. после чего закрывает соединение с клиентом.
  2033. </para>
  2034. <para lang="en">
  2035. now after receiving a too short response from a FastCGI server
  2036. nginx tries to send the available part of the response to the client,
  2037. and then closes the client connection.
  2038. </para>
  2039. </change>

  2040. <change type="change">
  2041. <para lang="ru">
  2042. теперь при получении ответа некорректной длины от gRPC-бэкенда
  2043. nginx прекращает обработку ответа с ошибкой.
  2044. </para>
  2045. <para lang="en">
  2046. now after receiving a response with incorrect length from a gRPC backend
  2047. nginx stops response processing with an error.
  2048. </para>
  2049. </change>

  2050. <change type="feature">
  2051. <para lang="ru">
  2052. параметр min_free в директивах proxy_cache_path, fastcgi_cache_path,
  2053. scgi_cache_path и uwsgi_cache_path.<br/>
  2054. Спасибо Adam Bambuch.
  2055. </para>
  2056. <para lang="en">
  2057. the "min_free" parameter of the "proxy_cache_path", "fastcgi_cache_path",
  2058. "scgi_cache_path", and "uwsgi_cache_path" directives.<br/>
  2059. Thanks to Adam Bambuch.
  2060. </para>
  2061. </change>

  2062. <change type="bugfix">
  2063. <para lang="ru">
  2064. nginx не удалял unix domain listen-сокеты
  2065. при плавном завершении по сигналу SIGQUIT.
  2066. </para>
  2067. <para lang="en">
  2068. nginx did not delete unix domain listen sockets
  2069. during graceful shutdown on the SIGQUIT signal.
  2070. </para>
  2071. </change>

  2072. <change type="bugfix">
  2073. <para lang="ru">
  2074. UDP-пакеты нулевого размера не проксировались.
  2075. </para>
  2076. <para lang="en">
  2077. zero length UDP datagrams were not proxied.
  2078. </para>
  2079. </change>

  2080. <change type="bugfix">
  2081. <para lang="ru">
  2082. проксирование на uwsgi-бэкенды с использованием SSL могло не работать.<br/>
  2083. Спасибо Guanzhong Chen.
  2084. </para>
  2085. <para lang="en">
  2086. proxying to uwsgi backends using SSL might not work.<br/>
  2087. Thanks to Guanzhong Chen.
  2088. </para>
  2089. </change>

  2090. <change type="bugfix">
  2091. <para lang="ru">
  2092. в обработке ошибок при использовании директивы ssl_ocsp.
  2093. </para>
  2094. <para lang="en">
  2095. in error handling when using the "ssl_ocsp" directive.
  2096. </para>
  2097. </change>

  2098. <change type="bugfix">
  2099. <para lang="ru">
  2100. при использовании файловых систем XFS и NFS
  2101. размер кэша на диске мог считаться некорректно.
  2102. </para>
  2103. <para lang="en">
  2104. on XFS and NFS file systems
  2105. disk cache size might be calculated incorrectly.
  2106. </para>
  2107. </change>

  2108. <change type="bugfix">
  2109. <para lang="ru">
  2110. если сервер memcached возвращал некорректный ответ,
  2111. в логах могли появляться сообщения "negative size buf in writer".
  2112. </para>
  2113. <para lang="en">
  2114. "negative size buf in writer" alerts might appear in logs
  2115. if a memcached server returned a malformed response.
  2116. </para>
  2117. </change>

  2118. </changes>


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

  2120. <change type="feature">
  2121. <para lang="ru">
  2122. проверка клиентских сертификатов с помощью OCSP.
  2123. </para>
  2124. <para lang="en">
  2125. client certificate validation with OCSP.
  2126. </para>
  2127. </change>

  2128. <change type="bugfix">
  2129. <para lang="ru">
  2130. при работе с gRPC-бэкендами
  2131. могли возникать ошибки "upstream sent frame for closed stream".
  2132. </para>
  2133. <para lang="en">
  2134. "upstream sent frame for closed stream" errors might occur
  2135. when working with gRPC backends.
  2136. </para>
  2137. </change>

  2138. <change type="bugfix">
  2139. <para lang="ru">
  2140. OCSP stapling мог не работать,
  2141. если не была указана директива resolver.
  2142. </para>
  2143. <para lang="en">
  2144. OCSP stapling might not work
  2145. if the "resolver" directive was not specified.
  2146. </para>
  2147. </change>

  2148. <change type="bugfix">
  2149. <para lang="ru">
  2150. соединения с некорректным HTTP/2 preface не логгировались.
  2151. </para>
  2152. <para lang="en">
  2153. connections with incorrect HTTP/2 preface were not logged.
  2154. </para>
  2155. </change>

  2156. </changes>


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

  2158. <change type="feature">
  2159. <para lang="ru">
  2160. директива auth_delay.
  2161. </para>
  2162. <para lang="en">
  2163. the "auth_delay" directive.
  2164. </para>
  2165. </change>

  2166. </changes>


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

  2168. <change type="change">
  2169. <para lang="ru">
  2170. теперь nginx не разрешает
  2171. несколько строк "Host" в заголовке запроса.
  2172. </para>
  2173. <para lang="en">
  2174. now nginx does not allow
  2175. several "Host" request header lines.
  2176. </para>
  2177. </change>

  2178. <change type="bugfix">
  2179. <para lang="ru">
  2180. nginx игнорировал дополнительные
  2181. строки "Transfer-Encoding" в заголовке запроса.
  2182. </para>
  2183. <para lang="en">
  2184. nginx ignored additional
  2185. "Transfer-Encoding" request header lines.
  2186. </para>
  2187. </change>

  2188. <change type="bugfix">
  2189. <para lang="ru">
  2190. утечки сокетов при использовании HTTP/2.
  2191. </para>
  2192. <para lang="en">
  2193. socket leak when using HTTP/2.
  2194. </para>
  2195. </change>

  2196. <change type="bugfix">
  2197. <para lang="ru">
  2198. в рабочем процессе мог произойти segmentation fault,
  2199. если использовался OCSP stapling.
  2200. </para>
  2201. <para lang="en">
  2202. a segmentation fault might occur in a worker process
  2203. if OCSP stapling was used.
  2204. </para>
  2205. </change>

  2206. <change type="bugfix">
  2207. <para lang="ru">
  2208. в модуле ngx_http_mp4_module.
  2209. </para>
  2210. <para lang="en">
  2211. in the ngx_http_mp4_module.
  2212. </para>
  2213. </change>

  2214. <change type="bugfix">
  2215. <para lang="ru">
  2216. при перенаправлении ошибок с кодом 494 с помощью директивы error_page
  2217. nginx возвращал ответ с кодом 494 вместо 400.
  2218. </para>
  2219. <para lang="en">
  2220. nginx used status code 494 instead of 400
  2221. if errors with code 494 were redirected with the "error_page" directive.
  2222. </para>
  2223. </change>

  2224. <change type="bugfix">
  2225. <para lang="ru">
  2226. утечки сокетов при использовании подзапросов в модуле njs и директивы aio.
  2227. </para>
  2228. <para lang="en">
  2229. socket leak when using subrequests in the njs module and the "aio" directive.
  2230. </para>
  2231. </change>

  2232. </changes>


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

  2234. <change type="feature">
  2235. <para lang="ru">
  2236. директива grpc_pass поддерживает переменные.
  2237. </para>
  2238. <para lang="en">
  2239. variables support in the "grpc_pass" directive.
  2240. </para>
  2241. </change>

  2242. <change type="bugfix">
  2243. <para lang="ru">
  2244. при обработке pipelined-запросов по SSL-соединению мог произойти таймаут;
  2245. ошибка появилась в 1.17.5.
  2246. </para>
  2247. <para lang="en">
  2248. a timeout might occur while handling pipelined requests in an SSL connection;
  2249. the bug had appeared in 1.17.5.
  2250. </para>
  2251. </change>

  2252. <change type="bugfix">
  2253. <para lang="ru">
  2254. в директиве debug_points при использовании HTTP/2.<br/>
  2255. Спасибо Даниилу Бондареву.
  2256. </para>
  2257. <para lang="en">
  2258. in the "debug_points" directive when using HTTP/2.<br/>
  2259. Thanks to Daniil Bondarev.
  2260. </para>
  2261. </change>

  2262. </changes>


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

  2264. <change type="bugfix">
  2265. <para lang="ru">
  2266. на старте или во время переконфигурации мог произойти segmentation fault,
  2267. если в конфигурации использовалась
  2268. директива rewrite с пустой строкой замены.
  2269. </para>
  2270. <para lang="en">
  2271. a segmentation fault might occur on start or during reconfiguration
  2272. if the "rewrite" directive with an empty replacement string
  2273. was used in the configuration.
  2274. </para>
  2275. </change>

  2276. <change type="bugfix">
  2277. <para lang="ru">
  2278. в рабочем процессе мог произойти segmentation fault,
  2279. если директива break использовалась совместно с директивой alias
  2280. или директивой proxy_pass с URI.
  2281. </para>
  2282. <para lang="en">
  2283. a segmentation fault might occur in a worker process
  2284. if the "break" directive was used with the "alias" directive
  2285. or with the "proxy_pass" directive with a URI.
  2286. </para>
  2287. </change>

  2288. <change type="bugfix">
  2289. <para lang="ru">
  2290. строка Location заголовка ответа могла содержать мусор,
  2291. если URI запроса был изменён на URI, содержащий нулевой символ.
  2292. </para>
  2293. <para lang="en">
  2294. the "Location" response header line might contain garbage
  2295. if the request URI was rewritten to the one containing a null character.
  2296. </para>
  2297. </change>

  2298. <change type="bugfix">
  2299. <para lang="ru">
  2300. при возврате перенаправлений с помощью директивы error_page
  2301. запросы с телом обрабатывались некорректно;
  2302. ошибка появилась в 0.7.12.
  2303. </para>
  2304. <para lang="en">
  2305. requests with bodies were handled incorrectly
  2306. when returning redirections with the "error_page" directive;
  2307. the bug had appeared in 0.7.12.
  2308. </para>
  2309. </change>

  2310. <change type="bugfix">
  2311. <para lang="ru">
  2312. утечки сокетов при использовании HTTP/2.
  2313. </para>
  2314. <para lang="en">
  2315. socket leak when using HTTP/2.
  2316. </para>
  2317. </change>

  2318. <change type="bugfix">
  2319. <para lang="ru">
  2320. при обработке pipelined-запросов по SSL-соединению мог произойти таймаут;
  2321. ошибка появилась в 1.17.5.
  2322. </para>
  2323. <para lang="en">
  2324. a timeout might occur while handling pipelined requests in an SSL connection;
  2325. the bug had appeared in 1.17.5.
  2326. </para>
  2327. </change>

  2328. <change type="bugfix">
  2329. <para lang="ru">
  2330. в модуле ngx_http_dav_module.
  2331. </para>
  2332. <para lang="en">
  2333. in the ngx_http_dav_module.
  2334. </para>
  2335. </change>

  2336. </changes>


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

  2338. <change type="feature">
  2339. <para lang="ru">
  2340. переменные $proxy_protocol_server_addr и $proxy_protocol_server_port.
  2341. </para>
  2342. <para lang="en">
  2343. the $proxy_protocol_server_addr and $proxy_protocol_server_port variables.
  2344. </para>
  2345. </change>

  2346. <change type="feature">
  2347. <para lang="ru">
  2348. директива limit_conn_dry_run.
  2349. </para>
  2350. <para lang="en">
  2351. the "limit_conn_dry_run" directive.
  2352. </para>
  2353. </change>

  2354. <change type="feature">
  2355. <para lang="ru">
  2356. переменные $limit_req_status и $limit_conn_status.
  2357. </para>
  2358. <para lang="en">
  2359. the $limit_req_status and $limit_conn_status variables.
  2360. </para>
  2361. </change>

  2362. </changes>


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

  2364. <change type="feature">
  2365. <para lang="ru">
  2366. теперь nginx использует вызов ioctl(FIONREAD), если он доступен,
  2367. чтобы избежать чтения из быстрого соединения в течение долгого времени.
  2368. </para>
  2369. <para lang="en">
  2370. now nginx uses ioctl(FIONREAD), if available,
  2371. to avoid reading from a fast connection for a long time.
  2372. </para>
  2373. </change>

  2374. <change type="bugfix">
  2375. <para lang="ru">
  2376. неполные закодированные символы в конце URI запроса игнорировались.
  2377. </para>
  2378. <para lang="en">
  2379. incomplete escaped characters at the end of the request URI were ignored.
  2380. </para>
  2381. </change>

  2382. <change type="bugfix">
  2383. <para lang="ru">
  2384. "/." и "/.." в конце URI запроса не нормализовывались.
  2385. </para>
  2386. <para lang="en">
  2387. "/." and "/.." at the end of the request URI were not normalized.
  2388. </para>
  2389. </change>

  2390. <change type="bugfix">
  2391. <para lang="ru">
  2392. в директиве merge_slashes.
  2393. </para>
  2394. <para lang="en">
  2395. in the "merge_slashes" directive.
  2396. </para>
  2397. </change>

  2398. <change type="bugfix">
  2399. <para lang="ru">
  2400. в директиве ignore_invalid_headers.<br/>
  2401. Спасибо Alan Kemp.
  2402. </para>
  2403. <para lang="en">
  2404. in the "ignore_invalid_headers" directive.<br/>
  2405. Thanks to Alan Kemp.
  2406. </para>
  2407. </change>

  2408. <change type="bugfix">
  2409. <para lang="ru">
  2410. nginx не собирался с MinGW-w64 gcc 8.1 и новее.
  2411. </para>
  2412. <para lang="en">
  2413. nginx could not be built with MinGW-w64 gcc 8.1 or newer.
  2414. </para>
  2415. </change>

  2416. </changes>


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

  2418. <change type="change">
  2419. <para lang="ru">
  2420. улучшено детектирование некорректного поведения клиентов в HTTP/2.
  2421. </para>
  2422. <para lang="en">
  2423. better detection of incorrect client behavior in HTTP/2.
  2424. </para>
  2425. </change>

  2426. <change type="change">
  2427. <para lang="ru">
  2428. в обработке непрочитанного тела запроса
  2429. при возврате ошибок в HTTP/2.
  2430. </para>
  2431. <para lang="en">
  2432. in handling of not fully read client request body
  2433. when returning errors in HTTP/2.
  2434. </para>
  2435. </change>

  2436. <change type="bugfix">
  2437. <para lang="ru">
  2438. директива worker_shutdown_timeout могла не работать
  2439. при использовании HTTP/2.
  2440. </para>
  2441. <para lang="en">
  2442. the "worker_shutdown_timeout" directive might not work
  2443. when using HTTP/2.
  2444. </para>
  2445. </change>

  2446. <change type="bugfix">
  2447. <para lang="ru">
  2448. при использовании HTTP/2 и директивы proxy_request_buffering
  2449. в рабочем процессе мог произойти segmentation fault.
  2450. </para>
  2451. <para lang="en">
  2452. a segmentation fault might occur in a worker process
  2453. when using HTTP/2 and the "proxy_request_buffering" directive.
  2454. </para>
  2455. </change>

  2456. <change type="bugfix">
  2457. <para lang="ru">
  2458. на Windows при использовании SSL
  2459. уровень записи в лог ошибки ECONNABORTED был "crit" вместо "error".
  2460. </para>
  2461. <para lang="en">
  2462. the ECONNABORTED error log level was "crit" instead of "error"
  2463. on Windows when using SSL.
  2464. </para>
  2465. </change>

  2466. <change type="bugfix">
  2467. <para lang="ru">
  2468. nginx игнорировал лишние данные при использовании chunked transfer encoding.
  2469. </para>
  2470. <para lang="en">
  2471. nginx ignored extra data when using chunked transfer encoding.
  2472. </para>
  2473. </change>

  2474. <change type="bugfix">
  2475. <para lang="ru">
  2476. если использовалась директива return и
  2477. при чтении тела запроса возникала ошибка,
  2478. nginx всегда возвращал ошибку 500.
  2479. </para>
  2480. <para lang="en">
  2481. nginx always returned the 500 error
  2482. if the "return" directive was used
  2483. and an error occurred during reading client request body.
  2484. </para>
  2485. </change>

  2486. <change type="bugfix">
  2487. <para lang="ru">
  2488. в обработке ошибок выделения памяти.
  2489. </para>
  2490. <para lang="en">
  2491. in memory allocation error handling.
  2492. </para>
  2493. </change>

  2494. </changes>


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

  2496. <change type="security">
  2497. <para lang="ru">
  2498. при использовании HTTP/2 клиент мог вызвать
  2499. чрезмерное потребление памяти и ресурсов процессора
  2500. (CVE-2019-9511, CVE-2019-9513, CVE-2019-9516).
  2501. </para>
  2502. <para lang="en">
  2503. when using HTTP/2 a client might cause
  2504. excessive memory consumption and CPU usage
  2505. (CVE-2019-9511, CVE-2019-9513, CVE-2019-9516).
  2506. </para>
  2507. </change>

  2508. <change type="bugfix">
  2509. <para lang="ru">
  2510. при использовании сжатия в логах могли появляться сообщения "zero size buf";
  2511. ошибка появилась в 1.17.2.
  2512. </para>
  2513. <para lang="en">
  2514. "zero size buf" alerts might appear in logs when using gzipping;
  2515. the bug had appeared in 1.17.2.
  2516. </para>
  2517. </change>

  2518. <change type="bugfix">
  2519. <para lang="ru">
  2520. при использовании директивы resolver в SMTP прокси-сервере
  2521. в рабочем процессе мог произойти segmentation fault.
  2522. </para>
  2523. <para lang="en">
  2524. a segmentation fault might occur in a worker process
  2525. if the "resolver" directive was used in SMTP proxy.
  2526. </para>
  2527. </change>

  2528. </changes>


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

  2530. <change type="change">
  2531. <para lang="ru">
  2532. минимальная поддерживаемая версия zlib&mdash;1.2.0.4.<br/>
  2533. Спасибо Илье Леошкевичу.
  2534. </para>
  2535. <para lang="en">
  2536. minimum supported zlib version is 1.2.0.4.<br/>
  2537. Thanks to Ilya Leoshkevich.
  2538. </para>
  2539. </change>

  2540. <change type="change">
  2541. <para lang="ru">
  2542. метод $r->internal_redirect() встроенного перла
  2543. теперь ожидает закодированный URI.
  2544. </para>
  2545. <para lang="en">
  2546. the $r->internal_redirect() embedded perl method
  2547. now expects escaped URIs.
  2548. </para>
  2549. </change>

  2550. <change type="feature">
  2551. <para lang="ru">
  2552. теперь с помощью метода $r->internal_redirect() встроенного перла
  2553. можно перейти в именованный location.
  2554. </para>
  2555. <para lang="en">
  2556. it is now possible to switch to a named location
  2557. using the $r->internal_redirect() embedded perl method.
  2558. </para>
  2559. </change>

  2560. <change type="bugfix">
  2561. <para lang="ru">
  2562. в обработке ошибок во встроенном перле.
  2563. </para>
  2564. <para lang="en">
  2565. in error handling in embedded perl.
  2566. </para>
  2567. </change>

  2568. <change type="bugfix">
  2569. <para lang="ru">
  2570. на старте или во время переконфигурации мог произойти segmentation fault,
  2571. если в конфигурации использовалось значение hash bucket size больше 64 килобайт.
  2572. </para>
  2573. <para lang="en">
  2574. a segmentation fault might occur on start or during reconfiguration
  2575. if hash bucket size larger than 64 kilobytes was used in the configuration.
  2576. </para>
  2577. </change>

  2578. <change type="bugfix">
  2579. <para lang="ru">
  2580. при использовании методов обработки соединений select, poll и /dev/poll
  2581. nginx мог нагружать процессор во время небуферизованного проксирования
  2582. и при проксировании WebSocket-соединений.
  2583. </para>
  2584. <para lang="en">
  2585. nginx might hog CPU during unbuffered proxying
  2586. and when proxying WebSocket connections
  2587. if the select, poll, or /dev/poll methods were used.
  2588. </para>
  2589. </change>

  2590. <change type="bugfix">
  2591. <para lang="ru">
  2592. в модуле ngx_http_xslt_filter_module.
  2593. </para>
  2594. <para lang="en">
  2595. in the ngx_http_xslt_filter_module.
  2596. </para>
  2597. </change>

  2598. <change type="bugfix">
  2599. <para lang="ru">
  2600. в модуле ngx_http_ssi_filter_module.
  2601. </para>
  2602. <para lang="en">
  2603. in the ngx_http_ssi_filter_module.
  2604. </para>
  2605. </change>

  2606. </changes>


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

  2608. <change type="feature">
  2609. <para lang="ru">
  2610. директива limit_req_dry_run.
  2611. </para>
  2612. <para lang="en">
  2613. the "limit_req_dry_run" directive.
  2614. </para>
  2615. </change>

  2616. <change type="feature">
  2617. <para lang="ru">
  2618. при использовании директивы hash в блоке upstream
  2619. пустой ключ хэширования теперь приводит к переключению
  2620. на round-robin балансировку.<br/>
  2621. Спасибо Niklas Keller.
  2622. </para>
  2623. <para lang="en">
  2624. when using the "hash" directive inside the "upstream" block
  2625. an empty hash key now triggers round-robin balancing.<br/>
  2626. Thanks to Niklas Keller.
  2627. </para>
  2628. </change>

  2629. <change type="bugfix">
  2630. <para lang="ru">
  2631. в рабочем процессе мог произойти segmentation fault,
  2632. если использовалось кэширование и директива image_filter,
  2633. а ошибки с кодом 415 перенаправлялись с помощью директивы error_page;
  2634. ошибка появилась в 1.11.10.
  2635. </para>
  2636. <para lang="en">
  2637. a segmentation fault might occur in a worker process
  2638. if caching was used along with the "image_filter" directive,
  2639. and errors with code 415 were redirected with the "error_page" directive;
  2640. the bug had appeared in 1.11.10.
  2641. </para>
  2642. </change>

  2643. <change type="bugfix">
  2644. <para lang="ru">
  2645. в рабочем процессе мог произойти segmentation fault,
  2646. если использовался встроенный перл;
  2647. ошибка появилась в 1.7.3.
  2648. </para>
  2649. <para lang="en">
  2650. a segmentation fault might occur in a worker process
  2651. if embedded perl was used;
  2652. the bug had appeared in 1.7.3.
  2653. </para>
  2654. </change>

  2655. </changes>


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

  2657. <change type="feature">
  2658. <para lang="ru">
  2659. директивы limit_rate и limit_rate_after поддерживают переменные.
  2660. </para>
  2661. <para lang="en">
  2662. variables support in the "limit_rate" and "limit_rate_after" directives.
  2663. </para>
  2664. </change>

  2665. <change type="feature">
  2666. <para lang="ru">
  2667. директивы proxy_upload_rate и proxy_download_rate в модуле stream
  2668. поддерживают переменные.
  2669. </para>
  2670. <para lang="en">
  2671. variables support
  2672. in the "proxy_upload_rate" and "proxy_download_rate" directives
  2673. in the stream module.
  2674. </para>
  2675. </change>

  2676. <change type="change">
  2677. <para lang="ru">
  2678. минимальная поддерживаемая версия OpenSSL&mdash;0.9.8.
  2679. </para>
  2680. <para lang="en">
  2681. minimum supported OpenSSL version is 0.9.8.
  2682. </para>
  2683. </change>

  2684. <change type="change">
  2685. <para lang="ru">
  2686. теперь postpone-фильтр собирается всегда.
  2687. </para>
  2688. <para lang="en">
  2689. now the postpone filter is always built.
  2690. </para>
  2691. </change>

  2692. <change type="bugfix">
  2693. <para lang="ru">
  2694. директива include не работала в блоках if и limit_except.
  2695. </para>
  2696. <para lang="en">
  2697. the "include" directive did not work inside the "if" and "limit_except" blocks.
  2698. </para>
  2699. </change>

  2700. <change type="bugfix">
  2701. <para lang="ru">
  2702. в обработке byte ranges.
  2703. </para>
  2704. <para lang="en">
  2705. in byte ranges processing.
  2706. </para>
  2707. </change>

  2708. </changes>


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

  2710. <change type="bugfix">
  2711. <para lang="ru">
  2712. в рабочем процессе мог произойти segmentation fault,
  2713. если в директивах ssl_certificate или ssl_certificate_key
  2714. использовались переменные
  2715. и был включён OCSP stapling.
  2716. </para>
  2717. <para lang="en">
  2718. a segmentation fault might occur in a worker process
  2719. if variables were used
  2720. in the "ssl_certificate" or "ssl_certificate_key" directives
  2721. and OCSP stapling was enabled.
  2722. </para>
  2723. </change>

  2724. </changes>


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

  2726. <change type="bugfix">
  2727. <para lang="ru">
  2728. в директиве ssl_stapling_file на Windows.
  2729. </para>
  2730. <para lang="en">
  2731. in the "ssl_stapling_file" directive on Windows.
  2732. </para>
  2733. </change>

  2734. </changes>


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

  2736. <change type="change">
  2737. <para lang="ru">
  2738. теперь при использовании имени хоста в директиве listen
  2739. nginx создаёт listen-сокеты для всех адресов,
  2740. соответствующих этому имени
  2741. (ранее использовался только первый адрес).
  2742. </para>
  2743. <para lang="en">
  2744. when using a hostname in the "listen" directive
  2745. nginx now creates listening sockets
  2746. for all addresses the hostname resolves to
  2747. (previously, only the first address was used).
  2748. </para>
  2749. </change>

  2750. <change type="feature">
  2751. <para lang="ru">
  2752. диапазоны портов в директиве listen.
  2753. </para>
  2754. <para lang="en">
  2755. port ranges in the "listen" directive.
  2756. </para>
  2757. </change>

  2758. <change type="feature">
  2759. <para lang="ru">
  2760. возможность загрузки SSL-сертификатов и секретных ключей из переменных.
  2761. </para>
  2762. <para lang="en">
  2763. loading of SSL certificates and secret keys from variables.
  2764. </para>
  2765. </change>

  2766. <change type="workaround">
  2767. <para lang="ru">
  2768. переменная $ssl_server_name могла быть пустой
  2769. при использовании OpenSSL 1.1.1.
  2770. </para>
  2771. <para lang="en">
  2772. the $ssl_server_name variable might be empty
  2773. when using OpenSSL 1.1.1.
  2774. </para>
  2775. </change>

  2776. <change type="bugfix">
  2777. <para lang="ru">
  2778. nginx/Windows не собирался с Visual Studio 2015 и новее;
  2779. ошибка появилась в 1.15.9.
  2780. </para>
  2781. <para lang="en">
  2782. nginx/Windows could not be built with Visual Studio 2015 or newer;
  2783. the bug had appeared in 1.15.9.
  2784. </para>
  2785. </change>

  2786. </changes>


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

  2788. <change type="feature">
  2789. <para lang="ru">
  2790. директивы ssl_certificate и ssl_certificate_key
  2791. поддерживают переменные.
  2792. </para>
  2793. <para lang="en">
  2794. variables support
  2795. in the "ssl_certificate" and "ssl_certificate_key" directives.
  2796. </para>
  2797. </change>

  2798. <change type="feature">
  2799. <para lang="ru">
  2800. метод poll теперь доступен на Windows
  2801. при использовании Windows Vista и новее.
  2802. </para>
  2803. <para lang="en">
  2804. the "poll" method is now available on Windows
  2805. when using Windows Vista or newer.
  2806. </para>
  2807. </change>

  2808. <change type="bugfix">
  2809. <para lang="ru">
  2810. если при использовании метода select на Windows
  2811. происходила ошибка при установлении соединения с бэкендом,
  2812. nginx ожидал истечения таймаута на установление соединения.
  2813. </para>
  2814. <para lang="en">
  2815. if the "select" method was used on Windows
  2816. and an error occurred while establishing a backend connection,
  2817. nginx waited for the connection establishment timeout to expire.
  2818. </para>
  2819. </change>

  2820. <change type="bugfix">
  2821. <para lang="ru">
  2822. директивы proxy_upload_rate и proxy_download_rate
  2823. в модуле stream
  2824. работали некорректно при проксировании UDP-пакетов.
  2825. </para>
  2826. <para lang="en">
  2827. the "proxy_upload_rate" and "proxy_download_rate" directives
  2828. in the stream module
  2829. worked incorrectly when proxying UDP datagrams.
  2830. </para>
  2831. </change>

  2832. </changes>


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

  2834. <change type="feature">
  2835. <para lang="ru">
  2836. переменная $upstream_bytes_sent.<br/>
  2837. Спасибо Piotr Sikora.
  2838. </para>
  2839. <para lang="en">
  2840. the $upstream_bytes_sent variable.<br/>
  2841. Thanks to Piotr Sikora.
  2842. </para>
  2843. </change>

  2844. <change type="feature">
  2845. <para lang="ru">
  2846. новые директивы в скриптах подсветки синтаксиса для vim.<br/>
  2847. Спасибо Геннадию Махомеду.
  2848. </para>
  2849. <para lang="en">
  2850. new directives in vim syntax highlighting scripts.<br/>
  2851. Thanks to Gena Makhomed.
  2852. </para>
  2853. </change>

  2854. <change type="bugfix">
  2855. <para lang="ru">
  2856. в директиве proxy_cache_background_update.
  2857. </para>
  2858. <para lang="en">
  2859. in the "proxy_cache_background_update" directive.
  2860. </para>
  2861. </change>

  2862. <change type="bugfix">
  2863. <para lang="ru">
  2864. в директиве geo при использовании unix domain listen-сокетов.
  2865. </para>
  2866. <para lang="en">
  2867. in the "geo" directive when using unix domain listen sockets.
  2868. </para>
  2869. </change>

  2870. <change type="workaround">
  2871. <para lang="ru">
  2872. при использовании директивы ssl_early_data с OpenSSL
  2873. в логах могли появляться сообщения
  2874. "ignoring stale global SSL error ... bad length".
  2875. </para>
  2876. <para lang="en">
  2877. the "ignoring stale global SSL error ... bad length"
  2878. alerts might appear in logs
  2879. when using the "ssl_early_data" directive with OpenSSL.
  2880. </para>
  2881. </change>

  2882. <change type="bugfix">
  2883. <para lang="ru">
  2884. в nginx/Windows.
  2885. </para>
  2886. <para lang="en">
  2887. in nginx/Windows.
  2888. </para>
  2889. </change>

  2890. <change type="bugfix">
  2891. <para lang="ru">
  2892. в модуле ngx_http_autoindex_module на 32-битных платформах.
  2893. </para>
  2894. <para lang="en">
  2895. in the ngx_http_autoindex_module on 32-bit platforms.
  2896. </para>
  2897. </change>

  2898. </changes>


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

  2900. <change type="feature">
  2901. <para lang="ru">
  2902. директива proxy_requests в модуле stream.
  2903. </para>
  2904. <para lang="en">
  2905. the "proxy_requests" directive in the stream module.
  2906. </para>
  2907. </change>

  2908. <change type="feature">
  2909. <para lang="ru">
  2910. параметр "delay" директивы "limit_req".<br/>
  2911. Спасибо Владиславу Шабанову и Петру Щучкину.
  2912. </para>
  2913. <para lang="en">
  2914. the "delay" parameter of the "limit_req" directive.<br/>
  2915. Thanks to Vladislav Shabanov and Peter Shchuchkin.
  2916. </para>
  2917. </change>

  2918. <change type="bugfix">
  2919. <para lang="ru">
  2920. утечки памяти в случае ошибок при переконфигурации.
  2921. </para>
  2922. <para lang="en">
  2923. memory leak on errors during reconfiguration.
  2924. </para>
  2925. </change>

  2926. <change type="bugfix">
  2927. <para lang="ru">
  2928. в переменных $upstream_response_time, $upstream_connect_time и
  2929. $upstream_header_time.
  2930. </para>
  2931. <para lang="en">
  2932. in the $upstream_response_time, $upstream_connect_time, and
  2933. $upstream_header_time variables.
  2934. </para>
  2935. </change>

  2936. <change type="bugfix">
  2937. <para lang="ru">
  2938. в рабочем процессе мог произойти segmentation fault,
  2939. если использовался модуль ngx_http_mp4_module на 32-битных платформах.
  2940. </para>
  2941. <para lang="en">
  2942. a segmentation fault might occur in a worker process
  2943. if the ngx_http_mp4_module was used on 32-bit platforms.
  2944. </para>
  2945. </change>

  2946. </changes>


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

  2948. <change type="security">
  2949. <para lang="ru">
  2950. при использовании HTTP/2 клиент мог вызвать
  2951. чрезмерное потреблению памяти (CVE-2018-16843)
  2952. и ресурсов процессора (CVE-2018-16844).
  2953. </para>
  2954. <para lang="en">
  2955. when using HTTP/2 a client might cause
  2956. excessive memory consumption (CVE-2018-16843)
  2957. and CPU usage (CVE-2018-16844).
  2958. </para>
  2959. </change>

  2960. <change type="security">
  2961. <para lang="ru">
  2962. при обработке специально созданного mp4-файла модулем ngx_http_mp4_module
  2963. содержимое памяти рабочего процесса могло быть отправлено клиенту
  2964. (CVE-2018-16845).
  2965. </para>
  2966. <para lang="en">
  2967. processing of a specially crafted mp4 file with the ngx_http_mp4_module
  2968. might result in worker process memory disclosure
  2969. (CVE-2018-16845).
  2970. </para>
  2971. </change>

  2972. <change type="feature">
  2973. <para lang="ru">
  2974. директивы proxy_socket_keepalive, fastcgi_socket_keepalive,
  2975. grpc_socket_keepalive, memcached_socket_keepalive,
  2976. scgi_socket_keepalive и uwsgi_socket_keepalive.
  2977. </para>
  2978. <para lang="en">
  2979. the "proxy_socket_keepalive", "fastcgi_socket_keepalive",
  2980. "grpc_socket_keepalive", "memcached_socket_keepalive",
  2981. "scgi_socket_keepalive", and "uwsgi_socket_keepalive" directives.
  2982. </para>
  2983. </change>

  2984. <change type="bugfix">
  2985. <para lang="ru">
  2986. если nginx был собран с OpenSSL 1.1.0, а использовался с OpenSSL 1.1.1,
  2987. протокол TLS 1.3 всегда был разрешён.
  2988. </para>
  2989. <para lang="en">
  2990. if nginx was built with OpenSSL 1.1.0 and used with OpenSSL 1.1.1,
  2991. the TLS 1.3 protocol was always enabled.
  2992. </para>
  2993. </change>

  2994. <change type="bugfix">
  2995. <para lang="ru">
  2996. при работе с gRPC-бэкендами могло расходоваться большое количество памяти.
  2997. </para>
  2998. <para lang="en">
  2999. working with gRPC backends might result in excessive memory consumption.
  3000. </para>
  3001. </change>

  3002. </changes>


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

  3004. <change type="bugfix">
  3005. <para lang="ru">
  3006. при использовании OpenSSL 1.1.0h и новее
  3007. в рабочем процессе мог произойти segmentation fault;
  3008. ошибка появилась в 1.15.4.
  3009. </para>
  3010. <para lang="en">
  3011. a segmentation fault might occur in a worker process
  3012. when using OpenSSL 1.1.0h or newer;
  3013. the bug had appeared in 1.15.4.
  3014. </para>
  3015. </change>

  3016. <change type="bugfix">
  3017. <para lang="ru">
  3018. незначительных потенциальных ошибок.
  3019. </para>
  3020. <para lang="en">
  3021. of minor potential bugs.
  3022. </para>
  3023. </change>

  3024. </changes>


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

  3026. <change type="feature">
  3027. <para lang="ru">
  3028. теперь директиву ssl_early_data можно использовать с OpenSSL.
  3029. </para>
  3030. <para lang="en">
  3031. now the "ssl_early_data" directive can be used with OpenSSL.
  3032. </para>
  3033. </change>

  3034. <change type="bugfix">
  3035. <para lang="ru">
  3036. в модуле ngx_http_uwsgi_module.<br/>
  3037. Спасибо Chris Caputo.
  3038. </para>
  3039. <para lang="en">
  3040. in the ngx_http_uwsgi_module.<br/>
  3041. Thanks to Chris Caputo.
  3042. </para>
  3043. </change>

  3044. <change type="bugfix">
  3045. <para lang="ru">
  3046. соединения к некоторым gRPC-бэкендам могли не кэшироваться
  3047. при использовании директивы keepalive.
  3048. </para>
  3049. <para lang="en">
  3050. connections with some gRPC backends might not be cached
  3051. when using the "keepalive" directive.
  3052. </para>
  3053. </change>

  3054. <change type="bugfix">
  3055. <para lang="ru">
  3056. при использовании директивы error_page для перенаправления ошибок,
  3057. возникающих на ранних этапах обработки запроса,
  3058. в частности ошибок с кодом 400,
  3059. могла происходить утечка сокетов.
  3060. </para>
  3061. <para lang="en">
  3062. a socket leak might occur
  3063. when using the "error_page" directive
  3064. to redirect early request processing errors,
  3065. notably errors with code 400.
  3066. </para>
  3067. </change>

  3068. <change type="bugfix">
  3069. <para lang="ru">
  3070. директива return при возврате ошибок не изменяла код ответа,
  3071. если запрос был перенаправлен с помощью директивы error_page.
  3072. </para>
  3073. <para lang="en">
  3074. the "return" directive did not change the response code when returning errors
  3075. if the request was redirected by the "error_page" directive.
  3076. </para>
  3077. </change>

  3078. <change type="bugfix">
  3079. <para lang="ru">
  3080. стандартные сообщения об ошибках и ответы модуля ngx_http_autoindex_module
  3081. содержали атрибут bgcolor, что могло приводить к их некорректному отображению
  3082. при использовании пользовательских настроек цветов в браузерах.<br/>
  3083. Спасибо Nova DasSarma.
  3084. </para>
  3085. <para lang="en">
  3086. standard error pages and responses of the ngx_http_autoindex_module module
  3087. used the "bgcolor" attribute, and might be displayed incorrectly when using
  3088. custom color settings in browsers.<br/>
  3089. Thanks to Nova DasSarma.
  3090. </para>
  3091. </change>

  3092. <change type="change">
  3093. <para lang="ru">
  3094. уровень логгирования ошибок SSL "no suitable key share" и
  3095. "no suitable signature algorithm"
  3096. понижен с уровня crit до info.
  3097. </para>
  3098. <para lang="en">
  3099. the logging level of the "no suitable key share" and
  3100. "no suitable signature algorithm" SSL errors
  3101. has been lowered from "crit" to "info".
  3102. </para>
  3103. </change>

  3104. </changes>


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

  3106. <change type="feature">
  3107. <para lang="ru">
  3108. теперь TLSv1.3 можно использовать с BoringSSL.
  3109. </para>
  3110. <para lang="en">
  3111. now TLSv1.3 can be used with BoringSSL.
  3112. </para>
  3113. </change>

  3114. <change type="feature">
  3115. <para lang="ru">
  3116. директива ssl_early_data,
  3117. сейчас доступна при использовании BoringSSL.
  3118. </para>
  3119. <para lang="en">
  3120. the "ssl_early_data" directive,
  3121. currently available with BoringSSL.
  3122. </para>
  3123. </change>

  3124. <change type="feature">
  3125. <para lang="ru">
  3126. директивы keepalive_timeout и keepalive_requests
  3127. в блоке upstream.
  3128. </para>
  3129. <para lang="en">
  3130. the "keepalive_timeout" and "keepalive_requests" directives
  3131. in the "upstream" block.
  3132. </para>
  3133. </change>

  3134. <change type="bugfix">
  3135. <para lang="ru">
  3136. модуль ngx_http_dav_module
  3137. при копировании файла поверх существующего файла с помощью метода COPY
  3138. не обнулял целевой файл.
  3139. </para>
  3140. <para lang="en">
  3141. the ngx_http_dav_module
  3142. did not truncate destination file when copying a file over an existing one
  3143. with the COPY method.
  3144. </para>
  3145. </change>

  3146. <change type="bugfix">
  3147. <para lang="ru">
  3148. модуль ngx_http_dav_module
  3149. при перемещении файла между файловыми системами с помощью метода MOVE
  3150. устанавливал нулевые права доступа на результирующий файл
  3151. и не сохранял время изменения файла.
  3152. </para>
  3153. <para lang="en">
  3154. the ngx_http_dav_module
  3155. used zero access rights on the destination file
  3156. and did not preserve file modification time
  3157. when moving a file between different file systems with the MOVE method.
  3158. </para>
  3159. </change>

  3160. <change type="bugfix">
  3161. <para lang="ru">
  3162. модуль ngx_http_dav_module
  3163. при копировании файла с помощью метода COPY
  3164. для результирующего файла использовал права доступа по умолчанию.
  3165. </para>
  3166. <para lang="en">
  3167. the ngx_http_dav_module
  3168. used default access rights
  3169. when copying a file with the COPY method.
  3170. </para>
  3171. </change>

  3172. <change type="workaround">
  3173. <para lang="ru">
  3174. некоторые клиенты могли не работать при использовании HTTP/2;
  3175. ошибка появилась в 1.13.5.
  3176. </para>
  3177. <para lang="en">
  3178. some clients might not work when using HTTP/2;
  3179. the bug had appeared in 1.13.5.
  3180. </para>
  3181. </change>

  3182. <change type="bugfix">
  3183. <para lang="ru">
  3184. nginx не собирался с LibreSSL 2.8.0.
  3185. </para>
  3186. <para lang="en">
  3187. nginx could not be built with LibreSSL 2.8.0.
  3188. </para>
  3189. </change>

  3190. </changes>


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

  3192. <change type="feature">
  3193. <para lang="ru">
  3194. переменная $ssl_preread_protocol
  3195. в модуле ngx_stream_ssl_preread_module.
  3196. </para>
  3197. <para lang="en">
  3198. the $ssl_preread_protocol variable
  3199. in the ngx_stream_ssl_preread_module.
  3200. </para>
  3201. </change>

  3202. <change type="feature">
  3203. <para lang="ru">
  3204. теперь при использовании директивы reset_timedout_connection
  3205. nginx сбрасывает соединения, закрываемые с кодом 444.
  3206. </para>
  3207. <para lang="en">
  3208. now when using the "reset_timedout_connection" directive
  3209. nginx will reset connections being closed with the 444 code.
  3210. </para>
  3211. </change>

  3212. <change type="change">
  3213. <para lang="ru">
  3214. уровень логгирования ошибок SSL "http request", "https proxy request",
  3215. "unsupported protocol" и "version too low"
  3216. понижен с уровня crit до info.
  3217. </para>
  3218. <para lang="en">
  3219. a logging level of the "http request", "https proxy request",
  3220. "unsupported protocol", and "version too low" SSL errors
  3221. has been lowered from "crit" to "info".
  3222. </para>
  3223. </change>

  3224. <change type="bugfix">
  3225. <para lang="ru">
  3226. запросы к DNS-серверу не отправлялись повторно,
  3227. если при первой попытке отправки происходила ошибка.
  3228. </para>
  3229. <para lang="en">
  3230. DNS requests were not resent
  3231. if initial sending of a request failed.
  3232. </para>
  3233. </change>

  3234. <change type="bugfix">
  3235. <para lang="ru">
  3236. параметр reuseport директивы listen игнорировался,
  3237. если количество рабочих процессов было задано после директивы listen.
  3238. </para>
  3239. <para lang="en">
  3240. the "reuseport" parameter of the "listen" directive was ignored
  3241. if the number of worker processes was specified after the "listen" directive.
  3242. </para>
  3243. </change>

  3244. <change type="bugfix">
  3245. <para lang="ru">
  3246. при использовании OpenSSL 1.1.0 и новее
  3247. директиву ssl_prefer_server_ciphers нельзя было выключить
  3248. в виртуальном сервере, если она была включена в сервере по умолчанию.
  3249. </para>
  3250. <para lang="en">
  3251. when using OpenSSL 1.1.0 or newer
  3252. it was not possible to switch off "ssl_prefer_server_ciphers" in
  3253. a virtual server if it was switched on in the default server.
  3254. </para>
  3255. </change>

  3256. <change type="bugfix">
  3257. <para lang="ru">
  3258. повторное использование SSL-сессий к бэкендам
  3259. не работало с протоколом TLS 1.3.
  3260. </para>
  3261. <para lang="en">
  3262. SSL session reuse with upstream servers
  3263. did not work with the TLS 1.3 protocol.
  3264. </para>
  3265. </change>

  3266. </changes>


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

  3268. <change type="feature">
  3269. <para lang="ru">
  3270. директива random в блоке upstream.
  3271. </para>
  3272. <para lang="en">
  3273. the "random" directive inside the "upstream" block.
  3274. </para>
  3275. </change>

  3276. <change type="feature">
  3277. <para lang="ru">
  3278. улучшена производительность при использовании директив hash и ip_hash
  3279. совместно с директивой zone.
  3280. </para>
  3281. <para lang="en">
  3282. improved performance when using the "hash" and "ip_hash" directives
  3283. with the "zone" directive.
  3284. </para>
  3285. </change>

  3286. <change type="feature">
  3287. <para lang="ru">
  3288. параметр reuseport директивы listen
  3289. теперь использует SO_REUSEPORT_LB на FreeBSD 12.
  3290. </para>
  3291. <para lang="en">
  3292. the "reuseport" parameter of the "listen" directive
  3293. now uses SO_REUSEPORT_LB on FreeBSD 12.
  3294. </para>
  3295. </change>

  3296. <change type="bugfix">
  3297. <para lang="ru">
  3298. HTTP/2 server push не работал, если SSL терминировался прокси-сервером
  3299. перед nginx'ом.
  3300. </para>
  3301. <para lang="en">
  3302. HTTP/2 server push did not work if SSL was terminated by a proxy server
  3303. in front of nginx.
  3304. </para>
  3305. </change>

  3306. <change type="bugfix">
  3307. <para lang="ru">
  3308. директива tcp_nopush всегда использовалась для соединений к бэкендам.
  3309. </para>
  3310. <para lang="en">
  3311. the "tcp_nopush" directive was always used on backend connections.
  3312. </para>
  3313. </change>

  3314. <change type="bugfix">
  3315. <para lang="ru">
  3316. при отправке сохранённого на диск тела запроса на gRPC-бэкенд
  3317. могли возникать ошибки.
  3318. </para>
  3319. <para lang="en">
  3320. sending a disk-buffered request body to a gRPC backend
  3321. might fail.
  3322. </para>
  3323. </change>

  3324. </changes>


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

  3326. <change type="change">
  3327. <para lang="ru">
  3328. директива "ssl" теперь считается устаревшей;
  3329. вместо неё следует использовать параметр ssl директивы listen.
  3330. </para>
  3331. <para lang="en">
  3332. the "ssl" directive is deprecated;
  3333. the "ssl" parameter of the "listen" directive should be used instead.
  3334. </para>
  3335. </change>

  3336. <change type="change">
  3337. <para lang="ru">
  3338. теперь при использовании директивы listen с параметром ssl
  3339. nginx определяет отсутствие SSL-сертификатов при тестировании конфигурации.
  3340. </para>
  3341. <para lang="en">
  3342. now nginx detects missing SSL certificates during configuration testing
  3343. when using the "ssl" parameter of the "listen" directive.
  3344. </para>
  3345. </change>

  3346. <change type="feature">
  3347. <para lang="ru">
  3348. теперь модуль stream умеет обрабатывать
  3349. несколько входящих UDP-пакетов от клиента в рамках одной сессии.
  3350. </para>
  3351. <para lang="en">
  3352. now the stream module can handle
  3353. multiple incoming UDP datagrams from a client within a single session.
  3354. </para>
  3355. </change>

  3356. <change type="bugfix">
  3357. <para lang="ru">
  3358. в директиве proxy_cache_valid
  3359. можно было указать некорректный код ответа.
  3360. </para>
  3361. <para lang="en">
  3362. it was possible to specify an incorrect response code
  3363. in the "proxy_cache_valid" directive.
  3364. </para>
  3365. </change>

  3366. <change type="bugfix">
  3367. <para lang="ru">
  3368. nginx не собирался gcc 8.1.
  3369. </para>
  3370. <para lang="en">
  3371. nginx could not be built by gcc 8.1.
  3372. </para>
  3373. </change>

  3374. <change type="bugfix">
  3375. <para lang="ru">
  3376. логгирование в syslog останавливалось при изменении локального IP-адреса.
  3377. </para>
  3378. <para lang="en">
  3379. logging to syslog stopped on local IP address changes.
  3380. </para>
  3381. </change>

  3382. <change type="bugfix">
  3383. <para lang="ru">
  3384. nginx не собирался компилятором clang, если был установлен CUDA SDK;
  3385. ошибка появилась в 1.13.8.
  3386. </para>
  3387. <para lang="en">
  3388. nginx could not be built by clang with CUDA SDK installed;
  3389. the bug had appeared in 1.13.8.
  3390. </para>
  3391. </change>

  3392. <change type="bugfix">
  3393. <para lang="ru">
  3394. при использовании unix domain listen-сокетов на FreeBSD
  3395. в процессе обновления исполняемого файла
  3396. в логе могли появляться сообщения "getsockopt(TCP_FASTOPEN) ... failed".
  3397. </para>
  3398. <para lang="en">
  3399. "getsockopt(TCP_FASTOPEN) ... failed" messages might appear in logs
  3400. during binary upgrade
  3401. when using unix domain listen sockets on FreeBSD.
  3402. </para>
  3403. </change>

  3404. <change type="bugfix">
  3405. <para lang="ru">
  3406. nginx не собирался на Fedora 28 Linux.
  3407. </para>
  3408. <para lang="en">
  3409. nginx could not be built on Fedora 28 Linux.
  3410. </para>
  3411. </change>

  3412. <change type="bugfix">
  3413. <para lang="ru">
  3414. при использовании директивы limit_req
  3415. заданная скорость обработки запросов могла не соблюдаться.
  3416. </para>
  3417. <para lang="en">
  3418. request processing rate might exceed configured rate
  3419. when using the "limit_req" directive.
  3420. </para>
  3421. </change>

  3422. <change type="bugfix">
  3423. <para lang="ru">
  3424. в обработке адресов клиентов при использовании unix domain listen-сокетов
  3425. для работы с датаграммами на Linux.
  3426. </para>
  3427. <para lang="en">
  3428. in handling of client addresses when using unix domain listen sockets
  3429. to work with datagrams on Linux.
  3430. </para>
  3431. </change>

  3432. <change type="bugfix">
  3433. <para lang="ru">
  3434. в обработке ошибок выделения памяти.
  3435. </para>
  3436. <para lang="en">
  3437. in memory allocation error handling.
  3438. </para>
  3439. </change>

  3440. </changes>


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

  3442. <change type="bugfix">
  3443. <para lang="ru">
  3444. при возврате большого ответа
  3445. соединения с gRPC-бэкендами могли неожиданно закрываться.
  3446. </para>
  3447. <para lang="en">
  3448. connections with gRPC backends might be closed unexpectedly
  3449. when returning a large response.
  3450. </para>
  3451. </change>

  3452. </changes>


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

  3454. <change type="feature">
  3455. <para lang="ru">
  3456. параметр proxy_protocol директивы listen
  3457. теперь поддерживает протокол PROXY версии 2.
  3458. </para>
  3459. <para lang="en">
  3460. the "proxy_protocol" parameter of the "listen" directive
  3461. now supports the PROXY protocol version 2.
  3462. </para>
  3463. </change>

  3464. <change type="bugfix">
  3465. <para lang="ru">
  3466. nginx не собирался с OpenSSL 1.1.1 статически на Linux.
  3467. </para>
  3468. <para lang="en">
  3469. nginx could not be built with OpenSSL 1.1.1 statically on Linux.
  3470. </para>
  3471. </change>

  3472. <change type="bugfix">
  3473. <para lang="ru">
  3474. в параметрах http_404, http_500 и им подобных
  3475. директивы proxy_next_upstream.
  3476. </para>
  3477. <para lang="en">
  3478. in the "http_404", "http_500", etc. parameters
  3479. of the "proxy_next_upstream" directive.
  3480. </para>
  3481. </change>

  3482. </changes>


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

  3484. <change type="feature">
  3485. <para lang="ru">
  3486. теперь параметр set в SSI-директиве include
  3487. позволяет сохранять в переменную любые ответы;
  3488. максимальный размер ответа задаётся директивой subrequest_output_buffer_size.
  3489. </para>
  3490. <para lang="en">
  3491. the "set" parameter of the "include" SSI directive now allows
  3492. writing arbitrary responses to a variable;
  3493. the "subrequest_output_buffer_size" directive defines maximum response size.
  3494. </para>
  3495. </change>

  3496. <change type="feature">
  3497. <para lang="ru">
  3498. теперь nginx использует вызов clock_gettime(CLOCK_MONOTONIC), если он доступен,
  3499. что позволяет избежать некорректного срабатывания таймаутов
  3500. при изменениях системного времени.
  3501. </para>
  3502. <para lang="en">
  3503. now nginx uses clock_gettime(CLOCK_MONOTONIC) if available,
  3504. to avoid timeouts being incorrectly triggered
  3505. on system time changes.
  3506. </para>
  3507. </change>

  3508. <change type="feature">
  3509. <para lang="ru">
  3510. параметр "escape=none" директивы log_format.<br/>
  3511. Спасибо Johannes Baiter и Calin Don.
  3512. </para>
  3513. <para lang="en">
  3514. the "escape=none" parameter of the "log_format" directive.<br/>
  3515. Thanks to Johannes Baiter and Calin Don.
  3516. </para>
  3517. </change>

  3518. <change type="feature">
  3519. <para lang="ru">
  3520. переменная $ssl_preread_alpn_protocols
  3521. в модуле ngx_stream_ssl_preread_module.
  3522. </para>
  3523. <para lang="en">
  3524. the $ssl_preread_alpn_protocols variable
  3525. in the ngx_stream_ssl_preread_module.
  3526. </para>
  3527. </change>

  3528. <change type="feature">
  3529. <para lang="ru">
  3530. модуль ngx_http_grpc_module.
  3531. </para>
  3532. <para lang="en">
  3533. the ngx_http_grpc_module.
  3534. </para>
  3535. </change>

  3536. <change type="bugfix">
  3537. <para lang="ru">
  3538. в обработке ошибок выделения памяти в директиве geo.
  3539. </para>
  3540. <para lang="en">
  3541. in memory allocation error handling in the "geo" directive.
  3542. </para>
  3543. </change>

  3544. <change type="bugfix">
  3545. <para lang="ru">
  3546. при использовании переменных в директиве auth_basic_user_file
  3547. в лог мог выводиться символ '\0'.<br/>
  3548. Спасибо Вадиму Филимонову.
  3549. </para>
  3550. <para lang="en">
  3551. when using variables in the "auth_basic_user_file" directive
  3552. a null character might appear in logs.<br/>
  3553. Thanks to Vadim Filimonov.
  3554. </para>
  3555. </change>

  3556. </changes>


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

  3558. <change type="feature">
  3559. <para lang="ru">
  3560. поддержка HTTP/2 server push;
  3561. директивы http2_push и http2_push_preload.
  3562. </para>
  3563. <para lang="en">
  3564. HTTP/2 server push support;
  3565. the "http2_push" and "http2_push_preload" directives.
  3566. </para>
  3567. </change>

  3568. <change type="bugfix">
  3569. <para lang="ru">
  3570. при использовании кэша
  3571. в логах могли появляться сообщения "header already sent";
  3572. ошибка появилась в 1.9.13.
  3573. </para>
  3574. <para lang="en">
  3575. "header already sent" alerts might appear in logs
  3576. when using cache;
  3577. the bug had appeared in 1.9.13.
  3578. </para>
  3579. </change>

  3580. <change type="bugfix">
  3581. <para lang="ru">
  3582. при использовании директивы ssl_verify_client
  3583. в рабочем процессе мог произойти segmentation fault,
  3584. если в виртуальном сервере не был указан SSL-сертификат.
  3585. </para>
  3586. <para lang="en">
  3587. a segmentation fault might occur in a worker process
  3588. if the "ssl_verify_client" directive was used
  3589. and no SSL certificate was specified in a virtual server.
  3590. </para>
  3591. </change>

  3592. <change type="bugfix">
  3593. <para lang="ru">
  3594. в модуле ngx_http_v2_module.
  3595. </para>
  3596. <para lang="en">
  3597. in the ngx_http_v2_module.
  3598. </para>
  3599. </change>

  3600. <change type="bugfix">
  3601. <para lang="ru">
  3602. в модуле ngx_http_dav_module.
  3603. </para>
  3604. <para lang="en">
  3605. in the ngx_http_dav_module.
  3606. </para>
  3607. </change>

  3608. </changes>


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

  3610. <change type="feature">
  3611. <para lang="ru">
  3612. теперь при использовании параметра transparent директив proxy_bind,
  3613. fastcgi_bind, memcached_bind, scgi_bind и uwsgi_bind
  3614. nginx автоматически сохраняет capability CAP_NET_RAW в рабочих процессах.
  3615. </para>
  3616. <para lang="en">
  3617. now nginx automatically preserves the CAP_NET_RAW capability in worker processes
  3618. when using the "transparent" parameter of the "proxy_bind",
  3619. "fastcgi_bind", "memcached_bind", "scgi_bind", and "uwsgi_bind" directives.
  3620. </para>
  3621. </change>

  3622. <change type="feature">
  3623. <para lang="ru">
  3624. улучшения в определении размера строки кэша процессора.<br/>
  3625. Спасибо Debayan Ghosh.
  3626. </para>
  3627. <para lang="en">
  3628. improved CPU cache line size detection.<br/>
  3629. Thanks to Debayan Ghosh.
  3630. </para>
  3631. </change>

  3632. <change type="feature">
  3633. <para lang="ru">
  3634. новые директивы в скриптах подсветки синтаксиса для vim.<br/>
  3635. Спасибо Геннадию Махомеду.
  3636. </para>
  3637. <para lang="en">
  3638. new directives in vim syntax highlighting scripts.<br/>
  3639. Thanks to Gena Makhomed.
  3640. </para>
  3641. </change>

  3642. <change type="bugfix">
  3643. <para lang="ru">
  3644. процедура обновления исполняемого файла не работала,
  3645. если после завершения родительского процесса
  3646. новым родительским процессом nginx'а становился процесс с PID, отличным от 1.
  3647. </para>
  3648. <para lang="en">
  3649. binary upgrade refused to work
  3650. if nginx was re-parented to a process with PID different from 1
  3651. after its parent process has finished.
  3652. </para>
  3653. </change>

  3654. <change type="bugfix">
  3655. <para lang="ru">
  3656. модуль ngx_http_autoindex_module неправильно обрабатывал запросы с телом.
  3657. </para>
  3658. <para lang="en">
  3659. the ngx_http_autoindex_module incorrectly handled requests with bodies.
  3660. </para>
  3661. </change>

  3662. <change type="bugfix">
  3663. <para lang="ru">
  3664. в директиве proxy_limit_rate при использовании с директивой keepalive.
  3665. </para>
  3666. <para lang="en">
  3667. in the "proxy_limit_rate" directive when used with the "keepalive" directive.
  3668. </para>
  3669. </change>

  3670. <change type="bugfix">
  3671. <para lang="ru">
  3672. при использовании "proxy_buffering off" часть ответа могла буферизироваться,
  3673. если клиентское соединение использовало SSL.<br/>
  3674. Спасибо Patryk Lesiewicz.
  3675. </para>
  3676. <para lang="en">
  3677. some parts of a response might be buffered when using "proxy_buffering off"
  3678. if the client connection used SSL.<br/>
  3679. Thanks to Patryk Lesiewicz.
  3680. </para>
  3681. </change>

  3682. <change type="bugfix">
  3683. <para lang="ru">
  3684. в директиве proxy_cache_background_update.
  3685. </para>
  3686. <para lang="en">
  3687. in the "proxy_cache_background_update" directive.
  3688. </para>
  3689. </change>

  3690. <change type="bugfix">
  3691. <para lang="ru">
  3692. переменную вида "${name}" с именем в фигурных скобках
  3693. нельзя было использовать в начале параметра
  3694. не заключив весь параметр в кавычки.
  3695. </para>
  3696. <para lang="en">
  3697. it was not possible to start a parameter
  3698. with a variable in the "${name}" form with the name in curly brackets
  3699. without enclosing the parameter into single or double quotes.
  3700. </para>
  3701. </change>

  3702. </changes>


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

  3704. <change type="bugfix">
  3705. <para lang="ru">
  3706. в переменной $upstream_status.
  3707. </para>
  3708. <para lang="en">
  3709. in the $upstream_status variable.
  3710. </para>
  3711. </change>

  3712. <change type="bugfix">
  3713. <para lang="ru">
  3714. в рабочем процессе мог произойти segmentation fault,
  3715. если бэкенд возвращал ответ "101 Switching Protocols" на подзапрос.
  3716. </para>
  3717. <para lang="en">
  3718. a segmentation fault might occur in a worker process
  3719. if a backend returned a "101 Switching Protocols" response to a subrequest.
  3720. </para>
  3721. </change>

  3722. <change type="bugfix">
  3723. <para lang="ru">
  3724. если при переконфигурации изменялся размер зоны разделяемой памяти
  3725. и переконфигурация завершалась неудачно,
  3726. то в главном процессе происходил segmentation fault.
  3727. </para>
  3728. <para lang="en">
  3729. a segmentation fault occurred in a master process
  3730. if a shared memory zone size was changed during a reconfiguration
  3731. and the reconfiguration failed.
  3732. </para>
  3733. </change>

  3734. <change type="bugfix">
  3735. <para lang="ru">
  3736. в модуле ngx_http_fastcgi_module.
  3737. </para>
  3738. <para lang="en">
  3739. in the ngx_http_fastcgi_module.
  3740. </para>
  3741. </change>

  3742. <change type="bugfix">
  3743. <para lang="ru">
  3744. nginx возвращал ошибку 500,
  3745. если в директиве xslt_stylesheet
  3746. были заданы параметры без использования переменных.
  3747. </para>
  3748. <para lang="en">
  3749. nginx returned the 500 error
  3750. if parameters without variables were specified
  3751. in the "xslt_stylesheet" directive.
  3752. </para>
  3753. </change>

  3754. <change type="workaround">
  3755. <para lang="ru">
  3756. при использовании варианта библиотеки zlib от Intel
  3757. в лог писались сообщения "gzip filter failed to use preallocated memory".
  3758. </para>
  3759. <para lang="en">
  3760. "gzip filter failed to use preallocated memory" alerts appeared in logs
  3761. when using a zlib library variant from Intel.
  3762. </para>
  3763. </change>

  3764. <change type="bugfix">
  3765. <para lang="ru">
  3766. директива worker_shutdown_timeout не работала
  3767. при использовании почтового прокси-сервера
  3768. и при проксировании WebSocket-соединений.
  3769. </para>
  3770. <para lang="en">
  3771. the "worker_shutdown_timeout" directive did not work
  3772. when using mail proxy and when proxying WebSocket connections.
  3773. </para>
  3774. </change>

  3775. </changes>


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

  3777. <change type="bugfix">
  3778. <para lang="ru">
  3779. при использовании директивы ssl_preread
  3780. в модуле stream не работало переключение на следующий бэкенд.
  3781. </para>
  3782. <para lang="en">
  3783. switching to the next upstream server in the stream module did not work
  3784. when using the "ssl_preread" directive.
  3785. </para>
  3786. </change>

  3787. <change type="bugfix">
  3788. <para lang="ru">
  3789. в модуле ngx_http_v2_module.<br/>
  3790. Спасибо Piotr Sikora.
  3791. </para>
  3792. <para lang="en">
  3793. in the ngx_http_v2_module.<br/>
  3794. Thanks to Piotr Sikora.
  3795. </para>
  3796. </change>

  3797. <change type="bugfix">
  3798. <para lang="ru">
  3799. nginx не поддерживал даты после 2038 года
  3800. на 32-битных платформах с 64-битным time_t.
  3801. </para>
  3802. <para lang="en">
  3803. nginx did not support dates after the year 2038
  3804. on 32-bit platforms with 64-bit time_t.
  3805. </para>
  3806. </change>

  3807. <change type="bugfix">
  3808. <para lang="ru">
  3809. в обработке дат до 1970 года и после 10000 года.
  3810. </para>
  3811. <para lang="en">
  3812. in handling of dates prior to the year 1970 and after the year 10000.
  3813. </para>
  3814. </change>

  3815. <change type="bugfix">
  3816. <para lang="ru">
  3817. в модуле stream таймауты ожидания UDP-пакетов от бэкендов
  3818. не логгировались или логгировались на уровне info вместо error.
  3819. </para>
  3820. <para lang="en">
  3821. in the stream module timeouts waiting for UDP datagrams from upstream servers
  3822. were not logged or logged at the "info" level instead of "error".
  3823. </para>
  3824. </change>

  3825. <change type="bugfix">
  3826. <para lang="ru">
  3827. при использовании HTTP/2 nginx мог вернуть ошибку 400,
  3828. не указав в логе причину.
  3829. </para>
  3830. <para lang="en">
  3831. when using HTTP/2 nginx might return the 400 response
  3832. without logging the reason.
  3833. </para>
  3834. </change>

  3835. <change type="bugfix">
  3836. <para lang="ru">
  3837. в обработке повреждённых файлов кэша.
  3838. </para>
  3839. <para lang="en">
  3840. in processing of corrupted cache files.
  3841. </para>
  3842. </change>

  3843. <change type="bugfix">
  3844. <para lang="ru">
  3845. при кэшировании ошибок, перехваченных error_page,
  3846. не учитывались заголовки управления кэшированием.
  3847. </para>
  3848. <para lang="en">
  3849. cache control headers were ignored
  3850. when caching errors intercepted by error_page.
  3851. </para>
  3852. </change>

  3853. <change type="bugfix">
  3854. <para lang="ru">
  3855. при использовании HTTP/2 тело запроса могло быть повреждено.
  3856. </para>
  3857. <para lang="en">
  3858. when using HTTP/2 client request body might be corrupted.
  3859. </para>
  3860. </change>

  3861. <change type="bugfix">
  3862. <para lang="ru">
  3863. в обработке адресов клиентов при использовании unix domain сокетов.
  3864. </para>
  3865. <para lang="en">
  3866. in handling of client addresses when using unix domain sockets.
  3867. </para>
  3868. </change>

  3869. <change type="bugfix">
  3870. <para lang="ru">
  3871. при использовании директивы "hash ... consistent" в блоке upstream
  3872. nginx нагружал процессор, если использовались большие веса
  3873. и все или почти все бэкенды были недоступны.
  3874. </para>
  3875. <para lang="en">
  3876. nginx hogged CPU
  3877. when using the "hash ... consistent" directive in the upstream block
  3878. if large weights were used and all or most of the servers were unavailable.
  3879. </para>
  3880. </change>

  3881. </changes>


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

  3883. <change type="feature">
  3884. <para lang="ru">
  3885. переменная $ssl_client_escaped_cert.
  3886. </para>
  3887. <para lang="en">
  3888. the $ssl_client_escaped_cert variable.
  3889. </para>
  3890. </change>

  3891. <change type="bugfix">
  3892. <para lang="ru">
  3893. директива ssl_session_ticket_key и параметр include директивы geo
  3894. не работали на Windows.
  3895. </para>
  3896. <para lang="en">
  3897. the "ssl_session_ticket_key" directive and
  3898. the "include" parameter of the "geo" directive did not work on Windows.
  3899. </para>
  3900. </change>

  3901. <change type="bugfix">
  3902. <para lang="ru">
  3903. на 32-битных платформах
  3904. при запросе более 4 гигабайт с помощью нескольких диапазонов
  3905. возвращалась некорректная длина ответа.
  3906. </para>
  3907. <para lang="en">
  3908. incorrect response length was returned
  3909. on 32-bit platforms when requesting more than 4 gigabytes
  3910. with multiple ranges.
  3911. </para>
  3912. </change>

  3913. <change type="bugfix">
  3914. <para lang="ru">
  3915. директива "expires modified" и
  3916. обработка строки If-Range заголовка запроса
  3917. не учитывали время последнего изменения ответа,
  3918. если использовалось проксирование без кэширования.
  3919. </para>
  3920. <para lang="en">
  3921. the "expires modified" directive and
  3922. processing of the "If-Range" request header line
  3923. did not use the response last modification time
  3924. if proxying without caching was used.
  3925. </para>
  3926. </change>

  3927. </changes>


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

  3929. <change type="feature">
  3930. <para lang="ru">
  3931. модуль ngx_http_mirror_module.
  3932. </para>
  3933. <para lang="en">
  3934. the ngx_http_mirror_module.
  3935. </para>
  3936. </change>

  3937. <change type="bugfix">
  3938. <para lang="ru">
  3939. клиентские соединения могли сбрасываться при тестировании конфигурации,
  3940. если использовался параметр reuseport директивы listen на Linux.
  3941. </para>
  3942. <para lang="en">
  3943. client connections might be dropped during configuration testing
  3944. when using the "reuseport" parameter of the "listen" directive on Linux.
  3945. </para>
  3946. </change>

  3947. <change type="bugfix">
  3948. <para lang="ru">
  3949. тело запроса могло быть недоступно в подзапросах,
  3950. если оно было сохранено в файл и использовалось проксирование.
  3951. </para>
  3952. <para lang="en">
  3953. request body might not be available in subrequests
  3954. if it was saved to a file and proxying was used.
  3955. </para>
  3956. </change>

  3957. <change type="bugfix">
  3958. <para lang="ru">
  3959. очистка кэша по max_size не работала на Windows.
  3960. </para>
  3961. <para lang="en">
  3962. cleaning cache based on the "max_size" parameter did not work on Windows.
  3963. </para>
  3964. </change>

  3965. <change type="bugfix">
  3966. <para lang="ru">
  3967. любое выделение разделяемой памяти на Windows требовало 4096 байт памяти.
  3968. </para>
  3969. <para lang="en">
  3970. any shared memory allocation required 4096 bytes on Windows.
  3971. </para>
  3972. </change>

  3973. <change type="bugfix">
  3974. <para lang="ru">
  3975. при использовании директивы zone в блоке upstream на Windows
  3976. рабочий процесс мог завершаться аварийно.
  3977. </para>
  3978. <para lang="en">
  3979. nginx worker might be terminated abnormally
  3980. when using the "zone" directive inside the "upstream" block on Windows.
  3981. </para>
  3982. </change>

  3983. </changes>


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

  3985. <change type="security">
  3986. <para lang="ru">
  3987. специально созданный запрос мог вызвать целочисленное переполнение
  3988. в range-фильтре и последующую некорректную обработку запрошенных диапазонов,
  3989. что потенциально могло привести к утечке конфиденциальной информации
  3990. (CVE-2017-7529).
  3991. </para>
  3992. <para lang="en">
  3993. a specially crafted request might result in an integer overflow
  3994. and incorrect processing of ranges in the range filter,
  3995. potentially resulting in sensitive information leak
  3996. (CVE-2017-7529).
  3997. </para>
  3998. </change>

  3999. </changes>


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

  4001. <change type="change">
  4002. <para lang="ru">
  4003. теперь при запросе диапазона, начинающегося с 0, из пустого файла
  4004. nginx возвращает ответ 200 вместо 416.
  4005. </para>
  4006. <para lang="en">
  4007. nginx now returns 200 instead of 416
  4008. when a range starting with 0 is requested from an empty file.
  4009. </para>
  4010. </change>

  4011. <change type="feature">
  4012. <para lang="ru">
  4013. директива add_trailer.<br/>
  4014. Спасибо Piotr Sikora.
  4015. </para>
  4016. <para lang="en">
  4017. the "add_trailer" directive.<br/>
  4018. Thanks to Piotr Sikora.
  4019. </para>
  4020. </change>

  4021. <change type="bugfix">
  4022. <para lang="ru">
  4023. nginx не собирался под Cygwin и NetBSD;
  4024. ошибка появилась в 1.13.0.
  4025. </para>
  4026. <para lang="en">
  4027. nginx could not be built on Cygwin and NetBSD;
  4028. the bug had appeared in 1.13.0.
  4029. </para>
  4030. </change>

  4031. <change type="bugfix">
  4032. <para lang="ru">
  4033. nginx не собирался под MSYS2 / MinGW 64-bit.<br/>
  4034. Спасибо Orgad Shaneh.
  4035. </para>
  4036. <para lang="en">
  4037. nginx could not be built under MSYS2 / MinGW 64-bit.<br/>
  4038. Thanks to Orgad Shaneh.
  4039. </para>
  4040. </change>

  4041. <change type="bugfix">
  4042. <para lang="ru">
  4043. при использовании SSI с большим количеством подзапросов
  4044. и proxy_pass с переменными
  4045. в рабочем процессе мог произойти segmentation fault.
  4046. </para>
  4047. <para lang="en">
  4048. a segmentation fault might occur in a worker process
  4049. when using SSI with many includes
  4050. and proxy_pass with variables.
  4051. </para>
  4052. </change>

  4053. <change type="bugfix">
  4054. <para lang="ru">
  4055. в модуле ngx_http_v2_module.<br/>
  4056. Спасибо Piotr Sikora.
  4057. </para>
  4058. <para lang="en">
  4059. in the ngx_http_v2_module.<br/>
  4060. Thanks to Piotr Sikora.
  4061. </para>
  4062. </change>

  4063. </changes>


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

  4065. <change type="feature">
  4066. <para lang="ru">
  4067. теперь в качестве параметра директивы set_real_ip_from
  4068. можно указывать имя хоста.
  4069. </para>
  4070. <para lang="en">
  4071. now a hostname can be used
  4072. as the "set_real_ip_from" directive parameter.
  4073. </para>
  4074. </change>

  4075. <change type="feature">
  4076. <para lang="ru">
  4077. улучшения в скриптах подсветки синтаксиса для vim.
  4078. </para>
  4079. <para lang="en">
  4080. vim syntax highlighting scripts improvements.
  4081. </para>
  4082. </change>

  4083. <change type="feature">
  4084. <para lang="ru">
  4085. директива worker_cpu_affinity теперь работает на DragonFly BSD.<br/>
  4086. Спасибо Sepherosa Ziehau.
  4087. </para>
  4088. <para lang="en">
  4089. the "worker_cpu_affinity" directive now works on DragonFly BSD.<br/>
  4090. Thanks to Sepherosa Ziehau.
  4091. </para>
  4092. </change>

  4093. <change type="bugfix">
  4094. <para lang="ru">
  4095. SSL renegotiation в соединениях к бэкендам
  4096. не работал при использовании OpenSSL до 1.1.0.
  4097. </para>
  4098. <para lang="en">
  4099. SSL renegotiation on backend connections
  4100. did not work when using OpenSSL before 1.1.0.
  4101. </para>
  4102. </change>

  4103. <change type="workaround">
  4104. <para lang="ru">
  4105. nginx не собирался с Oracle Developer Studio 12.5.
  4106. </para>
  4107. <para lang="en">
  4108. nginx could not be built with Oracle Developer Studio 12.5.
  4109. </para>
  4110. </change>

  4111. <change type="workaround">
  4112. <para lang="ru">
  4113. теперь cache manager пропускает заблокированные записи
  4114. при очистке кэша по max_size.
  4115. </para>
  4116. <para lang="en">
  4117. now cache manager ignores long locked cache entries
  4118. when cleaning cache based on the "max_size" parameter.
  4119. </para>
  4120. </change>

  4121. <change type="bugfix">
  4122. <para lang="ru">
  4123. клиентские SSL-соединения сразу закрывались, если использовался
  4124. отложенный accept и параметр proxy_protocol директивы listen.
  4125. </para>
  4126. <para lang="en">
  4127. client SSL connections were immediately closed if deferred accept
  4128. and the "proxy_protocol" parameter of the "listen" directive were used.
  4129. </para>
  4130. </change>

  4131. <change type="bugfix">
  4132. <para lang="ru">
  4133. в директиве proxy_cache_background_update.
  4134. </para>
  4135. <para lang="en">
  4136. in the "proxy_cache_background_update" directive.
  4137. </para>
  4138. </change>

  4139. <change type="workaround">
  4140. <para lang="ru">
  4141. теперь директива tcp_nodelay
  4142. устанавливает опцию TCP_NODELAY перед SSL handshake.
  4143. </para>
  4144. <para lang="en">
  4145. now the "tcp_nodelay" directive
  4146. sets the TCP_NODELAY option before an SSL handshake.
  4147. </para>
  4148. </change>

  4149. </changes>


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

  4151. <change type="change">
  4152. <para lang="ru">
  4153. теперь SSL renegotiation допускается в соединениях к бэкендам.
  4154. </para>
  4155. <para lang="en">
  4156. SSL renegotiation is now allowed on backend connections.
  4157. </para>
  4158. </change>

  4159. <change type="feature">
  4160. <para lang="ru">
  4161. параметры rcvbuf и sndbuf директив listen
  4162. в почтовом прокси-сервере и модуле stream.
  4163. </para>
  4164. <para lang="en">
  4165. the "rcvbuf" and "sndbuf" parameters of the "listen" directives
  4166. of the mail proxy and stream modules.
  4167. </para>
  4168. </change>

  4169. <change type="feature">
  4170. <para lang="ru">
  4171. директивы return и error_page теперь могут использоваться для возврата
  4172. перенаправлений с кодом 308.<br/>
  4173. Спасибо Simon Leblanc.
  4174. </para>
  4175. <para lang="en">
  4176. the "return" and "error_page" directives can now be used to return 308
  4177. redirections.<br/>
  4178. Thanks to Simon Leblanc.
  4179. </para>
  4180. </change>

  4181. <change type="feature">
  4182. <para lang="ru">
  4183. параметр TLSv1.3 в директиве ssl_protocols.
  4184. </para>
  4185. <para lang="en">
  4186. the "TLSv1.3" parameter of the "ssl_protocols" directive.
  4187. </para>
  4188. </change>

  4189. <change type="feature">
  4190. <para lang="ru">
  4191. при логгировании сигналов теперь указывается PID отправившего сигнал процесса.
  4192. </para>
  4193. <para lang="en">
  4194. when logging signals nginx now logs PID of the process which sent the signal.
  4195. </para>
  4196. </change>

  4197. <change type="bugfix">
  4198. <para lang="ru">
  4199. в обработке ошибок выделения памяти.
  4200. </para>
  4201. <para lang="en">
  4202. in memory allocation error handling.
  4203. </para>
  4204. </change>

  4205. <change type="bugfix">
  4206. <para lang="ru">
  4207. если сервер в модуле stream слушал на wildcard-адресе,
  4208. исходящий адрес ответного UDP-пакета
  4209. мог отличаться от адреса назначения исходного пакета.
  4210. </para>
  4211. <para lang="en">
  4212. if a server in the stream module listened on a wildcard address,
  4213. the source address of a response UDP datagram could differ
  4214. from the original datagram destination address.
  4215. </para>
  4216. </change>

  4217. </changes>


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

  4219. <change type="feature">
  4220. <para lang="ru">
  4221. параметр http_429 в директивах proxy_next_upstream, fastcgi_next_upstream,
  4222. scgi_next_upstream и uwsgi_next_upstream.<br/>
  4223. Спасибо Piotr Sikora.
  4224. </para>
  4225. <para lang="en">
  4226. the "http_429" parameter of the "proxy_next_upstream", "fastcgi_next_upstream",
  4227. "scgi_next_upstream", and "uwsgi_next_upstream" directives.<br/>
  4228. Thanks to Piotr Sikora.
  4229. </para>
  4230. </change>

  4231. <change type="bugfix">
  4232. <para lang="ru">
  4233. в обработке ошибок выделения памяти.
  4234. </para>
  4235. <para lang="en">
  4236. in memory allocation error handling.
  4237. </para>
  4238. </change>

  4239. <change type="bugfix">
  4240. <para lang="ru">
  4241. при использовании директив sendfile и timer_resolution на Linux
  4242. запросы могли зависать.
  4243. </para>
  4244. <para lang="en">
  4245. requests might hang
  4246. when using the "sendfile" and "timer_resolution" directives on Linux.
  4247. </para>
  4248. </change>

  4249. <change type="bugfix">
  4250. <para lang="ru">
  4251. при использовании с подзапросами директив sendfile и aio_write
  4252. запросы могли зависать.
  4253. </para>
  4254. <para lang="en">
  4255. requests might hang
  4256. when using the "sendfile" and "aio_write" directives with subrequests.
  4257. </para>
  4258. </change>

  4259. <change type="bugfix">
  4260. <para lang="ru">
  4261. в модуле ngx_http_v2_module.<br/>
  4262. Спасибо Piotr Sikora.
  4263. </para>
  4264. <para lang="en">
  4265. in the ngx_http_v2_module.<br/>
  4266. Thanks to Piotr Sikora.
  4267. </para>
  4268. </change>

  4269. <change type="bugfix">
  4270. <para lang="ru">
  4271. при использовании HTTP/2 в рабочем процессе мог произойти segmentation fault.
  4272. </para>
  4273. <para lang="en">
  4274. a segmentation fault might occur in a worker process when using HTTP/2.
  4275. </para>
  4276. </change>

  4277. <change type="bugfix">
  4278. <para lang="ru">
  4279. запросы могли зависать
  4280. при использовании с подзапросами директив limit_rate, sendfile_max_chunk,
  4281. limit_req или метода $r->sleep() встроенного перла.
  4282. </para>
  4283. <para lang="en">
  4284. requests might hang
  4285. when using the "limit_rate", "sendfile_max_chunk", "limit_req" directives,
  4286. or the $r->sleep() embedded perl method with subrequests.
  4287. </para>
  4288. </change>

  4289. <change type="bugfix">
  4290. <para lang="ru">
  4291. в модуле ngx_http_slice_module.
  4292. </para>
  4293. <para lang="en">
  4294. in the ngx_http_slice_module.
  4295. </para>
  4296. </change>

  4297. </changes>


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

  4299. <change type="bugfix">
  4300. <para lang="ru">
  4301. nginx мог нагружать процессор;
  4302. ошибка появилась в 1.11.11.
  4303. </para>
  4304. <para lang="en">
  4305. nginx might hog CPU;
  4306. the bug had appeared in 1.11.11.
  4307. </para>
  4308. </change>

  4309. </changes>


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

  4311. <change type="feature">
  4312. <para lang="ru">
  4313. директива worker_shutdown_timeout.
  4314. </para>
  4315. <para lang="en">
  4316. the "worker_shutdown_timeout" directive.
  4317. </para>
  4318. </change>

  4319. <change type="feature">
  4320. <para lang="ru">
  4321. улучшения в скриптах подсветки синтаксиса для vim.<br/>
  4322. Спасибо Wei-Ko Kao.
  4323. </para>
  4324. <para lang="en">
  4325. vim syntax highlighting scripts improvements.<br/>
  4326. Thanks to Wei-Ko Kao.
  4327. </para>
  4328. </change>

  4329. <change type="bugfix">
  4330. <para lang="ru">
  4331. при попытке установить переменную $limit_rate в пустую строку
  4332. в рабочем процессе мог произойти segmentation fault.
  4333. </para>
  4334. <para lang="en">
  4335. a segmentation fault might occur in a worker process
  4336. if the $limit_rate variable was set to an empty string.
  4337. </para>
  4338. </change>

  4339. <change type="bugfix">
  4340. <para lang="ru">
  4341. директивы proxy_cache_background_update, fastcgi_cache_background_update,
  4342. scgi_cache_background_update и uwsgi_cache_background_update
  4343. могли работать некорректно, если использовалась директива if.
  4344. </para>
  4345. <para lang="en">
  4346. the "proxy_cache_background_update", "fastcgi_cache_background_update",
  4347. "scgi_cache_background_update", and "uwsgi_cache_background_update" directives
  4348. might work incorrectly if the "if" directive was used.
  4349. </para>
  4350. </change>

  4351. <change type="bugfix">
  4352. <para lang="ru">
  4353. в рабочем процессе мог произойти segmentation fault,
  4354. если количество large_client_header_buffers в виртуальном сервере
  4355. отличалось от такового в сервере по умолчанию.
  4356. </para>
  4357. <para lang="en">
  4358. a segmentation fault might occur in a worker process
  4359. if number of large_client_header_buffers in a virtual server
  4360. was different from the one in the default server.
  4361. </para>
  4362. </change>

  4363. <change type="bugfix">
  4364. <para lang="ru">
  4365. в почтовом прокси-сервере.
  4366. </para>
  4367. <para lang="en">
  4368. in the mail proxy server.
  4369. </para>
  4370. </change>

  4371. </changes>


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

  4373. <change type="change">
  4374. <para lang="ru">
  4375. формат заголовка кэша был изменен,
  4376. ранее закэшированные ответы будут загружены заново.
  4377. </para>
  4378. <para lang="en">
  4379. cache header format has been changed,
  4380. previously cached responses will be invalidated.
  4381. </para>
  4382. </change>

  4383. <change type="feature">
  4384. <para lang="ru">
  4385. поддержка расширений stale-while-revalidate и stale-if-error
  4386. в строке "Cache-Control" в заголовке ответа бэкенда.
  4387. </para>
  4388. <para lang="en">
  4389. support of "stale-while-revalidate" and "stale-if-error" extensions
  4390. in the "Cache-Control" backend response header line.
  4391. </para>
  4392. </change>

  4393. <change type="feature">
  4394. <para lang="ru">
  4395. директивы proxy_cache_background_update, fastcgi_cache_background_update,
  4396. scgi_cache_background_update и uwsgi_cache_background_update.
  4397. </para>
  4398. <para lang="en">
  4399. the "proxy_cache_background_update", "fastcgi_cache_background_update",
  4400. "scgi_cache_background_update", and "uwsgi_cache_background_update" directives.
  4401. </para>
  4402. </change>

  4403. <change type="feature">
  4404. <para lang="ru">
  4405. теперь nginx может кэшировать ответы
  4406. со строкой Vary заголовка длиной до 128 символов
  4407. (вместо 42 символов в предыдущих версиях).
  4408. </para>
  4409. <para lang="en">
  4410. nginx is now able to cache responses
  4411. with the "Vary" header line up to 128 characters long
  4412. (instead of 42 characters in previous versions).
  4413. </para>
  4414. </change>

  4415. <change type="feature">
  4416. <para lang="ru">
  4417. параметр build директивы server_tokens.<br/>
  4418. Спасибо Tom Thorogood.
  4419. </para>
  4420. <para lang="en">
  4421. the "build" parameter of the "server_tokens" directive.<br/>
  4422. Thanks to Tom Thorogood.
  4423. </para>
  4424. </change>

  4425. <change type="bugfix">
  4426. <para lang="ru">
  4427. при обработке запросов со строкой "Expect: 100-continue" в заголовке запроса
  4428. в логах могли появляться сообщения "[crit] SSL_write() failed".
  4429. </para>
  4430. <para lang="en">
  4431. "[crit] SSL_write() failed" messages might appear in logs
  4432. when handling requests with the "Expect: 100-continue" request header line.
  4433. </para>
  4434. </change>

  4435. <change type="bugfix">
  4436. <para lang="ru">
  4437. модуль ngx_http_slice_module не работал в именованных location'ах.
  4438. </para>
  4439. <para lang="en">
  4440. the ngx_http_slice_module did not work in named locations.
  4441. </para>
  4442. </change>

  4443. <change type="bugfix">
  4444. <para lang="ru">
  4445. при использовании AIO после перенаправления запроса с помощью X-Accel-Redirect
  4446. в рабочем процессе мог произойти segmentation fault.
  4447. </para>
  4448. <para lang="en">
  4449. a segmentation fault might occur in a worker process
  4450. when using AIO after an "X-Accel-Redirect" redirection.
  4451. </para>
  4452. </change>

  4453. <change type="bugfix">
  4454. <para lang="ru">
  4455. уменьшено потребление памяти для долгоживущих запросов, использующих сжатие.
  4456. </para>
  4457. <para lang="en">
  4458. reduced memory consumption for long-lived requests using gzipping.
  4459. </para>
  4460. </change>

  4461. </changes>


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

  4463. <change type="bugfix">
  4464. <para lang="ru">
  4465. при использовании модуля stream nginx мог нагружать процессор;
  4466. ошибка появилась в 1.11.5.
  4467. </para>
  4468. <para lang="en">
  4469. nginx might hog CPU when using the stream module;
  4470. the bug had appeared in 1.11.5.
  4471. </para>
  4472. </change>

  4473. <change type="bugfix">
  4474. <para lang="ru">
  4475. метод аутентификации EXTERNAL в почтовом прокси-сервере
  4476. можно было использовать, даже если он не был разрешён в конфигурации.
  4477. </para>
  4478. <para lang="en">
  4479. EXTERNAL authentication mechanism in mail proxy
  4480. was accepted even if it was not enabled in the configuration.
  4481. </para>
  4482. </change>

  4483. <change type="bugfix">
  4484. <para lang="ru">
  4485. при использовании директивы ssl_verify_client модуля stream
  4486. в рабочем процессе мог произойти segmentation fault.
  4487. </para>
  4488. <para lang="en">
  4489. a segmentation fault might occur in a worker process
  4490. if the "ssl_verify_client" directive of the stream module was used.
  4491. </para>
  4492. </change>

  4493. <change type="bugfix">
  4494. <para lang="ru">
  4495. директива ssl_verify_client модуля stream могла не работать.
  4496. </para>
  4497. <para lang="en">
  4498. the "ssl_verify_client" directive of the stream module might not work.
  4499. </para>
  4500. </change>

  4501. <change type="bugfix">
  4502. <para lang="ru">
  4503. при исчерпании рабочим процессом свободных соединений
  4504. keepalive-соединения могли закрываться излишне агрессивно.<br/>
  4505. Спасибо Joel Cunningham.
  4506. </para>
  4507. <para lang="en">
  4508. closing keepalive connections due to no free worker connections
  4509. might be too aggressive.<br/>
  4510. Thanks to Joel Cunningham.
  4511. </para>
  4512. </change>

  4513. <change type="bugfix">
  4514. <para lang="ru">
  4515. при использовании директивы sendfile на FreeBSD и macOS
  4516. мог возвращаться некорректный ответ;
  4517. ошибка появилась в 1.7.8.
  4518. </para>
  4519. <para lang="en">
  4520. an incorrect response might be returned
  4521. when using the "sendfile" directive on FreeBSD and macOS;
  4522. the bug had appeared in 1.7.8.
  4523. </para>
  4524. </change>

  4525. <change type="bugfix">
  4526. <para lang="ru">
  4527. при использовании директивы aio_write
  4528. ответ мог сохраняться в кэш не полностью.
  4529. </para>
  4530. <para lang="en">
  4531. a truncated response might be stored in cache
  4532. when using the "aio_write" directive.
  4533. </para>
  4534. </change>

  4535. <change type="bugfix">
  4536. <para lang="ru">
  4537. при использовании директивы aio_write
  4538. могла происходить утечка сокетов.
  4539. </para>
  4540. <para lang="en">
  4541. a socket leak might occur
  4542. when using the "aio_write" directive.
  4543. </para>
  4544. </change>

  4545. </changes>


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

  4547. <change type="feature">
  4548. <para lang="ru">
  4549. директива absolute_redirect.
  4550. </para>
  4551. <para lang="en">
  4552. the "absolute_redirect" directive.
  4553. </para>
  4554. </change>

  4555. <change type="feature">
  4556. <para lang="ru">
  4557. параметр escape директивы log_format.
  4558. </para>
  4559. <para lang="en">
  4560. the "escape" parameter of the "log_format" directive.
  4561. </para>
  4562. </change>

  4563. <change type="feature">
  4564. <para lang="ru">
  4565. проверка клиентских SSL-сертификатов в модуле stream.
  4566. </para>
  4567. <para lang="en">
  4568. client SSL certificates verification in the stream module.
  4569. </para>
  4570. </change>

  4571. <change type="feature">
  4572. <para lang="ru">
  4573. директива ssl_session_ticket_key поддерживает
  4574. шифрование TLS session tickets с помощью AES256
  4575. при использовании с 80-байтными ключами.
  4576. </para>
  4577. <para lang="en">
  4578. the "ssl_session_ticket_key" directive supports
  4579. AES256 encryption of TLS session tickets
  4580. when used with 80-byte keys.
  4581. </para>
  4582. </change>

  4583. <change type="feature">
  4584. <para lang="ru">
  4585. поддержка vim-commentary в скриптах для vim.<br/>
  4586. Спасибо Armin Grodon.
  4587. </para>
  4588. <para lang="en">
  4589. vim-commentary support in vim scripts.<br/>
  4590. Thanks to Armin Grodon.
  4591. </para>
  4592. </change>

  4593. <change type="bugfix">
  4594. <para lang="ru">
  4595. рекурсия при получении значений переменных не ограничивалась.
  4596. </para>
  4597. <para lang="en">
  4598. recursion when evaluating variables was not limited.
  4599. </para>
  4600. </change>

  4601. <change type="bugfix">
  4602. <para lang="ru">
  4603. в модуле ngx_stream_ssl_preread_module.
  4604. </para>
  4605. <para lang="en">
  4606. in the ngx_stream_ssl_preread_module.
  4607. </para>
  4608. </change>

  4609. <change type="bugfix">
  4610. <para lang="ru">
  4611. если сервер, описанный в блоке upstream в модуле stream,
  4612. был признан неработающим, то после истечения fail_timeout он
  4613. признавался работающим только после завершения тестового соединения;
  4614. теперь достаточно, чтобы соединение было успешно установлено.
  4615. </para>
  4616. <para lang="en">
  4617. if a server in an upstream in the stream module failed,
  4618. it was considered alive only when a test connection sent
  4619. to it after fail_timeout was closed;
  4620. now a successfully established connection is enough.
  4621. </para>
  4622. </change>

  4623. <change type="bugfix">
  4624. <para lang="ru">
  4625. nginx/Windows не собирался с 64-битным Visual Studio.
  4626. </para>
  4627. <para lang="en">
  4628. nginx/Windows could not be built with 64-bit Visual Studio.
  4629. </para>
  4630. </change>

  4631. <change type="bugfix">
  4632. <para lang="ru">
  4633. nginx/Windows не собирался с OpenSSL 1.1.0.
  4634. </para>
  4635. <para lang="en">
  4636. nginx/Windows could not be built with OpenSSL 1.1.0.
  4637. </para>
  4638. </change>

  4639. </changes>


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

  4641. <change type="change">
  4642. <para lang="ru">
  4643. переменная $ssl_client_verify теперь
  4644. в случае ошибки проверки клиентского сертификата
  4645. содержит строку с описанием ошибки,
  4646. например, "FAILED:certificate has expired".
  4647. </para>
  4648. <para lang="en">
  4649. now in case of a client certificate verification error
  4650. the $ssl_client_verify variable contains a string with the failure reason,
  4651. for example, "FAILED:certificate has expired".
  4652. </para>
  4653. </change>

  4654. <change type="feature">
  4655. <para lang="ru">
  4656. переменные $ssl_ciphers, $ssl_curves,
  4657. $ssl_client_v_start, $ssl_client_v_end и $ssl_client_v_remain.
  4658. </para>
  4659. <para lang="en">
  4660. the $ssl_ciphers, $ssl_curves,
  4661. $ssl_client_v_start, $ssl_client_v_end, and $ssl_client_v_remain variables.
  4662. </para>
  4663. </change>

  4664. <change type="feature">
  4665. <para lang="ru">
  4666. параметр volatile директивы map.
  4667. </para>
  4668. <para lang="en">
  4669. the "volatile" parameter of the "map" directive.
  4670. </para>
  4671. </change>

  4672. <change type="bugfix">
  4673. <para lang="ru">
  4674. при сборке динамических модулей
  4675. не учитывались заданные для модуля зависимости.
  4676. </para>
  4677. <para lang="en">
  4678. dependencies specified for a module
  4679. were ignored while building dynamic modules.
  4680. </para>
  4681. </change>

  4682. <change type="bugfix">
  4683. <para lang="ru">
  4684. при использовании HTTP/2 и директив limit_req или auth_request
  4685. тело запроса могло быть повреждено;
  4686. ошибка появилась в 1.11.0.
  4687. </para>
  4688. <para lang="en">
  4689. when using HTTP/2 and the "limit_req" or "auth_request" directives
  4690. client request body might be corrupted;
  4691. the bug had appeared in 1.11.0.
  4692. </para>
  4693. </change>

  4694. <change type="bugfix">
  4695. <para lang="ru">
  4696. при использовании HTTP/2 в рабочем процессе мог произойти segmentation fault;
  4697. ошибка появилась в 1.11.3.
  4698. </para>
  4699. <para lang="en">
  4700. a segmentation fault might occur in a worker process when using HTTP/2;
  4701. the bug had appeared in 1.11.3.
  4702. </para>
  4703. </change>

  4704. <change type="bugfix">
  4705. <para lang="ru">
  4706. в модуле ngx_http_mp4_module.<br/>
  4707. Спасибо Congcong Hu.
  4708. </para>
  4709. <para lang="en">
  4710. in the ngx_http_mp4_module.<br/>
  4711. Thanks to Congcong Hu.
  4712. </para>
  4713. </change>

  4714. <change type="bugfix">
  4715. <para lang="ru">
  4716. в модуле ngx_http_perl_module.
  4717. </para>
  4718. <para lang="en">
  4719. in the ngx_http_perl_module.
  4720. </para>
  4721. </change>

  4722. </changes>


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

  4724. <change type="change">
  4725. <para lang="ru">
  4726. формат переменных $ssl_client_s_dn и $ssl_client_i_dn
  4727. изменён на соответствующий RFC 2253 (RFC 4514);
  4728. значения в старом формате доступны через переменные
  4729. $ssl_client_s_dn_legacy и $ssl_client_i_dn_legacy.
  4730. </para>
  4731. <para lang="en">
  4732. format of the $ssl_client_s_dn and $ssl_client_i_dn variables
  4733. has been changed to follow RFC 2253 (RFC 4514);
  4734. values in the old format are available in
  4735. the $ssl_client_s_dn_legacy and $ssl_client_i_dn_legacy variables.
  4736. </para>
  4737. </change>

  4738. <change type="change">
  4739. <para lang="ru">
  4740. при сохранении временных файлов в каталоге кэша
  4741. они теперь располагаются не в отдельном подкаталоге для временных файлов,
  4742. а в том же подкаталоге, что и соответствующие файлы в кэше.
  4743. </para>
  4744. <para lang="en">
  4745. when storing temporary files in a cache directory
  4746. they will be stored in the same subdirectories as corresponding cache files
  4747. instead of a separate subdirectory for temporary files.
  4748. </para>
  4749. </change>

  4750. <change type="feature">
  4751. <para lang="ru">
  4752. поддержка метода аутентификации EXTERNAL
  4753. в почтовом прокси-сервере.<br/>
  4754. Спасибо Robert Norris.
  4755. </para>
  4756. <para lang="en">
  4757. EXTERNAL authentication mechanism support
  4758. in mail proxy.<br/>
  4759. Thanks to Robert Norris.
  4760. </para>
  4761. </change>

  4762. <change type="feature">
  4763. <para lang="ru">
  4764. поддержка WebP в модуле ngx_http_image_filter_module.
  4765. </para>
  4766. <para lang="en">
  4767. WebP support in the ngx_http_image_filter_module.
  4768. </para>
  4769. </change>

  4770. <change type="feature">
  4771. <para lang="ru">
  4772. директива proxy_method поддерживает переменные.<br/>
  4773. Спасибо Дмитрию Лазуркину.
  4774. </para>
  4775. <para lang="en">
  4776. variables support in the "proxy_method" directive.<br/>
  4777. Thanks to Dmitry Lazurkin.
  4778. </para>
  4779. </change>

  4780. <change type="feature">
  4781. <para lang="ru">
  4782. директива http2_max_requests в модуле ngx_http_v2_module.
  4783. </para>
  4784. <para lang="en">
  4785. the "http2_max_requests" directive in the ngx_http_v2_module.
  4786. </para>
  4787. </change>

  4788. <change type="feature">
  4789. <para lang="ru">
  4790. директивы proxy_cache_max_range_offset, fastcgi_cache_max_range_offset,
  4791. scgi_cache_max_range_offset и uwsgi_cache_max_range_offset.
  4792. </para>
  4793. <para lang="en">
  4794. the "proxy_cache_max_range_offset", "fastcgi_cache_max_range_offset",
  4795. "scgi_cache_max_range_offset", and "uwsgi_cache_max_range_offset" directives.
  4796. </para>
  4797. </change>

  4798. <change type="bugfix">
  4799. <para lang="ru">
  4800. плавное завершение старых рабочих процессов могло занимать бесконечное время
  4801. при использовании HTTP/2.
  4802. </para>
  4803. <para lang="en">
  4804. graceful shutdown of old worker processes might require infinite time
  4805. when using HTTP/2.
  4806. </para>
  4807. </change>

  4808. <change type="bugfix">
  4809. <para lang="ru">
  4810. в модуле ngx_http_mp4_module.
  4811. </para>
  4812. <para lang="en">
  4813. in the ngx_http_mp4_module.
  4814. </para>
  4815. </change>

  4816. <change type="bugfix">
  4817. <para lang="ru">
  4818. при проксировании WebSocket-соединений и включённом кэшировании
  4819. в логах могли появляться сообщения "ignore long locked inactive cache entry".
  4820. </para>
  4821. <para lang="en">
  4822. "ignore long locked inactive cache entry" alerts might appear in logs
  4823. when proxying WebSocket connections with caching enabled.
  4824. </para>
  4825. </change>

  4826. <change type="bugfix">
  4827. <para lang="ru">
  4828. если во время SSL handshake с бэкендом происходил таймаут,
  4829. nginx ничего не писал в лог
  4830. и возвращал ответ с кодом 502 вместо 504.
  4831. </para>
  4832. <para lang="en">
  4833. nginx did not write anything to log
  4834. and returned a response with code 502 instead of 504
  4835. when a timeout occurred during an SSL handshake to a backend.
  4836. </para>
  4837. </change>

  4838. </changes>


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

  4840. <change type="change">
  4841. <para lang="ru">
  4842. параметр configure --with-ipv6 упразднён,
  4843. поддержка IPv6 теперь собирается автоматически.
  4844. </para>
  4845. <para lang="en">
  4846. the --with-ipv6 configure option was removed,
  4847. now IPv6 support is configured automatically.
  4848. </para>
  4849. </change>

  4850. <change type="change">
  4851. <para lang="ru">
  4852. теперь, если в блоке upstream не оказалось доступных серверов,
  4853. nginx не сбрасывает статистику ошибок всех серверов, как делал ранее,
  4854. а ожидает истечения fail_timeout.
  4855. </para>
  4856. <para lang="en">
  4857. now if there are no available servers in an upstream,
  4858. nginx will not reset number of failures of all servers as it previously did,
  4859. but will wait for fail_timeout to expire.
  4860. </para>
  4861. </change>

  4862. <change type="feature">
  4863. <para lang="ru">
  4864. модуль ngx_stream_ssl_preread_module.
  4865. </para>
  4866. <para lang="en">
  4867. the ngx_stream_ssl_preread_module.
  4868. </para>
  4869. </change>

  4870. <change type="feature">
  4871. <para lang="ru">
  4872. директива server в блоке upstream поддерживает параметр max_conns.
  4873. </para>
  4874. <para lang="en">
  4875. the "server" directive in the "upstream" context supports
  4876. the "max_conns" parameter.
  4877. </para>
  4878. </change>

  4879. <change type="feature">
  4880. <para lang="ru">
  4881. параметр configure --with-compat.
  4882. </para>
  4883. <para lang="en">
  4884. the --with-compat configure option.
  4885. </para>
  4886. </change>

  4887. <change type="feature">
  4888. <para lang="ru">
  4889. параметры manager_files, manager_threshold и manager_sleep
  4890. директив proxy_cache_path, fastcgi_cache_path, scgi_cache_path и
  4891. uwsgi_cache_path.
  4892. </para>
  4893. <para lang="en">
  4894. "manager_files", "manager_threshold", and "manager_sleep" parameters
  4895. of the "proxy_cache_path", "fastcgi_cache_path", "scgi_cache_path", and
  4896. "uwsgi_cache_path" directives.
  4897. </para>
  4898. </change>

  4899. <change type="bugfix">
  4900. <para lang="ru">
  4901. при сборке perl-модуля не использовались флаги,
  4902. заданные с помощью параметра configure --with-ld-opt.
  4903. </para>
  4904. <para lang="en">
  4905. flags passed by the --with-ld-opt configure option
  4906. were not used while building perl module.
  4907. </para>
  4908. </change>

  4909. <change type="bugfix">
  4910. <para lang="ru">
  4911. в директиве add_after_body при использовании совместно с директивой sub_filter.
  4912. </para>
  4913. <para lang="en">
  4914. in the "add_after_body" directive when used with the "sub_filter" directive.
  4915. </para>
  4916. </change>

  4917. <change type="bugfix">
  4918. <para lang="ru">
  4919. в переменной $realip_remote_addr.
  4920. </para>
  4921. <para lang="en">
  4922. in the $realip_remote_addr variable.
  4923. </para>
  4924. </change>

  4925. <change type="bugfix">
  4926. <para lang="ru">
  4927. директивы dav_access, proxy_store_access, fastcgi_store_access,
  4928. scgi_store_access и uwsgi_store_access
  4929. игнорировали права, заданные для пользователя.
  4930. </para>
  4931. <para lang="en">
  4932. the "dav_access", "proxy_store_access", "fastcgi_store_access",
  4933. "scgi_store_access", and "uwsgi_store_access" directives
  4934. ignored permissions specified for user.
  4935. </para>
  4936. </change>

  4937. <change type="bugfix">
  4938. <para lang="ru">
  4939. unix domain listen-сокеты могли не наследоваться
  4940. при обновлении исполняемого файла на Linux.
  4941. </para>
  4942. <para lang="en">
  4943. unix domain listen sockets might not be inherited
  4944. during binary upgrade on Linux.
  4945. </para>
  4946. </change>

  4947. <change type="bugfix">
  4948. <para lang="ru">
  4949. nginx возвращал ошибку 400 на запросы
  4950. с символом "-" в HTTP-методе.
  4951. </para>
  4952. <para lang="en">
  4953. nginx returned the 400 response on requests
  4954. with the "-" character in the HTTP method.
  4955. </para>
  4956. </change>

  4957. </changes>


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

  4959. <change type="feature">
  4960. <para lang="ru">
  4961. переменная $upstream_bytes_received.
  4962. </para>
  4963. <para lang="en">
  4964. the $upstream_bytes_received variable.
  4965. </para>
  4966. </change>

  4967. <change type="feature">
  4968. <para lang="ru">
  4969. переменные $bytes_received, $session_time, $protocol, $status,
  4970. $upstream_addr, $upstream_bytes_sent, $upstream_bytes_received,
  4971. $upstream_connect_time, $upstream_first_byte_time
  4972. и $upstream_session_time в модуле stream.
  4973. </para>
  4974. <para lang="en">
  4975. the $bytes_received, $session_time, $protocol, $status,
  4976. $upstream_addr, $upstream_bytes_sent, $upstream_bytes_received,
  4977. $upstream_connect_time, $upstream_first_byte_time,
  4978. and $upstream_session_time variables in the stream module.
  4979. </para>
  4980. </change>

  4981. <change type="feature">
  4982. <para lang="ru">
  4983. модуль ngx_stream_log_module.
  4984. </para>
  4985. <para lang="en">
  4986. the ngx_stream_log_module.
  4987. </para>
  4988. </change>

  4989. <change type="feature">
  4990. <para lang="ru">
  4991. параметр proxy_protocol в директиве listen,
  4992. переменные $proxy_protocol_addr и $proxy_protocol_port
  4993. в модуле stream.
  4994. </para>
  4995. <para lang="en">
  4996. the "proxy_protocol" parameter of the "listen" directive,
  4997. the $proxy_protocol_addr and $proxy_protocol_port variables
  4998. in the stream module.
  4999. </para>
  5000. </change>

  5001. <change type="feature">
  5002. <para lang="ru">
  5003. модуль ngx_stream_realip_module.
  5004. </para>
  5005. <para lang="en">
  5006. the ngx_stream_realip_module.
  5007. </para>
  5008. </change>

  5009. <change type="bugfix">
  5010. <para lang="ru">
  5011. nginx не собирался с модулем stream и модулем ngx_http_ssl_module,
  5012. но без модуля ngx_stream_ssl_module;
  5013. ошибка появилась в 1.11.3.
  5014. </para>
  5015. <para lang="en">
  5016. nginx could not be built with the stream module and the ngx_http_ssl_module,
  5017. but without ngx_stream_ssl_module;
  5018. the bug had appeared in 1.11.3.
  5019. </para>
  5020. </change>

  5021. <change type="feature">
  5022. <para lang="ru">
  5023. опция сокета IP_BIND_ADDRESS_NO_PORT не использовалась;
  5024. ошибка появилась в 1.11.2.
  5025. </para>
  5026. <para lang="en">
  5027. the IP_BIND_ADDRESS_NO_PORT socket option was not used;
  5028. the bug had appeared in 1.11.2.
  5029. </para>
  5030. </change>

  5031. <change type="bugfix">
  5032. <para lang="ru">
  5033. в параметре ranges директивы geo.
  5034. </para>
  5035. <para lang="en">
  5036. in the "ranges" parameter of the "geo" directive.
  5037. </para>
  5038. </change>

  5039. <change type="bugfix">
  5040. <para lang="ru">
  5041. при использовании директив "aio threads" и sendfile
  5042. мог возвращаться некорректный ответ; ошибка появилась в 1.9.13.
  5043. </para>
  5044. <para lang="en">
  5045. an incorrect response might be returned
  5046. when using the "aio threads" and "sendfile" directives;
  5047. the bug had appeared in 1.9.13.
  5048. </para>
  5049. </change>

  5050. </changes>


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

  5052. <change type="change">
  5053. <para lang="ru">
  5054. теперь accept_mutex по умолчанию выключен.
  5055. </para>
  5056. <para lang="en">
  5057. now the "accept_mutex" directive is turned off by default.
  5058. </para>
  5059. </change>

  5060. <change type="feature">
  5061. <para lang="ru">
  5062. теперь nginx использует EPOLLEXCLUSIVE на Linux.
  5063. </para>
  5064. <para lang="en">
  5065. now nginx uses EPOLLEXCLUSIVE on Linux.
  5066. </para>
  5067. </change>

  5068. <change type="feature">
  5069. <para lang="ru">
  5070. модуль ngx_stream_geo_module.
  5071. </para>
  5072. <para lang="en">
  5073. the ngx_stream_geo_module.
  5074. </para>
  5075. </change>

  5076. <change type="feature">
  5077. <para lang="ru">
  5078. модуль ngx_stream_geoip_module.
  5079. </para>
  5080. <para lang="en">
  5081. the ngx_stream_geoip_module.
  5082. </para>
  5083. </change>

  5084. <change type="feature">
  5085. <para lang="ru">
  5086. модуль ngx_stream_split_clients_module.
  5087. </para>
  5088. <para lang="en">
  5089. the ngx_stream_split_clients_module.
  5090. </para>
  5091. </change>

  5092. <change type="feature">
  5093. <para lang="ru">
  5094. директивы proxy_pass и proxy_ssl_name в модуле stream
  5095. поддерживают переменные.
  5096. </para>
  5097. <para lang="en">
  5098. variables support
  5099. in the "proxy_pass" and "proxy_ssl_name" directives in the stream module.
  5100. </para>
  5101. </change>

  5102. <change type="bugfix">
  5103. <para lang="ru">
  5104. утечки сокетов при использовании HTTP/2.
  5105. </para>
  5106. <para lang="en">
  5107. socket leak when using HTTP/2.
  5108. </para>
  5109. </change>

  5110. <change type="bugfix">
  5111. <para lang="ru">
  5112. в configure.<br/>
  5113. Спасибо Piotr Sikora.
  5114. </para>
  5115. <para lang="en">
  5116. in configure tests.<br/>
  5117. Thanks to Piotr Sikora.
  5118. </para>
  5119. </change>

  5120. </changes>


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

  5122. <change type="change">
  5123. <para lang="ru">
  5124. теперь nginx всегда использует внутренние реализации MD5 и SHA1;
  5125. параметры configure --with-md5 и --with-sha1 упразднены.
  5126. </para>
  5127. <para lang="en">
  5128. now nginx always uses internal MD5 and SHA1 implementations;
  5129. the --with-md5 and --with-sha1 configure options were canceled.
  5130. </para>
  5131. </change>

  5132. <change type="feature">
  5133. <para lang="ru">
  5134. поддержка переменных в модуле stream.
  5135. </para>
  5136. <para lang="en">
  5137. variables support in the stream module.
  5138. </para>
  5139. </change>

  5140. <change type="feature">
  5141. <para lang="ru">
  5142. модуль ngx_stream_map_module.
  5143. </para>
  5144. <para lang="en">
  5145. the ngx_stream_map_module.
  5146. </para>
  5147. </change>

  5148. <change type="feature">
  5149. <para lang="ru">
  5150. модуль ngx_stream_return_module.
  5151. </para>
  5152. <para lang="en">
  5153. the ngx_stream_return_module.
  5154. </para>
  5155. </change>

  5156. <change type="feature">
  5157. <para lang="ru">
  5158. в директивах proxy_bind, fastcgi_bind, memcached_bind, scgi_bind и uwsgi_bind
  5159. теперь можно указывать порт.
  5160. </para>
  5161. <para lang="en">
  5162. a port can be specified in the "proxy_bind", "fastcgi_bind",
  5163. "memcached_bind", "scgi_bind", and "uwsgi_bind" directives.
  5164. </para>
  5165. </change>

  5166. <change type="feature">
  5167. <para lang="ru">
  5168. теперь nginx использует опцию сокета IP_BIND_ADDRESS_NO_PORT, если она доступна.
  5169. </para>
  5170. <para lang="en">
  5171. now nginx uses the IP_BIND_ADDRESS_NO_PORT socket option when available.
  5172. </para>
  5173. </change>

  5174. <change type="bugfix">
  5175. <para lang="ru">
  5176. при использовании HTTP/2 и директивы proxy_request_buffering
  5177. в рабочем процессе мог произойти segmentation fault.
  5178. </para>
  5179. <para lang="en">
  5180. a segmentation fault might occur in a worker process
  5181. when using HTTP/2 and the "proxy_request_buffering" directive.
  5182. </para>
  5183. </change>

  5184. <change type="bugfix">
  5185. <para lang="ru">
  5186. при использовании HTTP/2
  5187. к запросам, передаваемым на бэкенд,
  5188. всегда добавлялась строка заголовка "Content-Length",
  5189. даже если у запроса не было тела.
  5190. </para>
  5191. <para lang="en">
  5192. the "Content-Length" request header line
  5193. was always added to requests passed to backends,
  5194. including requests without body,
  5195. when using HTTP/2.
  5196. </para>
  5197. </change>

  5198. <change type="bugfix">
  5199. <para lang="ru">
  5200. при использовании HTTP/2
  5201. в логах могли появляться сообщения "http request count is zero".
  5202. </para>
  5203. <para lang="en">
  5204. "http request count is zero" alerts might appear in logs
  5205. when using HTTP/2.
  5206. </para>
  5207. </change>

  5208. <change type="bugfix">
  5209. <para lang="ru">
  5210. при использовании директивы sub_filter
  5211. могло буферизироваться больше данных, чем это необходимо;
  5212. проблема появилась в 1.9.4.
  5213. </para>
  5214. <para lang="en">
  5215. unnecessary buffering might occur
  5216. when using the "sub_filter" directive;
  5217. the issue had appeared in 1.9.4.
  5218. </para>
  5219. </change>

  5220. </changes>


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

  5222. <change type="security">
  5223. <para lang="ru">
  5224. при записи тела специально созданного запроса во временный файл
  5225. в рабочем процессе мог происходить segmentation fault
  5226. (CVE-2016-4450);
  5227. ошибка появилась в 1.3.9.
  5228. </para>
  5229. <para lang="en">
  5230. a segmentation fault might occur in a worker process
  5231. while writing a specially crafted request body to a temporary file
  5232. (CVE-2016-4450);
  5233. the bug had appeared in 1.3.9.
  5234. </para>
  5235. </change>

  5236. </changes>


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

  5238. <change type="feature">
  5239. <para lang="ru">
  5240. параметр transparent директив proxy_bind, fastcgi_bind,
  5241. memcached_bind, scgi_bind и uwsgi_bind.
  5242. </para>
  5243. <para lang="en">
  5244. the "transparent" parameter of the "proxy_bind", "fastcgi_bind",
  5245. "memcached_bind", "scgi_bind", and "uwsgi_bind" directives.
  5246. </para>
  5247. </change>

  5248. <change type="feature">
  5249. <para lang="ru">
  5250. переменная $request_id.
  5251. </para>
  5252. <para lang="en">
  5253. the $request_id variable.
  5254. </para>
  5255. </change>

  5256. <change type="feature">
  5257. <para lang="ru">
  5258. директива map поддерживает комбинации нескольких переменных
  5259. в качестве результирующих значений.
  5260. </para>
  5261. <para lang="en">
  5262. the "map" directive supports combinations of multiple variables
  5263. as resulting values.
  5264. </para>
  5265. </change>

  5266. <change type="feature">
  5267. <para lang="ru">
  5268. теперь при использовании метода epoll
  5269. nginx проверяет, поддерживает ли ядро события EPOLLRDHUP,
  5270. и соответственно оптимизирует обработку соединений.
  5271. </para>
  5272. <para lang="en">
  5273. now nginx checks if EPOLLRDHUP events are supported by kernel,
  5274. and optimizes connection handling accordingly
  5275. if the "epoll" method is used.
  5276. </para>
  5277. </change>

  5278. <change type="feature">
  5279. <para lang="ru">
  5280. директивы ssl_certificate и ssl_certificate_key
  5281. теперь можно указывать несколько раз
  5282. для загрузки сертификатов разных типов (например, RSA и ECDSA).
  5283. </para>
  5284. <para lang="en">
  5285. the "ssl_certificate" and "ssl_certificate_key" directives
  5286. can be specified multiple times
  5287. to load certificates of different types (for example, RSA and ECDSA).
  5288. </para>
  5289. </change>

  5290. <change type="feature">
  5291. <para lang="ru">
  5292. при использовании OpenSSL 1.0.2 и новее
  5293. с помощью директивы ssl_ecdh_curve теперь можно задать список кривых;
  5294. по умолчанию используется встроенный в OpenSSL список кривых.
  5295. </para>
  5296. <para lang="en">
  5297. the "ssl_ecdh_curve" directive now allows specifying a list of curves
  5298. when using OpenSSL 1.0.2 or newer;
  5299. by default a list built into OpenSSL is used.
  5300. </para>
  5301. </change>

  5302. <change type="change">
  5303. <para lang="ru">
  5304. для использования DHE-шифров теперь надо явно задавать файл параметров
  5305. с помощью директивы ssl_dhparam.
  5306. </para>
  5307. <para lang="en">
  5308. to use DHE ciphers it is now required to specify parameters
  5309. using the "ssl_dhparam" directive.
  5310. </para>
  5311. </change>

  5312. <change type="feature">
  5313. <para lang="ru">
  5314. переменная $proxy_protocol_port.
  5315. </para>
  5316. <para lang="en">
  5317. the $proxy_protocol_port variable.
  5318. </para>
  5319. </change>

  5320. <change type="feature">
  5321. <para lang="ru">
  5322. переменная $realip_remote_port в модуле ngx_http_realip_module.
  5323. </para>
  5324. <para lang="en">
  5325. the $realip_remote_port variable in the ngx_http_realip_module.
  5326. </para>
  5327. </change>

  5328. <change type="feature">
  5329. <para lang="ru">
  5330. модуль ngx_http_realip_module теперь позволяет устанавливать
  5331. не только адрес, но и порт клиента.
  5332. </para>
  5333. <para lang="en">
  5334. the ngx_http_realip_module is now able to set the client port
  5335. in addition to the address.
  5336. </para>
  5337. </change>

  5338. <change type="change">
  5339. <para lang="ru">
  5340. при попытке запросить виртуальный сервер,
  5341. отличающийся от согласованного в процессе SSL handshake,
  5342. теперь возвращается ответ "421 Misdirected Request";
  5343. это улучшает совместимость с некоторыми HTTP/2-клиентами
  5344. в случае использования клиентских сертификатов.
  5345. </para>
  5346. <para lang="en">
  5347. the "421 Misdirected Request" response now used
  5348. when rejecting requests to a virtual server
  5349. different from one negotiated during an SSL handshake;
  5350. this improves interoperability with some HTTP/2 clients
  5351. when using client certificates.
  5352. </para>
  5353. </change>

  5354. <change type="change">
  5355. <para lang="ru">
  5356. HTTP/2-клиенты теперь могут сразу присылать тело запроса;
  5357. директива http2_body_preread_size позволяет указать размер буфера, который
  5358. будет использоваться до того, как nginx начнёт читать тело.
  5359. </para>
  5360. <para lang="en">
  5361. HTTP/2 clients can now start sending request body immediately;
  5362. the "http2_body_preread_size" directive controls size of the buffer used
  5363. before nginx will start reading client request body.
  5364. </para>
  5365. </change>

  5366. <change type="bugfix">
  5367. <para lang="ru">
  5368. при использовании директивы proxy_cache_bypass
  5369. не обновлялись закэшированные ошибочные ответы.
  5370. </para>
  5371. <para lang="en">
  5372. cached error responses were not updated
  5373. when using the "proxy_cache_bypass" directive.
  5374. </para>
  5375. </change>

  5376. </changes>


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

  5378. <change type="bugfix">
  5379. <para lang="ru">
  5380. при использовании HHVM в качестве FastCGI-сервера
  5381. могли возникать ошибки "recv() failed".
  5382. </para>
  5383. <para lang="en">
  5384. "recv() failed" errors might occur
  5385. when using HHVM as a FastCGI server.
  5386. </para>
  5387. </change>

  5388. <change type="bugfix">
  5389. <para lang="ru">
  5390. при использовании HTTP/2 и директив limit_req или auth_request
  5391. при чтении тела запроса мог произойти таймаут
  5392. или ошибка "client violated flow control";
  5393. ошибка появилась в 1.9.14.
  5394. </para>
  5395. <para lang="en">
  5396. when using HTTP/2 and the "limit_req" or "auth_request" directives
  5397. a timeout or a "client violated flow control" error
  5398. might occur while reading client request body;
  5399. the bug had appeared in 1.9.14.
  5400. </para>
  5401. </change>

  5402. <change type="workaround">
  5403. <para lang="ru">
  5404. при использовании HTTP/2 ответ мог не показываться некоторыми браузерами,
  5405. если тело запроса было прочитано не целиком;
  5406. ошибка появилась в 1.9.14.
  5407. </para>
  5408. <para lang="en">
  5409. a response might not be shown by some browsers
  5410. if HTTP/2 was used and client request body was not fully read;
  5411. the bug had appeared in 1.9.14.
  5412. </para>
  5413. </change>

  5414. <change type="bugfix">
  5415. <para lang="ru">
  5416. при использовании директивы "aio threads" соединения могли зависать.<br/>
  5417. Спасибо Mindaugas Rasiukevicius.
  5418. </para>
  5419. <para lang="en">
  5420. connections might hang when using the "aio threads" directive.<br/>
  5421. Thanks to Mindaugas Rasiukevicius.
  5422. </para>
  5423. </change>

  5424. </changes>


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

  5426. <change type="feature">
  5427. <para lang="ru">
  5428. совместимость с OpenSSL 1.1.0.
  5429. </para>
  5430. <para lang="en">
  5431. OpenSSL 1.1.0 compatibility.
  5432. </para>
  5433. </change>

  5434. <change type="feature">
  5435. <para lang="ru">
  5436. директивы proxy_request_buffering, fastcgi_request_buffering,
  5437. scgi_request_buffering и uwsgi_request_buffering
  5438. теперь работают при использовании HTTP/2.
  5439. </para>
  5440. <para lang="en">
  5441. the "proxy_request_buffering", "fastcgi_request_buffering",
  5442. "scgi_request_buffering", and "uwsgi_request_buffering" directives
  5443. now work with HTTP/2.
  5444. </para>
  5445. </change>

  5446. <change type="bugfix">
  5447. <para lang="ru">
  5448. при использовании HTTP/2
  5449. в логах могли появляться сообщения "zero size buf in output".
  5450. </para>
  5451. <para lang="en">
  5452. "zero size buf in output" alerts might appear in logs
  5453. when using HTTP/2.
  5454. </para>
  5455. </change>

  5456. <change type="bugfix">
  5457. <para lang="ru">
  5458. при использовании HTTP/2
  5459. директива client_max_body_size могла работать неверно.
  5460. </para>
  5461. <para lang="en">
  5462. the "client_max_body_size" directive might work incorrectly
  5463. when using HTTP/2.
  5464. </para>
  5465. </change>

  5466. <change type="bugfix">
  5467. <para lang="ru">
  5468. незначительных ошибок логгирования.
  5469. </para>
  5470. <para lang="en">
  5471. of minor bugs in logging.
  5472. </para>
  5473. </change>

  5474. </changes>


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

  5476. <change type="change">
  5477. <para lang="ru">
  5478. неидемпотентные запросы (POST, LOCK, PATCH)
  5479. теперь по умолчанию не передаются на другой сервер,
  5480. если запрос уже был отправлен на бэкенд;
  5481. параметр non_idempotent директивы proxy_next_upstream
  5482. явно разрешает повторять такие запросы.
  5483. </para>
  5484. <para lang="en">
  5485. non-idempotent requests (POST, LOCK, PATCH)
  5486. are no longer passed to the next server by default
  5487. if a request has been sent to a backend;
  5488. the "non_idempotent" parameter of the "proxy_next_upstream" directive
  5489. explicitly allows retrying such requests.
  5490. </para>
  5491. </change>

  5492. <change type="feature">
  5493. <para lang="ru">
  5494. модуль ngx_http_perl_module теперь можно собрать динамически.
  5495. </para>
  5496. <para lang="en">
  5497. the ngx_http_perl_module can be built dynamically.
  5498. </para>
  5499. </change>

  5500. <change type="feature">
  5501. <para lang="ru">
  5502. поддержка UDP в модуле stream.
  5503. </para>
  5504. <para lang="en">
  5505. UDP support in the stream module.
  5506. </para>
  5507. </change>

  5508. <change type="feature">
  5509. <para lang="ru">
  5510. директива aio_write.
  5511. </para>
  5512. <para lang="en">
  5513. the "aio_write" directive.
  5514. </para>
  5515. </change>

  5516. <change type="feature">
  5517. <para lang="ru">
  5518. теперь cache manager следит за количеством элементов в кэше
  5519. и старается не допускать переполнений зоны разделяемой памяти.
  5520. </para>
  5521. <para lang="en">
  5522. now cache manager monitors number of elements in caches
  5523. and tries to avoid cache keys zone overflows.
  5524. </para>
  5525. </change>

  5526. <change type="bugfix">
  5527. <para lang="ru">
  5528. при использовании директив sendfile и aio с подзапросами
  5529. в логах могли появляться сообщения "task already active" и "second aio post".
  5530. </para>
  5531. <para lang="en">
  5532. "task already active" and "second aio post" alerts might appear in logs
  5533. when using the "sendfile" and "aio" directives with subrequests.
  5534. </para>
  5535. </change>

  5536. <change type="bugfix">
  5537. <para lang="ru">
  5538. при использовании кэширования
  5539. в логах могли появляться сообщения "zero size buf in output",
  5540. если клиент закрывал соединение преждевременно.
  5541. </para>
  5542. <para lang="en">
  5543. "zero size buf in output" alerts might appear in logs
  5544. if caching was used
  5545. and a client closed a connection prematurely.
  5546. </para>
  5547. </change>

  5548. <change type="bugfix">
  5549. <para lang="ru">
  5550. при использовании кэширования
  5551. соединения с клиентами могли закрываться без необходимости.<br/>
  5552. Спасибо Justin Li.
  5553. </para>
  5554. <para lang="en">
  5555. connections with clients might be closed needlessly
  5556. if caching was used.<br/>
  5557. Thanks to Justin Li.
  5558. </para>
  5559. </change>

  5560. <change type="bugfix">
  5561. <para lang="ru">
  5562. nginx мог нагружать процессор
  5563. при использовании директивы sendfile на Linux и Solaris,
  5564. если отправляемый файл был изменён в процессе отправки.
  5565. </para>
  5566. <para lang="en">
  5567. nginx might hog CPU
  5568. if the "sendfile" directive was used on Linux or Solaris
  5569. and a file being sent was changed during sending.
  5570. </para>
  5571. </change>

  5572. <change type="bugfix">
  5573. <para lang="ru">
  5574. при использовании директив sendfile и "aio threads"
  5575. соединения могли зависать.
  5576. </para>
  5577. <para lang="en">
  5578. connections might hang
  5579. when using the "sendfile" and "aio threads" directives.
  5580. </para>
  5581. </change>

  5582. <change type="bugfix">
  5583. <para lang="ru">
  5584. в директивах proxy_pass, fastcgi_pass, scgi_pass и uwsgi_pass
  5585. при использовании переменных.<br/>
  5586. Спасибо Piotr Sikora.
  5587. </para>
  5588. <para lang="en">
  5589. in the "proxy_pass", "fastcgi_pass", "scgi_pass", and "uwsgi_pass" directives
  5590. when using variables.<br/>
  5591. Thanks to Piotr Sikora.
  5592. </para>
  5593. </change>

  5594. <change type="bugfix">
  5595. <para lang="ru">
  5596. в модуле ngx_http_sub_filter_module.
  5597. </para>
  5598. <para lang="en">
  5599. in the ngx_http_sub_filter_module.
  5600. </para>
  5601. </change>

  5602. <change type="bugfix">
  5603. <para lang="ru">
  5604. если в закэшированном соединении к бэкенду происходила ошибка,
  5605. запрос передавался на другой сервер
  5606. без учёта директивы proxy_next_upstream.
  5607. </para>
  5608. <para lang="en">
  5609. if an error occurred in a cached backend connection,
  5610. the request was passed to the next server
  5611. regardless of the proxy_next_upstream directive.
  5612. </para>
  5613. </change>

  5614. <change type="bugfix">
  5615. <para lang="ru">
  5616. ошибки "CreateFile() failed" при создании временных файлов на Windows.
  5617. </para>
  5618. <para lang="en">
  5619. "CreateFile() failed" errors when creating temporary files on Windows.
  5620. </para>
  5621. </change>

  5622. </changes>


  5623. <changes ver="1.9.12" date="2016-02-24">

  5624. <change type="feature">
  5625. <para lang="ru">
  5626. кодирование Хаффмана заголовков ответов в HTTP/2.<br/>
  5627. Спасибо Владу Краснову.
  5628. </para>
  5629. <para lang="en">
  5630. Huffman encoding of response headers in HTTP/2.<br/>
  5631. Thanks to Vlad Krasnov.
  5632. </para>
  5633. </change>

  5634. <change type="feature">
  5635. <para lang="ru">
  5636. директива worker_cpu_affinity теперь поддерживает более 64 процессоров.
  5637. </para>
  5638. <para lang="en">
  5639. the "worker_cpu_affinity" directive now supports more than 64 CPUs.
  5640. </para>
  5641. </change>

  5642. <change type="bugfix">
  5643. <para lang="ru">
  5644. совместимость со сторонними модулями на C++;
  5645. ошибка появилась в 1.9.11.<br/>
  5646. Спасибо Piotr Sikora.
  5647. </para>
  5648. <para lang="en">
  5649. compatibility with 3rd party C++ modules;
  5650. the bug had appeared in 1.9.11.<br/>
  5651. Thanks to Piotr Sikora.
  5652. </para>
  5653. </change>

  5654. <change type="bugfix">
  5655. <para lang="ru">
  5656. nginx не собирался статически с OpenSSL на Linux;
  5657. ошибка появилась в 1.9.11.
  5658. </para>
  5659. <para lang="en">
  5660. nginx could not be built statically with OpenSSL on Linux;
  5661. the bug had appeared in 1.9.11.
  5662. </para>
  5663. </change>

  5664. <change type="bugfix">
  5665. <para lang="ru">
  5666. директива "add_header ... always" с пустым значением
  5667. не удаляла из заголовков ошибочных ответов
  5668. строки Last-Modified и ETag.
  5669. </para>
  5670. <para lang="en">
  5671. the "add_header ... always" directive with an empty value
  5672. did not delete "Last-Modified" and "ETag" header lines
  5673. from error responses.
  5674. </para>
  5675. </change>

  5676. <change type="workaround">
  5677. <para lang="ru">
  5678. при использовании OpenSSL 1.0.2f в логах могли появляться
  5679. сообщения "called a function you should not call" и
  5680. "shutdown while in init".
  5681. </para>
  5682. <para lang="en">
  5683. "called a function you should not call"
  5684. and "shutdown while in init" messages might appear in logs
  5685. when using OpenSSL 1.0.2f.
  5686. </para>
  5687. </change>

  5688. <change type="bugfix">
  5689. <para lang="ru">
  5690. ошибочные заголовки могли логгироваться некорректно.
  5691. </para>
  5692. <para lang="en">
  5693. invalid headers might be logged incorrectly.
  5694. </para>
  5695. </change>

  5696. <change type="bugfix">
  5697. <para lang="ru">
  5698. утечки сокетов при использовании HTTP/2.
  5699. </para>
  5700. <para lang="en">
  5701. socket leak when using HTTP/2.
  5702. </para>
  5703. </change>

  5704. <change type="bugfix">
  5705. <para lang="ru">
  5706. в модуле ngx_http_v2_module.
  5707. </para>
  5708. <para lang="en">
  5709. in the ngx_http_v2_module.
  5710. </para>
  5711. </change>

  5712. </changes>


  5713. <changes ver="1.9.11" date="2016-02-09">

  5714. <change type="feature">
  5715. <para lang="ru">
  5716. теперь resolver поддерживает TCP.
  5717. </para>
  5718. <para lang="en">
  5719. TCP support in resolver.
  5720. </para>
  5721. </change>

  5722. <change type="feature">
  5723. <para lang="ru">
  5724. динамические модули.
  5725. </para>
  5726. <para lang="en">
  5727. dynamic modules.
  5728. </para>
  5729. </change>

  5730. <change type="bugfix">
  5731. <para lang="ru">
  5732. при использовании HTTP/2
  5733. переменная $request_length не учитывала размер заголовков запроса.
  5734. </para>
  5735. <para lang="en">
  5736. the $request_length variable did not include size of request headers
  5737. when using HTTP/2.
  5738. </para>
  5739. </change>

  5740. <change type="bugfix">
  5741. <para lang="ru">
  5742. в модуле ngx_http_v2_module.
  5743. </para>
  5744. <para lang="en">
  5745. in the ngx_http_v2_module.
  5746. </para>
  5747. </change>

  5748. </changes>


  5749. <changes ver="1.9.10" date="2016-01-26">

  5750. <change type="security">
  5751. <para lang="ru">
  5752. при использовании директивы resolver
  5753. во время обработки ответов DNS-сервера
  5754. могло происходить разыменование некорректного адреса,
  5755. что позволяло атакующему,
  5756. имеющему возможность подделывать UDP-пакеты от DNS-сервера,
  5757. вызвать segmentation fault в рабочем процессе (CVE-2016-0742).
  5758. </para>
  5759. <para lang="en">
  5760. invalid pointer dereference might occur
  5761. during DNS server response processing
  5762. if the "resolver" directive was used,
  5763. allowing an attacker who is able to forge UDP packets from the DNS server
  5764. to cause segmentation fault in a worker process (CVE-2016-0742).
  5765. </para>
  5766. </change>

  5767. <change type="security">
  5768. <para lang="ru">
  5769. при использовании директивы resolver
  5770. во время обработки CNAME-записей
  5771. могло произойти обращение к ранее освобождённой памяти,
  5772. что позволяло атакующему,
  5773. имеющему возможность инициировать преобразование произвольных имён в адреса,
  5774. вызвать segmentation fault в рабочем процессе,
  5775. а также потенциально могло иметь другие последствия (CVE-2016-0746).
  5776. </para>
  5777. <para lang="en">
  5778. use-after-free condition might occur
  5779. during CNAME response processing
  5780. if the "resolver" directive was used,
  5781. allowing an attacker who is able to trigger name resolution
  5782. to cause segmentation fault in a worker process,
  5783. or might have potential other impact (CVE-2016-0746).
  5784. </para>
  5785. </change>

  5786. <change type="security">
  5787. <para lang="ru">
  5788. при использовании директивы resolver
  5789. во время обработки CNAME-записей
  5790. не во всех случаях проверялось ограничение
  5791. на максимальное количество записей в цепочке,
  5792. что позволяло атакующему,
  5793. имеющему возможность инициировать преобразование произвольных имён в адреса,
  5794. вызвать чрезмерное потребление ресурсов рабочими процессами (CVE-2016-0747).
  5795. </para>
  5796. <para lang="en">
  5797. CNAME resolution was insufficiently limited
  5798. if the "resolver" directive was used,
  5799. allowing an attacker who is able to trigger arbitrary name resolution
  5800. to cause excessive resource consumption in worker processes (CVE-2016-0747).
  5801. </para>
  5802. </change>

  5803. <change type="feature">
  5804. <para lang="ru">
  5805. параметр auto директивы worker_cpu_affinity.
  5806. </para>
  5807. <para lang="en">
  5808. the "auto" parameter of the "worker_cpu_affinity" directive.
  5809. </para>
  5810. </change>

  5811. <change type="bugfix">
  5812. <para lang="ru">
  5813. параметр proxy_protocol директивы listen не работал
  5814. с IPv6 listen-сокетами.
  5815. </para>
  5816. <para lang="en">
  5817. the "proxy_protocol" parameter of the "listen" directive did not work
  5818. with IPv6 listen sockets.
  5819. </para>
  5820. </change>

  5821. <change type="bugfix">
  5822. <para lang="ru">
  5823. при использовании директивы keepalive
  5824. соединения к бэкендам могли кэшироваться некорректно.
  5825. </para>
  5826. <para lang="en">
  5827. connections to upstream servers might be cached incorrectly
  5828. when using the "keepalive" directive.
  5829. </para>
  5830. </change>

  5831. <change type="bugfix">
  5832. <para lang="ru">
  5833. после перенаправления запроса с помощью X-Accel-Redirect
  5834. при проксировании использовался HTTP-метод оригинального запроса.
  5835. </para>
  5836. <para lang="en">
  5837. proxying used the HTTP method of the original request
  5838. after an "X-Accel-Redirect" redirection.
  5839. </para>
  5840. </change>

  5841. </changes>


  5842. <changes ver="1.9.9" date="2015-12-09">

  5843. <change type="bugfix">
  5844. <para lang="ru">
  5845. проксирование в unix domain сокеты не работало при использовании переменных;
  5846. ошибка появилась в 1.9.8.
  5847. </para>
  5848. <para lang="en">
  5849. proxying to unix domain sockets did not work when using variables;
  5850. the bug had appeared in 1.9.8.
  5851. </para>
  5852. </change>

  5853. </changes>


  5854. <changes ver="1.9.8" date="2015-12-08">

  5855. <change type="feature">
  5856. <para lang="ru">
  5857. поддержка pwritev().
  5858. </para>
  5859. <para lang="en">
  5860. pwritev() support.
  5861. </para>
  5862. </change>

  5863. <change type="feature">
  5864. <para lang="ru">
  5865. директива include в блоке upstream.
  5866. </para>
  5867. <para lang="en">
  5868. the "include" directive inside the "upstream" block.
  5869. </para>
  5870. </change>

  5871. <change type="feature">
  5872. <para lang="ru">
  5873. модуль ngx_http_slice_module.
  5874. </para>
  5875. <para lang="en">
  5876. the ngx_http_slice_module.
  5877. </para>
  5878. </change>

  5879. <change type="bugfix">
  5880. <para lang="ru">
  5881. при использовании LibreSSL
  5882. в рабочем процессе мог произойти segmentation fault;
  5883. ошибка появилась в 1.9.6.
  5884. </para>
  5885. <para lang="en">
  5886. a segmentation fault might occur in a worker process
  5887. when using LibreSSL;
  5888. the bug had appeared in 1.9.6.
  5889. </para>
  5890. </change>

  5891. <change type="bugfix">
  5892. <para lang="ru">
  5893. nginx мог не собираться на OS X.
  5894. </para>
  5895. <para lang="en">
  5896. nginx could not be built on OS X in some cases.
  5897. </para>
  5898. </change>

  5899. </changes>


  5900. <changes ver="1.9.7" date="2015-11-17">

  5901. <change type="feature">
  5902. <para lang="ru">
  5903. параметр nohostname логгирования в syslog.
  5904. </para>
  5905. <para lang="en">
  5906. the "nohostname" parameter of logging to syslog.
  5907. </para>
  5908. </change>

  5909. <change type="feature">
  5910. <para lang="ru">
  5911. директива proxy_cache_convert_head.
  5912. </para>
  5913. <para lang="en">
  5914. the "proxy_cache_convert_head" directive.
  5915. </para>
  5916. </change>

  5917. <change type="feature">
  5918. <para lang="ru">
  5919. переменная $realip_remote_addr в модуле ngx_http_realip_module.
  5920. </para>
  5921. <para lang="en">
  5922. the $realip_remote_addr variable in the ngx_http_realip_module.
  5923. </para>
  5924. </change>

  5925. <change type="bugfix">
  5926. <para lang="ru">
  5927. директива expires могла не срабатывать при использовании переменных.
  5928. </para>
  5929. <para lang="en">
  5930. the "expires" directive might not work when using variables.
  5931. </para>
  5932. </change>

  5933. <change type="bugfix">
  5934. <para lang="ru">
  5935. при использовании HTTP/2
  5936. в рабочем процессе мог произойти segmentation fault;
  5937. ошибка появилась в 1.9.6.
  5938. </para>
  5939. <para lang="en">
  5940. a segmentation fault might occur in a worker process
  5941. when using HTTP/2;
  5942. the bug had appeared in 1.9.6.
  5943. </para>
  5944. </change>

  5945. <change type="bugfix">
  5946. <para lang="ru">
  5947. если nginx был собран с модулем ngx_http_v2_module,
  5948. протокол HTTP/2 мог быть использован клиентом,
  5949. даже если не был указан параметр http2 директивы listen.
  5950. </para>
  5951. <para lang="en">
  5952. if nginx was built with the ngx_http_v2_module
  5953. it was possible to use the HTTP/2 protocol
  5954. even if the "http2" parameter of the "listen" directive was not specified.
  5955. </para>
  5956. </change>

  5957. <change type="bugfix">
  5958. <para lang="ru">
  5959. в модуле ngx_http_v2_module.
  5960. </para>
  5961. <para lang="en">
  5962. in the ngx_http_v2_module.
  5963. </para>
  5964. </change>

  5965. </changes>


  5966. <changes ver="1.9.6" date="2015-10-27">

  5967. <change type="bugfix">
  5968. <para lang="ru">
  5969. при использовании HTTP/2
  5970. в рабочем процессе мог произойти segmentation fault.<br/>
  5971. Спасибо Piotr Sikora и Denis Andzakovic.
  5972. </para>
  5973. <para lang="en">
  5974. a segmentation fault might occur in a worker process
  5975. when using HTTP/2.<br/>
  5976. Thanks to Piotr Sikora and Denis Andzakovic.
  5977. </para>
  5978. </change>

  5979. <change type="bugfix">
  5980. <para lang="ru">
  5981. при использовании HTTP/2 переменная $server_protocol была пустой.
  5982. </para>
  5983. <para lang="en">
  5984. the $server_protocol variable was empty when using HTTP/2.
  5985. </para>
  5986. </change>

  5987. <change type="bugfix">
  5988. <para lang="ru">
  5989. SSL-соединения к бэкендам в модуле stream
  5990. могли неожиданно завершаться по таймауту.
  5991. </para>
  5992. <para lang="en">
  5993. backend SSL connections in the stream module
  5994. might be timed out unexpectedly.
  5995. </para>
  5996. </change>

  5997. <change type="bugfix">
  5998. <para lang="ru">
  5999. при использовании различных настроек ssl_session_cache
  6000. в разных виртуальных серверах
  6001. в рабочем процессе мог произойти segmentation fault.
  6002. </para>
  6003. <para lang="en">
  6004. a segmentation fault might occur in a worker process
  6005. if different ssl_session_cache settings were used
  6006. in different virtual servers.
  6007. </para>
  6008. </change>

  6009. <change type="bugfix">
  6010. <para lang="ru">
  6011. nginx/Windows не собирался с MinGW gcc;
  6012. ошибка появилась в 1.9.4.<br/>
  6013. Спасибо Kouhei Sutou.
  6014. </para>
  6015. <para lang="en">
  6016. nginx/Windows could not be built with MinGW gcc;
  6017. the bug had appeared in 1.9.4.<br/>
  6018. Thanks to Kouhei Sutou.
  6019. </para>
  6020. </change>

  6021. <change type="bugfix">
  6022. <para lang="ru">
  6023. при использовании директивы timer_resolution на Windows время не обновлялось.
  6024. </para>
  6025. <para lang="en">
  6026. time was not updated when the timer_resolution directive was used on Windows.
  6027. </para>
  6028. </change>

  6029. <change>
  6030. <para lang="ru">
  6031. Незначительные исправления и улучшения.<br/>
  6032. Спасибо Markus Linnala, Kurtis Nusbaum и Piotr Sikora.
  6033. </para>
  6034. <para lang="en">
  6035. Miscellaneous minor fixes and improvements.<br/>
  6036. Thanks to Markus Linnala, Kurtis Nusbaum and Piotr Sikora.
  6037. </para>
  6038. </change>

  6039. </changes>


  6040. <changes ver="1.9.5" date="2015-09-22">

  6041. <change type="feature">
  6042. <para lang="ru">
  6043. модуль ngx_http_v2_module (заменяет модуль ngx_http_spdy_module).<br/>
  6044. Спасибо Dropbox и Automattic за спонсирование разработки.
  6045. </para>
  6046. <para lang="en">
  6047. the ngx_http_v2_module (replaces ngx_http_spdy_module).<br/>
  6048. Thanks to Dropbox and Automattic for sponsoring this work.
  6049. </para>
  6050. </change>

  6051. <change type="change">
  6052. <para lang="ru">
  6053. теперь по умолчанию директива output_buffers использует два буфера.
  6054. </para>
  6055. <para lang="en">
  6056. now the "output_buffers" directive uses two buffers by default.
  6057. </para>
  6058. </change>

  6059. <change type="change">
  6060. <para lang="ru">
  6061. теперь nginx ограничивает максимальную вложенность подзапросов,
  6062. а не количество одновременных подзапросов.
  6063. </para>
  6064. <para lang="en">
  6065. now nginx limits subrequests recursion,
  6066. not simultaneous subrequests.
  6067. </para>
  6068. </change>

  6069. <change type="change">
  6070. <para lang="ru">
  6071. теперь при возврате ответов из кэша nginx проверяет ключ полностью.<br/>
  6072. Спасибо Геннадию Махомеду и Сергею Брестеру.
  6073. </para>
  6074. <para lang="en">
  6075. now nginx checks the whole cache key when returning a response from cache.<br/>
  6076. Thanks to Gena Makhomed and Sergey Brester.
  6077. </para>
  6078. </change>

  6079. <change type="bugfix">
  6080. <para lang="ru">
  6081. при использовании кэша
  6082. в логах могли появляться сообщения "header already sent";
  6083. ошибка появилась в 1.7.5.
  6084. </para>
  6085. <para lang="en">
  6086. "header already sent" alerts might appear in logs
  6087. when using cache;
  6088. the bug had appeared in 1.7.5.
  6089. </para>
  6090. </change>

  6091. <change type="bugfix">
  6092. <para lang="ru">
  6093. при использовании CephFS и директивы timer_resolution на Linux
  6094. в логах могли появляться сообщения
  6095. "writev() failed (4: Interrupted system call)".
  6096. </para>
  6097. <para lang="en">
  6098. "writev() failed (4: Interrupted system call)"
  6099. errors might appear in logs
  6100. when using CephFS and the "timer_resolution" directive on Linux.
  6101. </para>
  6102. </change>

  6103. <change type="bugfix">
  6104. <para lang="ru">
  6105. в обработке ошибок конфигурации.<br/>
  6106. Спасибо Markus Linnala.
  6107. </para>
  6108. <para lang="en">
  6109. in invalid configurations handling.<br/>
  6110. Thanks to Markus Linnala.
  6111. </para>
  6112. </change>

  6113. <change type="bugfix">
  6114. <para lang="ru">
  6115. при использовании директивы sub_filter на уровне http
  6116. в рабочем процессе происходил segmentation fault;
  6117. ошибка появилась в 1.9.4.
  6118. </para>
  6119. <para lang="en">
  6120. a segmentation fault occurred in a worker process
  6121. if the "sub_filter" directive was used at http level;
  6122. the bug had appeared in 1.9.4.
  6123. </para>
  6124. </change>

  6125. </changes>


  6126. <changes ver="1.9.4" date="2015-08-18">

  6127. <change type="change">
  6128. <para lang="ru">
  6129. директивы proxy_downstream_buffer и proxy_upstream_buffer в модуле stream
  6130. заменены директивой proxy_buffer_size.
  6131. </para>
  6132. <para lang="en">
  6133. the "proxy_downstream_buffer" and "proxy_upstream_buffer" directives
  6134. of the stream module are replaced with the "proxy_buffer_size" directive.
  6135. </para>
  6136. </change>

  6137. <change type="feature">
  6138. <para lang="ru">
  6139. директива tcp_nodelay в модуле stream.
  6140. </para>
  6141. <para lang="en">
  6142. the "tcp_nodelay" directive in the stream module.
  6143. </para>
  6144. </change>

  6145. <change type="feature">
  6146. <para lang="ru">
  6147. теперь можно указать несколько директив sub_filter одновременно.
  6148. </para>
  6149. <para lang="en">
  6150. multiple "sub_filter" directives can be used simultaneously.
  6151. </para>
  6152. </change>

  6153. <change type="feature">
  6154. <para lang="ru">
  6155. директива sub_filter поддерживает переменные в строке поиска.
  6156. </para>
  6157. <para lang="en">
  6158. variables support in the search string of the "sub_filter" directive.
  6159. </para>
  6160. </change>

  6161. <change type="workaround">
  6162. <para lang="ru">
  6163. тестирование конфигурации могло не работать под Linux OpenVZ.<br/>
  6164. Спасибо Геннадию Махомеду.
  6165. </para>
  6166. <para lang="en">
  6167. configuration testing might fail under Linux OpenVZ.<br/>
  6168. Thanks to Gena Makhomed.
  6169. </para>
  6170. </change>

  6171. <change type="bugfix">
  6172. <para lang="ru">
  6173. после переконфигурации старые рабочие процессы могли сильно нагружать процессор
  6174. при больших значениях worker_connections.
  6175. </para>
  6176. <para lang="en">
  6177. old worker processes might hog CPU after reconfiguration
  6178. with a large number of worker_connections.
  6179. </para>
  6180. </change>

  6181. <change type="bugfix">
  6182. <para lang="ru">
  6183. при совместном использовании директив try_files и alias
  6184. внутри location'а, заданного регулярным выражением,
  6185. в рабочем процессе мог произойти segmentation fault;
  6186. ошибка появилась в 1.7.1.
  6187. </para>
  6188. <para lang="en">
  6189. a segmentation fault might occur in a worker process
  6190. if the "try_files" and "alias" directives were used
  6191. inside a location given by a regular expression;
  6192. the bug had appeared in 1.7.1.
  6193. </para>
  6194. </change>

  6195. <change type="bugfix">
  6196. <para lang="ru">
  6197. директива try_files внутри вложенного location'а, заданного регулярным
  6198. выражением, работала неправильно, если во внешнем location'е использовалась
  6199. директива alias.
  6200. </para>
  6201. <para lang="en">
  6202. the "try_files" directive inside a nested location
  6203. given by a regular expression worked incorrectly
  6204. if the "alias" directive was used in the outer location.
  6205. </para>
  6206. </change>

  6207. <change type="bugfix">
  6208. <para lang="ru">
  6209. в обработке ошибок при построении хэш-таблиц.
  6210. </para>
  6211. <para lang="en">
  6212. in hash table initialization error handling.
  6213. </para>
  6214. </change>

  6215. <change type="bugfix">
  6216. <para lang="ru">
  6217. nginx не собирался с Visual Studio 2015.
  6218. </para>
  6219. <para lang="en">
  6220. nginx could not be built with Visual Studio 2015.
  6221. </para>
  6222. </change>

  6223. </changes>


  6224. <changes ver="1.9.3" date="2015-07-14">

  6225. <change type="change">
  6226. <para lang="ru">
  6227. дублирующиеся блоки http, mail и stream теперь запрещены.
  6228. </para>
  6229. <para lang="en">
  6230. duplicate "http", "mail", and "stream" blocks are now disallowed.
  6231. </para>
  6232. </change>

  6233. <change type="feature">
  6234. <para lang="ru">
  6235. ограничение количества соединений в модуле stream.
  6236. </para>
  6237. <para lang="en">
  6238. connection limiting in the stream module.
  6239. </para>
  6240. </change>

  6241. <change type="feature">
  6242. <para lang="ru">
  6243. ограничение скорости в модуле stream.
  6244. </para>
  6245. <para lang="en">
  6246. data rate limiting in the stream module.
  6247. </para>
  6248. </change>

  6249. <change type="bugfix">
  6250. <para lang="ru">
  6251. директива zone в блоке upstream не работала на Windows.
  6252. </para>
  6253. <para lang="en">
  6254. the "zone" directive inside the "upstream" block did not work on Windows.
  6255. </para>
  6256. </change>

  6257. <change type="bugfix">
  6258. <para lang="ru">
  6259. совместимость с LibreSSL в модуле stream.<br/>
  6260. Спасибо Piotr Sikora.
  6261. </para>
  6262. <para lang="en">
  6263. compatibility with LibreSSL in the stream module.<br/>
  6264. Thanks to Piotr Sikora.
  6265. </para>
  6266. </change>

  6267. <change type="bugfix">
  6268. <para lang="ru">
  6269. в параметре --builddir в configure.<br/>
  6270. Спасибо Piotr Sikora.
  6271. </para>
  6272. <para lang="en">
  6273. in the "--builddir" configure parameter.<br/>
  6274. Thanks to Piotr Sikora.
  6275. </para>
  6276. </change>

  6277. <change type="bugfix">
  6278. <para lang="ru">
  6279. директива ssl_stapling_file не работала;
  6280. ошибка появилась в 1.9.2.<br/>
  6281. Спасибо Faidon Liambotis и Brandon Black.
  6282. </para>
  6283. <para lang="en">
  6284. the "ssl_stapling_file" directive did not work;
  6285. the bug had appeared in 1.9.2.<br/>
  6286. Thanks to Faidon Liambotis and Brandon Black.
  6287. </para>
  6288. </change>

  6289. <change type="bugfix">
  6290. <para lang="ru">
  6291. при использовании директивы ssl_stapling
  6292. в рабочем процессе мог произойти segmentation fault;
  6293. ошибка появилась в 1.9.2.<br/>
  6294. Спасибо Matthew Baldwin.
  6295. </para>
  6296. <para lang="en">
  6297. a segmentation fault might occur in a worker process
  6298. if the "ssl_stapling" directive was used;
  6299. the bug had appeared in 1.9.2.<br/>
  6300. Thanks to Matthew Baldwin.
  6301. </para>
  6302. </change>

  6303. </changes>


  6304. <changes ver="1.9.2" date="2015-06-16">

  6305. <change type="feature">
  6306. <para lang="ru">
  6307. параметр backlog директивы listen
  6308. в почтовом прокси-сервере и модуле stream.
  6309. </para>
  6310. <para lang="en">
  6311. the "backlog" parameter of the "listen" directives
  6312. of the mail proxy and stream modules.
  6313. </para>
  6314. </change>

  6315. <change type="feature">
  6316. <para lang="ru">
  6317. директивы allow и deny в модуле stream.
  6318. </para>
  6319. <para lang="en">
  6320. the "allow" and "deny" directives in the stream module.
  6321. </para>
  6322. </change>

  6323. <change type="feature">
  6324. <para lang="ru">
  6325. директива proxy_bind в модуле stream.
  6326. </para>
  6327. <para lang="en">
  6328. the "proxy_bind" directive in the stream module.
  6329. </para>
  6330. </change>

  6331. <change type="feature">
  6332. <para lang="ru">
  6333. директива proxy_protocol в модуле stream.
  6334. </para>
  6335. <para lang="en">
  6336. the "proxy_protocol" directive in the stream module.
  6337. </para>
  6338. </change>

  6339. <change type="feature">
  6340. <para lang="ru">
  6341. ключ -T.
  6342. </para>
  6343. <para lang="en">
  6344. the -T switch.
  6345. </para>
  6346. </change>

  6347. <change type="feature">
  6348. <para lang="ru">
  6349. параметр REQUEST_SCHEME добавлен в стандартные конфигурационные файлы
  6350. fastcgi.conf, fastcgi_params, scgi_params и uwsgi_params.
  6351. </para>
  6352. <para lang="en">
  6353. the REQUEST_SCHEME parameter added to the fastcgi.conf, fastcgi_params,
  6354. scgi_params, and uwsgi_params standard configuration files.
  6355. </para>
  6356. </change>

  6357. <change type="bugfix">
  6358. <para lang="ru">
  6359. параметр reuseport директивы listen в модуле stream
  6360. не работал.
  6361. </para>
  6362. <para lang="en">
  6363. the "reuseport" parameter of the "listen" directive of the stream module
  6364. did not work.
  6365. </para>
  6366. </change>

  6367. <change type="bugfix">
  6368. <para lang="ru">
  6369. OCSP stapling в некоторых случаях мог вернуть устаревший OCSP-ответ.
  6370. </para>
  6371. <para lang="en">
  6372. OCSP stapling might return an expired OCSP response in some cases.
  6373. </para>
  6374. </change>

  6375. </changes>


  6376. <changes ver="1.9.1" date="2015-05-26">

  6377. <change type="change">
  6378. <para lang="ru">
  6379. теперь протокол SSLv3 по умолчанию запрещён.
  6380. </para>
  6381. <para lang="en">
  6382. now SSLv3 protocol is disabled by default.
  6383. </para>
  6384. </change>

  6385. <change type="change">
  6386. <para lang="ru">
  6387. некоторые давно устаревшие директивы больше не поддерживаются.
  6388. </para>
  6389. <para lang="en">
  6390. some long deprecated directives are not supported anymore.
  6391. </para>
  6392. </change>

  6393. <change type="feature">
  6394. <para lang="ru">
  6395. параметр reuseport директивы listen.<br/>
  6396. Спасибо Yingqi Lu из Intel и Sepherosa Ziehau.
  6397. </para>
  6398. <para lang="en">
  6399. the "reuseport" parameter of the "listen" directive.<br/>
  6400. Thanks to Yingqi Lu at Intel and Sepherosa Ziehau.
  6401. </para>
  6402. </change>

  6403. <change type="feature">
  6404. <para lang="ru">
  6405. переменная $upstream_connect_time.
  6406. </para>
  6407. <para lang="en">
  6408. the $upstream_connect_time variable.
  6409. </para>
  6410. </change>

  6411. <change type="bugfix">
  6412. <para lang="ru">
  6413. в директиве hash на big-endian платформах.
  6414. </para>
  6415. <para lang="en">
  6416. in the "hash" directive on big-endian platforms.
  6417. </para>
  6418. </change>

  6419. <change type="bugfix">
  6420. <para lang="ru">
  6421. nginx мог не запускаться на некоторых старых версиях Linux;
  6422. ошибка появилась в 1.7.11.
  6423. </para>
  6424. <para lang="en">
  6425. nginx might fail to start on some old Linux variants;
  6426. the bug had appeared in 1.7.11.
  6427. </para>
  6428. </change>

  6429. <change type="bugfix">
  6430. <para lang="ru">
  6431. в парсинге IP-адресов.<br/>
  6432. Спасибо Сергею Половко.
  6433. </para>
  6434. <para lang="en">
  6435. in IP address parsing.<br/>
  6436. Thanks to Sergey Polovko.
  6437. </para>
  6438. </change>

  6439. </changes>


  6440. <changes ver="1.9.0" date="2015-04-28">

  6441. <change type="change">
  6442. <para lang="ru">
  6443. устаревшие методы обработки соединений aio и rtsig больше не поддерживаются.
  6444. </para>
  6445. <para lang="en">
  6446. obsolete aio and rtsig event methods have been removed.
  6447. </para>
  6448. </change>

  6449. <change type="feature">
  6450. <para lang="ru">
  6451. директива zone в блоке upstream.
  6452. </para>
  6453. <para lang="en">
  6454. the "zone" directive inside the "upstream" block.
  6455. </para>
  6456. </change>

  6457. <change type="feature">
  6458. <para lang="ru">
  6459. модуль stream.
  6460. </para>
  6461. <para lang="en">
  6462. the stream module.
  6463. </para>
  6464. </change>

  6465. <change type="feature">
  6466. <para lang="ru">
  6467. поддержка byte ranges для ответов модуля ngx_http_memcached_module.<br/>
  6468. Спасибо Martin Mlynář.
  6469. </para>
  6470. <para lang="en">
  6471. byte ranges support in the ngx_http_memcached_module.<br/>
  6472. Thanks to Martin Mlynář.
  6473. </para>
  6474. </change>

  6475. <change type="feature">
  6476. <para lang="ru">
  6477. разделяемую память теперь можно использовать на версиях Windows
  6478. с рандомизацией адресного пространства.<br/>
  6479. Спасибо Сергею Брестеру.
  6480. </para>
  6481. <para lang="en">
  6482. shared memory can now be used on Windows versions
  6483. with address space layout randomization.<br/>
  6484. Thanks to Sergey Brester.
  6485. </para>
  6486. </change>

  6487. <change type="feature">
  6488. <para lang="ru">
  6489. директиву error_log теперь можно использовать
  6490. на уровнях mail и server в почтовом прокси-сервере.
  6491. </para>
  6492. <para lang="en">
  6493. the "error_log" directive can now be used
  6494. on mail and server levels in mail proxy.
  6495. </para>
  6496. </change>

  6497. <change type="bugfix">
  6498. <para lang="ru">
  6499. параметр proxy_protocol директивы listen не работал,
  6500. если не был указан в первой директиве listen для данного listen-сокета.
  6501. </para>
  6502. <para lang="en">
  6503. the "proxy_protocol" parameter of the "listen" directive did not work
  6504. if not specified in the first "listen" directive for a listen socket.
  6505. </para>
  6506. </change>

  6507. </changes>


  6508. <changes ver="1.7.12" date="2015-04-07">

  6509. <change type="feature">
  6510. <para lang="ru">
  6511. теперь директива tcp_nodelay работает для SSL-соединений с бэкендами.
  6512. </para>
  6513. <para lang="en">
  6514. now the "tcp_nodelay" directive works with backend SSL connections.
  6515. </para>
  6516. </change>

  6517. <change type="feature">
  6518. <para lang="ru">
  6519. теперь потоки могут использоваться для чтения заголовков файлов в кэше.
  6520. </para>
  6521. <para lang="en">
  6522. now thread pools can be used to read cache file headers.
  6523. </para>
  6524. </change>

  6525. <change type="bugfix">
  6526. <para lang="ru">
  6527. в директиве proxy_request_buffering.
  6528. </para>
  6529. <para lang="en">
  6530. in the "proxy_request_buffering" directive.
  6531. </para>
  6532. </change>

  6533. <change type="bugfix">
  6534. <para lang="ru">
  6535. при использовании потоков на Linux
  6536. в рабочем процессе мог произойти segmentation fault.
  6537. </para>
  6538. <para lang="en">
  6539. a segmentation fault might occur in a worker process
  6540. when using thread pools on Linux.
  6541. </para>
  6542. </change>

  6543. <change type="bugfix">
  6544. <para lang="ru">
  6545. в обработке ошибок при использовании директивы ssl_stapling.<br/>
  6546. Спасибо Filipe da Silva.
  6547. </para>
  6548. <para lang="en">
  6549. in error handling when using the "ssl_stapling" directive.<br/>
  6550. Thanks to Filipe da Silva.
  6551. </para>
  6552. </change>

  6553. <change type="bugfix">
  6554. <para lang="ru">
  6555. в модуле ngx_http_spdy_module.
  6556. </para>
  6557. <para lang="en">
  6558. in the ngx_http_spdy_module.
  6559. </para>
  6560. </change>

  6561. </changes>


  6562. <changes ver="1.7.11" date="2015-03-24">

  6563. <change type="change">
  6564. <para lang="ru">
  6565. параметр sendfile директивы aio более не нужен;
  6566. теперь nginx автоматически использует AIO для подгрузки данных для sendfile,
  6567. если одновременно используются директивы aio и sendfile.
  6568. </para>
  6569. <para lang="en">
  6570. the "sendfile" parameter of the "aio" directive is deprecated;
  6571. now nginx automatically uses AIO to pre-load data for sendfile
  6572. if both "aio" and "sendfile" directives are used.
  6573. </para>
  6574. </change>

  6575. <change type="feature">
  6576. <para lang="ru">
  6577. экспериментальная поддержка потоков.
  6578. </para>
  6579. <para lang="en">
  6580. experimental thread pools support.
  6581. </para>
  6582. </change>

  6583. <change type="feature">
  6584. <para lang="ru">
  6585. директивы proxy_request_buffering, fastcgi_request_buffering,
  6586. scgi_request_buffering и uwsgi_request_buffering.
  6587. </para>
  6588. <para lang="en">
  6589. the "proxy_request_buffering", "fastcgi_request_buffering",
  6590. "scgi_request_buffering", and "uwsgi_request_buffering" directives.
  6591. </para>
  6592. </change>

  6593. <change type="feature">
  6594. <para lang="ru">
  6595. экспериментальное API для обработки тела запроса.
  6596. </para>
  6597. <para lang="en">
  6598. request body filters experimental API.
  6599. </para>
  6600. </change>

  6601. <change type="feature">
  6602. <para lang="ru">
  6603. проверка клиентских SSL-сертификатов в почтовом прокси-сервере.<br/>
  6604. Спасибо Sven Peter, Franck Levionnois и Filipe Da Silva.
  6605. </para>
  6606. <para lang="en">
  6607. client SSL certificates support in mail proxy.<br/>
  6608. Thanks to Sven Peter, Franck Levionnois, and Filipe Da Silva.
  6609. </para>
  6610. </change>

  6611. <change type="feature">
  6612. <para lang="ru">
  6613. уменьшение времени запуска
  6614. при использовании директивы "hash ... consistent" в блоке upstream.<br/>
  6615. Спасибо Wai Keen Woon.
  6616. </para>
  6617. <para lang="en">
  6618. startup speedup
  6619. when using the "hash ... consistent" directive in the upstream block.<br/>
  6620. Thanks to Wai Keen Woon.
  6621. </para>
  6622. </change>

  6623. <change type="feature">
  6624. <para lang="ru">
  6625. отладочное логгирование в кольцевой буфер в памяти.
  6626. </para>
  6627. <para lang="en">
  6628. debug logging into a cyclic memory buffer.
  6629. </para>
  6630. </change>

  6631. <change type="bugfix">
  6632. <para lang="ru">
  6633. в обработке хэш-таблиц.<br/>
  6634. Спасибо Chris West.
  6635. </para>
  6636. <para lang="en">
  6637. in hash table handling.<br/>
  6638. Thanks to Chris West.
  6639. </para>
  6640. </change>

  6641. <change type="bugfix">
  6642. <para lang="ru">
  6643. в директиве proxy_cache_revalidate.
  6644. </para>
  6645. <para lang="en">
  6646. in the "proxy_cache_revalidate" directive.
  6647. </para>
  6648. </change>

  6649. <change type="bugfix">
  6650. <para lang="ru">
  6651. SSL-соединения могли зависать, если использовался отложенный accept
  6652. или параметр proxy_protocol директивы listen.<br/>
  6653. Спасибо James Hamlin.
  6654. </para>
  6655. <para lang="en">
  6656. SSL connections might hang if deferred accept
  6657. or the "proxy_protocol" parameter of the "listen" directive were used.<br/>
  6658. Thanks to James Hamlin.
  6659. </para>
  6660. </change>

  6661. <change type="bugfix">
  6662. <para lang="ru">
  6663. переменная $upstream_response_time могла содержать неверное значение
  6664. при использовании директивы image_filter.
  6665. </para>
  6666. <para lang="en">
  6667. the $upstream_response_time variable might contain a wrong value
  6668. if the "image_filter" directive was used.
  6669. </para>
  6670. </change>

  6671. <change type="bugfix">
  6672. <para lang="ru">
  6673. в обработке целочисленных переполнений.<br/>
  6674. Спасибо Régis Leroy.
  6675. </para>
  6676. <para lang="en">
  6677. in integer overflow handling.<br/>
  6678. Thanks to Régis Leroy.
  6679. </para>
  6680. </change>

  6681. <change type="bugfix">
  6682. <para lang="ru">
  6683. при использовании LibreSSL было невозможно включить поддержку SSLv3.
  6684. </para>
  6685. <para lang="en">
  6686. it was not possible to enable SSLv3 with LibreSSL.
  6687. </para>
  6688. </change>

  6689. <change type="bugfix">
  6690. <para lang="ru">
  6691. при использовании LibreSSL в логах появлялись сообщения
  6692. "ignoring stale global SSL error ... called a function you should not call".
  6693. </para>
  6694. <para lang="en">
  6695. the "ignoring stale global SSL error ... called a function you should not call"
  6696. alerts appeared in logs when using LibreSSL.
  6697. </para>
  6698. </change>

  6699. <change type="bugfix">
  6700. <para lang="ru">
  6701. сертификаты, указанные в директивах ssl_client_certificate и
  6702. ssl_trusted_certificate, использовались
  6703. для автоматического построения цепочек сертификатов.
  6704. </para>
  6705. <para lang="en">
  6706. certificates specified by the "ssl_client_certificate" and
  6707. "ssl_trusted_certificate" directives were inadvertently used
  6708. to automatically construct certificate chains.
  6709. </para>
  6710. </change>

  6711. </changes>


  6712. <changes ver="1.7.10" date="2015-02-10">

  6713. <change type="feature">
  6714. <para lang="ru">
  6715. параметр use_temp_path директив proxy_cache_path, fastcgi_cache_path,
  6716. scgi_cache_path и uwsgi_cache_path.
  6717. </para>
  6718. <para lang="en">
  6719. the "use_temp_path" parameter of the "proxy_cache_path", "fastcgi_cache_path",
  6720. "scgi_cache_path", and "uwsgi_cache_path" directives.
  6721. </para>
  6722. </change>

  6723. <change type="feature">
  6724. <para lang="ru">
  6725. переменная $upstream_header_time.
  6726. </para>
  6727. <para lang="en">
  6728. the $upstream_header_time variable.
  6729. </para>
  6730. </change>

  6731. <change type="workaround">
  6732. <para lang="ru">
  6733. теперь при переполнении диска nginx пытается писать error_log'и только
  6734. раз в секунду.
  6735. </para>
  6736. <para lang="en">
  6737. now on disk overflow nginx tries to write error logs once a second only.
  6738. </para>
  6739. </change>

  6740. <change type="bugfix">
  6741. <para lang="ru">
  6742. директива try_files при тестировании каталогов
  6743. не игнорировала обычные файлы.<br/>
  6744. Спасибо Damien Tournoud.
  6745. </para>
  6746. <para lang="en">
  6747. the "try_files" directive did not ignore normal files
  6748. while testing directories.<br/>
  6749. Thanks to Damien Tournoud.
  6750. </para>
  6751. </change>

  6752. <change type="bugfix">
  6753. <para lang="ru">
  6754. при использовании директивы sendfile на OS X
  6755. возникали ошибки "sendfile() failed";
  6756. ошибка появилась в nginx 1.7.8.
  6757. </para>
  6758. <para lang="en">
  6759. alerts "sendfile() failed"
  6760. if the "sendfile" directive was used on OS X;
  6761. the bug had appeared in 1.7.8.
  6762. </para>
  6763. </change>

  6764. <change type="bugfix">
  6765. <para lang="ru">
  6766. в лог могли писаться сообщения "sem_post() failed".
  6767. </para>
  6768. <para lang="en">
  6769. alerts "sem_post() failed" might appear in logs.
  6770. </para>
  6771. </change>

  6772. <change type="bugfix">
  6773. <para lang="ru">
  6774. nginx не собирался с musl libc.<br/>
  6775. Спасибо James Taylor.
  6776. </para>
  6777. <para lang="en">
  6778. nginx could not be built with musl libc.<br/>
  6779. Thanks to James Taylor.
  6780. </para>
  6781. </change>

  6782. <change type="bugfix">
  6783. <para lang="ru">
  6784. nginx не собирался на Tru64 UNIX.<br/>
  6785. Спасибо Goetz T. Fischer.
  6786. </para>
  6787. <para lang="en">
  6788. nginx could not be built on Tru64 UNIX.<br/>
  6789. Thanks to Goetz T. Fischer.
  6790. </para>
  6791. </change>

  6792. </changes>


  6793. <changes ver="1.7.9" date="2014-12-23">

  6794. <change type="feature">
  6795. <para lang="ru">
  6796. директивы proxy_cache, fastcgi_cache, scgi_cache и uwsgi_cache
  6797. поддерживают переменные.
  6798. </para>
  6799. <para lang="en">
  6800. variables support in the "proxy_cache", "fastcgi_cache", "scgi_cache",
  6801. and "uwsgi_cache" directives.
  6802. </para>
  6803. </change>

  6804. <change type="feature">
  6805. <para lang="ru">
  6806. директива expires поддерживает переменные.
  6807. </para>
  6808. <para lang="en">
  6809. variables support in the "expires" directive.
  6810. </para>
  6811. </change>

  6812. <change type="feature">
  6813. <para lang="ru">
  6814. возможность загрузки секретных ключей с аппаратных устройств
  6815. с помощью OpenSSL engines.<br/>
  6816. Спасибо Дмитрию Пичулину.
  6817. </para>
  6818. <para lang="en">
  6819. loading of secret keys from hardware tokens
  6820. with OpenSSL engines.<br/>
  6821. Thanks to Dmitrii Pichulin.
  6822. </para>
  6823. </change>

  6824. <change type="feature">
  6825. <para lang="ru">
  6826. директива autoindex_format.
  6827. </para>
  6828. <para lang="en">
  6829. the "autoindex_format" directive.
  6830. </para>
  6831. </change>

  6832. <change type="bugfix">
  6833. <para lang="ru">
  6834. ревалидация элементов кэша теперь используется только для ответов
  6835. с кодами 200 и 206.<br/>
  6836. Спасибо Piotr Sikora.
  6837. </para>
  6838. <para lang="en">
  6839. cache revalidation is now only used for responses
  6840. with 200 and 206 status codes.<br/>
  6841. Thanks to Piotr Sikora.
  6842. </para>
  6843. </change>

  6844. <change type="bugfix">
  6845. <para lang="ru">
  6846. строка "TE" заголовка запроса клиента передавалась на бэкенд при проксировании.
  6847. </para>
  6848. <para lang="en">
  6849. the "TE" client request header line was passed to backends while proxying.
  6850. </para>
  6851. </change>

  6852. <change type="bugfix">
  6853. <para lang="ru">
  6854. директивы proxy_pass, fastcgi_pass, scgi_pass и uwsgi_pass
  6855. могли неправильно работать внутри блоков if и limit_except.
  6856. </para>
  6857. <para lang="en">
  6858. the "proxy_pass", "fastcgi_pass", "scgi_pass", and "uwsgi_pass" directives
  6859. might not work correctly inside the "if" and "limit_except" blocks.
  6860. </para>
  6861. </change>

  6862. <change type="bugfix">
  6863. <para lang="ru">
  6864. директива proxy_store с параметром "on" игнорировалась,
  6865. если на предыдущем уровне использовалась директива proxy_store
  6866. с явно заданным путём к файлам.
  6867. </para>
  6868. <para lang="en">
  6869. the "proxy_store" directive with the "on" parameter was ignored
  6870. if the "proxy_store" directive with an explicitly specified file path
  6871. was used on a previous level.
  6872. </para>
  6873. </change>

  6874. <change type="bugfix">
  6875. <para lang="ru">
  6876. nginx не собирался с BoringSSL.<br/>
  6877. Спасибо Lukas Tribus.
  6878. </para>
  6879. <para lang="en">
  6880. nginx could not be built with BoringSSL.<br/>
  6881. Thanks to Lukas Tribus.
  6882. </para>
  6883. </change>

  6884. </changes>


  6885. <changes ver="1.7.8" date="2014-12-02">

  6886. <change type="change">
  6887. <para lang="ru">
  6888. теперь строки "If-Modified-Since", "If-Range" и им подобные
  6889. в заголовке запроса клиента передаются бэкенду при включённом кэшировании,
  6890. если nginx заранее знает, что не будет кэшировать ответ
  6891. (например, при использовании proxy_cache_min_uses).
  6892. </para>
  6893. <para lang="en">
  6894. now the "If-Modified-Since", "If-Range", etc.
  6895. client request header lines are passed to a backend while caching
  6896. if nginx knows in advance that the response will not be cached
  6897. (e.g., when using proxy_cache_min_uses).
  6898. </para>
  6899. </change>

  6900. <change type="change">
  6901. <para lang="ru">
  6902. теперь после истечения proxy_cache_lock_timeout
  6903. nginx отправляет запрос на бэкенд без кэширования;
  6904. новые директивы proxy_cache_lock_age, fastcgi_cache_lock_age,
  6905. scgi_cache_lock_age и uwsgi_cache_lock_age позволяют указать,
  6906. через какое время блокировка будет принудительно снята
  6907. и будет сделана ещё одна попытка закэшировать ответ.
  6908. </para>
  6909. <para lang="en">
  6910. now after proxy_cache_lock_timeout
  6911. nginx sends a request to a backend with caching disabled;
  6912. the new directives "proxy_cache_lock_age", "fastcgi_cache_lock_age",
  6913. "scgi_cache_lock_age", and "uwsgi_cache_lock_age" specify a time
  6914. after which the lock will be released
  6915. and another attempt to cache a response will be made.
  6916. </para>
  6917. </change>

  6918. <change type="change">
  6919. <para lang="ru">
  6920. директива log_format теперь может использоваться только на уровне http.
  6921. </para>
  6922. <para lang="en">
  6923. the "log_format" directive can now be used only at http level.
  6924. </para>
  6925. </change>

  6926. <change type="feature">
  6927. <para lang="ru">
  6928. директивы proxy_ssl_certificate, proxy_ssl_certificate_key,
  6929. proxy_ssl_password_file, uwsgi_ssl_certificate,
  6930. uwsgi_ssl_certificate_key и uwsgi_ssl_password_file.<br/>
  6931. Спасибо Piotr Sikora.
  6932. </para>
  6933. <para lang="en">
  6934. the "proxy_ssl_certificate", "proxy_ssl_certificate_key",
  6935. "proxy_ssl_password_file", "uwsgi_ssl_certificate",
  6936. "uwsgi_ssl_certificate_key", and "uwsgi_ssl_password_file" directives.<br/>
  6937. Thanks to Piotr Sikora.
  6938. </para>
  6939. </change>

  6940. <change type="feature">
  6941. <para lang="ru">
  6942. теперь с помощью X-Accel-Redirect
  6943. можно перейти в именованный location.<br/>
  6944. Спасибо Toshikuni Fukaya.
  6945. </para>
  6946. <para lang="en">
  6947. it is now possible to switch to a named location
  6948. using "X-Accel-Redirect".<br/>
  6949. Thanks to Toshikuni Fukaya.
  6950. </para>
  6951. </change>

  6952. <change type="feature">
  6953. <para lang="ru">
  6954. теперь директива tcp_nodelay работает для SPDY-соединений.
  6955. </para>
  6956. <para lang="en">
  6957. now the "tcp_nodelay" directive works with SPDY connections.
  6958. </para>
  6959. </change>

  6960. <change type="feature">
  6961. <para lang="ru">
  6962. новые директивы в скриптах подсветки синтаксиса для vim.<br/>
  6963. Спасибо Peter Wu.
  6964. </para>
  6965. <para lang="en">
  6966. new directives in vim syntax highliting scripts.<br/>
  6967. Thanks to Peter Wu.
  6968. </para>
  6969. </change>

  6970. <change type="bugfix">
  6971. <para lang="ru">
  6972. nginx игнорировал значение "s-maxage"
  6973. в строке "Cache-Control" в заголовке ответа бэкенда.<br/>
  6974. Спасибо Piotr Sikora.
  6975. </para>
  6976. <para lang="en">
  6977. nginx ignored the "s-maxage" value
  6978. in the "Cache-Control" backend response header line.<br/>
  6979. Thanks to Piotr Sikora.
  6980. </para>
  6981. </change>

  6982. <change type="bugfix">
  6983. <para lang="ru">
  6984. в модуле ngx_http_spdy_module.<br/>
  6985. Спасибо Piotr Sikora.
  6986. </para>
  6987. <para lang="en">
  6988. in the ngx_http_spdy_module.<br/>
  6989. Thanks to Piotr Sikora.
  6990. </para>
  6991. </change>

  6992. <change type="bugfix">
  6993. <para lang="ru">
  6994. в директиве ssl_password_file
  6995. при использовании OpenSSL 0.9.8zc, 1.0.0o, 1.0.1j.
  6996. </para>
  6997. <para lang="en">
  6998. in the "ssl_password_file" directive
  6999. when using OpenSSL 0.9.8zc, 1.0.0o, 1.0.1j.
  7000. </para>
  7001. </change>

  7002. <change type="bugfix">
  7003. <para lang="ru">
  7004. при использовании директивы post_action
  7005. в лог писались сообщения "header already sent";
  7006. ошибка появилась в nginx 1.5.4.
  7007. </para>
  7008. <para lang="en">
  7009. alerts "header already sent" appeared in logs
  7010. if the "post_action" directive was used;
  7011. the bug had appeared in 1.5.4.
  7012. </para>
  7013. </change>

  7014. <change type="bugfix">
  7015. <para lang="ru">
  7016. при использовании директивы "postpone_output 0" с SSI-подзапросами
  7017. в лог могли писаться сообщения "the http output chain is empty".
  7018. </para>
  7019. <para lang="en">
  7020. alerts "the http output chain is empty" might appear in logs
  7021. if the "postpone_output 0" directive was used with SSI includes.
  7022. </para>
  7023. </change>

  7024. <change type="bugfix">
  7025. <para lang="ru">
  7026. в директиве proxy_cache_lock при использовании SSI-подзапросов.<br/>
  7027. Спасибо Yichun Zhang.
  7028. </para>
  7029. <para lang="en">
  7030. in the "proxy_cache_lock" directive with SSI subrequests.<br/>
  7031. Thanks to Yichun Zhang.
  7032. </para>
  7033. </change>

  7034. </changes>


  7035. <changes ver="1.7.7" date="2014-10-28">

  7036. <change type="change">
  7037. <para lang="ru">
  7038. теперь nginx учитывает при кэшировании строку "Vary"
  7039. в заголовке ответа бэкенда.
  7040. </para>
  7041. <para lang="en">
  7042. now nginx takes into account the "Vary"
  7043. header line in a backend response while caching.
  7044. </para>
  7045. </change>

  7046. <change type="feature">
  7047. <para lang="ru">
  7048. директивы proxy_force_ranges, fastcgi_force_ranges,
  7049. scgi_force_ranges и uwsgi_force_ranges.
  7050. </para>
  7051. <para lang="en">
  7052. the "proxy_force_ranges", "fastcgi_force_ranges",
  7053. "scgi_force_ranges", and "uwsgi_force_ranges" directives.
  7054. </para>
  7055. </change>

  7056. <change type="feature">
  7057. <para lang="ru">
  7058. директивы proxy_limit_rate, fastcgi_limit_rate,
  7059. scgi_limit_rate и uwsgi_limit_rate.
  7060. </para>
  7061. <para lang="en">
  7062. the "proxy_limit_rate", "fastcgi_limit_rate",
  7063. "scgi_limit_rate", and "uwsgi_limit_rate" directives.
  7064. </para>
  7065. </change>

  7066. <change type="feature">
  7067. <para lang="ru">
  7068. параметр Vary директив proxy_ignore_headers, fastcgi_ignore_headers,
  7069. scgi_ignore_headers и uwsgi_ignore_headers.
  7070. </para>
  7071. <para lang="en">
  7072. the "Vary" parameter of the "proxy_ignore_headers", "fastcgi_ignore_headers",
  7073. "scgi_ignore_headers", and "uwsgi_ignore_headers" directives.
  7074. </para>
  7075. </change>

  7076. <change type="bugfix">
  7077. <para lang="ru">
  7078. последняя часть ответа, полученного от бэкенда
  7079. при небуферизированном проксировании,
  7080. могла не отправляться клиенту,
  7081. если использовались директивы gzip или gunzip.
  7082. </para>
  7083. <para lang="en">
  7084. the last part of a response received from a backend
  7085. with unbufferred proxy
  7086. might not be sent to a client
  7087. if "gzip" or "gunzip" directives were used.
  7088. </para>
  7089. </change>

  7090. <change type="bugfix">
  7091. <para lang="ru">
  7092. в директиве proxy_cache_revalidate.<br/>
  7093. Спасибо Piotr Sikora.
  7094. </para>
  7095. <para lang="en">
  7096. in the "proxy_cache_revalidate" directive.<br/>
  7097. Thanks to Piotr Sikora.
  7098. </para>
  7099. </change>

  7100. <change type="bugfix">
  7101. <para lang="ru">
  7102. в обработке ошибок.<br/>
  7103. Спасибо Yichun Zhang и Даниилу Бондареву.
  7104. </para>
  7105. <para lang="en">
  7106. in error handling.<br/>
  7107. Thanks to Yichun Zhang and Daniil Bondarev.
  7108. </para>
  7109. </change>

  7110. <change type="bugfix">
  7111. <para lang="ru">
  7112. в директивах
  7113. proxy_next_upstream_tries и proxy_next_upstream_timeout.<br/>
  7114. Спасибо Feng Gu.
  7115. </para>
  7116. <para lang="en">
  7117. in the "proxy_next_upstream_tries" and "proxy_next_upstream_timeout"
  7118. directives.<br/>
  7119. Thanks to Feng Gu.
  7120. </para>
  7121. </change>

  7122. <change type="bugfix">
  7123. <para lang="ru">
  7124. nginx/Windows не собирался с MinGW-w64 gcc.<br/>
  7125. Спасибо Kouhei Sutou.
  7126. </para>
  7127. <para lang="en">
  7128. nginx/Windows could not be built with MinGW-w64 gcc.<br/>
  7129. Thanks to Kouhei Sutou.
  7130. </para>
  7131. </change>

  7132. </changes>


  7133. <changes ver="1.7.6" date="2014-09-30">

  7134. <change type="change">
  7135. <para lang="ru">
  7136. устаревшая директива limit_zone больше не поддерживается.
  7137. </para>
  7138. <para lang="en">
  7139. the deprecated "limit_zone" directive is not supported anymore.
  7140. </para>
  7141. </change>

  7142. <change type="feature">
  7143. <para lang="ru">
  7144. в директивах limit_conn_zone и limit_req_zone теперь можно использовать
  7145. комбинации нескольких переменных.
  7146. </para>
  7147. <para lang="en">
  7148. the "limit_conn_zone" and "limit_req_zone" directives now can be used
  7149. with combinations of multiple variables.
  7150. </para>
  7151. </change>

  7152. <change type="bugfix">
  7153. <para lang="ru">
  7154. при повторной отправке FastCGI-запроса на бэкенд
  7155. тело запроса могло передаваться неправильно.
  7156. </para>
  7157. <para lang="en">
  7158. request body might be transmitted incorrectly
  7159. when retrying a FastCGI request to the next upstream server.
  7160. </para>
  7161. </change>

  7162. <change type="bugfix">
  7163. <para lang="ru">
  7164. в логгировании в syslog.
  7165. </para>
  7166. <para lang="en">
  7167. in logging to syslog.
  7168. </para>
  7169. </change>

  7170. </changes>


  7171. <changes ver="1.7.5" date="2014-09-16">

  7172. <change type="security">
  7173. <para lang="ru">
  7174. при использовании общего для нескольких блоков server
  7175. разделяемого кэша SSL-сессий или общего ключа для шифрования
  7176. TLS session tickets было возможно повторно использовать
  7177. SSL-сессию в контексте другого блока server (CVE-2014-3616).<br/>
  7178. Спасибо Antoine Delignat-Lavaud.
  7179. </para>
  7180. <para lang="en">
  7181. it was possible to reuse SSL sessions in unrelated contexts
  7182. if a shared SSL session cache or the same TLS session ticket key
  7183. was used for multiple "server" blocks (CVE-2014-3616).<br/>
  7184. Thanks to Antoine Delignat-Lavaud.
  7185. </para>
  7186. </change>

  7187. <change type="change">
  7188. <para lang="ru">
  7189. директиву stub_status теперь можно указывать без параметров.
  7190. </para>
  7191. <para lang="en">
  7192. now the "stub_status" directive does not require a parameter.
  7193. </para>
  7194. </change>

  7195. <change type="feature">
  7196. <para lang="ru">
  7197. параметр always директивы add_header.
  7198. </para>
  7199. <para lang="en">
  7200. the "always" parameter of the "add_header" directive.
  7201. </para>
  7202. </change>

  7203. <change type="feature">
  7204. <para lang="ru">
  7205. директивы
  7206. proxy_next_upstream_tries, proxy_next_upstream_timeout,
  7207. fastcgi_next_upstream_tries, fastcgi_next_upstream_timeout,
  7208. memcached_next_upstream_tries, memcached_next_upstream_timeout,
  7209. scgi_next_upstream_tries, scgi_next_upstream_timeout,
  7210. uwsgi_next_upstream_tries и uwsgi_next_upstream_timeout.
  7211. </para>
  7212. <para lang="en">
  7213. the
  7214. "proxy_next_upstream_tries", "proxy_next_upstream_timeout",
  7215. "fastcgi_next_upstream_tries", "fastcgi_next_upstream_timeout",
  7216. "memcached_next_upstream_tries", "memcached_next_upstream_timeout",
  7217. "scgi_next_upstream_tries", "scgi_next_upstream_timeout",
  7218. "uwsgi_next_upstream_tries", and "uwsgi_next_upstream_timeout"
  7219. directives.
  7220. </para>
  7221. </change>

  7222. <change type="bugfix">
  7223. <para lang="ru">
  7224. в параметре if директивы access_log.
  7225. </para>
  7226. <para lang="en">
  7227. in the "if" parameter of the "access_log" directive.
  7228. </para>
  7229. </change>

  7230. <change type="bugfix">
  7231. <para lang="ru">
  7232. в модуле ngx_http_perl_module.<br/>
  7233. Спасибо Piotr Sikora.
  7234. </para>
  7235. <para lang="en">
  7236. in the ngx_http_perl_module.<br/>
  7237. Thanks to Piotr Sikora.
  7238. </para>
  7239. </change>

  7240. <change type="bugfix">
  7241. <para lang="ru">
  7242. директива listen почтового прокси-сервера
  7243. не позволяла указать более двух параметров.
  7244. </para>
  7245. <para lang="en">
  7246. the "listen" directive of the mail proxy module
  7247. did not allow to specify more than two parameters.
  7248. </para>
  7249. </change>

  7250. <change type="bugfix">
  7251. <para lang="ru">
  7252. директива sub_filter не работала
  7253. с заменяемой строкой из одного символа.
  7254. </para>
  7255. <para lang="en">
  7256. the "sub_filter" directive did not work
  7257. with a string to replace consisting of a single character.
  7258. </para>
  7259. </change>

  7260. <change type="bugfix">
  7261. <para lang="ru">
  7262. запросы могли зависать, если использовался resolver
  7263. и в процессе обращения к DNS-серверу происходил таймаут.
  7264. </para>
  7265. <para lang="en">
  7266. requests might hang if resolver was used
  7267. and a timeout occurred during a DNS request.
  7268. </para>
  7269. </change>

  7270. <change type="bugfix">
  7271. <para lang="ru">
  7272. в модуле ngx_http_spdy_module при использовании совместно с AIO.
  7273. </para>
  7274. <para lang="en">
  7275. in the ngx_http_spdy_module when using with AIO.
  7276. </para>
  7277. </change>

  7278. <change type="bugfix">
  7279. <para lang="ru">
  7280. в рабочем процессе мог произойти segmentation fault,
  7281. если с помощью директивы set изменялись переменные
  7282. "$http_...", "$sent_http_..." или "$upstream_http_...".
  7283. </para>
  7284. <para lang="en">
  7285. a segmentation fault might occur in a worker process
  7286. if the "set" directive was used to change the "$http_...",
  7287. "$sent_http_...", or "$upstream_http_..." variables.
  7288. </para>
  7289. </change>

  7290. <change type="bugfix">
  7291. <para lang="ru">
  7292. в обработке ошибок выделения памяти.<br/>
  7293. Спасибо Markus Linnala и Feng Gu.
  7294. </para>
  7295. <para lang="en">
  7296. in memory allocation error handling.<br/>
  7297. Thanks to Markus Linnala and Feng Gu.
  7298. </para>
  7299. </change>

  7300. </changes>


  7301. <changes ver="1.7.4" date="2014-08-05">

  7302. <change type="security">
  7303. <para lang="ru">
  7304. pipelined-команды не отбрасывались
  7305. после команды STARTTLS в SMTP прокси-сервере (CVE-2014-3556);
  7306. ошибка появилась в 1.5.6.<br/>
  7307. Спасибо Chris Boulton.
  7308. </para>
  7309. <para lang="en">
  7310. pipelined commands were not discarded
  7311. after STARTTLS command in SMTP proxy (CVE-2014-3556);
  7312. the bug had appeared in 1.5.6.<br/>
  7313. Thanks to Chris Boulton.
  7314. </para>
  7315. </change>

  7316. <change type="change">
  7317. <para lang="ru">
  7318. экранирование символов в URI теперь использует
  7319. шестнадцатеричные цифры в верхнем регистре.<br/>
  7320. Спасибо Piotr Sikora.
  7321. </para>
  7322. <para lang="en">
  7323. URI escaping now uses
  7324. uppercase hexadecimal digits.<br/>
  7325. Thanks to Piotr Sikora.
  7326. </para>
  7327. </change>

  7328. <change type="feature">
  7329. <para lang="ru">
  7330. теперь nginx можно собрать с BoringSSL и LibreSSL.<br/>
  7331. Спасибо Piotr Sikora.
  7332. </para>
  7333. <para lang="en">
  7334. now nginx can be build with BoringSSL and LibreSSL.<br/>
  7335. Thanks to Piotr Sikora.
  7336. </para>
  7337. </change>

  7338. <change type="bugfix">
  7339. <para lang="ru">
  7340. запросы могли зависать, если использовался resolver
  7341. и DNS-сервер возвращал некорректный ответ;
  7342. ошибка появилась в 1.5.8.
  7343. </para>
  7344. <para lang="en">
  7345. requests might hang if resolver was used
  7346. and a DNS server returned a malformed response;
  7347. the bug had appeared in 1.5.8.
  7348. </para>
  7349. </change>

  7350. <change type="bugfix">
  7351. <para lang="ru">
  7352. в модуле ngx_http_spdy_module.<br/>
  7353. Спасибо Piotr Sikora.
  7354. </para>
  7355. <para lang="en">
  7356. in the ngx_http_spdy_module.<br/>
  7357. Thanks to Piotr Sikora.
  7358. </para>
  7359. </change>

  7360. <change type="bugfix">
  7361. <para lang="ru">
  7362. переменная $uri могла содержать мусор
  7363. при возврате ошибок с кодом 400.<br/>
  7364. Спасибо Сергею Боброву.
  7365. </para>
  7366. <para lang="en">
  7367. the $uri variable might contain garbage
  7368. when returning errors with code 400.<br/>
  7369. Thanks to Sergey Bobrov.
  7370. </para>
  7371. </change>

  7372. <change type="bugfix">
  7373. <para lang="ru">
  7374. в обработке ошибок в директиве proxy_store
  7375. и в модуле ngx_http_dav_module.<br/>
  7376. Спасибо Feng Gu.
  7377. </para>
  7378. <para lang="en">
  7379. in error handling in the "proxy_store" directive
  7380. and the ngx_http_dav_module.<br/>
  7381. Thanks to Feng Gu.
  7382. </para>
  7383. </change>

  7384. <change type="bugfix">
  7385. <para lang="ru">
  7386. при логгировании ошибок в syslog мог происходить segmentation fault;
  7387. ошибка появилась в 1.7.1.
  7388. </para>
  7389. <para lang="en">
  7390. a segmentation fault might occur if logging of errors to syslog was used;
  7391. the bug had appeared in 1.7.1.
  7392. </para>
  7393. </change>

  7394. <change type="bugfix">
  7395. <para lang="ru">
  7396. переменные $geoip_latitude, $geoip_longitude, $geoip_dma_code
  7397. и $geoip_area_code могли не работать.<br/>
  7398. Спасибо Yichun Zhang.
  7399. </para>
  7400. <para lang="en">
  7401. the $geoip_latitude, $geoip_longitude, $geoip_dma_code,
  7402. and $geoip_area_code variables might not work.<br/>
  7403. Thanks to Yichun Zhang.
  7404. </para>
  7405. </change>

  7406. <change type="bugfix">
  7407. <para lang="ru">
  7408. в обработке ошибок выделения памяти.<br/>
  7409. Спасибо Tatsuhiko Kubo и Piotr Sikora.
  7410. </para>
  7411. <para lang="en">
  7412. in memory allocation error handling.<br/>
  7413. Thanks to Tatsuhiko Kubo and Piotr Sikora.
  7414. </para>
  7415. </change>

  7416. </changes>


  7417. <changes ver="1.7.3" date="2014-07-08">

  7418. <change type="feature">
  7419. <para lang="ru">
  7420. weak entity tags теперь не удаляются при изменениях ответа,
  7421. а strong entity tags преобразуются в weak.
  7422. </para>
  7423. <para lang="en">
  7424. weak entity tags are now preserved on response modifications,
  7425. and strong ones are changed to weak.
  7426. </para>
  7427. </change>

  7428. <change type="feature">
  7429. <para lang="ru">
  7430. ревалидация элементов кэша теперь, если это возможно,
  7431. использует заголовок If-None-Match.
  7432. </para>
  7433. <para lang="en">
  7434. cache revalidation now uses If-None-Match header
  7435. if possible.
  7436. </para>
  7437. </change>

  7438. <change type="feature">
  7439. <para lang="ru">
  7440. директива ssl_password_file.
  7441. </para>
  7442. <para lang="en">
  7443. the "ssl_password_file" directive.
  7444. </para>
  7445. </change>

  7446. <change type="bugfix">
  7447. <para lang="ru">
  7448. при возврате ответа из кэша
  7449. заголовок запроса If-None-Match игнорировался,
  7450. если в ответе не было заголовка Last-Modified.
  7451. </para>
  7452. <para lang="en">
  7453. the If-None-Match request header line was ignored
  7454. if there was no Last-Modified header
  7455. in a response returned from cache.
  7456. </para>
  7457. </change>

  7458. <change type="bugfix">
  7459. <para lang="ru">
  7460. сообщения "peer closed connection in SSL handshake"
  7461. при соединении с бэкендами логгировались на уровне info вместо error.
  7462. </para>
  7463. <para lang="en">
  7464. "peer closed connection in SSL handshake" messages
  7465. were logged at "info" level instead of "error" while connecting to backends.
  7466. </para>
  7467. </change>

  7468. <change type="bugfix">
  7469. <para lang="ru">
  7470. в модуле ngx_http_dav_module в nginx/Windows.
  7471. </para>
  7472. <para lang="en">
  7473. in the ngx_http_dav_module module in nginx/Windows.
  7474. </para>
  7475. </change>

  7476. <change type="bugfix">
  7477. <para lang="ru">
  7478. SPDY-соединения могли неожиданно закрываться,
  7479. если использовалось кэширование.
  7480. </para>
  7481. <para lang="en">
  7482. SPDY connections might be closed prematurely
  7483. if caching was used.
  7484. </para>
  7485. </change>

  7486. </changes>


  7487. <changes ver="1.7.2" date="2014-06-17">

  7488. <change type="feature">
  7489. <para lang="ru">
  7490. директива hash в блоке upstream.
  7491. </para>
  7492. <para lang="en">
  7493. the "hash" directive inside the "upstream" block.
  7494. </para>
  7495. </change>

  7496. <change type="feature">
  7497. <para lang="ru">
  7498. дефрагментация свободных блоков разделяемой памяти.<br/>
  7499. Спасибо Wandenberg Peixoto и Yichun Zhang.
  7500. </para>
  7501. <para lang="en">
  7502. defragmentation of free shared memory blocks.<br/>
  7503. Thanks to Wandenberg Peixoto and Yichun Zhang.
  7504. </para>
  7505. </change>

  7506. <change type="bugfix">
  7507. <para lang="ru">
  7508. в рабочем процессе мог произойти segmentation fault,
  7509. если использовалось значение access_log по умолчанию;
  7510. ошибка появилась в 1.7.0.<br/>
  7511. Спасибо Piotr Sikora.
  7512. </para>
  7513. <para lang="en">
  7514. a segmentation fault might occur in a worker process
  7515. if the default value of the "access_log" directive was used;
  7516. the bug had appeared in 1.7.0.<br/>
  7517. Thanks to Piotr Sikora.
  7518. </para>
  7519. </change>

  7520. <change type="bugfix">
  7521. <para lang="ru">
  7522. завершающий слэш ошибочно удалялся
  7523. из последнего параметра директивы try_files.
  7524. </para>
  7525. <para lang="en">
  7526. trailing slash was mistakenly removed
  7527. from the last parameter of the "try_files" directive.
  7528. </para>
  7529. </change>

  7530. <change type="bugfix">
  7531. <para lang="ru">
  7532. nginx мог не собираться на OS X.
  7533. </para>
  7534. <para lang="en">
  7535. nginx could not be built on OS X in some cases.
  7536. </para>
  7537. </change>

  7538. <change type="bugfix">
  7539. <para lang="ru">
  7540. в модуле ngx_http_spdy_module.
  7541. </para>
  7542. <para lang="en">
  7543. in the ngx_http_spdy_module.
  7544. </para>
  7545. </change>

  7546. </changes>


  7547. <changes ver="1.7.1" date="2014-05-27">

  7548. <change type="feature">
  7549. <para lang="ru">
  7550. переменные "$upstream_cookie_...".
  7551. </para>
  7552. <para lang="en">
  7553. the "$upstream_cookie_..." variables.
  7554. </para>
  7555. </change>

  7556. <change type="feature">
  7557. <para lang="ru">
  7558. переменная $ssl_client_fingerprint.
  7559. </para>
  7560. <para lang="en">
  7561. the $ssl_client_fingerprint variable.
  7562. </para>
  7563. </change>

  7564. <change type="feature">
  7565. <para lang="ru">
  7566. директивы error_log и access_log теперь поддерживают логгирование в syslog.
  7567. </para>
  7568. <para lang="en">
  7569. the "error_log" and "access_log" directives now support logging to syslog.
  7570. </para>
  7571. </change>

  7572. <change type="feature">
  7573. <para lang="ru">
  7574. почтовый прокси-сервер теперь логгирует порт клиента при соединении.
  7575. </para>
  7576. <para lang="en">
  7577. the mail proxy now logs client port on connect.
  7578. </para>
  7579. </change>

  7580. <change type="bugfix">
  7581. <para lang="ru">
  7582. утечки памяти при использовании директивы "ssl_stapling".<br/>
  7583. Спасибо Filipe da Silva.
  7584. </para>
  7585. <para lang="en">
  7586. memory leak if the "ssl_stapling" directive was used.<br/>
  7587. Thanks to Filipe da Silva.
  7588. </para>
  7589. </change>

  7590. <change type="bugfix">
  7591. <para lang="ru">
  7592. директива alias внутри location'а, заданного регулярным выражением,
  7593. работала неправильно, если использовались директивы if или limit_except.
  7594. </para>
  7595. <para lang="en">
  7596. the "alias" directive used inside a location given by a regular expression
  7597. worked incorrectly if the "if" or "limit_except" directives were used.
  7598. </para>
  7599. </change>

  7600. <change type="bugfix">
  7601. <para lang="ru">
  7602. директива charset не ставила кодировку для сжатых ответов бэкендов.
  7603. </para>
  7604. <para lang="en">
  7605. the "charset" directive did not set a charset to encoded backend responses.
  7606. </para>
  7607. </change>

  7608. <change type="bugfix">
  7609. <para lang="ru">
  7610. директива proxy_pass без URI могла использовать оригинальный запрос
  7611. после установки переменной $args.<br/>
  7612. Спасибо Yichun Zhang.
  7613. </para>
  7614. <para lang="en">
  7615. a "proxy_pass" directive without URI part might use original request
  7616. after the $args variable was set.<br/>
  7617. Thanks to Yichun Zhang.
  7618. </para>
  7619. </change>

  7620. <change type="bugfix">
  7621. <para lang="ru">
  7622. в работе параметра none директивы smtp_auth;
  7623. ошибка появилась в 1.5.6.<br/>
  7624. Спасибо Святославу Никольскому.
  7625. </para>
  7626. <para lang="en">
  7627. in the "none" parameter in the "smtp_auth" directive;
  7628. the bug had appeared in 1.5.6.<br/>
  7629. Thanks to Svyatoslav Nikolsky.
  7630. </para>
  7631. </change>

  7632. <change type="bugfix">
  7633. <para lang="ru">
  7634. при совместном использовании sub_filter и SSI
  7635. ответы могли передаваться неверно.
  7636. </para>
  7637. <para lang="en">
  7638. if sub_filter and SSI were used together,
  7639. then responses might be transferred incorrectly.
  7640. </para>
  7641. </change>

  7642. <change type="bugfix">
  7643. <para lang="ru">
  7644. nginx не собирался с параметром --with-file-aio на Linux/aarch64.
  7645. </para>
  7646. <para lang="en">
  7647. nginx could not be built with the --with-file-aio option on Linux/aarch64.
  7648. </para>
  7649. </change>

  7650. </changes>


  7651. <changes ver="1.7.0" date="2014-04-24">

  7652. <change type="feature">
  7653. <para lang="ru">
  7654. проверка SSL-сертификатов бэкендов.
  7655. </para>
  7656. <para lang="en">
  7657. backend SSL certificate verification.
  7658. </para>
  7659. </change>

  7660. <change type="feature">
  7661. <para lang="ru">
  7662. поддержка SNI при работе с бэкендами по SSL.
  7663. </para>
  7664. <para lang="en">
  7665. support for SNI while working with SSL backends.
  7666. </para>
  7667. </change>

  7668. <change type="feature">
  7669. <para lang="ru">
  7670. переменная $ssl_server_name.
  7671. </para>
  7672. <para lang="en">
  7673. the $ssl_server_name variable.
  7674. </para>
  7675. </change>

  7676. <change type="feature">
  7677. <para lang="ru">
  7678. параметр if директивы access_log.
  7679. </para>
  7680. <para lang="en">
  7681. the "if" parameter of the "access_log" directive.
  7682. </para>
  7683. </change>

  7684. </changes>


  7685. <changes ver="1.5.13" date="2014-04-08">

  7686. <change type="change">
  7687. <para lang="ru">
  7688. улучшена обработка хэш-таблиц;
  7689. в директивах variables_hash_max_size и types_hash_bucket_size
  7690. значения по умолчанию изменены на 1024 и 64 соответственно.
  7691. </para>
  7692. <para lang="en">
  7693. improved hash table handling;
  7694. the default values of the "variables_hash_max_size" and
  7695. "types_hash_bucket_size" were changed to 1024 and 64 respectively.
  7696. </para>
  7697. </change>

  7698. <change type="feature">
  7699. <para lang="ru">
  7700. модуль ngx_http_mp4_module теперь понимает аргумент end.
  7701. </para>
  7702. <para lang="en">
  7703. the ngx_http_mp4_module now supports the "end" argument.
  7704. </para>
  7705. </change>

  7706. <change type="feature">
  7707. <para lang="ru">
  7708. поддержка byte ranges модулем ngx_http_mp4_module и при сохранении
  7709. ответов в кэш.
  7710. </para>
  7711. <para lang="en">
  7712. byte ranges support in the ngx_http_mp4_module and while saving responses
  7713. to cache.
  7714. </para>
  7715. </change>

  7716. <change type="bugfix">
  7717. <para lang="ru">
  7718. теперь nginx не пишет в лог сообщения "ngx_slab_alloc() failed: no memory"
  7719. при использовании разделяемой памяти в ssl_session_cache
  7720. и в модуле ngx_http_limit_req_module.
  7721. </para>
  7722. <para lang="en">
  7723. alerts "ngx_slab_alloc() failed: no memory" no longer logged
  7724. when using shared memory in the "ssl_session_cache" directive
  7725. and in the ngx_http_limit_req_module.
  7726. </para>
  7727. </change>

  7728. <change type="bugfix">
  7729. <para lang="ru">
  7730. директива underscores_in_headers
  7731. не разрешала подчёркивание в первом символе заголовка.<br/>
  7732. Спасибо Piotr Sikora.
  7733. </para>
  7734. <para lang="en">
  7735. the "underscores_in_headers" directive
  7736. did not allow underscore as a first character of a header.<br/>
  7737. Thanks to Piotr Sikora.
  7738. </para>
  7739. </change>

  7740. <change type="bugfix">
  7741. <para lang="ru">
  7742. cache manager мог нагружать процессор при выходе в nginx/Windows.
  7743. </para>
  7744. <para lang="en">
  7745. cache manager might hog CPU on exit in nginx/Windows.
  7746. </para>
  7747. </change>

  7748. <change type="bugfix">
  7749. <para lang="ru">
  7750. при использовании ssl_session_cache с параметром shared
  7751. рабочий процесс nginx/Windows завершался аварийно.
  7752. </para>
  7753. <para lang="en">
  7754. nginx/Windows terminated abnormally
  7755. if the "ssl_session_cache" directive was used with the "shared" parameter.
  7756. </para>
  7757. </change>

  7758. <change type="bugfix">
  7759. <para lang="ru">
  7760. в модуле ngx_http_spdy_module.
  7761. </para>
  7762. <para lang="en">
  7763. in the ngx_http_spdy_module.
  7764. </para>
  7765. </change>

  7766. </changes>


  7767. <changes ver="1.5.12" date="2014-03-18">

  7768. <change type="security">
  7769. <para lang="ru">
  7770. при обработке специально созданного запроса модулем ngx_http_spdy_module
  7771. могло происходить переполнение буфера в рабочем процессе,
  7772. что потенциально могло приводить к выполнению произвольного кода
  7773. (CVE-2014-0133).<br/>
  7774. Спасибо Lucas Molas из Programa STIC, Fundación Dr. Manuel
  7775. Sadosky, Buenos Aires, Argentina.
  7776. </para>
  7777. <para lang="en">
  7778. a heap memory buffer overflow might occur in a worker process
  7779. while handling a specially crafted request by ngx_http_spdy_module,
  7780. potentially resulting in arbitrary code execution
  7781. (CVE-2014-0133).<br/>
  7782. Thanks to Lucas Molas, researcher at Programa STIC, Fundación Dr. Manuel
  7783. Sadosky, Buenos Aires, Argentina.
  7784. </para>
  7785. </change>

  7786. <change type="feature">
  7787. <para lang="ru">
  7788. параметр proxy_protocol в директивах listen и real_ip_header,
  7789. переменная $proxy_protocol_addr.
  7790. </para>
  7791. <para lang="en">
  7792. the "proxy_protocol" parameters of the "listen" and "real_ip_header" directives,
  7793. the $proxy_protocol_addr variable.
  7794. </para>
  7795. </change>

  7796. <change type="bugfix">
  7797. <para lang="ru">
  7798. в директиве fastcgi_next_upstream.<br/>
  7799. Спасибо Lucas Molas.
  7800. </para>
  7801. <para lang="en">
  7802. in the "fastcgi_next_upstream" directive.<br/>
  7803. Thanks to Lucas Molas.
  7804. </para>
  7805. </change>

  7806. </changes>


  7807. <changes ver="1.5.11" date="2014-03-04">

  7808. <change type="security">
  7809. <para lang="ru">
  7810. при обработке специально созданного запроса модулем ngx_http_spdy_module
  7811. на 32-битных платформах могла повреждаться память рабочего процесса,
  7812. что потенциально могло приводить к выполнению произвольного кода
  7813. (CVE-2014-0088);
  7814. ошибка появилась в 1.5.10.<br/>
  7815. Спасибо Lucas Molas из Programa STIC, Fundación Dr. Manuel
  7816. Sadosky, Buenos Aires, Argentina.
  7817. </para>
  7818. <para lang="en">
  7819. memory corruption might occur in a worker process on 32-bit platforms
  7820. while handling a specially crafted request by ngx_http_spdy_module,
  7821. potentially resulting in arbitrary code execution (CVE-2014-0088);
  7822. the bug had appeared in 1.5.10.<br/>
  7823. Thanks to Lucas Molas, researcher at Programa STIC, Fundación Dr. Manuel
  7824. Sadosky, Buenos Aires, Argentina.
  7825. </para>
  7826. </change>

  7827. <change type="feature">
  7828. <para lang="ru">
  7829. переменная $ssl_session_reused.
  7830. </para>
  7831. <para lang="en">
  7832. the $ssl_session_reused variable.
  7833. </para>
  7834. </change>

  7835. <change type="bugfix">
  7836. <para lang="ru">
  7837. директива client_max_body_size могла не работать
  7838. при чтении тела запроса с использованием chunked transfer encoding;
  7839. ошибка появилась в 1.3.9.<br/>
  7840. Спасибо Lucas Molas.
  7841. </para>
  7842. <para lang="en">
  7843. the "client_max_body_size" directive might not work
  7844. when reading a request body using chunked transfer encoding;
  7845. the bug had appeared in 1.3.9.<br/>
  7846. Thanks to Lucas Molas.
  7847. </para>
  7848. </change>

  7849. <change type="bugfix">
  7850. <para lang="ru">
  7851. при проксировании WebSocket-соединений
  7852. в рабочем процессе мог произойти segmentation fault.
  7853. </para>
  7854. <para lang="en">
  7855. a segmentation fault might occur in a worker process
  7856. when proxying WebSocket connections.
  7857. </para>
  7858. </change>

  7859. <change type="bugfix">
  7860. <para lang="ru">
  7861. в рабочем процессе мог произойти segmentation fault,
  7862. если использовался модуль ngx_http_spdy_module на 32-битных платформах;
  7863. ошибка появилась в 1.5.10.
  7864. </para>
  7865. <para lang="en">
  7866. a segmentation fault might occur in a worker process
  7867. if the ngx_http_spdy_module was used on 32-bit platforms;
  7868. the bug had appeared in 1.5.10.
  7869. </para>
  7870. </change>

  7871. <change type="bugfix">
  7872. <para lang="ru">
  7873. значение переменной $upstream_status могло быть неверным,
  7874. если использовались директивы proxy_cache_use_stale
  7875. или proxy_cache_revalidate.<br/>
  7876. Спасибо Piotr Sikora.
  7877. </para>
  7878. <para lang="en">
  7879. the $upstream_status variable might contain wrong data
  7880. if the "proxy_cache_use_stale" or "proxy_cache_revalidate" directives
  7881. were used.<br/>
  7882. Thanks to Piotr Sikora.
  7883. </para>
  7884. </change>

  7885. <change type="bugfix">
  7886. <para lang="ru">
  7887. в рабочем процессе мог произойти segmentation fault,
  7888. если ошибки с кодом 400 с помощью директивы error_page
  7889. перенаправлялись в именованный location.
  7890. </para>
  7891. <para lang="en">
  7892. a segmentation fault might occur in a worker process
  7893. if errors with code 400 were redirected to a named location
  7894. using the "error_page" directive.
  7895. </para>
  7896. </change>

  7897. <change type="bugfix">
  7898. <para lang="ru">
  7899. nginx/Windows не собирался с Visual Studio 2013.
  7900. </para>
  7901. <para lang="en">
  7902. nginx/Windows could not be built with Visual Studio 2013.
  7903. </para>
  7904. </change>

  7905. </changes>


  7906. <changes ver="1.5.10" date="2014-02-04">

  7907. <change type="feature">
  7908. <para lang="ru">
  7909. модуль ngx_http_spdy_module теперь использует протокол SPDY 3.1.<br/>
  7910. Спасибо Automattic и MaxCDN за спонсирование разработки.
  7911. </para>
  7912. <para lang="en">
  7913. the ngx_http_spdy_module now uses SPDY 3.1 protocol.<br/>
  7914. Thanks to Automattic and MaxCDN for sponsoring this work.
  7915. </para>
  7916. </change>

  7917. <change type="feature">
  7918. <para lang="ru">
  7919. модуль ngx_http_mp4_module теперь пропускает дорожки,
  7920. имеющие меньшую длину, чем запрошенная перемотка.
  7921. </para>
  7922. <para lang="en">
  7923. the ngx_http_mp4_module now skips tracks
  7924. too short for a seek requested.
  7925. </para>
  7926. </change>

  7927. <change type="bugfix">
  7928. <para lang="ru">
  7929. в рабочем процессе мог произойти segmentation fault,
  7930. если переменная $ssl_session_id использовалась при логгировании;
  7931. ошибка появилась в 1.5.9.
  7932. </para>
  7933. <para lang="en">
  7934. a segmentation fault might occur in a worker process
  7935. if the $ssl_session_id variable was used in logs;
  7936. the bug had appeared in 1.5.9.
  7937. </para>
  7938. </change>

  7939. <change type="bugfix">
  7940. <para lang="ru">
  7941. переменные $date_local и $date_gmt использовали неверный формат
  7942. вне модуля ngx_http_ssi_filter_module.
  7943. </para>
  7944. <para lang="en">
  7945. the $date_local and $date_gmt variables used wrong format
  7946. outside of the ngx_http_ssi_filter_module.
  7947. </para>
  7948. </change>

  7949. <change type="bugfix">
  7950. <para lang="ru">
  7951. клиентские соединения могли сразу закрываться,
  7952. если использовался отложенный accept;
  7953. ошибка появилась в 1.3.15.
  7954. </para>
  7955. <para lang="en">
  7956. client connections might be immediately closed
  7957. if deferred accept was used;
  7958. the bug had appeared in 1.3.15.
  7959. </para>
  7960. </change>

  7961. <change type="bugfix">
  7962. <para lang="ru">
  7963. сообщения "getsockopt(TCP_FASTOPEN) ... failed" записывались в лог
  7964. в процессе обновления исполняемого файла на Linux;
  7965. ошибка появилась в 1.5.8.<br/>
  7966. Спасибо Piotr Sikora.
  7967. </para>
  7968. <para lang="en">
  7969. alerts "getsockopt(TCP_FASTOPEN) ... failed" appeared in logs
  7970. during binary upgrade on Linux;
  7971. the bug had appeared in 1.5.8.<br/>
  7972. Thanks to Piotr Sikora.
  7973. </para>
  7974. </change>

  7975. </changes>


  7976. <changes ver="1.5.9" date="2014-01-22">

  7977. <change type="change">
  7978. <para lang="ru">
  7979. теперь в заголовке X-Accel-Redirect nginx ожидает закодированный URI.
  7980. </para>
  7981. <para lang="en">
  7982. now nginx expects escaped URIs in "X-Accel-Redirect" headers.
  7983. </para>
  7984. </change>

  7985. <change type="feature">
  7986. <para lang="ru">
  7987. директива ssl_buffer_size.
  7988. </para>
  7989. <para lang="en">
  7990. the "ssl_buffer_size" directive.
  7991. </para>
  7992. </change>

  7993. <change type="feature">
  7994. <para lang="ru">
  7995. директиву limit_rate теперь можно использовать для
  7996. ограничения скорости передачи ответов клиенту в SPDY-соединениях.
  7997. </para>
  7998. <para lang="en">
  7999. the "limit_rate" directive can now be used to
  8000. rate limit responses sent in SPDY connections.
  8001. </para>
  8002. </change>

  8003. <change type="feature">
  8004. <para lang="ru">
  8005. директива spdy_chunk_size.
  8006. </para>
  8007. <para lang="en">
  8008. the "spdy_chunk_size" directive.
  8009. </para>
  8010. </change>

  8011. <change type="feature">
  8012. <para lang="ru">
  8013. директива ssl_session_tickets.<br/>
  8014. Спасибо Dirkjan Bussink.
  8015. </para>
  8016. <para lang="en">
  8017. the "ssl_session_tickets" directive.<br/>
  8018. Thanks to Dirkjan Bussink.
  8019. </para>
  8020. </change>

  8021. <change type="bugfix">
  8022. <para lang="ru">
  8023. переменная $ssl_session_id содержала всю сессию в сериализованном виде
  8024. вместо её идентификатора.<br/>
  8025. Спасибо Ivan Ristić.
  8026. </para>
  8027. <para lang="en">
  8028. the $ssl_session_id variable contained full session serialized
  8029. instead of just a session id.<br/>
  8030. Thanks to Ivan Ristić.
  8031. </para>
  8032. </change>

  8033. <change type="bugfix">
  8034. <para lang="ru">
  8035. nginx неправильно обрабатывал закодированный символ "?" в команде SSI include.
  8036. </para>
  8037. <para lang="en">
  8038. nginx incorrectly handled escaped "?" character in the "include" SSI command.
  8039. </para>
  8040. </change>

  8041. <change type="bugfix">
  8042. <para lang="ru">
  8043. модуль ngx_http_dav_module не раскодировал целевой URI при
  8044. обработке методов COPY и MOVE.
  8045. </para>
  8046. <para lang="en">
  8047. the ngx_http_dav_module did not unescape destination URI
  8048. of the COPY and MOVE methods.
  8049. </para>
  8050. </change>

  8051. <change type="bugfix">
  8052. <para lang="ru">
  8053. resolver не понимал доменные имена с точкой в конце.
  8054. Спасибо Yichun Zhang.
  8055. </para>
  8056. <para lang="en">
  8057. resolver did not understand domain names with a trailing dot.
  8058. Thanks to Yichun Zhang.
  8059. </para>
  8060. </change>

  8061. <change type="bugfix">
  8062. <para lang="ru">
  8063. при проксировании в логах могли появляться сообщения "zero size buf in output";
  8064. ошибка появилась в 1.3.9.
  8065. </para>
  8066. <para lang="en">
  8067. alerts "zero size buf in output" might appear in logs while proxying;
  8068. the bug had appeared in 1.3.9.
  8069. </para>
  8070. </change>

  8071. <change type="bugfix">
  8072. <para lang="ru">
  8073. в рабочем процессе мог произойти segmentation fault,
  8074. если использовался модуль ngx_http_spdy_module.
  8075. </para>
  8076. <para lang="en">
  8077. a segmentation fault might occur in a worker process
  8078. if the ngx_http_spdy_module was used.
  8079. </para>
  8080. </change>

  8081. <change type="bugfix">
  8082. <para lang="ru">
  8083. при использовании методов обработки соединений select, poll и /dev/poll
  8084. проксируемые WebSocket-соединения могли зависать сразу после открытия.
  8085. </para>
  8086. <para lang="en">
  8087. proxied WebSocket connections might hang right after handshake
  8088. if the select, poll, or /dev/poll methods were used.
  8089. </para>
  8090. </change>

  8091. <change type="bugfix">
  8092. <para lang="ru">
  8093. директива xclient почтового прокси-сервера
  8094. некорректно передавала IPv6-адреса.
  8095. </para>
  8096. <para lang="en">
  8097. the "xclient" directive of the mail proxy module
  8098. incorrectly handled IPv6 client addresses.
  8099. </para>
  8100. </change>

  8101. </changes>


  8102. <changes ver="1.5.8" date="2013-12-17">

  8103. <change type="feature">
  8104. <para lang="ru">
  8105. теперь resolver поддерживает IPv6.
  8106. </para>
  8107. <para lang="en">
  8108. IPv6 support in resolver.
  8109. </para>
  8110. </change>

  8111. <change type="feature">
  8112. <para lang="ru">
  8113. директива listen поддерживает параметр fastopen.<br/>
  8114. Спасибо Mathew Rodley.
  8115. </para>
  8116. <para lang="en">
  8117. the "listen" directive supports the "fastopen" parameter.<br/>
  8118. Thanks to Mathew Rodley.
  8119. </para>
  8120. </change>

  8121. <change type="feature">
  8122. <para lang="ru">
  8123. поддержка SSL в модуле ngx_http_uwsgi_module.<br/>
  8124. Спасибо Roberto De Ioris.
  8125. </para>
  8126. <para lang="en">
  8127. SSL support in the ngx_http_uwsgi_module.<br/>
  8128. Thanks to Roberto De Ioris.
  8129. </para>
  8130. </change>

  8131. <change type="feature">
  8132. <para lang="ru">
  8133. скрипты подсветки синтаксиса для vim добавлены в contrib.<br/>
  8134. Спасибо Evan Miller.
  8135. </para>
  8136. <para lang="en">
  8137. vim syntax highlighting scripts were added to contrib.<br/>
  8138. Thanks to Evan Miller.
  8139. </para>
  8140. </change>

  8141. <change type="bugfix">
  8142. <para lang="ru">
  8143. при чтении тела запроса с использованием chunked transfer encoding
  8144. по SSL-соединению мог произойти таймаут.
  8145. </para>
  8146. <para lang="en">
  8147. a timeout might occur while reading client request body
  8148. in an SSL connection using chunked transfer encoding.
  8149. </para>
  8150. </change>

  8151. <change type="bugfix">
  8152. <para lang="ru">
  8153. директива master_process работала неправильно в nginx/Windows.
  8154. </para>
  8155. <para lang="en">
  8156. the "master_process" directive did not work correctly in nginx/Windows.
  8157. </para>
  8158. </change>

  8159. <change type="bugfix">
  8160. <para lang="ru">
  8161. параметр setfib директивы listen мог не работать.
  8162. </para>
  8163. <para lang="en">
  8164. the "setfib" parameter of the "listen" directive might not work.
  8165. </para>
  8166. </change>

  8167. <change type="bugfix">
  8168. <para lang="ru">
  8169. в модуле ngx_http_spdy_module.
  8170. </para>
  8171. <para lang="en">
  8172. in the ngx_http_spdy_module.
  8173. </para>
  8174. </change>

  8175. </changes>


  8176. <changes ver="1.5.7" date="2013-11-19">

  8177. <change type="security">
  8178. <para lang="ru">
  8179. символ, следующий за незакодированным пробелом в строке запроса,
  8180. обрабатывался неправильно (CVE-2013-4547);
  8181. ошибка появилась в 0.8.41.<br/>
  8182. Спасибо Ivan Fratric из Google Security Team.
  8183. </para>
  8184. <para lang="en">
  8185. a character following an unescaped space in a request line
  8186. was handled incorrectly (CVE-2013-4547);
  8187. the bug had appeared in 0.8.41.<br/>
  8188. Thanks to Ivan Fratric of the Google Security Team.
  8189. </para>
  8190. </change>

  8191. <change type="change">
  8192. <para lang="ru">
  8193. уровень логгирования ошибок auth_basic об отсутствии пароля
  8194. понижен с уровня error до info.
  8195. </para>
  8196. <para lang="en">
  8197. a logging level of auth_basic errors about no user/password provided
  8198. has been lowered from "error" to "info".
  8199. </para>
  8200. </change>

  8201. <change type="feature">
  8202. <para lang="ru">
  8203. директивы proxy_cache_revalidate, fastcgi_cache_revalidate,
  8204. scgi_cache_revalidate и uwsgi_cache_revalidate.
  8205. </para>
  8206. <para lang="en">
  8207. the "proxy_cache_revalidate", "fastcgi_cache_revalidate",
  8208. "scgi_cache_revalidate", and "uwsgi_cache_revalidate" directives.
  8209. </para>
  8210. </change>

  8211. <change type="feature">
  8212. <para lang="ru">
  8213. директива ssl_session_ticket_key.<br/>
  8214. Спасибо Piotr Sikora.
  8215. </para>
  8216. <para lang="en">
  8217. the "ssl_session_ticket_key" directive.<br/>
  8218. Thanks to Piotr Sikora.
  8219. </para>
  8220. </change>

  8221. <change type="bugfix">
  8222. <para lang="ru">
  8223. директива "add_header Cache-Control ''"
  8224. добавляла строку заголовка ответа "Cache-Control" с пустым значением.
  8225. </para>
  8226. <para lang="en">
  8227. the directive "add_header Cache-Control ''"
  8228. added a "Cache-Control" response header line with an empty value.
  8229. </para>
  8230. </change>

  8231. <change type="bugfix">
  8232. <para lang="ru">
  8233. директива "satisfy any" могла вернуть ошибку 403 вместо 401
  8234. при использовании директив auth_request и auth_basic.<br/>
  8235. Спасибо Jan Marc Hoffmann.
  8236. </para>
  8237. <para lang="en">
  8238. the "satisfy any" directive might return 403 error instead of 401
  8239. if auth_request and auth_basic directives were used.<br/>
  8240. Thanks to Jan Marc Hoffmann.
  8241. </para>
  8242. </change>

  8243. <change type="bugfix">
  8244. <para lang="ru">
  8245. параметры accept_filter и deferred директивы listen игнорировались
  8246. для listen-сокетов, создаваемых в процессе обновления исполняемого файла.<br/>
  8247. Спасибо Piotr Sikora.
  8248. </para>
  8249. <para lang="en">
  8250. the "accept_filter" and "deferred" parameters of the "listen" directive
  8251. were ignored for listen sockets created during binary upgrade.<br/>
  8252. Thanks to Piotr Sikora.
  8253. </para>
  8254. </change>

  8255. <change type="bugfix">
  8256. <para lang="ru">
  8257. часть данных, полученных от бэкенда при небуферизированном проксировании,
  8258. могла не отправляться клиенту сразу,
  8259. если использовались директивы gzip или gunzip.<br/>
  8260. Спасибо Yichun Zhang.
  8261. </para>
  8262. <para lang="en">
  8263. some data received from a backend with unbufferred proxy
  8264. might not be sent to a client immediately
  8265. if "gzip" or "gunzip" directives were used.<br/>
  8266. Thanks to Yichun Zhang.
  8267. </para>
  8268. </change>

  8269. <change type="bugfix">
  8270. <para lang="ru">
  8271. в обработке ошибок в модуле ngx_http_gunzip_filter_module.
  8272. </para>
  8273. <para lang="en">
  8274. in error handling in ngx_http_gunzip_filter_module.
  8275. </para>
  8276. </change>

  8277. <change type="bugfix">
  8278. <para lang="ru">
  8279. ответы могли зависать,
  8280. если использовался модуль ngx_http_spdy_module
  8281. и директива auth_request.
  8282. </para>
  8283. <para lang="en">
  8284. responses might hang
  8285. if the ngx_http_spdy_module was used
  8286. with the "auth_request" directive.
  8287. </para>
  8288. </change>

  8289. <change type="bugfix">
  8290. <para lang="ru">
  8291. утечки памяти в nginx/Windows.
  8292. </para>
  8293. <para lang="en">
  8294. memory leak in nginx/Windows.
  8295. </para>
  8296. </change>

  8297. </changes>


  8298. <changes ver="1.5.6" date="2013-10-01">

  8299. <change type="feature">
  8300. <para lang="ru">
  8301. директива fastcgi_buffering.
  8302. </para>
  8303. <para lang="en">
  8304. the "fastcgi_buffering" directive.
  8305. </para>
  8306. </change>

  8307. <change type="feature">
  8308. <para lang="ru">
  8309. директивы proxy_ssl_protocols и proxy_ssl_ciphers.<br/>
  8310. Спасибо Piotr Sikora.
  8311. </para>
  8312. <para lang="en">
  8313. the "proxy_ssl_protocols" and "proxy_ssl_ciphers" directives.<br/>
  8314. Thanks to Piotr Sikora.
  8315. </para>
  8316. </change>

  8317. <change type="feature">
  8318. <para lang="ru">
  8319. оптимизация SSL handshake при использовании длинных цепочек сертификатов.
  8320. </para>
  8321. <para lang="en">
  8322. optimization of SSL handshakes when using long certificate chains.
  8323. </para>
  8324. </change>

  8325. <change type="feature">
  8326. <para lang="ru">
  8327. почтовый прокси-сервер поддерживает SMTP pipelining.
  8328. </para>
  8329. <para lang="en">
  8330. the mail proxy supports SMTP pipelining.
  8331. </para>
  8332. </change>

  8333. <change type="bugfix">
  8334. <para lang="ru">
  8335. в модуле ngx_http_auth_basic_module
  8336. при использовании метода шифрования паролей "$apr1$".<br/>
  8337. Спасибо Markus Linnala.
  8338. </para>
  8339. <para lang="en">
  8340. in the ngx_http_auth_basic_module
  8341. when using "$apr1$" password encryption method.<br/>
  8342. Thanks to Markus Linnala.
  8343. </para>
  8344. </change>

  8345. <change type="bugfix">
  8346. <para lang="ru">
  8347. на MacOSX, Cygwin и nginx/Windows
  8348. для обработки запроса мог использоваться неверный location,
  8349. если для задания location'ов использовались символы разных регистров.
  8350. </para>
  8351. <para lang="en">
  8352. in MacOSX, Cygwin, and nginx/Windows
  8353. incorrect location might be used to process a request
  8354. if locations were given using characters in different cases.
  8355. </para>
  8356. </change>

  8357. <change type="bugfix">
  8358. <para lang="ru">
  8359. автоматическое перенаправление с добавлением завершающего слэша
  8360. для проксированных location'ов могло не работать.
  8361. </para>
  8362. <para lang="en">
  8363. automatic redirect with appended trailing slash
  8364. for proxied locations might not work.
  8365. </para>
  8366. </change>

  8367. <change type="bugfix">
  8368. <para lang="ru">
  8369. в почтовом прокси-сервере.
  8370. </para>
  8371. <para lang="en">
  8372. in the mail proxy server.
  8373. </para>
  8374. </change>

  8375. <change type="bugfix">
  8376. <para lang="ru">
  8377. в модуле ngx_http_spdy_module.
  8378. </para>
  8379. <para lang="en">
  8380. in the ngx_http_spdy_module.
  8381. </para>
  8382. </change>

  8383. </changes>


  8384. <changes ver="1.5.5" date="2013-09-17">

  8385. <change type="change">
  8386. <para lang="ru">
  8387. теперь nginx по умолчанию использует HTTP/1.0,
  8388. если точно определить протокол не удалось.
  8389. </para>
  8390. <para lang="en">
  8391. now nginx assumes HTTP/1.0 by default
  8392. if it is not able to detect protocol reliably.
  8393. </para>
  8394. </change>

  8395. <change type="feature">
  8396. <para lang="ru">
  8397. директива disable_symlinks теперь использует O_PATH на Linux.
  8398. </para>
  8399. <para lang="en">
  8400. the "disable_symlinks" directive now uses O_PATH on Linux.
  8401. </para>
  8402. </change>

  8403. <change type="feature">
  8404. <para lang="ru">
  8405. для определения того, что клиент закрыл соединение,
  8406. при использовании метода epoll
  8407. теперь используются события EPOLLRDHUP.
  8408. </para>
  8409. <para lang="en">
  8410. now nginx uses EPOLLRDHUP events
  8411. to detect premature connection close by clients
  8412. if the "epoll" method is used.
  8413. </para>
  8414. </change>

  8415. <change type="bugfix">
  8416. <para lang="ru">
  8417. в директиве valid_referers при использовании параметра server_names.
  8418. </para>
  8419. <para lang="en">
  8420. in the "valid_referers" directive if the "server_names" parameter was used.
  8421. </para>
  8422. </change>

  8423. <change type="bugfix">
  8424. <para lang="ru">
  8425. переменная $request_time не работала в nginx/Windows.
  8426. </para>
  8427. <para lang="en">
  8428. the $request_time variable did not work in nginx/Windows.
  8429. </para>
  8430. </change>

  8431. <change type="bugfix">
  8432. <para lang="ru">
  8433. в директиве image_filter.<br/>
  8434. Спасибо Lanshun Zhou.
  8435. </para>
  8436. <para lang="en">
  8437. in the "image_filter" directive.<br/>
  8438. Thanks to Lanshun Zhou.
  8439. </para>
  8440. </change>

  8441. <change type="bugfix">
  8442. <para lang="ru">
  8443. совместимость с OpenSSL 1.0.1f.<br/>
  8444. Спасибо Piotr Sikora.
  8445. </para>
  8446. <para lang="en">
  8447. OpenSSL 1.0.1f compatibility.<br/>
  8448. Thanks to Piotr Sikora.
  8449. </para>
  8450. </change>


  8451. </changes>


  8452. <changes ver="1.5.4" date="2013-08-27">

  8453. <change type="change">
  8454. <para lang="ru">
  8455. MIME-тип для расширения js изменён на "application/javascript";
  8456. значение по умолчанию директивы charset_types изменено соответственно.
  8457. </para>
  8458. <para lang="en">
  8459. the "js" extension MIME type has been changed to "application/javascript";
  8460. default value of the "charset_types" directive was changed accordingly.
  8461. </para>
  8462. </change>

  8463. <change type="change">
  8464. <para lang="ru">
  8465. теперь директива image_filter с параметром size
  8466. возвращает ответ с MIME-типом "application/json".
  8467. </para>
  8468. <para lang="en">
  8469. now the "image_filter" directive with the "size" parameter
  8470. returns responses with the "application/json" MIME type.
  8471. </para>
  8472. </change>

  8473. <change type="feature">
  8474. <para lang="ru">
  8475. модуль ngx_http_auth_request_module.
  8476. </para>
  8477. <para lang="en">
  8478. the ngx_http_auth_request_module.
  8479. </para>
  8480. </change>

  8481. <change type="bugfix">
  8482. <para lang="ru">
  8483. на старте или во время переконфигурации мог произойти segmentation fault,
  8484. если использовалась директива try_files с пустым параметром.
  8485. </para>
  8486. <para lang="en">
  8487. a segmentation fault might occur on start or during reconfiguration
  8488. if the "try_files" directive was used with an empty parameter.
  8489. </para>
  8490. </change>

  8491. <change type="bugfix">
  8492. <para lang="ru">
  8493. утечки памяти при использовании в директивах root и auth_basic_user_file
  8494. относительных путей, заданных с помощью переменных.
  8495. </para>
  8496. <para lang="en">
  8497. memory leak if relative paths were specified using variables
  8498. in the "root" or "auth_basic_user_file" directives.
  8499. </para>
  8500. </change>

  8501. <change type="bugfix">
  8502. <para lang="ru">
  8503. директива valid_referers неправильно выполняла регулярные выражения,
  8504. если заголовок Referer начинался с "https://".<br/>
  8505. Спасибо Liangbin Li.
  8506. </para>
  8507. <para lang="en">
  8508. the "valid_referers" directive incorrectly executed regular expressions
  8509. if a "Referer" header started with "https://".<br/>
  8510. Thanks to Liangbin Li.
  8511. </para>
  8512. </change>

  8513. <change type="bugfix">
  8514. <para lang="ru">
  8515. ответы могли зависать, если использовались подзапросы и при обработке подзапроса
  8516. происходила ошибка во время SSL handshake с бэкендом.<br/>
  8517. Спасибо Aviram Cohen.
  8518. </para>
  8519. <para lang="en">
  8520. responses might hang if subrequests were used
  8521. and an SSL handshake error happened during subrequest processing.<br/>
  8522. Thanks to Aviram Cohen.
  8523. </para>
  8524. </change>

  8525. <change type="bugfix">
  8526. <para lang="ru">
  8527. в модуле ngx_http_autoindex_module.
  8528. </para>
  8529. <para lang="en">
  8530. in the ngx_http_autoindex_module.
  8531. </para>
  8532. </change>

  8533. <change type="bugfix">
  8534. <para lang="ru">
  8535. в модуле ngx_http_spdy_module.
  8536. </para>
  8537. <para lang="en">
  8538. in the ngx_http_spdy_module.
  8539. </para>
  8540. </change>

  8541. </changes>


  8542. <changes ver="1.5.3" date="2013-07-30">

  8543. <change>
  8544. <para lang="ru">
  8545. Изменение во внутреннем API:
  8546. теперь при небуферизированной работе с бэкендами
  8547. u->length по умолчанию устанавливается в -1.
  8548. </para>
  8549. <para lang="en">
  8550. Change in internal API:
  8551. now u->length defaults to -1
  8552. if working with backends in unbuffered mode.
  8553. </para>
  8554. </change>

  8555. <change type="change">
  8556. <para lang="ru">
  8557. теперь при получении неполного ответа от бэкенда
  8558. nginx отправляет полученную часть ответа,
  8559. после чего закрывает соединение с клиентом.
  8560. </para>
  8561. <para lang="en">
  8562. now after receiving an incomplete response from a backend server
  8563. nginx tries to send an available part of the response to a client,
  8564. and then closes client connection.
  8565. </para>
  8566. </change>

  8567. <change type="bugfix">
  8568. <para lang="ru">
  8569. в рабочем процессе мог произойти segmentation fault,
  8570. если использовался модуль ngx_http_spdy_module
  8571. и директива client_body_in_file_only.
  8572. </para>
  8573. <para lang="en">
  8574. a segmentation fault might occur in a worker process
  8575. if the ngx_http_spdy_module was used
  8576. with the "client_body_in_file_only" directive.
  8577. </para>
  8578. </change>

  8579. <change type="bugfix">
  8580. <para lang="ru">
  8581. параметр so_keepalive директивы listen
  8582. мог работать некорректно на DragonFlyBSD.<br/>
  8583. Спасибо Sepherosa Ziehau.
  8584. </para>
  8585. <para lang="en">
  8586. the "so_keepalive" parameter of the "listen" directive
  8587. might be handled incorrectly on DragonFlyBSD.<br/>
  8588. Thanks to Sepherosa Ziehau.
  8589. </para>
  8590. </change>

  8591. <change type="bugfix">
  8592. <para lang="ru">
  8593. в модуле ngx_http_xslt_filter_module.
  8594. </para>
  8595. <para lang="en">
  8596. in the ngx_http_xslt_filter_module.
  8597. </para>
  8598. </change>

  8599. <change type="bugfix">
  8600. <para lang="ru">
  8601. в модуле ngx_http_sub_filter_module.
  8602. </para>
  8603. <para lang="en">
  8604. in the ngx_http_sub_filter_module.
  8605. </para>
  8606. </change>

  8607. </changes>


  8608. <changes ver="1.5.2" date="2013-07-02">

  8609. <change type="feature">
  8610. <para lang="ru">
  8611. теперь можно использовать несколько директив error_log.
  8612. </para>
  8613. <para lang="en">
  8614. now several "error_log" directives can be used.
  8615. </para>
  8616. </change>

  8617. <change type="bugfix">
  8618. <para lang="ru">
  8619. метод $r->header_in() встроенного перла не возвращал значения строк
  8620. "Cookie" и "X-Forwarded-For" из заголовка запроса;
  8621. ошибка появилась в 1.3.14.
  8622. </para>
  8623. <para lang="en">
  8624. the $r->header_in() embedded perl method did not return value of the
  8625. "Cookie" and "X-Forwarded-For" request header lines;
  8626. the bug had appeared in 1.3.14.
  8627. </para>
  8628. </change>

  8629. <change type="bugfix">
  8630. <para lang="ru">
  8631. в модуле ngx_http_spdy_module.<br/>
  8632. Спасибо Jim Radford.
  8633. </para>
  8634. <para lang="en">
  8635. in the ngx_http_spdy_module.<br/>
  8636. Thanks to Jim Radford.
  8637. </para>
  8638. </change>

  8639. <change type="bugfix">
  8640. <para lang="ru">
  8641. nginx не собирался на Linux при использовании x32 ABI.<br/>
  8642. Спасибо Сергею Иванцову.
  8643. </para>
  8644. <para lang="en">
  8645. nginx could not be built on Linux with x32 ABI.<br/>
  8646. Thanks to Serguei Ivantsov.
  8647. </para>
  8648. </change>

  8649. </changes>


  8650. <changes ver="1.5.1" date="2013-06-04">

  8651. <change type="feature">
  8652. <para lang="ru">
  8653. директивы ssi_last_modified, sub_filter_last_modified и
  8654. xslt_last_modified.<br/>
  8655. Спасибо Алексею Колпакову.
  8656. </para>
  8657. <para lang="en">
  8658. the "ssi_last_modified", "sub_filter_last_modified", and
  8659. "xslt_last_modified" directives.<br/>
  8660. Thanks to Alexey Kolpakov.
  8661. </para>
  8662. </change>

  8663. <change type="feature">
  8664. <para lang="ru">
  8665. параметр http_403 в директивах proxy_next_upstream, fastcgi_next_upstream,
  8666. scgi_next_upstream и uwsgi_next_upstream.
  8667. </para>
  8668. <para lang="en">
  8669. the "http_403" parameter of the "proxy_next_upstream", "fastcgi_next_upstream",
  8670. "scgi_next_upstream", and "uwsgi_next_upstream" directives.
  8671. </para>
  8672. </change>

  8673. <change type="feature">
  8674. <para lang="ru">
  8675. директивы allow и deny теперь поддерживают unix domain сокеты.
  8676. </para>
  8677. <para lang="en">
  8678. the "allow" and "deny" directives now support unix domain sockets.
  8679. </para>
  8680. </change>

  8681. <change type="bugfix">
  8682. <para lang="ru">
  8683. nginx не собирался с модулем ngx_mail_ssl_module,
  8684. но без модуля ngx_http_ssl_module;
  8685. ошибка появилась в 1.3.14.
  8686. </para>
  8687. <para lang="en">
  8688. nginx could not be built with the ngx_mail_ssl_module,
  8689. but without ngx_http_ssl_module;
  8690. the bug had appeared in 1.3.14.
  8691. </para>
  8692. </change>

  8693. <change type="bugfix">
  8694. <para lang="ru">
  8695. в директиве proxy_set_body.<br/>
  8696. Спасибо Lanshun Zhou.
  8697. </para>
  8698. <para lang="en">
  8699. in the "proxy_set_body" directive.<br/>
  8700. Thanks to Lanshun Zhou.
  8701. </para>
  8702. </change>

  8703. <change type="bugfix">
  8704. <para lang="ru">
  8705. в директиве lingering_time.<br/>
  8706. Спасибо Lanshun Zhou.
  8707. </para>
  8708. <para lang="en">
  8709. in the "lingering_time" directive.<br/>
  8710. Thanks to Lanshun Zhou.
  8711. </para>
  8712. </change>

  8713. <change type="bugfix">
  8714. <para lang="ru">
  8715. параметр fail_timeout директивы server
  8716. в блоке upstream мог не работать,
  8717. если использовался параметр max_fails;
  8718. ошибка появилась в 1.3.0.
  8719. </para>
  8720. <para lang="en">
  8721. the "fail_timeout" parameter of the "server" directive
  8722. in the "upstream" context might not work
  8723. if "max_fails" parameter was used;
  8724. the bug had appeared in 1.3.0.
  8725. </para>
  8726. </change>

  8727. <change type="bugfix">
  8728. <para lang="ru">
  8729. в рабочем процессе мог произойти segmentation fault,
  8730. если использовалась директива ssl_stapling.<br/>
  8731. Спасибо Piotr Sikora.
  8732. </para>
  8733. <para lang="en">
  8734. a segmentation fault might occur in a worker process
  8735. if the "ssl_stapling" directive was used.<br/>
  8736. Thanks to Piotr Sikora.
  8737. </para>
  8738. </change>

  8739. <change type="bugfix">
  8740. <para lang="ru">
  8741. в почтовом прокси-сервере.<br/>
  8742. Спасибо Filipe Da Silva.
  8743. </para>
  8744. <para lang="en">
  8745. in the mail proxy server.<br/>
  8746. Thanks to Filipe Da Silva.
  8747. </para>
  8748. </change>

  8749. <change type="bugfix">
  8750. <para lang="ru">
  8751. nginx/Windows мог перестать принимать соединения,
  8752. если использовалось несколько рабочих процессов.
  8753. </para>
  8754. <para lang="en">
  8755. nginx/Windows might stop accepting connections
  8756. if several worker processes were used.
  8757. </para>
  8758. </change>

  8759. </changes>


  8760. <changes ver="1.5.0" date="2013-05-07">

  8761. <change type="security">
  8762. <para lang="ru">
  8763. при обработке специально созданного запроса
  8764. мог перезаписываться стек рабочего процесса,
  8765. что могло приводить к выполнению произвольного кода (CVE-2013-2028);
  8766. ошибка появилась в 1.3.9.<br/>
  8767. Спасибо Greg MacManus, iSIGHT Partners Labs.
  8768. </para>
  8769. <para lang="en">
  8770. a stack-based buffer overflow might occur in a worker process
  8771. while handling a specially crafted request,
  8772. potentially resulting in arbitrary code execution (CVE-2013-2028);
  8773. the bug had appeared in 1.3.9.<br/>
  8774. Thanks to Greg MacManus, iSIGHT Partners Labs.
  8775. </para>
  8776. </change>

  8777. </changes>


  8778. <changes ver="1.4.0" date="2013-04-24">

  8779. <change type="bugfix">
  8780. <para lang="ru">
  8781. nginx не собирался с модулем ngx_http_perl_module,
  8782. если использовался параметр --with-openssl;
  8783. ошибка появилась в 1.3.16.
  8784. </para>
  8785. <para lang="en">
  8786. nginx could not be built with the ngx_http_perl_module
  8787. if the --with-openssl option was used;
  8788. the bug had appeared in 1.3.16.
  8789. </para>
  8790. </change>

  8791. <change type="bugfix">
  8792. <para lang="ru">
  8793. в работе с телом запроса из модуля ngx_http_perl_module;
  8794. ошибка появилась в 1.3.9.
  8795. </para>
  8796. <para lang="en">
  8797. in a request body handling in the ngx_http_perl_module;
  8798. the bug had appeared in 1.3.9.
  8799. </para>
  8800. </change>

  8801. </changes>


  8802. <changes ver="1.3.16" date="2013-04-16">

  8803. <change type="bugfix">
  8804. <para lang="ru">
  8805. в рабочем процессе мог произойти segmentation fault,
  8806. если использовались подзапросы;
  8807. ошибка появилась в 1.3.9.
  8808. </para>
  8809. <para lang="en">
  8810. a segmentation fault might occur in a worker process
  8811. if subrequests were used;
  8812. the bug had appeared in 1.3.9.
  8813. </para>
  8814. </change>

  8815. <change type="bugfix">
  8816. <para lang="ru">
  8817. директива tcp_nodelay вызывала ошибку
  8818. при проксировании WebSocket-соединений в unix domain сокет.
  8819. </para>
  8820. <para lang="en">
  8821. the "tcp_nodelay" directive caused an error
  8822. if a WebSocket connection was proxied into a unix domain socket.
  8823. </para>
  8824. </change>

  8825. <change type="bugfix">
  8826. <para lang="ru">
  8827. переменная $upstream_response_length возвращала значение "0",
  8828. если не использовалась буферизация.<br/>
  8829. Спасибо Piotr Sikora.
  8830. </para>
  8831. <para lang="en">
  8832. the $upstream_response_length variable has an incorrect value "0"
  8833. if buffering was not used.<br/>
  8834. Thanks to Piotr Sikora.
  8835. </para>
  8836. </change>

  8837. <change type="bugfix">
  8838. <para lang="ru">
  8839. в методах обработки соединений eventport и /dev/poll.
  8840. </para>
  8841. <para lang="en">
  8842. in the eventport and /dev/poll methods.
  8843. </para>
  8844. </change>

  8845. </changes>


  8846. <changes ver="1.3.15" date="2013-03-26">

  8847. <change type="change">
  8848. <para lang="ru">
  8849. открытие и закрытие соединения без отправки в нём каких-либо данных
  8850. больше не записывается в access_log с кодом ошибки 400.
  8851. </para>
  8852. <para lang="en">
  8853. opening and closing a connection without sending any data in it
  8854. is no longer logged to access_log with error code 400.
  8855. </para>
  8856. </change>

  8857. <change type="feature">
  8858. <para lang="ru">
  8859. модуль ngx_http_spdy_module.<br/>
  8860. Спасибо Automattic за спонсирование разработки.
  8861. </para>
  8862. <para lang="en">
  8863. the ngx_http_spdy_module.<br/>
  8864. Thanks to Automattic for sponsoring this work.
  8865. </para>
  8866. </change>

  8867. <change type="feature">
  8868. <para lang="ru">
  8869. директивы limit_req_status и limit_conn_status.<br/>
  8870. Спасибо Nick Marden.
  8871. </para>
  8872. <para lang="en">
  8873. the "limit_req_status" and "limit_conn_status" directives.<br/>
  8874. Thanks to Nick Marden.
  8875. </para>
  8876. </change>

  8877. <change type="feature">
  8878. <para lang="ru">
  8879. директива image_filter_interlace.<br/>
  8880. Спасибо Ивану Боброву.
  8881. </para>
  8882. <para lang="en">
  8883. the "image_filter_interlace" directive.<br/>
  8884. Thanks to Ian Babrou.
  8885. </para>
  8886. </change>

  8887. <change type="feature">
  8888. <para lang="ru">
  8889. переменная $connections_waiting в модуле ngx_http_stub_status_module.
  8890. </para>
  8891. <para lang="en">
  8892. $connections_waiting variable in the ngx_http_stub_status_module.
  8893. </para>
  8894. </change>

  8895. <change type="feature">
  8896. <para lang="ru">
  8897. теперь почтовый прокси-сервер поддерживает IPv6-бэкенды.
  8898. </para>
  8899. <para lang="en">
  8900. the mail proxy module now supports IPv6 backends.
  8901. </para>
  8902. </change>

  8903. <change type="bugfix">
  8904. <para lang="ru">
  8905. при повторной отправке запроса на бэкенд
  8906. тело запроса могло передаваться неправильно;
  8907. ошибка появилась в 1.3.9.<br/>
  8908. Спасибо Piotr Sikora.
  8909. </para>
  8910. <para lang="en">
  8911. request body might be transmitted incorrectly
  8912. when retrying a request to the next upstream server;
  8913. the bug had appeared in 1.3.9.<br/>
  8914. Thanks to Piotr Sikora.
  8915. </para>
  8916. </change>

  8917. <change type="bugfix">
  8918. <para lang="ru">
  8919. в директиве client_body_in_file_only;
  8920. ошибка появилась в 1.3.9.
  8921. </para>
  8922. <para lang="en">
  8923. in the "client_body_in_file_only" directive;
  8924. the bug had appeared in 1.3.9.
  8925. </para>
  8926. </change>

  8927. <change type="bugfix">
  8928. <para lang="ru">
  8929. ответы могли зависать,
  8930. если использовались подзапросы
  8931. и при обработке подзапроса происходила DNS-ошибка.<br/>
  8932. Спасибо Lanshun Zhou.
  8933. </para>
  8934. <para lang="en">
  8935. responses might hang
  8936. if subrequests were used
  8937. and a DNS error happened during subrequest processing.<br/>
  8938. Thanks to Lanshun Zhou.
  8939. </para>
  8940. </change>

  8941. <change type="bugfix">
  8942. <para lang="ru">
  8943. в процедуре учёта использования бэкендов.
  8944. </para>
  8945. <para lang="en">
  8946. in backend usage accounting.
  8947. </para>
  8948. </change>

  8949. </changes>


  8950. <changes ver="1.3.14" date="2013-03-05">

  8951. <change type="feature">
  8952. <para lang="ru">
  8953. переменные $connections_active, $connections_reading и $connections_writing
  8954. в модуле ngx_http_stub_status_module.
  8955. </para>
  8956. <para lang="en">
  8957. $connections_active, $connections_reading, and $connections_writing variables
  8958. in the ngx_http_stub_status_module.
  8959. </para>
  8960. </change>

  8961. <change type="feature">
  8962. <para lang="ru">
  8963. поддержка WebSocket-соединений
  8964. в модулях ngx_http_uwsgi_module и ngx_http_scgi_module.
  8965. </para>
  8966. <para lang="en">
  8967. support of WebSocket connections
  8968. in the ngx_http_uwsgi_module and ngx_http_scgi_module.
  8969. </para>
  8970. </change>

  8971. <change type="bugfix">
  8972. <para lang="ru">
  8973. в обработке виртуальных серверов при использовании SNI.
  8974. </para>
  8975. <para lang="en">
  8976. in virtual servers handling with SNI.
  8977. </para>
  8978. </change>

  8979. <change type="bugfix">
  8980. <para lang="ru">
  8981. при использовании директивы "ssl_session_cache shared"
  8982. новые сессии могли не сохраняться,
  8983. если заканчивалось место в разделяемой памяти.<br/>
  8984. Спасибо Piotr Sikora.
  8985. </para>
  8986. <para lang="en">
  8987. new sessions were not always stored
  8988. if the "ssl_session_cache shared" directive was used
  8989. and there was no free space in shared memory.<br/>
  8990. Thanks to Piotr Sikora.
  8991. </para>
  8992. </change>

  8993. <change type="bugfix">
  8994. <para lang="ru">
  8995. несколько заголовков X-Forwarded-For обрабатывались неправильно.<br/>
  8996. Спасибо Neal Poole за спонсирование разработки.
  8997. </para>
  8998. <para lang="en">
  8999. multiple X-Forwarded-For headers were handled incorrectly.<br/>
  9000. Thanks to Neal Poole for sponsoring this work.
  9001. </para>
  9002. </change>

  9003. <change type="bugfix">
  9004. <para lang="ru">
  9005. в модуле ngx_http_mp4_module.<br/>
  9006. Спасибо Gernot Vormayr.
  9007. </para>
  9008. <para lang="en">
  9009. in the ngx_http_mp4_module.<br/>
  9010. Thanks to Gernot Vormayr.
  9011. </para>
  9012. </change>

  9013. </changes>


  9014. <changes ver="1.3.13" date="2013-02-19">

  9015. <change type="change">
  9016. <para lang="ru">
  9017. теперь для сборки по умолчанию используется компилятор с именем "cc".
  9018. </para>
  9019. <para lang="en">
  9020. a compiler with name "cc" is now used by default.
  9021. </para>
  9022. </change>

  9023. <change type="feature">
  9024. <para lang="ru">
  9025. поддержка проксирования WebSocket-соединений.<br/>
  9026. Спасибо Apcera и CloudBees за спонсирование разработки.
  9027. </para>
  9028. <para lang="en">
  9029. support for proxying of WebSocket connections.<br/>
  9030. Thanks to Apcera and CloudBees for sponsoring this work.
  9031. </para>
  9032. </change>

  9033. <change type="feature">
  9034. <para lang="ru">
  9035. директива auth_basic_user_file поддерживает шифрование паролей
  9036. методом "{SHA}".<br/>
  9037. Спасибо Louis Opter.
  9038. </para>
  9039. <para lang="en">
  9040. the "auth_basic_user_file" directive supports "{SHA}"
  9041. password encryption method.<br/>
  9042. Thanks to Louis Opter.
  9043. </para>
  9044. </change>

  9045. </changes>


  9046. <changes ver="1.3.12" date="2013-02-05">

  9047. <change type="feature">
  9048. <para lang="ru">
  9049. директивы proxy_bind, fastcgi_bind, memcached_bind, scgi_bind и uwsgi_bind
  9050. поддерживают переменные.
  9051. </para>
  9052. <para lang="en">
  9053. variables support in the "proxy_bind", "fastcgi_bind", "memcached_bind",
  9054. "scgi_bind", and "uwsgi_bind" directives.
  9055. </para>
  9056. </change>

  9057. <change type="feature">
  9058. <para lang="ru">
  9059. переменные $pipe, $request_length, $time_iso8601 и $time_local
  9060. теперь можно использовать не только в директиве log_format.<br/>
  9061. Спасибо Kiril Kalchev.
  9062. </para>
  9063. <para lang="en">
  9064. the $pipe, $request_length, $time_iso8601, and $time_local variables
  9065. can now be used not only in the "log_format" directive.
  9066. Thanks to Kiril Kalchev.
  9067. </para>
  9068. </change>

  9069. <change type="feature">
  9070. <para lang="ru">
  9071. поддержка IPv6 в модуле ngx_http_geoip_module.<br/>
  9072. Спасибо Gregor Kališnik.
  9073. </para>
  9074. <para lang="en">
  9075. IPv6 support in the ngx_http_geoip_module.<br/>
  9076. Thanks to Gregor Kališnik.
  9077. </para>
  9078. </change>

  9079. <change type="bugfix">
  9080. <para lang="ru">
  9081. директива proxy_method работала неверно, если была указана на уровне http.
  9082. </para>
  9083. <para lang="en">
  9084. in the "proxy_method" directive.
  9085. </para>
  9086. </change>

  9087. <change type="bugfix">
  9088. <para lang="ru">
  9089. в рабочем процессе мог произойти segmentation fault,
  9090. если использовался resolver и метод poll.
  9091. </para>
  9092. <para lang="en">
  9093. a segmentation fault might occur in a worker process
  9094. if resolver was used with the poll method.
  9095. </para>
  9096. </change>

  9097. <change type="bugfix">
  9098. <para lang="ru">
  9099. nginx мог нагружать процессор во время SSL handshake с бэкендом
  9100. при использовании методов обработки соединений select, poll и /dev/poll.
  9101. </para>
  9102. <para lang="en">
  9103. nginx might hog CPU during SSL handshake with a backend
  9104. if the select, poll, or /dev/poll methods were used.
  9105. </para>
  9106. </change>

  9107. <change type="bugfix">
  9108. <para lang="ru">
  9109. ошибка "[crit] SSL_write() failed (SSL:)".
  9110. </para>
  9111. <para lang="en">
  9112. the "[crit] SSL_write() failed (SSL:)" error.
  9113. </para>
  9114. </change>

  9115. <change type="bugfix">
  9116. <para lang="ru">
  9117. в директиве client_body_in_file_only;
  9118. ошибка появилась в 1.3.9.
  9119. </para>
  9120. <para lang="en">
  9121. in the "client_body_in_file_only" directive;
  9122. the bug had appeared in 1.3.9.
  9123. </para>
  9124. </change>

  9125. <change type="bugfix">
  9126. <para lang="ru">
  9127. в директиве fastcgi_keep_conn.
  9128. </para>
  9129. <para lang="en">
  9130. in the "fastcgi_keep_conn" directive.
  9131. </para>
  9132. </change>

  9133. </changes>


  9134. <changes ver="1.3.11" date="2013-01-10">

  9135. <change type="bugfix">
  9136. <para lang="ru">
  9137. при записи в лог мог происходить segmentation fault;
  9138. ошибка появилась в 1.3.10.
  9139. </para>
  9140. <para lang="en">
  9141. a segmentation fault might occur if logging was used;
  9142. the bug had appeared in 1.3.10.
  9143. </para>
  9144. </change>

  9145. <change type="bugfix">
  9146. <para lang="ru">
  9147. директива proxy_pass не работала с IP-адресами
  9148. без явного указания порта;
  9149. ошибка появилась в 1.3.10.
  9150. </para>
  9151. <para lang="en">
  9152. the "proxy_pass" directive did not work with IP addresses
  9153. without port specified;
  9154. the bug had appeared in 1.3.10.
  9155. </para>
  9156. </change>

  9157. <change type="bugfix">
  9158. <para lang="ru">
  9159. на старте или во время переконфигурации происходил segmentation fault,
  9160. если директива keepalive была указана несколько раз
  9161. в одном блоке upstream.
  9162. </para>
  9163. <para lang="en">
  9164. a segmentation fault occurred on start or during reconfiguration
  9165. if the "keepalive" directive was specified more than once
  9166. in a single upstream block.
  9167. </para>
  9168. </change>

  9169. <change type="bugfix">
  9170. <para lang="ru">
  9171. параметр default директивы geo не определял значение по умолчанию
  9172. для IPv6-адресов.
  9173. </para>
  9174. <para lang="en">
  9175. parameter "default" of the "geo" directive did not set default value
  9176. for IPv6 addresses.
  9177. </para>
  9178. </change>

  9179. </changes>


  9180. <changes ver="1.3.10" date="2012-12-25">

  9181. <change type="change">
  9182. <para lang="ru">
  9183. для указанных в конфигурационном файле доменных имён теперь
  9184. используются не только IPv4, но и IPv6 адреса.
  9185. </para>
  9186. <para lang="en">
  9187. domain names specified in configuration file
  9188. are now resolved to IPv6 addresses as well as IPv4 ones.
  9189. </para>
  9190. </change>

  9191. <change type="change">
  9192. <para lang="ru">
  9193. теперь при использовании директивы include с маской на Unix-системах
  9194. включаемые файлы сортируются в алфавитном порядке.
  9195. </para>
  9196. <para lang="en">
  9197. now if the "include" directive with mask is used on Unix systems,
  9198. included files are sorted in alphabetical order.
  9199. </para>
  9200. </change>

  9201. <change type="change">
  9202. <para lang="ru">
  9203. директива add_header добавляет строки в ответы с кодом 201.
  9204. </para>
  9205. <para lang="en">
  9206. the "add_header" directive adds headers to 201 responses.
  9207. </para>
  9208. </change>

  9209. <change type="feature">
  9210. <para lang="ru">
  9211. директива geo теперь поддерживает IPv6 адреса в формате CIDR.
  9212. </para>
  9213. <para lang="en">
  9214. the "geo" directive now supports IPv6 addresses in CIDR notation.
  9215. </para>
  9216. </change>

  9217. <change type="feature">
  9218. <para lang="ru">
  9219. параметры flush и gzip в директиве access_log.
  9220. </para>
  9221. <para lang="en">
  9222. the "flush" and "gzip" parameters of the "access_log" directive.
  9223. </para>
  9224. </change>

  9225. <change type="feature">
  9226. <para lang="ru">
  9227. директива auth_basic поддерживает переменные.
  9228. </para>
  9229. <para lang="en">
  9230. variables support in the "auth_basic" directive.
  9231. </para>
  9232. </change>

  9233. <change type="bugfix">
  9234. <para lang="ru">
  9235. nginx в некоторых случаях не собирался с модулем ngx_http_perl_module.
  9236. </para>
  9237. <para lang="en">
  9238. nginx could not be built with the ngx_http_perl_module in some cases.
  9239. </para>
  9240. </change>

  9241. <change type="bugfix">
  9242. <para lang="ru">
  9243. в рабочем процессе мог произойти segmentation fault,
  9244. если использовался модуль ngx_http_xslt_module.
  9245. </para>
  9246. <para lang="en">
  9247. a segmentation fault might occur in a worker process
  9248. if the ngx_http_xslt_module was used.
  9249. </para>
  9250. </change>

  9251. <change type="bugfix">
  9252. <para lang="ru">
  9253. nginx мог не собираться на MacOSX.<br/>
  9254. Спасибо Piotr Sikora.
  9255. </para>
  9256. <para lang="en">
  9257. nginx could not be built on MacOSX in some cases.<br/>
  9258. Thanks to Piotr Sikora.
  9259. </para>
  9260. </change>

  9261. <change type="bugfix">
  9262. <para lang="ru">
  9263. при использовании директивы limit_rate с большими значениями скорости
  9264. на 32-битных системах ответ мог возвращаться не целиком.<br/>
  9265. Спасибо Алексею Антропову.
  9266. </para>
  9267. <para lang="en">
  9268. the "limit_rate" directive with high rates
  9269. might result in truncated responses on 32-bit platforms.<br/>
  9270. Thanks to Alexey Antropov.
  9271. </para>
  9272. </change>

  9273. <change type="bugfix">
  9274. <para lang="ru">
  9275. в рабочем процессе мог произойти segmentation fault,
  9276. если использовалась директива if.<br/>
  9277. Спасибо Piotr Sikora.
  9278. </para>
  9279. <para lang="en">
  9280. a segmentation fault might occur in a worker process
  9281. if the "if" directive was used.<br/>
  9282. Thanks to Piotr Sikora.
  9283. </para>
  9284. </change>

  9285. <change type="bugfix">
  9286. <para lang="ru">
  9287. ответ "100 Continue" выдавался
  9288. вместе с ответом "413 Request Entity Too Large".
  9289. </para>
  9290. <para lang="en">
  9291. a "100 Continue" response was issued
  9292. with "413 Request Entity Too Large" responses.
  9293. </para>
  9294. </change>

  9295. <change type="bugfix">
  9296. <para lang="ru">
  9297. директивы image_filter, image_filter_jpeg_quality и image_filter_sharpen
  9298. могли наследоваться некорректно.<br/>
  9299. Спасибо Ивану Боброву.
  9300. </para>
  9301. <para lang="en">
  9302. the "image_filter", "image_filter_jpeg_quality"
  9303. and "image_filter_sharpen" directives
  9304. might be inherited incorrectly.<br/>
  9305. Thanks to Ian Babrou.
  9306. </para>
  9307. </change>

  9308. <change type="bugfix">
  9309. <para lang="ru">
  9310. при использовании директивы auth_basic под Linux
  9311. могли возникать ошибки "crypt_r() failed".
  9312. </para>
  9313. <para lang="en">
  9314. "crypt_r() failed" errors might appear
  9315. if the "auth_basic" directive was used on Linux.
  9316. </para>
  9317. </change>

  9318. <change type="bugfix">
  9319. <para lang="ru">
  9320. в обработке backup-серверов.<br/>
  9321. Спасибо Thomas Chen.
  9322. </para>
  9323. <para lang="en">
  9324. in backup servers handling.<br/>
  9325. Thanks to Thomas Chen.
  9326. </para>
  9327. </change>

  9328. <change type="bugfix">
  9329. <para lang="ru">
  9330. при проксировании HEAD-запросов мог возвращаться некорректный ответ,
  9331. если использовалась директива gzip.
  9332. </para>
  9333. <para lang="en">
  9334. proxied HEAD requests might return incorrect response
  9335. if the "gzip" directive was used.
  9336. </para>
  9337. </change>

  9338. </changes>


  9339. <changes ver="1.3.9" date="2012-11-27">

  9340. <change type="feature">
  9341. <para lang="ru">
  9342. поддержка chunked transfer encoding при получении тела запроса.
  9343. </para>
  9344. <para lang="en">
  9345. support for chunked transfer encoding while reading client request body.
  9346. </para>
  9347. </change>

  9348. <change type="feature">
  9349. <para lang="ru">
  9350. переменные $request_time и $msec
  9351. теперь можно использовать не только в директиве log_format.
  9352. </para>
  9353. <para lang="en">
  9354. the $request_time and $msec variables
  9355. can now be used not only in the "log_format" directive.
  9356. </para>
  9357. </change>

  9358. <change type="bugfix">
  9359. <para lang="ru">
  9360. cache manager и cache loader могли не запускаться,
  9361. если использовалось более 512 listen-сокетов.
  9362. </para>
  9363. <para lang="en">
  9364. cache manager and cache loader processes might not be able to start
  9365. if more than 512 listen sockets were used.
  9366. </para>
  9367. </change>

  9368. <change type="bugfix">
  9369. <para lang="ru">
  9370. в модуле ngx_http_dav_module.
  9371. </para>
  9372. <para lang="en">
  9373. in the ngx_http_dav_module.
  9374. </para>
  9375. </change>

  9376. </changes>


  9377. <changes ver="1.3.8" date="2012-10-30">

  9378. <change type="feature">
  9379. <para lang="ru">
  9380. параметр optional_no_ca директивы ssl_verify_client.<br/>
  9381. Спасибо Михаилу Казанцеву и Eric O'Connor.
  9382. </para>
  9383. <para lang="en">
  9384. the "optional_no_ca" parameter of the "ssl_verify_client" directive.<br/>
  9385. Thanks to Mike Kazantsev and Eric O'Connor.
  9386. </para>
  9387. </change>

  9388. <change type="feature">
  9389. <para lang="ru">
  9390. переменные $bytes_sent, $connection и $connection_requests
  9391. теперь можно использовать не только в директиве log_format.<br/>
  9392. Спасибо Benjamin Grössing.
  9393. </para>
  9394. <para lang="en">
  9395. the $bytes_sent, $connection, and $connection_requests variables
  9396. can now be used not only in the "log_format" directive.<br/>
  9397. Thanks to Benjamin Grössing.
  9398. </para>
  9399. </change>

  9400. <change type="feature">
  9401. <para lang="ru">
  9402. параметр auto директивы worker_processes.
  9403. </para>
  9404. <para lang="en">
  9405. the "auto" parameter of the "worker_processes" directive.
  9406. </para>
  9407. </change>

  9408. <change type="bugfix">
  9409. <para lang="ru">
  9410. сообщения "cache file ... has md5 collision".
  9411. </para>
  9412. <para lang="en">
  9413. "cache file ... has md5 collision" alert.
  9414. </para>
  9415. </change>

  9416. <change type="bugfix">
  9417. <para lang="ru">
  9418. в модуле ngx_http_gunzip_filter_module.
  9419. </para>
  9420. <para lang="en">
  9421. in the ngx_http_gunzip_filter_module.
  9422. </para>
  9423. </change>

  9424. <change type="bugfix">
  9425. <para lang="ru">
  9426. в директиве ssl_stapling.
  9427. </para>
  9428. <para lang="en">
  9429. in the "ssl_stapling" directive.
  9430. </para>
  9431. </change>

  9432. </changes>


  9433. <changes ver="1.3.7" date="2012-10-02">

  9434. <change type="feature">
  9435. <para lang="ru">
  9436. поддержка OCSP stapling.<br/>
  9437. Спасибо Comodo, DigiCert и GlobalSign за спонсирование разработки.
  9438. </para>
  9439. <para lang="en">
  9440. OCSP stapling support.<br/>
  9441. Thanks to Comodo, DigiCert and GlobalSign for sponsoring this work.
  9442. </para>
  9443. </change>

  9444. <change type="feature">
  9445. <para lang="ru">
  9446. директива ssl_trusted_certificate.
  9447. </para>
  9448. <para lang="en">
  9449. the "ssl_trusted_certificate" directive.
  9450. </para>
  9451. </change>

  9452. <change type="feature">
  9453. <para lang="ru">
  9454. теперь resolver случайным образом меняет порядок
  9455. возвращаемых закэшированных адресов.<br/>
  9456. Спасибо Антону Жулину.
  9457. </para>
  9458. <para lang="en">
  9459. resolver now randomly rotates addresses
  9460. returned from cache.<br/>
  9461. Thanks to Anton Jouline.
  9462. </para>
  9463. </change>

  9464. <change type="bugfix">
  9465. <para lang="ru">
  9466. совместимость с OpenSSL 0.9.7.
  9467. </para>
  9468. <para lang="en">
  9469. OpenSSL 0.9.7 compatibility.
  9470. </para>
  9471. </change>

  9472. </changes>


  9473. <changes ver="1.3.6" date="2012-09-12">

  9474. <change type="feature">
  9475. <para lang="ru">
  9476. модуль ngx_http_gunzip_filter_module.
  9477. </para>
  9478. <para lang="en">
  9479. the ngx_http_gunzip_filter_module.
  9480. </para>
  9481. </change>

  9482. <change type="feature">
  9483. <para lang="ru">
  9484. директива memcached_gzip_flag.
  9485. </para>
  9486. <para lang="en">
  9487. the "memcached_gzip_flag" directive.
  9488. </para>
  9489. </change>

  9490. <change type="feature">
  9491. <para lang="ru">
  9492. параметр always директивы gzip_static.
  9493. </para>
  9494. <para lang="en">
  9495. the "always" parameter of the "gzip_static" directive.
  9496. </para>
  9497. </change>

  9498. <change type="bugfix">
  9499. <para lang="ru">
  9500. в директиве "limit_req";
  9501. ошибка появилась в 1.1.14.<br/>
  9502. Спасибо Charles Chen.
  9503. </para>
  9504. <para lang="en">
  9505. in the "limit_req" directive;
  9506. the bug had appeared in 1.1.14.<br/>
  9507. Thanks to Charles Chen.
  9508. </para>
  9509. </change>

  9510. <change type="bugfix">
  9511. <para lang="ru">
  9512. nginx не собирался gcc 4.7 с оптимизацией -O2
  9513. если использовался параметр --with-ipv6.
  9514. </para>
  9515. <para lang="en">
  9516. nginx could not be built by gcc 4.7 with -O2 optimization
  9517. if the --with-ipv6 option was used.
  9518. </para>
  9519. </change>

  9520. </changes>


  9521. <changes ver="1.3.5" date="2012-08-21">

  9522. <change type="change">
  9523. <para lang="ru">
  9524. модуль ngx_http_mp4_module больше не отфильтровывает дорожки
  9525. в форматах, отличных от H.264 и AAC.
  9526. </para>
  9527. <para lang="en">
  9528. the ngx_http_mp4_module module no longer skips
  9529. tracks in formats other than H.264 and AAC.
  9530. </para>
  9531. </change>

  9532. <change type="bugfix">
  9533. <para lang="ru">
  9534. в рабочем процессе мог произойти segmentation fault,
  9535. если в директиве map в качестве значений использовались переменные.
  9536. </para>
  9537. <para lang="en">
  9538. a segmentation fault might occur in a worker process
  9539. if the "map" directive was used with variables as values.
  9540. </para>
  9541. </change>

  9542. <change type="bugfix">
  9543. <para lang="ru">
  9544. в рабочем процессе мог произойти segmentation fault
  9545. при использовании директивы geo с параметром ranges,
  9546. но без параметра default; ошибка появилась в 0.8.43.<br/>
  9547. Спасибо Zhen Chen и Weibin Yao.
  9548. </para>
  9549. <para lang="en">
  9550. a segmentation fault might occur in a worker process
  9551. if the "geo" directive was used with the "ranges" parameter
  9552. but without the "default" parameter; the bug had appeared in 0.8.43.<br/>
  9553. Thanks to Zhen Chen and Weibin Yao.
  9554. </para>
  9555. </change>

  9556. <change type="bugfix">
  9557. <para lang="ru">
  9558. в обработке параметра командной строки -p.
  9559. </para>
  9560. <para lang="en">
  9561. in the -p command-line parameter handling.
  9562. </para>
  9563. </change>

  9564. <change type="bugfix">
  9565. <para lang="ru">
  9566. в почтовом прокси-сервере.
  9567. </para>
  9568. <para lang="en">
  9569. in the mail proxy server.
  9570. </para>
  9571. </change>

  9572. <change type="bugfix">
  9573. <para lang="ru">
  9574. незначительных потенциальных ошибок.<br/>
  9575. Спасибо Coverity.
  9576. </para>
  9577. <para lang="en">
  9578. of minor potential bugs.<br/>
  9579. Thanks to Coverity.
  9580. </para>
  9581. </change>

  9582. <change type="bugfix">
  9583. <para lang="ru">
  9584. nginx/Windows не собирался с Visual Studio 2005 Express.<br/>
  9585. Спасибо HAYASHI Kentaro.
  9586. </para>
  9587. <para lang="en">
  9588. nginx/Windows could not be built with Visual Studio 2005 Express.<br/>
  9589. Thanks to HAYASHI Kentaro.
  9590. </para>
  9591. </change>

  9592. </changes>


  9593. <changes ver="1.3.4" date="2012-07-31">

  9594. <change type="change">
  9595. <para lang="ru">
  9596. теперь на слушающих IPv6-сокетах параметр ipv6only
  9597. включён по умолчанию.
  9598. </para>
  9599. <para lang="en">
  9600. the "ipv6only" parameter is now turned on by default for
  9601. listening IPv6 sockets.
  9602. </para>
  9603. </change>

  9604. <change type="feature">
  9605. <para lang="ru">
  9606. поддержка компилятора Clang.
  9607. </para>
  9608. <para lang="en">
  9609. the Clang compiler support.
  9610. </para>
  9611. </change>

  9612. <change type="bugfix">
  9613. <para lang="ru">
  9614. могли создаваться лишние слушающие сокеты.<br/>
  9615. Спасибо Роману Одайскому.
  9616. </para>
  9617. <para lang="en">
  9618. extra listening sockets might be created.<br/>
  9619. Thanks to Roman Odaisky.
  9620. </para>
  9621. </change>

  9622. <change type="bugfix">
  9623. <para lang="ru">
  9624. nginx/Windows мог нагружать процессор, если при запуске рабочего процесса
  9625. происходила ошибка.<br/>
  9626. Спасибо Ricardo Villalobos Guevara.
  9627. </para>
  9628. <para lang="en">
  9629. nginx/Windows might hog CPU if a worker process failed to start.<br/>
  9630. Thanks to Ricardo Villalobos Guevara.
  9631. </para>
  9632. </change>

  9633. <change type="bugfix">
  9634. <para lang="ru">
  9635. директивы proxy_pass_header, fastcgi_pass_header, scgi_pass_header,
  9636. uwsgi_pass_header, proxy_hide_header, fastcgi_hide_header,
  9637. scgi_hide_header и uwsgi_hide_header
  9638. могли наследоваться некорректно.
  9639. </para>
  9640. <para lang="en">
  9641. the "proxy_pass_header", "fastcgi_pass_header", "scgi_pass_header",
  9642. "uwsgi_pass_header", "proxy_hide_header", "fastcgi_hide_header",
  9643. "scgi_hide_header", and "uwsgi_hide_header" directives
  9644. might be inherited incorrectly.
  9645. </para>
  9646. </change>

  9647. </changes>


  9648. <changes ver="1.3.3" date="2012-07-10">

  9649. <change type="feature">
  9650. <para lang="ru">
  9651. поддержка entity tags и директива etag.
  9652. </para>
  9653. <para lang="en">
  9654. entity tags support and the "etag" directive.
  9655. </para>
  9656. </change>

  9657. <change type="bugfix">
  9658. <para lang="ru">
  9659. при использовании директивы map с параметром hostnames
  9660. не игнорировалась конечная точка в исходном значении.
  9661. </para>
  9662. <para lang="en">
  9663. trailing dot in a source value was not ignored
  9664. if the "map" directive was used with the "hostnames" parameter.
  9665. </para>
  9666. </change>

  9667. <change type="bugfix">
  9668. <para lang="ru">
  9669. для обработки запроса мог использоваться неверный location,
  9670. если переход в именованный location происходил
  9671. после изменения URI с помощью директивы rewrite.
  9672. </para>
  9673. <para lang="en">
  9674. incorrect location might be used to process a request
  9675. if a URI was changed via a "rewrite" directive
  9676. before an internal redirect to a named location.
  9677. </para>
  9678. </change>

  9679. </changes>


  9680. <changes ver="1.3.2" date="2012-06-26">

  9681. <change type="change">
  9682. <para lang="ru">
  9683. параметр single директивы keepalive теперь игнорируется.
  9684. </para>
  9685. <para lang="en">
  9686. the "single" parameter of the "keepalive" directive is now ignored.
  9687. </para>
  9688. </change>

  9689. <change type="change">
  9690. <para lang="ru">
  9691. сжатие SSL теперь отключено
  9692. в том числе при использовании OpenSSL старее 1.0.0.
  9693. </para>
  9694. <para lang="en">
  9695. SSL compression is now disabled when using all versions of OpenSSL,
  9696. including ones prior to 1.0.0.
  9697. </para>
  9698. </change>

  9699. <change type="feature">
  9700. <para lang="ru">
  9701. директиву "ip_hash" теперь можно использовать для балансировки IPv6 клиентов.
  9702. </para>
  9703. <para lang="en">
  9704. it is now possible to use the "ip_hash" directive to balance IPv6 clients.
  9705. </para>
  9706. </change>

  9707. <change type="feature">
  9708. <para lang="ru">
  9709. переменную $status теперь можно использовать не только в директиве log_format.
  9710. </para>
  9711. <para lang="en">
  9712. the $status variable can now be used not only in the "log_format" directive.
  9713. </para>
  9714. </change>

  9715. <change type="bugfix">
  9716. <para lang="ru">
  9717. при завершении рабочего процесса мог произойти segmentation fault,
  9718. если использовалась директива resolver.
  9719. </para>
  9720. <para lang="en">
  9721. a segmentation fault might occur in a worker process on shutdown
  9722. if the "resolver" directive was used.
  9723. </para>
  9724. </change>

  9725. <change type="bugfix">
  9726. <para lang="ru">
  9727. в рабочем процессе мог произойти segmentation fault,
  9728. если использовался модуль ngx_http_mp4_module.
  9729. </para>
  9730. <para lang="en">
  9731. a segmentation fault might occur in a worker process
  9732. if the ngx_http_mp4_module was used.
  9733. </para>
  9734. </change>

  9735. <change type="bugfix">
  9736. <para lang="ru">
  9737. в модуле ngx_http_mp4_module.
  9738. </para>
  9739. <para lang="en">
  9740. in the ngx_http_mp4_module.
  9741. </para>
  9742. </change>

  9743. <change type="bugfix">
  9744. <para lang="ru">
  9745. в рабочем процессе мог произойти segmentation fault,
  9746. если использовались конфликтующие имена серверов с масками.
  9747. </para>
  9748. <para lang="en">
  9749. a segmentation fault might occur in a worker process
  9750. if conflicting wildcard server names were used.
  9751. </para>
  9752. </change>

  9753. <change type="bugfix">
  9754. <para lang="ru">
  9755. на платформе ARM nginx мог аварийно завершаться по сигналу SIGBUS.
  9756. </para>
  9757. <para lang="en">
  9758. nginx might be terminated abnormally on a SIGBUS signal on ARM platform.
  9759. </para>
  9760. </change>

  9761. <change type="bugfix">
  9762. <para lang="ru">
  9763. во время переконфигурации на HP-UX в лог
  9764. записывался alert "sendmsg() failed (9: Bad file number)".
  9765. </para>
  9766. <para lang="en">
  9767. an alert "sendmsg() failed (9: Bad file number)" on HP-UX
  9768. while reconfiguration.
  9769. </para>
  9770. </change>

  9771. </changes>


  9772. <changes ver="1.3.1" date="2012-06-05">

  9773. <change type="security">
  9774. <para lang="ru">
  9775. теперь nginx/Windows игнорирует точку в конце компонента URI
  9776. и не разрешает URI, содержащие последовательность ":$".<br/>
  9777. Спасибо Владимиру Кочеткову, Positive Research Center.
  9778. </para>
  9779. <para lang="en">
  9780. now nginx/Windows ignores trailing dot in URI path component, and
  9781. does not allow URIs with ":$" in it.<br/>
  9782. Thanks to Vladimir Kochetkov, Positive Research Center.
  9783. </para>
  9784. </change>

  9785. <change type="feature">
  9786. <para lang="ru">
  9787. директивы proxy_pass, fastcgi_pass, scgi_pass, uwsgi_pass и
  9788. директива server в блоке upstream
  9789. теперь поддерживают IPv6-адреса.
  9790. </para>
  9791. <para lang="en">
  9792. the "proxy_pass", "fastcgi_pass", "scgi_pass", "uwsgi_pass" directives, and
  9793. the "server" directive inside the "upstream" block,
  9794. now support IPv6 addresses.
  9795. </para>
  9796. </change>

  9797. <change type="feature">
  9798. <para lang="ru">
  9799. в директиве resolver теперь можно указывать порт и
  9800. задавать IPv6-адреса DNS-серверов.
  9801. </para>
  9802. <para lang="en">
  9803. the "resolver" directive now supports IPv6 addresses and
  9804. an optional port specification.
  9805. </para>
  9806. </change>

  9807. <change type="feature">
  9808. <para lang="ru">
  9809. директива least_conn в блоке upstream.
  9810. </para>
  9811. <para lang="en">
  9812. the "least_conn" directive inside the "upstream" block.
  9813. </para>
  9814. </change>

  9815. <change type="feature">
  9816. <para lang="ru">
  9817. при использовании директивы ip_hash
  9818. теперь можно задавать веса серверов.
  9819. </para>
  9820. <para lang="en">
  9821. it is now possible to specify a weight for servers
  9822. while using the "ip_hash" directive.
  9823. </para>
  9824. </change>

  9825. <change type="bugfix">
  9826. <para lang="ru">
  9827. в рабочем процессе мог произойти segmentation fault,
  9828. если использовалась директива image_filter;
  9829. ошибка появилась в 1.3.0.
  9830. </para>
  9831. <para lang="en">
  9832. a segmentation fault might occur in a worker process
  9833. if the "image_filter" directive was used;
  9834. the bug had appeared in 1.3.0.
  9835. </para>
  9836. </change>

  9837. <change type="bugfix">
  9838. <para lang="ru">
  9839. nginx не собирался с модулем ngx_cpp_test_module;
  9840. ошибка появилась в 1.1.12.
  9841. </para>
  9842. <para lang="en">
  9843. nginx could not be built with ngx_cpp_test_module;
  9844. the bug had appeared in 1.1.12.
  9845. </para>
  9846. </change>

  9847. <change type="bugfix">
  9848. <para lang="ru">
  9849. доступ к переменным из SSI и встроенного перла мог не работать после
  9850. переконфигурации.<br/>
  9851. Спасибо Yichun Zhang.
  9852. </para>
  9853. <para lang="en">
  9854. access to variables from SSI and embedded perl module might not work after
  9855. reconfiguration.<br/>
  9856. Thanks to Yichun Zhang.
  9857. </para>
  9858. </change>

  9859. <change type="bugfix">
  9860. <para lang="ru">
  9861. в модуле ngx_http_xslt_filter_module.<br/>
  9862. Спасибо Kuramoto Eiji.
  9863. </para>
  9864. <para lang="en">
  9865. in the ngx_http_xslt_filter_module.<br/>
  9866. Thanks to Kuramoto Eiji.
  9867. </para>
  9868. </change>

  9869. <change type="bugfix">
  9870. <para lang="ru">
  9871. утечки памяти при использовании переменной $geoip_org.<br/>
  9872. Спасибо Денису Латыпову.
  9873. </para>
  9874. <para lang="en">
  9875. memory leak if $geoip_org variable was used.<br/>
  9876. Thanks to Denis F. Latypoff.
  9877. </para>
  9878. </change>

  9879. <change type="bugfix">
  9880. <para lang="ru">
  9881. в директивах proxy_cookie_domain и proxy_cookie_path.
  9882. </para>
  9883. <para lang="en">
  9884. in the "proxy_cookie_domain" and "proxy_cookie_path" directives.
  9885. </para>
  9886. </change>

  9887. </changes>


  9888. <changes ver="1.3.0" date="2012-05-15">

  9889. <change type="feature">
  9890. <para lang="ru">
  9891. директива debug_connection теперь поддерживает IPv6-адреса
  9892. и параметр "unix:".
  9893. </para>
  9894. <para lang="en">
  9895. the "debug_connection" directive now supports IPv6 addresses
  9896. and the "unix:" parameter.
  9897. </para>
  9898. </change>

  9899. <change type="feature">
  9900. <para lang="ru">
  9901. директива set_real_ip_from и параметр proxy
  9902. директивы geo теперь поддерживают IPv6-адреса.
  9903. </para>
  9904. <para lang="en">
  9905. the "set_real_ip_from" directive and the "proxy" parameter
  9906. of the "geo" directive now support IPv6 addresses.
  9907. </para>
  9908. </change>

  9909. <change type="feature">
  9910. <para lang="ru">
  9911. директивы real_ip_recursive, geoip_proxy и geoip_proxy_recursive.
  9912. </para>
  9913. <para lang="en">
  9914. the "real_ip_recursive", "geoip_proxy", and "geoip_proxy_recursive" directives.
  9915. </para>
  9916. </change>

  9917. <change type="feature">
  9918. <para lang="ru">
  9919. параметр proxy_recursive директивы geo.
  9920. </para>
  9921. <para lang="en">
  9922. the "proxy_recursive" parameter of the "geo" directive.
  9923. </para>
  9924. </change>

  9925. <change type="bugfix">
  9926. <para lang="ru">
  9927. в рабочем процессе мог произойти segmentation fault,
  9928. если использовалась директива resolver.
  9929. </para>
  9930. <para lang="en">
  9931. a segmentation fault might occur in a worker process
  9932. if the "resolver" directive was used.
  9933. </para>
  9934. </change>

  9935. <change type="bugfix">
  9936. <para lang="ru">
  9937. в рабочем процессе мог произойти segmentation fault,
  9938. если использовались директивы fastcgi_pass, scgi_pass или uwsgi_pass
  9939. и бэкенд возвращал некорректный ответ.
  9940. </para>
  9941. <para lang="en">
  9942. a segmentation fault might occur in a worker process
  9943. if the "fastcgi_pass", "scgi_pass", or "uwsgi_pass" directives were used
  9944. and backend returned incorrect response.
  9945. </para>
  9946. </change>

  9947. <change type="bugfix">
  9948. <para lang="ru">
  9949. в рабочем процессе мог произойти segmentation fault,
  9950. если использовалась директива rewrite и в новых аргументах запроса в строке
  9951. замены использовались переменные.
  9952. </para>
  9953. <para lang="en">
  9954. a segmentation fault might occur in a worker process
  9955. if the "rewrite" directive was used and new request arguments
  9956. in a replacement used variables.
  9957. </para>
  9958. </change>

  9959. <change type="bugfix">
  9960. <para lang="ru">
  9961. nginx мог нагружать процессор,
  9962. если было достигнуто ограничение на количество открытых файлов.
  9963. </para>
  9964. <para lang="en">
  9965. nginx might hog CPU
  9966. if the open file resource limit was reached.
  9967. </para>
  9968. </change>

  9969. <change type="bugfix">
  9970. <para lang="ru">
  9971. при использовании директивы proxy_next_upstream с параметром http_404
  9972. nginx мог бесконечно перебирать бэкенды, если в блоке upstream был
  9973. хотя бы один сервер с флагом backup.
  9974. </para>
  9975. <para lang="en">
  9976. nginx might loop infinitely over backends
  9977. if the "proxy_next_upstream" directive with the "http_404" parameter was used
  9978. and there were backup servers specified in an upstream block.
  9979. </para>
  9980. </change>

  9981. <change type="bugfix">
  9982. <para lang="ru">
  9983. при использовании директивы ip_hash
  9984. установка параметра down директивы server
  9985. могла приводить к ненужному перераспределению клиентов между бэкендами.
  9986. </para>
  9987. <para lang="en">
  9988. adding the "down" parameter of the "server" directive
  9989. might cause unneeded client redistribution among backend servers
  9990. if the "ip_hash" directive was used.
  9991. </para>
  9992. </change>

  9993. <change type="bugfix">
  9994. <para lang="ru">
  9995. утечки сокетов.<br/>
  9996. Спасибо Yichun Zhang.
  9997. </para>
  9998. <para lang="en">
  9999. socket leak.<br/>
  10000. Thanks to Yichun Zhang.
  10001. </para>
  10002. </change>

  10003. <change type="bugfix">
  10004. <para lang="ru">
  10005. в модуле ngx_http_fastcgi_module.
  10006. </para>
  10007. <para lang="en">
  10008. in the ngx_http_fastcgi_module.
  10009. </para>
  10010. </change>

  10011. </changes>


  10012. <changes ver="1.2.0" date="2012-04-23">

  10013. <change type="bugfix">
  10014. <para lang="ru">
  10015. в рабочем процессе мог произойти segmentation fault,
  10016. если использовалась директива try_files;
  10017. ошибка появилась в 1.1.19.
  10018. </para>
  10019. <para lang="en">
  10020. a segmentation fault might occur in a worker process
  10021. if the "try_files" directive was used;
  10022. the bug had appeared in 1.1.19.
  10023. </para>
  10024. </change>

  10025. <change type="bugfix">
  10026. <para lang="ru">
  10027. ответ мог быть передан не полностью,
  10028. если использовалось больше IOV_MAX буферов.
  10029. </para>
  10030. <para lang="en">
  10031. response might be truncated
  10032. if there were more than IOV_MAX buffers used.
  10033. </para>
  10034. </change>

  10035. <change type="bugfix">
  10036. <para lang="ru">
  10037. в работе параметра crop директивы image_filter.<br/>
  10038. Спасибо Maxim Bublis.
  10039. </para>
  10040. <para lang="en">
  10041. in the "crop" parameter of the "image_filter" directive.<br/>
  10042. Thanks to Maxim Bublis.
  10043. </para>
  10044. </change>

  10045. </changes>


  10046. <changes ver="1.1.19" date="2012-04-12">

  10047. <change type="security">
  10048. <para lang="ru">
  10049. при обработке специально созданного mp4 файла модулем ngx_http_mp4_module
  10050. могли перезаписываться области памяти рабочего процесса, что могло
  10051. приводить к выполнению произвольного кода (CVE-2012-2089).<br/>
  10052. Спасибо Matthew Daley.
  10053. </para>
  10054. <para lang="en">
  10055. specially crafted mp4 file might allow to overwrite
  10056. memory locations in a worker process
  10057. if the ngx_http_mp4_module was used,
  10058. potentially resulting in arbitrary code execution (CVE-2012-2089).<br/>
  10059. Thanks to Matthew Daley.
  10060. </para>
  10061. </change>

  10062. <change type="bugfix">
  10063. <para lang="ru">
  10064. nginx/Windows мог завершаться аварийно.<br/>
  10065. Спасибо Vincent Lee.
  10066. </para>
  10067. <para lang="en">
  10068. nginx/Windows might be terminated abnormally.<br/>
  10069. Thanks to Vincent Lee.
  10070. </para>
  10071. </change>

  10072. <change type="bugfix">
  10073. <para lang="ru">
  10074. nginx нагружал процессор, если все серверы в upstream'е были помечены
  10075. флагом backup.
  10076. </para>
  10077. <para lang="en">
  10078. nginx hogged CPU if all servers in an upstream were marked as "backup".
  10079. </para>
  10080. </change>

  10081. <change type="bugfix">
  10082. <para lang="ru">
  10083. директивы allow и deny могли наследоваться некорректно,
  10084. если в них использовались IPv6 адреса.
  10085. </para>
  10086. <para lang="en">
  10087. the "allow" and "deny" directives might be inherited incorrectly
  10088. if they were used with IPv6 addresses.
  10089. </para>
  10090. </change>

  10091. <change type="bugfix">
  10092. <para lang="ru">
  10093. директивы modern_browser и ancient_browser
  10094. могли наследоваться некорректно.
  10095. </para>
  10096. <para lang="en">
  10097. the "modern_browser" and "ancient_browser" directives
  10098. might be inherited incorrectly.
  10099. </para>
  10100. </change>

  10101. <change type="bugfix">
  10102. <para lang="ru">
  10103. таймауты могли работать некорректно на Solaris/SPARC.
  10104. </para>
  10105. <para lang="en">
  10106. timeouts might be handled incorrectly on Solaris/SPARC.
  10107. </para>
  10108. </change>

  10109. <change type="bugfix">
  10110. <para lang="ru">
  10111. в модуле ngx_http_mp4_module.
  10112. </para>
  10113. <para lang="en">
  10114. in the ngx_http_mp4_module.
  10115. </para>
  10116. </change>

  10117. </changes>


  10118. <changes ver="1.1.18" date="2012-03-28">

  10119. <change type="change">
  10120. <para lang="ru">
  10121. теперь keepalive соединения не запрещены для Safari по умолчанию.
  10122. </para>
  10123. <para lang="en">
  10124. keepalive connections are no longer disabled for Safari by default.
  10125. </para>
  10126. </change>

  10127. <change type="feature">
  10128. <para lang="ru">
  10129. переменная $connection_requests.
  10130. </para>
  10131. <para lang="en">
  10132. the $connection_requests variable.
  10133. </para>
  10134. </change>

  10135. <change type="feature">
  10136. <para lang="ru">
  10137. переменные $tcpinfo_rtt, $tcpinfo_rttvar, $tcpinfo_snd_cwnd и
  10138. $tcpinfo_rcv_space.
  10139. </para>
  10140. <para lang="en">
  10141. $tcpinfo_rtt, $tcpinfo_rttvar, $tcpinfo_snd_cwnd and
  10142. $tcpinfo_rcv_space variables.
  10143. </para>
  10144. </change>

  10145. <change type="feature">
  10146. <para lang="ru">
  10147. директива worker_cpu_affinity теперь работает на FreeBSD.
  10148. </para>
  10149. <para lang="en">
  10150. the "worker_cpu_affinity" directive now works on FreeBSD.
  10151. </para>
  10152. </change>

  10153. <change type="feature">
  10154. <para lang="ru">
  10155. директивы xslt_param и xslt_string_param.<br/>
  10156. Спасибо Samuel Behan.
  10157. </para>
  10158. <para lang="en">
  10159. the "xslt_param" and "xslt_string_param" directives.<br/>
  10160. Thanks to Samuel Behan.
  10161. </para>
  10162. </change>

  10163. <change type="bugfix">
  10164. <para lang="ru">
  10165. в configure.<br/>
  10166. Спасибо Piotr Sikora.
  10167. </para>
  10168. <para lang="en">
  10169. in configure tests.<br/>
  10170. Thanks to Piotr Sikora.
  10171. </para>
  10172. </change>

  10173. <change type="bugfix">
  10174. <para lang="ru">
  10175. в модуле ngx_http_xslt_filter_module.
  10176. </para>
  10177. <para lang="en">
  10178. in the ngx_http_xslt_filter_module.
  10179. </para>
  10180. </change>

  10181. <change type="bugfix">
  10182. <para lang="ru">
  10183. nginx не собирался на Debian GNU/Hurd.
  10184. </para>
  10185. <para lang="en">
  10186. nginx could not be built on Debian GNU/Hurd.
  10187. </para>
  10188. </change>

  10189. </changes>


  10190. <changes ver="1.1.17" date="2012-03-15">

  10191. <change type="security">
  10192. <para lang="ru">
  10193. содержимое ранее освобождённой памяти могло быть отправлено клиенту,
  10194. если бэкенд возвращал специально созданный ответ.<br/>
  10195. Спасибо Matthew Daley.
  10196. </para>
  10197. <para lang="en">
  10198. content of previously freed memory might be sent to a client
  10199. if backend returned specially crafted response.<br/>
  10200. Thanks to Matthew Daley.
  10201. </para>
  10202. </change>

  10203. <change type="bugfix">
  10204. <para lang="ru">
  10205. при использовании встроенного перла из SSI.<br/>
  10206. Спасибо Matthew Daley.
  10207. </para>
  10208. <para lang="en">
  10209. in the embedded perl module if used from SSI.<br/>
  10210. Thanks to Matthew Daley.
  10211. </para>
  10212. </change>

  10213. <change type="bugfix">
  10214. <para lang="ru">
  10215. в модуле ngx_http_uwsgi_module.
  10216. </para>
  10217. <para lang="en">
  10218. in the ngx_http_uwsgi_module.
  10219. </para>
  10220. </change>

  10221. </changes>


  10222. <changes ver="1.1.16" date="2012-02-29">

  10223. <change type="change">
  10224. <para lang="ru">
  10225. ограничение на количество одновременных подзапросов поднято до 200.
  10226. </para>
  10227. <para lang="en">
  10228. the simultaneous subrequest limit has been raised to 200.
  10229. </para>
  10230. </change>

  10231. <change type="feature">
  10232. <para lang="ru">
  10233. параметр from в директиве disable_symlinks.
  10234. </para>
  10235. <para lang="en">
  10236. the "from" parameter of the "disable_symlinks" directive.
  10237. </para>
  10238. </change>

  10239. <change type="feature">
  10240. <para lang="ru">
  10241. директивы return и error_page теперь могут использоваться для возврата
  10242. перенаправлений с кодом 307.
  10243. </para>
  10244. <para lang="en">
  10245. the "return" and "error_page" directives can now be used to return 307
  10246. redirections.
  10247. </para>
  10248. </change>

  10249. <change type="bugfix">
  10250. <para lang="ru">
  10251. в рабочем процессе мог произойти segmentation fault,
  10252. если использовалась директива resolver
  10253. и на глобальном уровне не была задана директива error_log.<br/>
  10254. Спасибо Роману Арутюняну.
  10255. </para>
  10256. <para lang="en">
  10257. a segmentation fault might occur in a worker process
  10258. if the "resolver" directive was used
  10259. and there was no "error_log" directive specified at global level.<br/>
  10260. Thanks to Roman Arutyunyan.
  10261. </para>
  10262. </change>

  10263. <change type="bugfix">
  10264. <para lang="ru">
  10265. в рабочем процессе мог произойти segmentation fault,
  10266. если использовались директивы "proxy_http_version 1.1" или
  10267. "fastcgi_keep_conn on".
  10268. </para>
  10269. <para lang="en">
  10270. a segmentation fault might occur in a worker process
  10271. if the "proxy_http_version 1.1" or "fastcgi_keep_conn on" directives
  10272. were used.
  10273. </para>
  10274. </change>

  10275. <change type="bugfix">
  10276. <para lang="ru">
  10277. утечек памяти.<br/>
  10278. Спасибо Lanshun Zhou.
  10279. </para>
  10280. <para lang="en">
  10281. memory leaks.<br/>
  10282. Thanks to Lanshun Zhou.
  10283. </para>
  10284. </change>

  10285. <change type="bugfix">
  10286. <para lang="ru">
  10287. в директиве disable_symlinks.
  10288. </para>
  10289. <para lang="en">
  10290. in the "disable_symlinks" directive.
  10291. </para>
  10292. </change>

  10293. <change type="bugfix">
  10294. <para lang="ru">
  10295. при использовании ZFS размер кэша на диске мог считаться некорректно;
  10296. ошибка появилась в 1.0.1.
  10297. </para>
  10298. <para lang="en">
  10299. on ZFS filesystem disk cache size might be calculated incorrectly;
  10300. the bug had appeared in 1.0.1.
  10301. </para>
  10302. </change>

  10303. <change type="bugfix">
  10304. <para lang="ru">
  10305. nginx не собирался компилятором icc 12.1.
  10306. </para>
  10307. <para lang="en">
  10308. nginx could not be built by the icc 12.1 compiler.
  10309. </para>
  10310. </change>

  10311. <change type="bugfix">
  10312. <para lang="ru">
  10313. nginx не собирался gcc на Solaris;
  10314. ошибка появилась в 1.1.15.
  10315. </para>
  10316. <para lang="en">
  10317. nginx could not be built by gcc on Solaris;
  10318. the bug had appeared in 1.1.15.
  10319. </para>
  10320. </change>

  10321. </changes>


  10322. <changes ver="1.1.15" date="2012-02-15">

  10323. <change type="feature">
  10324. <para lang="ru">
  10325. директива disable_symlinks.
  10326. </para>
  10327. <para lang="en">
  10328. the "disable_symlinks" directive.
  10329. </para>
  10330. </change>

  10331. <change type="feature">
  10332. <para lang="ru">
  10333. директивы proxy_cookie_domain и proxy_cookie_path.
  10334. </para>
  10335. <para lang="en">
  10336. the "proxy_cookie_domain" and "proxy_cookie_path" directives.
  10337. </para>
  10338. </change>

  10339. <change type="bugfix">
  10340. <para lang="ru">
  10341. nginx мог некорректно сообщать об ошибке "upstream prematurely closed
  10342. connection" вместо "upstream sent too big header".<br/>
  10343. Спасибо Feibo Li.
  10344. </para>
  10345. <para lang="en">
  10346. nginx might log incorrect error "upstream prematurely closed connection"
  10347. instead of correct "upstream sent too big header" one.<br/>
  10348. Thanks to Feibo Li.
  10349. </para>
  10350. </change>

  10351. <change type="bugfix">
  10352. <para lang="ru">
  10353. nginx не собирался с модулем ngx_http_perl_module,
  10354. если использовался параметр --with-openssl.
  10355. </para>
  10356. <para lang="en">
  10357. nginx could not be built with the ngx_http_perl_module
  10358. if the --with-openssl option was used.
  10359. </para>
  10360. </change>

  10361. <change type="bugfix">
  10362. <para lang="ru">
  10363. количество внутренних перенаправлений в именованные location'ы
  10364. не ограничивалось.
  10365. </para>
  10366. <para lang="en">
  10367. the number of internal redirects to named locations was not limited.
  10368. </para>
  10369. </change>

  10370. <change type="bugfix">
  10371. <para lang="ru">
  10372. вызов $r->flush() несколько раз подряд мог приводить к ошибкам
  10373. в модуле ngx_http_gzip_filter_module.
  10374. </para>
  10375. <para lang="en">
  10376. calling $r->flush() multiple times might cause errors
  10377. in the ngx_http_gzip_filter_module.
  10378. </para>
  10379. </change>

  10380. <change type="bugfix">
  10381. <para lang="ru">
  10382. при использовании директивы proxy_store с SSI-подзапросами
  10383. временные файлы могли не удаляться.
  10384. </para>
  10385. <para lang="en">
  10386. temporary files might be not removed
  10387. if the "proxy_store" directive was used with SSI includes.
  10388. </para>
  10389. </change>

  10390. <change type="bugfix">
  10391. <para lang="ru">
  10392. в некоторых случаях некэшируемые переменные (такие, как $args)
  10393. возвращали старое пустое закэшированное значение.
  10394. </para>
  10395. <para lang="en">
  10396. in some cases non-cacheable variables (such as the $args variable)
  10397. returned old empty cached value.
  10398. </para>
  10399. </change>

  10400. <change type="bugfix">
  10401. <para lang="ru">
  10402. в рабочем процессе мог произойти segmentation fault,
  10403. если одновременно создавалось слишком много SSI-подзапросов;
  10404. ошибка появилась в 0.7.25.
  10405. </para>
  10406. <para lang="en">
  10407. a segmentation fault might occur in a worker process
  10408. if too many SSI subrequests were issued simultaneously;
  10409. the bug had appeared in 0.7.25.
  10410. </para>
  10411. </change>

  10412. </changes>


  10413. <changes ver="1.1.14" date="2012-01-30">

  10414. <change type="feature">
  10415. <para lang="ru">
  10416. теперь можно указать несколько ограничений limit_req одновременно.
  10417. </para>
  10418. <para lang="en">
  10419. multiple "limit_req" limits may be used simultaneously.
  10420. </para>
  10421. </change>

  10422. <change type="bugfix">
  10423. <para lang="ru">
  10424. в обработке ошибок при соединении с бэкендом.<br/>
  10425. Спасибо Piotr Sikora.
  10426. </para>
  10427. <para lang="en">
  10428. in error handling while connecting to a backend.<br/>
  10429. Thanks to Piotr Sikora.
  10430. </para>
  10431. </change>

  10432. <change type="bugfix">
  10433. <para lang="ru">
  10434. в обработке ошибок при использовании AIO на FreeBSD.
  10435. </para>
  10436. <para lang="en">
  10437. in AIO error handling on FreeBSD.
  10438. </para>
  10439. </change>

  10440. <change type="bugfix">
  10441. <para lang="ru">
  10442. в инициализации библиотеки OpenSSL.
  10443. </para>
  10444. <para lang="en">
  10445. in the OpenSSL library initialization.
  10446. </para>
  10447. </change>

  10448. <change type="bugfix">
  10449. <para lang="ru">
  10450. директивы proxy_redirect могли наследоваться некорректно.
  10451. </para>
  10452. <para lang="en">
  10453. the "proxy_redirect" directives might be inherited incorrectly.
  10454. </para>
  10455. </change>

  10456. <change type="bugfix">
  10457. <para lang="ru">
  10458. утечки памяти при переконфигурации, если использовалась директива pcre_jit.
  10459. </para>
  10460. <para lang="en">
  10461. memory leak during reconfiguration if the "pcre_jit" directive was used.
  10462. </para>
  10463. </change>

  10464. </changes>


  10465. <changes ver="1.1.13" date="2012-01-16">

  10466. <change type="feature">
  10467. <para lang="ru">
  10468. параметры TLSv1.1 и TLSv1.2 в директиве ssl_protocols.
  10469. </para>
  10470. <para lang="en">
  10471. the "TLSv1.1" and "TLSv1.2" parameters of the "ssl_protocols" directive.
  10472. </para>
  10473. </change>

  10474. <change type="bugfix">
  10475. <para lang="ru">
  10476. параметры директивы limit_req наследовались некорректно;
  10477. ошибка появилась в 1.1.12.
  10478. </para>
  10479. <para lang="en">
  10480. the "limit_req" directive parameters were not inherited correctly;
  10481. the bug had appeared in 1.1.12.
  10482. </para>
  10483. </change>

  10484. <change type="bugfix">
  10485. <para lang="ru">
  10486. директива proxy_redirect некорректно обрабатывала заголовок Refresh
  10487. при использовании регулярных выражений.
  10488. </para>
  10489. <para lang="en">
  10490. the "proxy_redirect" directive incorrectly processed "Refresh" header
  10491. if regular expression were used.
  10492. </para>
  10493. </change>

  10494. <change type="bugfix">
  10495. <para lang="ru">
  10496. директива proxy_cache_use_stale с параметром error не возвращала ответ из
  10497. кэша, если все бэкенды были признаны неработающими.
  10498. </para>
  10499. <para lang="en">
  10500. the "proxy_cache_use_stale" directive with "error" parameter did not return
  10501. answer from cache if there were no live upstreams.
  10502. </para>
  10503. </change>

  10504. <change type="bugfix">
  10505. <para lang="ru">
  10506. директива worker_cpu_affinity могла не работать.
  10507. </para>
  10508. <para lang="en">
  10509. the "worker_cpu_affinity" directive might not work.
  10510. </para>
  10511. </change>

  10512. <change type="bugfix">
  10513. <para lang="ru">
  10514. nginx не собирался на Solaris;
  10515. ошибка появилась в 1.1.12.
  10516. </para>
  10517. <para lang="en">
  10518. nginx could not be built on Solaris;
  10519. the bug had appeared in 1.1.12.
  10520. </para>
  10521. </change>

  10522. <change type="bugfix">
  10523. <para lang="ru">
  10524. в модуле ngx_http_mp4_module.
  10525. </para>
  10526. <para lang="en">
  10527. in the ngx_http_mp4_module.
  10528. </para>
  10529. </change>

  10530. </changes>


  10531. <changes ver="1.1.12" date="2011-12-26">

  10532. <change type="change">
  10533. <para lang="ru">
  10534. после перенаправления запроса с помощью директивы error_page
  10535. директива proxy_pass без URI теперь использует изменённый URI.<br/>
  10536. Спасибо Lanshun Zhou.
  10537. </para>
  10538. <para lang="en">
  10539. a "proxy_pass" directive without URI part now uses changed URI
  10540. after redirection with the "error_page" directive.<br/>
  10541. Thanks to Lanshun Zhou.
  10542. </para>
  10543. </change>

  10544. <change type="feature">
  10545. <para lang="ru">
  10546. директивы proxy/fastcgi/scgi/uwsgi_cache_lock,
  10547. proxy/fastcgi/scgi/uwsgi_cache_lock_timeout.
  10548. </para>
  10549. <para lang="en">
  10550. the "proxy/fastcgi/scgi/uwsgi_cache_lock",
  10551. "proxy/fastcgi/scgi/uwsgi_cache_lock_timeout" directives.
  10552. </para>
  10553. </change>

  10554. <change type="feature">
  10555. <para lang="ru">
  10556. директива pcre_jit.
  10557. </para>
  10558. <para lang="en">
  10559. the "pcre_jit" directive.
  10560. </para>
  10561. </change>

  10562. <change type="feature">
  10563. <para lang="ru">
  10564. SSI команда if поддерживает выделения в регулярных выражениях.
  10565. </para>
  10566. <para lang="en">
  10567. the "if" SSI command supports captures in regular expressions.
  10568. </para>
  10569. </change>

  10570. <change type="bugfix">
  10571. <para lang="ru">
  10572. SSI команда if не работала внутри команды block.
  10573. </para>
  10574. <para lang="en">
  10575. the "if" SSI command did not work inside the "block" command.
  10576. </para>
  10577. </change>

  10578. <change type="bugfix">
  10579. <para lang="ru">
  10580. директивы limit_conn_log_level и limit_req_log_level могли не работать.
  10581. </para>
  10582. <para lang="en">
  10583. the "limit_conn_log_level" and "limit_req_log_level" directives might not work.
  10584. </para>
  10585. </change>

  10586. <change type="bugfix">
  10587. <para lang="ru">
  10588. директива limit_rate не позволяла передавать на полной скорости,
  10589. даже если был указан очень большой лимит.
  10590. </para>
  10591. <para lang="en">
  10592. the "limit_rate" directive did not allow to use full throughput,
  10593. even if limit value was very high.
  10594. </para>
  10595. </change>

  10596. <change type="bugfix">
  10597. <para lang="ru">
  10598. директива sendfile_max_chunk не работала,
  10599. если использовалась директива limit_rate.
  10600. </para>
  10601. <para lang="en">
  10602. the "sendfile_max_chunk" directive did not work,
  10603. if the "limit_rate" directive was used.
  10604. </para>
  10605. </change>

  10606. <change type="bugfix">
  10607. <para lang="ru">
  10608. если в директиве proxy_pass использовались переменные и не был указан URI,
  10609. всегда использовался URI исходного запроса.
  10610. </para>
  10611. <para lang="en">
  10612. a "proxy_pass" directive without URI part always used original request URI
  10613. if variables were used.
  10614. </para>
  10615. </change>

  10616. <change type="bugfix">
  10617. <para lang="ru">
  10618. после перенаправления запроса с помощью директивы try_files
  10619. директива proxy_pass без URI могла использовать URI исходного запроса.<br/>
  10620. Спасибо Lanshun Zhou.
  10621. </para>
  10622. <para lang="en">
  10623. a "proxy_pass" directive without URI part might use original request
  10624. after redirection with the "try_files" directive.<br/>
  10625. Thanks to Lanshun Zhou.
  10626. </para>
  10627. </change>

  10628. <change type="bugfix">
  10629. <para lang="ru">
  10630. в модуле ngx_http_scgi_module.
  10631. </para>
  10632. <para lang="en">
  10633. in the ngx_http_scgi_module.
  10634. </para>
  10635. </change>

  10636. <change type="bugfix">
  10637. <para lang="ru">
  10638. в модуле ngx_http_mp4_module.
  10639. </para>
  10640. <para lang="en">
  10641. in the ngx_http_mp4_module.
  10642. </para>
  10643. </change>

  10644. <change type="bugfix">
  10645. <para lang="ru">
  10646. nginx не собирался на Solaris;
  10647. ошибка появилась в 1.1.9.
  10648. </para>
  10649. <para lang="en">
  10650. nginx could not be built on Solaris;
  10651. the bug had appeared in 1.1.9.
  10652. </para>
  10653. </change>

  10654. </changes>


  10655. <changes ver="1.1.11" date="2011-12-12">

  10656. <change type="feature">
  10657. <para lang="ru">
  10658. параметр so_keepalive в директиве listen.<br/>
  10659. Спасибо Всеволоду Стахову.
  10660. </para>
  10661. <para lang="en">
  10662. the "so_keepalive" parameter of the "listen" directive.<br/>
  10663. Thanks to Vsevolod Stakhov.
  10664. </para>
  10665. </change>

  10666. <change type="feature">
  10667. <para lang="ru">
  10668. параметр if_not_empty в директивах fastcgi/scgi/uwsgi_param.
  10669. </para>
  10670. <para lang="en">
  10671. the "if_not_empty" parameter of the "fastcgi/scgi/uwsgi_param" directives.
  10672. </para>
  10673. </change>

  10674. <change type="feature">
  10675. <para lang="ru">
  10676. переменная $https.
  10677. </para>
  10678. <para lang="en">
  10679. the $https variable.
  10680. </para>
  10681. </change>

  10682. <change type="feature">
  10683. <para lang="ru">
  10684. директива proxy_redirect поддерживает переменные в первом параметре.
  10685. </para>
  10686. <para lang="en">
  10687. the "proxy_redirect" directive supports variables in the first parameter.
  10688. </para>
  10689. </change>

  10690. <change type="feature">
  10691. <para lang="ru">
  10692. директива proxy_redirect поддерживает регулярные выражения.
  10693. </para>
  10694. <para lang="en">
  10695. the "proxy_redirect" directive supports regular expressions.
  10696. </para>
  10697. </change>

  10698. <change type="bugfix">
  10699. <para lang="ru">
  10700. переменная $sent_http_cache_control могла содержать неверное значение при
  10701. использовании директивы expires.<br/>
  10702. Спасибо Yichun Zhang.
  10703. </para>
  10704. <para lang="en">
  10705. the $sent_http_cache_control variable might contain a wrong value if the
  10706. "expires" directive was used.<br/>
  10707. Thanks to Yichun Zhang.
  10708. </para>
  10709. </change>

  10710. <change type="bugfix">
  10711. <para lang="ru">
  10712. директива read_ahead могла не работать при использовании совместно с
  10713. try_files и open_file_cache.
  10714. </para>
  10715. <para lang="en">
  10716. the "read_ahead" directive might not work combined with "try_files"
  10717. and "open_file_cache".
  10718. </para>
  10719. </change>

  10720. <change type="bugfix">
  10721. <para lang="ru">
  10722. если в параметре inactive директивы proxy_cache_path
  10723. было указано малое время,
  10724. в рабочем процессе мог произойти segmentation fault.
  10725. </para>
  10726. <para lang="en">
  10727. a segmentation fault might occur in a worker process
  10728. if small time was used in the "inactive" parameter of
  10729. the "proxy_cache_path" directive.
  10730. </para>
  10731. </change>

  10732. <change type="bugfix">
  10733. <para lang="ru">
  10734. ответы из кэша могли зависать.
  10735. </para>
  10736. <para lang="en">
  10737. responses from cache might hang.
  10738. </para>
  10739. </change>

  10740. </changes>


  10741. <changes ver="1.1.10" date="2011-11-30">

  10742. <change type="bugfix">
  10743. <para lang="ru">
  10744. при использовании AIO на Linux в рабочем процессе происходил segmentation fault;
  10745. ошибка появилась в 1.1.9.
  10746. </para>
  10747. <para lang="en">
  10748. a segmentation fault occurred in a worker process if AIO was used on Linux;
  10749. the bug had appeared in 1.1.9.
  10750. </para>
  10751. </change>

  10752. </changes>


  10753. <changes ver="1.1.9" date="2011-11-28">

  10754. <change type="change">
  10755. <para lang="ru">
  10756. теперь двойные кавычки экранируется при выводе SSI-командой echo.<br/>
  10757. Спасибо Зауру Абасмирзоеву.
  10758. </para>
  10759. <para lang="en">
  10760. now double quotes are encoded in an "echo" SSI-command output.<br/>
  10761. Thanks to Zaur Abasmirzoev.
  10762. </para>
  10763. </change>

  10764. <change type="feature">
  10765. <para lang="ru">
  10766. параметр valid в директиве resolver.  По умолчанию теперь
  10767. используется TTL, возвращённый DNS-сервером.<br/>
  10768. Спасибо Кириллу Коринскому.
  10769. </para>
  10770. <para lang="en">
  10771. the "valid" parameter of the "resolver" directive.  By default TTL
  10772. returned by a DNS server is used.<br/>
  10773. Thanks to Kirill A. Korinskiy.
  10774. </para>
  10775. </change>

  10776. <change type="bugfix">
  10777. <para lang="ru">
  10778. nginx мог перестать отвечать, если рабочий процесс завершался аварийно.
  10779. </para>
  10780. <para lang="en">
  10781. nginx might hang after a worker process abnormal termination.
  10782. </para>
  10783. </change>

  10784. <change type="bugfix">
  10785. <para lang="ru">
  10786. в рабочем процессе мог произойти segmentation fault,
  10787. если использовалось SNI;
  10788. ошибка появилась в 1.1.2.
  10789. </para>
  10790. <para lang="en">
  10791. a segmentation fault might occur in a worker process
  10792. if SNI was used;
  10793. the bug had appeared in 1.1.2.
  10794. </para>
  10795. </change>

  10796. <change type="bugfix">
  10797. <para lang="ru">
  10798. в директиве keepalive_disable;
  10799. ошибка появилась в 1.1.8.<br/>
  10800. Спасибо Александру Усову.
  10801. </para>
  10802. <para lang="en">
  10803. in the "keepalive_disable" directive;
  10804. the bug had appeared in 1.1.8.<br/>
  10805. Thanks to Alexander Usov.
  10806. </para>
  10807. </change>

  10808. <change type="bugfix">
  10809. <para lang="ru">
  10810. сигнал SIGWINCH переставал работать после первого обновления исполняемого
  10811. файла;
  10812. ошибка появилась в 1.1.1.
  10813. </para>
  10814. <para lang="en">
  10815. SIGWINCH signal did not work after first binary upgrade;
  10816. the bug had appeared in 1.1.1.
  10817. </para>
  10818. </change>

  10819. <change type="bugfix">
  10820. <para lang="ru">
  10821. теперь ответы бэкендов, длина которых не соответствует заголовку
  10822. Content-Length, не кэширутся.
  10823. </para>
  10824. <para lang="en">
  10825. backend responses with length not matching "Content-Length" header line
  10826. are no longer cached.
  10827. </para>
  10828. </change>

  10829. <change type="bugfix">
  10830. <para lang="ru">
  10831. в директиве scgi_param при использовании составных параметров.
  10832. </para>
  10833. <para lang="en">
  10834. in the "scgi_param" directive, if complex parameters were used.
  10835. </para>
  10836. </change>

  10837. <change type="bugfix">
  10838. <para lang="ru">
  10839. в методе epoll.<br/>
  10840. Спасибо Yichun Zhang.
  10841. </para>
  10842. <para lang="en">
  10843. in the "epoll" event method.<br/>
  10844. Thanks to Yichun Zhang.
  10845. </para>
  10846. </change>

  10847. <change type="bugfix">
  10848. <para lang="ru">
  10849. в модуле ngx_http_flv_module.<br/>
  10850. Спасибо Piotr Sikora.
  10851. </para>
  10852. <para lang="en">
  10853. in the ngx_http_flv_module.<br/>
  10854. Thanks to Piotr Sikora.
  10855. </para>
  10856. </change>

  10857. <change type="bugfix">
  10858. <para lang="ru">
  10859. в модуле ngx_http_mp4_module.
  10860. </para>
  10861. <para lang="en">
  10862. in the ngx_http_mp4_module.
  10863. </para>
  10864. </change>

  10865. <change type="bugfix">
  10866. <para lang="ru">
  10867. теперь nginx понимает IPv6-адреса в строке запроса и в заголовке Host.
  10868. </para>
  10869. <para lang="en">
  10870. IPv6 addresses are now handled properly in a request line and in a "Host"
  10871. request header line.
  10872. </para>
  10873. </change>

  10874. <change type="bugfix">
  10875. <para lang="ru">
  10876. директивы add_header и expires не работали для ответов с кодом 206,
  10877. если запрос проксировался.
  10878. </para>
  10879. <para lang="en">
  10880. "add_header" and "expires" directives did not work if a request was proxied
  10881. and response status code was 206.
  10882. </para>
  10883. </change>

  10884. <change type="bugfix">
  10885. <para lang="ru">
  10886. nginx не собирался на FreeBSD 10.
  10887. </para>
  10888. <para lang="en">
  10889. nginx could not be built on FreeBSD 10.
  10890. </para>
  10891. </change>

  10892. <change type="bugfix">
  10893. <para lang="ru">
  10894. nginx не собирался на AIX.
  10895. </para>
  10896. <para lang="en">
  10897. nginx could not be built on AIX.
  10898. </para>
  10899. </change>

  10900. </changes>


  10901. <changes ver="1.1.8" date="2011-11-14">

  10902. <change type="change">
  10903. <para lang="ru">
  10904. модуль ngx_http_limit_zone_module переименован в ngx_http_limit_conn_module.
  10905. </para>
  10906. <para lang="en">
  10907. the ngx_http_limit_zone_module was renamed to the ngx_http_limit_conn_module.
  10908. </para>
  10909. </change>

  10910. <change type="change">
  10911. <para lang="ru">
  10912. директива limit_zone заменена директивой limit_conn_zone с новым синтаксисом.
  10913. </para>
  10914. <para lang="en">
  10915. the "limit_zone" directive was superseded by the "limit_conn_zone" directive
  10916. with a new syntax.
  10917. </para>
  10918. </change>

  10919. <change type="feature">
  10920. <para lang="ru">
  10921. поддержка ограничения по нескольким limit_conn на одном уровне.
  10922. </para>
  10923. <para lang="en">
  10924. support for multiple "limit_conn" limits on the same level.
  10925. </para>
  10926. </change>

  10927. <change type="feature">
  10928. <para lang="ru">
  10929. директива image_filter_sharpen.
  10930. </para>
  10931. <para lang="en">
  10932. the "image_filter_sharpen" directive.
  10933. </para>
  10934. </change>

  10935. <change type="bugfix">
  10936. <para lang="ru">
  10937. в рабочем процессе мог произойти segmentation fault,
  10938. если resolver получил большой DNS-ответ.<br/>
  10939. Спасибо Ben Hawkes.
  10940. </para>
  10941. <para lang="en">
  10942. a segmentation fault might occur in a worker process
  10943. if resolver got a big DNS response.<br/>
  10944. Thanks to Ben Hawkes.
  10945. </para>
  10946. </change>

  10947. <change type="bugfix">
  10948. <para lang="ru">
  10949. в вычислении ключа для кэширования,
  10950. если использовалась внутренняя реализация MD5;
  10951. ошибка появилась в 1.0.4.
  10952. </para>
  10953. <para lang="en">
  10954. in cache key calculation
  10955. if internal MD5 implementation was used;
  10956. the bug had appeared in 1.0.4.
  10957. </para>
  10958. </change>

  10959. <change type="bugfix">
  10960. <para lang="ru">
  10961. строки "If-Modified-Since", "If-Range" и им подобные в заголовке запроса
  10962. клиента могли передаваться бэкенду при кэшировании; или не передаваться при
  10963. выключенном кэшировании, если кэширование было включено в другой части
  10964. конфигурации.
  10965. </para>
  10966. <para lang="en">
  10967. the "If-Modified-Since", "If-Range", etc. client request header lines
  10968. might be passed to backend while caching; or not passed without caching
  10969. if caching was enabled in another part of the configuration.
  10970. </para>
  10971. </change>

  10972. <change type="bugfix">
  10973. <para lang="ru">
  10974. модуль ngx_http_mp4_module выдавал неверную строку "Content-Length"
  10975. в заголовке ответа, использовался аргумент start.<br/>
  10976. Спасибо Piotr Sikora.
  10977. </para>
  10978. <para lang="en">
  10979. the module ngx_http_mp4_module sent incorrect "Content-Length" response
  10980. header line if the "start" argument was used.<br/>
  10981. Thanks to Piotr Sikora.
  10982. </para>
  10983. </change>

  10984. </changes>


  10985. <changes ver="1.1.7" date="2011-10-31">

  10986. <change type="feature">
  10987. <para lang="ru">
  10988. поддержка нескольких DNS серверов в директиве "resolver".<br/>
  10989. Спасибо Кириллу Коринскому.
  10990. </para>
  10991. <para lang="en">
  10992. support of several DNS servers in the "resolver" directive.<br/>
  10993. Thanks to Kirill A. Korinskiy.
  10994. </para>
  10995. </change>

  10996. <change type="bugfix">
  10997. <para lang="ru">
  10998. на старте или во время переконфигурации происходил segmentation fault,
  10999. если директива ssl использовалась на уровне http и не был указан
  11000. ssl_certificate.
  11001. </para>
  11002. <para lang="en">
  11003. a segmentation fault occurred on start or during reconfiguration
  11004. if the "ssl" directive was used at http level and there was
  11005. no "ssl_certificate" defined.
  11006. </para>
  11007. </change>

  11008. <change type="bugfix">
  11009. <para lang="ru">
  11010. уменьшено потребление памяти при проксировании больших файлов,
  11011. если они буферизировались на диск.
  11012. </para>
  11013. <para lang="en">
  11014. reduced memory consumption while proxying big files
  11015. if they were buffered to disk.
  11016. </para>
  11017. </change>

  11018. <change type="bugfix">
  11019. <para lang="ru">
  11020. в рабочем процессе мог произойти segmentation fault,
  11021. если использовалась директива "proxy_http_version 1.1".
  11022. </para>
  11023. <para lang="en">
  11024. a segmentation fault might occur in a worker process
  11025. if "proxy_http_version 1.1" directive was used.
  11026. </para>
  11027. </change>

  11028. <change type="bugfix">
  11029. <para lang="ru">
  11030. в директиве "expires @time".
  11031. </para>
  11032. <para lang="en">
  11033. in the "expires @time" directive.
  11034. </para>
  11035. </change>

  11036. </changes>


  11037. <changes ver="1.1.6" date="2011-10-17">

  11038. <change>
  11039. <para lang="ru">
  11040. Изменение во внутреннем API: теперь при внутреннем редиректе
  11041. в именованный location контексты модулей очищаются.<br/>
  11042. По запросу Yichun Zhang.
  11043. </para>
  11044. <para lang="en">
  11045. Change in internal API: now module context data are cleared
  11046. while internal redirect to named location.<br/>
  11047. Requested by Yichun Zhang.
  11048. </para>
  11049. </change>

  11050. <change type="change">
  11051. <para lang="ru">
  11052. теперь если сервер, описанный в блоке upstream, был признан неработающим,
  11053. то после истечения fail_timeout на него будет отправлен только один запрос;
  11054. сервер будет считаться работающим, если успешно ответит на этот запрос.
  11055. </para>
  11056. <para lang="en">
  11057. if a server in an upstream failed, only one request will be sent to it
  11058. after fail_timeout; the server will be considered alive if it will
  11059. successfully respond to the request.
  11060. </para>
  11061. </change>

  11062. <change type="change">
  11063. <para lang="ru">
  11064. теперь символы 0x7F-0xFF в access_log записываются в виде \xXX.
  11065. </para>
  11066. <para lang="en">
  11067. now the 0x7F-0xFF characters are escaped as \xXX in an access_log.
  11068. </para>
  11069. </change>

  11070. <change type="feature">
  11071. <para lang="ru">
  11072. директивы "proxy/fastcgi/scgi/uwsgi_ignore_headers" теперь поддерживают
  11073. значения X-Accel-Limit-Rate, X-Accel-Buffering и X-Accel-Charset.
  11074. </para>
  11075. <para lang="en">
  11076. "proxy/fastcgi/scgi/uwsgi_ignore_headers" directives support the following
  11077. additional values: X-Accel-Limit-Rate, X-Accel-Buffering, X-Accel-Charset.
  11078. </para>
  11079. </change>

  11080. <change type="feature">
  11081. <para lang="ru">
  11082. уменьшение потребления памяти при использовании SSL.
  11083. </para>
  11084. <para lang="en">
  11085. decrease of memory consumption if SSL is used.
  11086. </para>
  11087. </change>

  11088. <change type="bugfix">
  11089. <para lang="ru">
  11090. некоторые UTF-8 символы обрабатывались неправильно.<br/>
  11091. Спасибо Алексею Куцу.
  11092. </para>
  11093. <para lang="en">
  11094. some UTF-8 characters were processed incorrectly.<br/>
  11095. Thanks to Alexey Kuts.
  11096. </para>
  11097. </change>

  11098. <change type="bugfix">
  11099. <para lang="ru">
  11100. директивы модуля ngx_http_rewrite_module, заданные на уровне server,
  11101. применялись повторно, если для запроса не находилось ни одного location'а.
  11102. </para>
  11103. <para lang="en">
  11104. the ngx_http_rewrite_module directives specified at "server" level were
  11105. executed twice if no matching locations were defined.
  11106. </para>
  11107. </change>

  11108. <change type="bugfix">
  11109. <para lang="ru">
  11110. при использовании "aio sendfile" могла происходить утечка сокетов.
  11111. </para>
  11112. <para lang="en">
  11113. a socket leak might occurred if "aio sendfile" was used.
  11114. </para>
  11115. </change>

  11116. <change type="bugfix">
  11117. <para lang="ru">
  11118. при использовании файлового AIO соединения с быстрыми клиентами
  11119. могли быть закрыты по истечению send_timeout.
  11120. </para>
  11121. <para lang="en">
  11122. connections with fast clients might be closed after send_timeout
  11123. if file AIO was used.
  11124. </para>
  11125. </change>

  11126. <change type="bugfix">
  11127. <para lang="ru">
  11128. в модуле ngx_http_autoindex_module.
  11129. </para>
  11130. <para lang="en">
  11131. in the ngx_http_autoindex_module.
  11132. </para>
  11133. </change>

  11134. <change type="bugfix">
  11135. <para lang="ru">
  11136. модуль ngx_http_mp4_module не поддерживал перемотку на 32-битных платформах.
  11137. </para>
  11138. <para lang="en">
  11139. the module ngx_http_mp4_module did not support seeking on 32-bit platforms.
  11140. </para>
  11141. </change>

  11142. </changes>


  11143. <changes ver="1.1.5" date="2011-10-05">

  11144. <change type="feature">
  11145. <para lang="ru">
  11146. директивы uwsgi_buffering и scgi_buffering.<br/>
  11147. Спасибо Peter Smit.
  11148. </para>
  11149. <para lang="en">
  11150. the "uwsgi_buffering" and "scgi_buffering" directives.<br/>
  11151. Thanks to Peter Smit.
  11152. </para>
  11153. </change>

  11154. <change type="bugfix">
  11155. <para lang="ru">
  11156. при использовании proxy_cache_bypass могли быть закэшированы
  11157. некэшируемые ответы.<br/>
  11158. Спасибо John Ferlito.
  11159. </para>
  11160. <para lang="en">
  11161. non-cacheable responses might be cached if "proxy_cache_bypass" directive
  11162. was used.<br/>
  11163. Thanks to John Ferlito.
  11164. </para>
  11165. </change>

  11166. <change type="bugfix">
  11167. <para lang="ru">
  11168. в модуле ngx_http_proxy_module при работе с бэкендами по HTTP/1.1.
  11169. </para>
  11170. <para lang="en">
  11171. in HTTP/1.1 support in the ngx_http_proxy_module.
  11172. </para>
  11173. </change>

  11174. <change type="bugfix">
  11175. <para lang="ru">
  11176. закэшированные ответы с пустым телом возвращались некорректно;
  11177. ошибка появилась в 0.8.31.
  11178. </para>
  11179. <para lang="en">
  11180. cached responses with an empty body were returned incorrectly;
  11181. the bug had appeared in 0.8.31.
  11182. </para>
  11183. </change>

  11184. <change type="bugfix">
  11185. <para lang="ru">
  11186. ответы с кодом 201 модуля ngx_http_dav_module были некорректны;
  11187. ошибка появилась в 0.8.32.
  11188. </para>
  11189. <para lang="en">
  11190. 201 responses of the ngx_http_dav_module were incorrect;
  11191. the bug had appeared in 0.8.32.
  11192. </para>
  11193. </change>

  11194. <change type="bugfix">
  11195. <para lang="ru">
  11196. в директиве return.
  11197. </para>
  11198. <para lang="en">
  11199. in the "return" directive.
  11200. </para>
  11201. </change>

  11202. <change type="bugfix">
  11203. <para lang="ru">
  11204. при использовании директивы "ssl_session_cache builtin" происходил
  11205. segmentation fault;
  11206. ошибка появилась в 1.1.1.
  11207. </para>
  11208. <para lang="en">
  11209. the "ssl_session_cache builtin" directive caused segmentation fault;
  11210. the bug had appeared in 1.1.1.
  11211. </para>
  11212. </change>

  11213. </changes>


  11214. <changes ver="1.1.4" date="2011-09-20">

  11215. <change type="feature">
  11216. <para lang="ru">
  11217. модуль ngx_http_upstream_keepalive.
  11218. </para>
  11219. <para lang="en">
  11220. the ngx_http_upstream_keepalive module.
  11221. </para>
  11222. </change>

  11223. <change type="feature">
  11224. <para lang="ru">
  11225. директива proxy_http_version.
  11226. </para>
  11227. <para lang="en">
  11228. the "proxy_http_version" directive.
  11229. </para>
  11230. </change>

  11231. <change type="feature">
  11232. <para lang="ru">
  11233. директива fastcgi_keep_conn.
  11234. </para>
  11235. <para lang="en">
  11236. the "fastcgi_keep_conn" directive.
  11237. </para>
  11238. </change>

  11239. <change type="feature">
  11240. <para lang="ru">
  11241. директива worker_aio_requests.
  11242. </para>
  11243. <para lang="en">
  11244. the "worker_aio_requests" directive.
  11245. </para>
  11246. </change>

  11247. <change type="bugfix">
  11248. <para lang="ru">
  11249. если nginx был собран с файловым AIO,
  11250. он не мог запускаться на Linux без поддержки AIO.
  11251. </para>
  11252. <para lang="en">
  11253. if nginx was built --with-file-aio it could not be run on Linux
  11254. kernel which did not support AIO.
  11255. </para>
  11256. </change>

  11257. <change type="bugfix">
  11258. <para lang="ru">
  11259. в обработке ошибок при работе с Linux AIO.
  11260. <br/>
  11261. Спасибо Hagai Avrahami.
  11262. </para>
  11263. <para lang="en">
  11264. in Linux AIO error processing.
  11265. <br/>
  11266. Thanks to Hagai Avrahami.
  11267. </para>
  11268. </change>

  11269. <change type="bugfix">
  11270. <para lang="ru">
  11271. уменьшено потребление памяти для долгоживущих запросов.
  11272. </para>
  11273. <para lang="en">
  11274. reduced memory consumption for long-lived requests.
  11275. </para>
  11276. </change>

  11277. <change type="bugfix">
  11278. <para lang="ru">
  11279. модуль ngx_http_mp4_module не поддерживал 64-битный MP4-атом co64.
  11280. </para>
  11281. <para lang="en">
  11282. the module ngx_http_mp4_module did not support 64-bit MP4 "co64" atom.
  11283. </para>
  11284. </change>

  11285. </changes>


  11286. <changes ver="1.1.3" date="2011-09-14">

  11287. <change type="feature">
  11288. <para lang="ru">
  11289. модуль ngx_http_mp4_module.
  11290. </para>
  11291. <para lang="en">
  11292. the module ngx_http_mp4_module.
  11293. </para>
  11294. </change>

  11295. <change type="bugfix">
  11296. <para lang="ru">
  11297. в Linux AIO, используемым совместно с open_file_cache.
  11298. </para>
  11299. <para lang="en">
  11300. in Linux AIO combined with open_file_cache.
  11301. </para>
  11302. </change>

  11303. <change type="bugfix">
  11304. <para lang="ru">
  11305. open_file_cache не обновлял информацию о файле,
  11306. если файл был изменён не атомарно.
  11307. </para>
  11308. <para lang="en">
  11309. open_file_cache did not update file info on retest
  11310. if file was not atomically changed.
  11311. </para>
  11312. </change>

  11313. <change type="bugfix">
  11314. <para lang="ru">
  11315. nginx не собирался на MacOSX 10.7.
  11316. </para>
  11317. <para lang="en">
  11318. nginx could not be built on MacOSX 10.7.
  11319. </para>
  11320. </change>

  11321. </changes>


  11322. <changes ver="1.1.2" date="2011-09-05">

  11323. <change type="change">
  11324. <para lang="ru">
  11325. теперь, если суммарный размер всех диапазонов больше размера исходного ответа,
  11326. то nginx возвращает только исходный ответ, не обрабатывая диапазоны.
  11327. </para>
  11328. <para lang="en">
  11329. now if total size of all ranges is greater than source response size,
  11330. then nginx disables ranges and returns just the source response.
  11331. </para>
  11332. </change>

  11333. <change type="feature">
  11334. <para lang="ru">
  11335. директива max_ranges.
  11336. </para>
  11337. <para lang="en">
  11338. the "max_ranges" directive.
  11339. </para>
  11340. </change>

  11341. <change type="bugfix">
  11342. <para lang="ru">
  11343. директивы ssl_verify_client, ssl_verify_depth и ssl_prefer_server_cipher
  11344. могли работать некорректно, если использовался SNI.
  11345. </para>
  11346. <para lang="en">
  11347. the "ssl_verify_client", "ssl_verify_depth", and "ssl_prefer_server_ciphers"
  11348. directives might work incorrectly if SNI was used.
  11349. </para>
  11350. </change>

  11351. <change type="bugfix">
  11352. <para lang="ru">
  11353. в директивах proxy/fastcgi/scgi/ uwsgi_ignore_client_abort.
  11354. </para>
  11355. <para lang="en">
  11356. in the "proxy/fastcgi/scgi/uwsgi_ignore_client_abort" directives.
  11357. </para>
  11358. </change>

  11359. </changes>


  11360. <changes ver="1.1.1" date="2011-08-22">

  11361. <change type="change">
  11362. <para lang="ru">
  11363. теперь загрузчик кэша за каждую итерацию либо обрабатывает число файлов,
  11364. указанное в параметре load_files, либо работает не дольше времени,
  11365. указанного в параметре loader_threshold.
  11366. </para>
  11367. <para lang="en">
  11368. now cache loader processes either as many files as specified by "loader_files"
  11369. parameter or works no longer than time specified by the "loader_threshold"
  11370. parameter during each iteration.
  11371. </para>
  11372. </change>

  11373. <change type="change">
  11374. <para lang="ru">
  11375. SIGWINCH сигнал теперь работает только в режиме демона.
  11376. </para>
  11377. <para lang="en">
  11378. now SIGWINCH signal works only in daemon mode.
  11379. </para>
  11380. </change>

  11381. <change type="feature">
  11382. <para lang="ru">
  11383. теперь разделяемые зоны и кэши используют семафоры POSIX на Solaris.<br/>
  11384. Спасибо Денису Иванову.
  11385. </para>
  11386. <para lang="en">
  11387. now shared zones and caches use POSIX semaphores on Solaris.<br/>
  11388. Thanks to Den Ivanov.
  11389. </para>
  11390. </change>

  11391. <change type="feature">
  11392. <para lang="ru">
  11393. теперь на NetBSD поддерживаются accept фильтры.
  11394. </para>
  11395. <para lang="en">
  11396. accept filters are now supported on NetBSD.
  11397. </para>
  11398. </change>

  11399. <change type="bugfix">
  11400. <para lang="ru">
  11401. nginx не собирался на Linux 3.0.
  11402. </para>
  11403. <para lang="en">
  11404. nginx could not be built on Linux 3.0.
  11405. </para>
  11406. </change>

  11407. <change type="bugfix">
  11408. <para lang="ru">
  11409. в некоторых случаях nginx не использовал сжатие;
  11410. ошибка появилась в 1.1.0.
  11411. </para>
  11412. <para lang="en">
  11413. nginx did not use gzipping in some cases;
  11414. the bug had appeared in 1.1.0.
  11415. </para>
  11416. </change>

  11417. <change type="bugfix">
  11418. <para lang="ru">
  11419. обработка тела запроса могла быть неверной, если клиент использовал pipelining.
  11420. </para>
  11421. <para lang="en">
  11422. request body might be processed incorrectly if client used pipelining.
  11423. </para>
  11424. </change>

  11425. <change type="bugfix">
  11426. <para lang="ru">
  11427. в директиве request_body_in_single_buf.
  11428. </para>
  11429. <para lang="en">
  11430. in the "request_body_in_single_buf" directive.
  11431. </para>
  11432. </change>

  11433. <change type="bugfix">
  11434. <para lang="ru">
  11435. в директивах proxy_set_body и proxy_pass_request_body
  11436. при использовании SSL-соединения с бэкендом.
  11437. </para>
  11438. <para lang="en">
  11439. in "proxy_set_body" and "proxy_pass_request_body" directives
  11440. if SSL connection to backend was used.
  11441. </para>
  11442. </change>

  11443. <change type="bugfix">
  11444. <para lang="ru">
  11445. nginx нагружал процессор, если все серверы в upstream'е были помечены
  11446. флагом down.
  11447. </para>
  11448. <para lang="en">
  11449. nginx hogged CPU if all servers in an upstream were marked as "down".
  11450. </para>
  11451. </change>

  11452. <change type="bugfix">
  11453. <para lang="ru">
  11454. при переконфигурации мог произойти segmentation fault,
  11455. если в предыдущей конфигурации был определён, но не использовался
  11456. ssl_session_cache.
  11457. </para>
  11458. <para lang="en">
  11459. a segmentation fault might occur during reconfiguration
  11460. if ssl_session_cache was defined but not used in previous configuration.
  11461. </para>
  11462. </change>

  11463. <change type="bugfix">
  11464. <para lang="ru">
  11465. при использовании большого количества backup-серверов
  11466. в рабочем процессе мог произойти segmentation fault.
  11467. </para>
  11468. <para lang="en">
  11469. a segmentation fault might occur in a worker process
  11470. if many backup servers were used in an upstream.
  11471. </para>
  11472. </change>

  11473. <change type="bugfix">
  11474. <para lang="ru">
  11475. при использовании директив fastcgi/scgi/uwsgi_param
  11476. со значениями, начинающимися со строки "HTTP_",
  11477. в рабочем процессе мог произойти segmentation fault;
  11478. ошибка появилась в 0.8.40.
  11479. </para>
  11480. <para lang="en">
  11481. a segmentation fault might occur in a worker process
  11482. if "fastcgi/scgi/uwsgi_param" directives were used
  11483. with values starting with "HTTP_";
  11484. the bug had appeared in 0.8.40.
  11485. </para>
  11486. </change>

  11487. </changes>


  11488. <changes ver="1.1.0" date="2011-08-01">

  11489. <change type="feature">
  11490. <para lang="ru">
  11491. уменьшение времени работы загрузчика кэша.
  11492. </para>
  11493. <para lang="en">
  11494. cache loader run time decrease.
  11495. </para>
  11496. </change>

  11497. <change type="feature">
  11498. <para lang="ru">
  11499. параметры loader_files, loader_sleep и loader_threshold
  11500. директив proxy/fastcgi/scgi/uwsgi_cache_path.
  11501. </para>
  11502. <para lang="en">
  11503. "loader_files", "loader_sleep", and "loader_threshold" options
  11504. of the "proxy/fastcgi/scgi/uwsgi_cache_path" directives.
  11505. </para>
  11506. </change>

  11507. <change type="feature">
  11508. <para lang="ru">
  11509. уменьшение времени загрузки конфигураций с большим количеством HTTPS серверов.
  11510. </para>
  11511. <para lang="en">
  11512. loading time decrease of configuration with large number of HTTPS sites.
  11513. </para>
  11514. </change>

  11515. <change type="feature">
  11516. <para lang="ru">
  11517. теперь nginx поддерживает шифры с обменом ECDHE-ключами.<br/>
  11518. Спасибо Adrian Kotelba.
  11519. </para>
  11520. <para lang="en">
  11521. now nginx supports ECDHE key exchange ciphers.<br/>
  11522. Thanks to Adrian Kotelba.
  11523. </para>
  11524. </change>

  11525. <change type="feature">
  11526. <para lang="ru">
  11527. директива lingering_close.<br/>
  11528. Спасибо Максиму Дунину.
  11529. </para>
  11530. <para lang="en">
  11531. the "lingering_close" directive.<br/>
  11532. Thanks to Maxim Dounin.
  11533. </para>
  11534. </change>

  11535. <change type="bugfix">
  11536. <para lang="ru">
  11537. закрытия соединения для pipelined-запросов.<br/>
  11538. Спасибо Максиму Дунину.
  11539. </para>
  11540. <para lang="en">
  11541. in closing connection for pipelined requests.<br/>
  11542. Thanks to Maxim Dounin.
  11543. </para>
  11544. </change>

  11545. <change type="bugfix">
  11546. <para lang="ru">
  11547. nginx не запрещал сжатие при получении значения "gzip;q=0"
  11548. в строке "Accept-Encoding" в заголовке запроса клиента.
  11549. </para>
  11550. <para lang="en">
  11551. nginx did not disable gzipping if client sent "gzip;q=0" in
  11552. "Accept-Encoding" request header line.
  11553. </para>
  11554. </change>

  11555. <change type="bugfix">
  11556. <para lang="ru">
  11557. таймаута при небуферизированном проксировании.<br/>
  11558. Спасибо Максиму Дунину.
  11559. </para>
  11560. <para lang="en">
  11561. in timeout in unbuffered proxied mode.<br/>
  11562. Thanks to Maxim Dounin.
  11563. </para>
  11564. </change>

  11565. <change type="bugfix">
  11566. <para lang="ru">
  11567. утечки памяти при использовании переменных в директиве proxy_pass
  11568. при работе с бэкендом по HTTPS.<br/>
  11569. Спасибо Максиму Дунину.
  11570. </para>
  11571. <para lang="en">
  11572. memory leaks when a "proxy_pass" directive contains variables and proxies
  11573. to an HTTPS backend.<br/>
  11574. Thanks to Maxim Dounin.
  11575. </para>
  11576. </change>

  11577. <change type="bugfix">
  11578. <para lang="ru">
  11579. в проверке параметра директивы proxy_pass, заданного переменными.<br/>
  11580. Спасибо Lanshun Zhou.
  11581. </para>
  11582. <para lang="en">
  11583. in parameter validation of a "proxy_pass" directive with variables.<br/>
  11584. Thanks to Lanshun Zhou.
  11585. </para>
  11586. </change>

  11587. <change type="bugfix">
  11588. <para lang="ru">
  11589. SSL не работал на QNX.<br/>
  11590. Спасибо Максиму Дунину.
  11591. </para>
  11592. <para lang="en">
  11593. SSL did not work on QNX.<br/>
  11594. Thanks to Maxim Dounin.
  11595. </para>
  11596. </change>

  11597. <change type="bugfix">
  11598. <para lang="ru">
  11599. SSL модули не собирались gcc 4.6 без параметра --with-debug.
  11600. </para>
  11601. <para lang="en">
  11602. SSL modules could not be built by gcc 4.6 without --with-debug option.
  11603. </para>
  11604. </change>

  11605. </changes>


  11606. <changes ver="1.0.5" date="2011-07-19">

  11607. <change type="change">
  11608. <para lang="ru">
  11609. теперь по умолчанию используются следующие шифры SSL: "HIGH:!aNULL:!MD5".<br/>
  11610. Спасибо Rob Stradling.
  11611. </para>
  11612. <para lang="en">
  11613. now default SSL ciphers are "HIGH:!aNULL:!MD5".<br/>
  11614. Thanks to Rob Stradling.
  11615. </para>
  11616. </change>

  11617. <change type="feature">
  11618. <para lang="ru">
  11619. директивы referer_hash_max_size и referer_hash_bucket_size.<br/>
  11620. Спасибо Witold Filipczyk.
  11621. </para>
  11622. <para lang="en">
  11623. the "referer_hash_max_size" and "referer_hash_bucket_size"
  11624. directives.<br/>
  11625. Thanks to Witold Filipczyk.
  11626. </para>
  11627. </change>

  11628. <change type="feature">
  11629. <para lang="ru">
  11630. переменная $uid_reset.
  11631. </para>
  11632. <para lang="en">
  11633. $uid_reset variable.
  11634. </para>
  11635. </change>

  11636. <change type="bugfix">
  11637. <para lang="ru">
  11638. при использовании кэширования
  11639. в рабочем процессе мог произойти segmentation fault.<br/>
  11640. Спасибо Lanshun Zhou.
  11641. </para>
  11642. <para lang="en">
  11643. a segmentation fault might occur in a worker process,
  11644. if a caching was used.<br/>
  11645. Thanks to Lanshun Zhou.
  11646. </para>
  11647. </change>

  11648. <change type="bugfix">
  11649. <para lang="ru">
  11650. при использовании кэширования рабочие процессы
  11651. могли зациклиться во время переконфигурации;
  11652. ошибка появилась в 0.8.48.<br/>
  11653. Спасибо Максиму Дунину.
  11654. </para>
  11655. <para lang="en">
  11656. worker processes may got caught in an endless loop during reconfiguration,
  11657. if a caching was used;
  11658. the bug had appeared in 0.8.48.<br/>
  11659. Thanks to Maxim Dounin.
  11660. </para>
  11661. </change>

  11662. <change type="bugfix">
  11663. <para lang="ru">
  11664. сообщения "stalled cache updating".<br/>
  11665. Спасибо Максиму Дунину.
  11666. </para>
  11667. <para lang="en">
  11668. "stalled cache updating" alert.<br/>
  11669. Thanks to Maxim Dounin.
  11670. </para>
  11671. </change>

  11672. </changes>


  11673. <changes ver="1.0.4" date="2011-06-01">

  11674. <change type="change">
  11675. <para lang="ru">
  11676. теперь в регулярных выражениях в директиве map можно задать
  11677. чувствительность к регистру с помощью префиксов "~" и "~*".
  11678. </para>
  11679. <para lang="en">
  11680. now regular expressions case sensitivity in the "map" directive
  11681. is given by prefixes "~" or "~*".
  11682. </para>
  11683. </change>

  11684. <change type="feature">
  11685. <para lang="ru">
  11686. теперь разделяемые зоны и кэши используют семафоры POSIX на Linux.<br/>
  11687. Спасибо Денису Латыпову.
  11688. </para>
  11689. <para lang="en">
  11690. now shared zones and caches use POSIX semaphores on Linux.<br/>
  11691. Thanks to Denis F. Latypoff.
  11692. </para>
  11693. </change>

  11694. <change type="bugfix">
  11695. <para lang="ru">
  11696. сообщения "stalled cache updating".
  11697. </para>
  11698. <para lang="en">
  11699. "stalled cache updating" alert.
  11700. </para>
  11701. </change>

  11702. <change type="bugfix">
  11703. <para lang="ru">
  11704. nginx не собирался с параметром --without-http_auth_basic_module;
  11705. ошибка появилась в 1.0.3.
  11706. </para>
  11707. <para lang="en">
  11708. nginx could not be built --without-http_auth_basic_module;
  11709. the bug had appeared in 1.0.3.
  11710. </para>
  11711. </change>

  11712. </changes>


  11713. <changes ver="1.0.3" date="2011-05-25">

  11714. <change type="feature">
  11715. <para lang="ru">
  11716. директива auth_basic_user_file поддерживает шифрование пароля
  11717. методами "$apr1", "{PLAIN}" и "{SSHA}".<br/>
  11718. Спасибо Максиму Дунину.
  11719. </para>
  11720. <para lang="en">
  11721. the "auth_basic_user_file" directive supports "$apr1", "{PLAIN}",
  11722. and "{SSHA}" password encryption methods.<br/>
  11723. Thanks to Maxim Dounin.
  11724. </para>
  11725. </change>

  11726. <change type="feature">
  11727. <para lang="ru">
  11728. директива geoip_org и переменная $geoip_org.<br/>
  11729. Спасибо Александру Ускову, Arnaud Granal и Денису Латыпову.
  11730. </para>
  11731. <para lang="en">
  11732. the "geoip_org" directive and $geoip_org variable.<br/>
  11733. Thanks to Alexander Uskov, Arnaud Granal, and Denis F. Latypoff.
  11734. </para>
  11735. </change>

  11736. <change type="feature">
  11737. <para lang="ru">
  11738. модули ngx_http_geo_module и ngx_http_geoip_module поддерживают
  11739. адреса IPv4, отображённые на IPv6 адреса.
  11740. </para>
  11741. <para lang="en">
  11742. ngx_http_geo_module and ngx_http_geoip_module support IPv4 addresses
  11743. mapped to IPv6 addresses.
  11744. </para>
  11745. </change>

  11746. <change type="bugfix">
  11747. <para lang="ru">
  11748. при проверке адреса IPv4, отображённого на адрес IPv6,
  11749. в рабочем процессе происходил segmentation fault,
  11750. если директивы access или deny были определены только для адресов IPv6;
  11751. ошибка появилась в 0.8.22.
  11752. </para>
  11753. <para lang="en">
  11754. a segmentation fault occurred in a worker process
  11755. during testing IPv4 address mapped to IPv6 address,
  11756. if access or deny rules were defined only for IPv6;
  11757. the bug had appeared in 0.8.22.
  11758. </para>
  11759. </change>

  11760. <change type="bugfix">
  11761. <para lang="ru">
  11762. закэшированный ответ мог быть испорчен, если значения директив
  11763. proxy/fastcgi/scgi/uwsgi_cache_bypass и proxy/fastcgi/scgi/ uwsgi_no_cache
  11764. были разными;
  11765. ошибка появилась в 0.8.46.
  11766. </para>
  11767. <para lang="en">
  11768. a cached response may be broken if "proxy/fastcgi/scgi/ uwsgi_cache_bypass"
  11769. and "proxy/fastcgi/scgi/uwsgi_no_cache" directive values were different;
  11770. the bug had appeared in 0.8.46.
  11771. </para>
  11772. </change>

  11773. </changes>


  11774. <changes ver="1.0.2" date="2011-05-10">

  11775. <change type="feature">
  11776. <para lang="ru">
  11777. теперь разделяемые зоны и кэши используют семафоры POSIX.
  11778. </para>
  11779. <para lang="en">
  11780. now shared zones and caches use POSIX semaphores.
  11781. </para>
  11782. </change>

  11783. <change type="bugfix">
  11784. <para lang="ru">
  11785. в работе параметра rotate директивы image_filter.<br/>
  11786. Спасибо Adam Bocim.
  11787. </para>
  11788. <para lang="en">
  11789. in the "rotate" parameter of the "image_filter" directive.<br/>
  11790. Thanks to Adam Bocim.
  11791. </para>
  11792. </change>

  11793. <change type="bugfix">
  11794. <para lang="ru">
  11795. nginx не собирался на Solaris;
  11796. ошибка появилась в 1.0.1.
  11797. </para>
  11798. <para lang="en">
  11799. nginx could not be built on Solaris;
  11800. the bug had appeared in 1.0.1.
  11801. </para>
  11802. </change>

  11803. </changes>


  11804. <changes ver="1.0.1" date="2011-05-03">

  11805. <change type="change">
  11806. <para lang="ru">
  11807. теперь директива split_clients использует алгоритм MurmurHash2 из-за
  11808. лучшего распределения.<br/>
  11809. Спасибо Олегу Мамонтову.
  11810. </para>
  11811. <para lang="en">
  11812. now the "split_clients" directive uses MurmurHash2 algorithm because
  11813. of better distribution.<br/>
  11814. Thanks to Oleg Mamontov.
  11815. </para>
  11816. </change>

  11817. <change type="change">
  11818. <para lang="ru">
  11819. теперь длинные строки, начинающиеся с нуля, не считаются ложными
  11820. значениями.<br/>
  11821. Спасибо Максиму Дунину.
  11822. </para>
  11823. <para lang="en">
  11824. now long strings starting with zero are not considered as false values.<br/>
  11825. Thanks to Maxim Dounin.
  11826. </para>
  11827. </change>

  11828. <change type="change">
  11829. <para lang="ru">
  11830. теперь по умолчанию nginx использует значение 511 для listen backlog на Linux.
  11831. </para>
  11832. <para lang="en">
  11833. now nginx uses a default listen backlog value 511 on Linux.
  11834. </para>
  11835. </change>

  11836. <change type="feature">
  11837. <para lang="ru">
  11838. переменные $upstream_... можно использовать в SSI и перловом модулях.
  11839. </para>
  11840. <para lang="en">
  11841. the $upstream_... variables may be used in the SSI and perl modules.
  11842. </para>
  11843. </change>

  11844. <change type="bugfix">
  11845. <para lang="ru">
  11846. теперь nginx лучше ограничивает размер кэша на диске.<br/>
  11847. Спасибо Олегу Мамонтову.
  11848. </para>
  11849. <para lang="en">
  11850. now nginx limits better disk cache size.<br/>
  11851. Thanks to Oleg Mamontov.
  11852. </para>
  11853. </change>

  11854. <change type="bugfix">
  11855. <para lang="ru">
  11856. при парсинге неправильного IPv4 адреса мог произойти segmentation fault;
  11857. ошибка появилась в 0.8.22.<br/>
  11858. Спасибо Максиму Дунину.
  11859. </para>
  11860. <para lang="en">
  11861. a segmentation fault might occur while parsing incorrect IPv4 address;
  11862. the bug had appeared in 0.9.3.<br/>
  11863. Thanks to Maxim Dounin.
  11864. </para>
  11865. </change>

  11866. <change type="bugfix">
  11867. <para lang="ru">
  11868. nginx не собирался gcc 4.6 без параметра --with-debug.
  11869. </para>
  11870. <para lang="en">
  11871. nginx could not be built by gcc 4.6 without --with-debug option.
  11872. </para>
  11873. </change>

  11874. <change type="bugfix">
  11875. <para lang="ru">
  11876. nginx не собирался на Solaris 9 и более ранних;
  11877. ошибка появилась в 0.9.3.<br/>
  11878. Спасибо Dagobert Michelsen.
  11879. </para>
  11880. <para lang="en">
  11881. nginx could not be built on Solaris 9 and earlier;
  11882. the bug had appeared in 0.9.3.<br/>
  11883. Thanks to Dagobert Michelsen.
  11884. </para>
  11885. </change>

  11886. <change type="bugfix">
  11887. <para lang="ru">
  11888. переменная $request_time имела неверные значения, если использовались
  11889. подзапросы;
  11890. ошибка появилась в 0.8.47.<br/>
  11891. Спасибо Игорю А. Валькову.
  11892. </para>
  11893. <para lang="en">
  11894. $request_time variable had invalid values if subrequests were used;
  11895. the bug had appeared in 0.8.47.<br/>
  11896. Thanks to Igor A. Valcov.
  11897. </para>
  11898. </change>

  11899. </changes>


  11900. <changes ver="1.0.0" date="2011-04-12">

  11901. <change type="bugfix">
  11902. <para lang="ru">
  11903. cache manager мог нагружать процессор после переконфигурации.<br/>
  11904. Спасибо Максиму Дунину.
  11905. </para>
  11906. <para lang="en">
  11907. a cache manager might hog CPU after reload.<br/>
  11908. Thanks to Maxim Dounin.
  11909. </para>
  11910. </change>

  11911. <change type="bugfix">
  11912. <para lang="ru">
  11913. директива "image_filter crop" неправильно работала в сочетании с
  11914. "image_filter rotate 180".
  11915. </para>
  11916. <para lang="en">
  11917. an "image_filter crop" directive worked incorrectly coupled with
  11918. an "image_filter rotate 180" directive.
  11919. </para>
  11920. </change>

  11921. <change type="bugfix">
  11922. <para lang="ru">
  11923. директива "satisfy any" запрещала выдачу пользовательской страницы
  11924. для 401 кода.
  11925. </para>
  11926. <para lang="en">
  11927. a "satisfy any" directive disabled custom 401 error page.
  11928. </para>
  11929. </change>

  11930. </changes>


  11931. <changes ver="0.9.7" date="2011-04-04">

  11932. <change type="feature">
  11933. <para lang="ru">
  11934. теперь соединения в состоянии keepalive могут быть закрыты преждевременно,
  11935. если у воркера нет свободных соединений.<br/>
  11936. Спасибо Максиму Дунину.
  11937. </para>
  11938. <para lang="en">
  11939. now keepalive connections may be closed premature,
  11940. if there are no free worker connections.<br/>
  11941. Thanks to Maxim Dounin.
  11942. </para>
  11943. </change>

  11944. <change type="feature">
  11945. <para lang="ru">
  11946. параметр rotate директивы image_filter.<br/>
  11947. Спасибо Adam Bocim.
  11948. </para>
  11949. <para lang="en">
  11950. the "rotate" parameter of the "image_filter" directive.<br/>
  11951. Thanks to Adam Bocim.
  11952. </para>
  11953. </change>

  11954. <change type="bugfix">
  11955. <para lang="ru">
  11956. ситуации, когда бэкенд в директивах fastcgi_pass, scgi_pass или uwsgi_pass
  11957. задан выражением и ссылается на описанный upstream.
  11958. </para>
  11959. <para lang="en">
  11960. a case when a backend in "fastcgi_pass", "scgi_pass", or "uwsgi_pass"
  11961. directives is given by expression and refers to a defined upstream.
  11962. </para>
  11963. </change>

  11964. </changes>


  11965. <changes ver="0.9.6" date="2011-03-21">

  11966. <change type="feature">
  11967. <para lang="ru">
  11968. директива map поддерживает регулярные выражения в качестве значения
  11969. первого параметра.
  11970. </para>
  11971. <para lang="en">
  11972. the "map" directive supports regular expressions as value of the first
  11973. parameter.
  11974. </para>
  11975. </change>

  11976. <change type="feature">
  11977. <para lang="ru">
  11978. переменная $time_iso8601 для access_log.<br/>
  11979. Спасибо Michael Lustfield.
  11980. </para>
  11981. <para lang="en">
  11982. $time_iso8601 access_log variable.<br/>
  11983. Thanks to Michael Lustfield.
  11984. </para>
  11985. </change>

  11986. </changes>


  11987. <changes ver="0.9.5" date="2011-02-21">

  11988. <change type="change">
  11989. <para lang="ru">
  11990. теперь по умолчанию nginx использует значение -1 для listen backlog
  11991. на Linux.<br/>
  11992. Спасибо Андрею Нигматулину.
  11993. </para>
  11994. <para lang="en">
  11995. now nginx uses a default listen backlog value -1 on Linux.<br/>
  11996. Thanks to Andrei Nigmatulin.
  11997. </para>
  11998. </change>

  11999. <change type="feature">
  12000. <para lang="ru">
  12001. параметр utf8 в директивах geoip_country и geoip_city.<br/>
  12002. Спасибо Денису Латыпову.
  12003. </para>
  12004. <para lang="en">
  12005. the "utf8" parameter of "geoip_country" and "geoip_city" directives.<br/>
  12006. Thanks to Denis F. Latypoff.
  12007. </para>
  12008. </change>

  12009. <change type="bugfix">
  12010. <para lang="ru">
  12011. исправление в умолчательной директиве proxy_redirect, если в директиве
  12012. proxy_pass не был описан URI.<br/>
  12013. Спасибо Максиму Дунину.
  12014. </para>
  12015. <para lang="en">
  12016. in a default "proxy_redirect" directive if "proxy_pass" directive has no
  12017. URI part.<br/>
  12018. Thanks to Maxim Dounin.
  12019. </para>
  12020. </change>

  12021. <change type="bugfix">
  12022. <para lang="ru">
  12023. директива error_page не работала с нестандартными кодами ошибок;
  12024. ошибка появилась в 0.8.53.<br/>
  12025. Спасибо Максиму Дунину.
  12026. </para>
  12027. <para lang="en">
  12028. an "error_page" directive did not work with nonstandard error codes;
  12029. the bug had appeared in 0.8.53.<br/>
  12030. Thanks to Maxim Dounin.
  12031. </para>
  12032. </change>

  12033. </changes>


  12034. <changes ver="0.9.4" date="2011-01-21">

  12035. <change type="feature">
  12036. <para lang="ru">
  12037. директива server_name поддерживает переменную $hostname.
  12038. </para>
  12039. <para lang="en">
  12040. the "server_name" directive supports the $hostname variable.
  12041. </para>
  12042. </change>

  12043. <change type="feature">
  12044. <para lang="ru">
  12045. 494 код для ошибки "Request Header Too Large".
  12046. </para>
  12047. <para lang="en">
  12048. 494 code for "Request Header Too Large" error.
  12049. </para>
  12050. </change>

  12051. </changes>


  12052. <changes ver="0.9.3" date="2010-12-13">

  12053. <change type="bugfix">
  12054. <para lang="ru">
  12055. если для пары IPv6-адрес:порт описан только один сервер, то выделения
  12056. в регулярных выражениях в директиве server_name не работали.
  12057. </para>
  12058. <para lang="en">
  12059. if there was a single server for given IPv6 address:port pair,
  12060. then captures in regular expressions in a "server_name" directive did not work.
  12061. </para>
  12062. </change>

  12063. <change type="bugfix">
  12064. <para lang="ru">
  12065. nginx не собирался под Solaris;
  12066. ошибка появилась в 0.9.0.
  12067. </para>
  12068. <para lang="en">
  12069. nginx could not be built on Solaris;
  12070. the bug had appeared in 0.9.0.
  12071. </para>
  12072. </change>

  12073. </changes>


  12074. <changes ver="0.9.2" date="2010-12-06">

  12075. <change type="feature">
  12076. <para lang="ru">
  12077. поддержка строки "If-Unmodified-Since" в заголовке запроса клиента.
  12078. </para>
  12079. <para lang="en">
  12080. the "If-Unmodified-Since" client request header line support.
  12081. </para>
  12082. </change>

  12083. <change type="workaround">
  12084. <para lang="ru">
  12085. использование accept(), если accept4() не реализован;
  12086. ошибка появилась в 0.9.0.
  12087. </para>
  12088. <para lang="en">
  12089. fallback to accept() syscall if accept4() was not implemented;
  12090. the issue had appeared in 0.9.0.
  12091. </para>
  12092. </change>

  12093. <change type="bugfix">
  12094. <para lang="ru">
  12095. nginx не собирался под Cygwin;
  12096. ошибка появилась в 0.9.0.
  12097. </para>
  12098. <para lang="en">
  12099. nginx could not be built on Cygwin;
  12100. the bug had appeared in 0.9.0.
  12101. </para>
  12102. </change>

  12103. <change type="bugfix">
  12104. <para lang="ru">
  12105. уязвимости в OpenSSL CVE-2010-4180.<br/>
  12106. Спасибо Максиму Дунину.
  12107. </para>
  12108. <para lang="en">
  12109. for OpenSSL vulnerability CVE-2010-4180.<br/>
  12110. Thanks to Maxim Dounin.
  12111. </para>
  12112. </change>

  12113. </changes>


  12114. <changes ver="0.9.1" date="2010-11-30">

  12115. <change type="bugfix">
  12116. <para lang="ru">
  12117. директивы вида "return CODE message" не работали;
  12118. ошибка появилась в 0.9.0.
  12119. </para>
  12120. <para lang="en">
  12121. "return CODE message" directives did not work;
  12122. the bug had appeared in 0.9.0.
  12123. </para>
  12124. </change>

  12125. </changes>


  12126. <changes ver="0.9.0" date="2010-11-29">

  12127. <change type="feature">
  12128. <para lang="ru">
  12129. директива keepalive_disable.
  12130. </para>
  12131. <para lang="en">
  12132. the "keepalive_disable" directive.
  12133. </para>
  12134. </change>

  12135. <change type="feature">
  12136. <para lang="ru">
  12137. директива map поддерживает переменные в качестве значения определяемой
  12138. переменной.
  12139. </para>
  12140. <para lang="en">
  12141. the "map" directive supports variables as value of a defined variable.
  12142. </para>
  12143. </change>

  12144. <change type="feature">
  12145. <para lang="ru">
  12146. директива map поддерживает пустые строки в качестве значения первого параметра.
  12147. </para>
  12148. <para lang="en">
  12149. the "map" directive supports empty strings as value of the first parameter.
  12150. </para>
  12151. </change>

  12152. <change type="feature">
  12153. <para lang="ru">
  12154. директива map поддерживает выражения в первом параметре.
  12155. </para>
  12156. <para lang="en">
  12157. the "map" directive supports expressions as the first parameter.
  12158. </para>
  12159. </change>

  12160. <change type="feature">
  12161. <para lang="ru">
  12162. страница руководства nginx(8).<br/>
  12163. Спасибо Сергею Осокину.
  12164. </para>
  12165. <para lang="en">
  12166. nginx(8) manual page.<br/>
  12167. Thanks to Sergey Osokin.
  12168. </para>
  12169. </change>

  12170. <change type="feature">
  12171. <para lang="ru">
  12172. поддержка accept4() в Linux.<br/>
  12173. Спасибо Simon Liu.
  12174. </para>
  12175. <para lang="en">
  12176. Linux accept4() support.<br/>
  12177. Thanks to Simon Liu.
  12178. </para>
  12179. </change>

  12180. <change type="workaround">
  12181. <para lang="ru">
  12182. устранение предупреждения линкера о "sys_errlist" и "sys_nerr" под Linux;
  12183. предупреждение появилось в 0.8.35.
  12184. </para>
  12185. <para lang="en">
  12186. elimination of Linux linker warning about "sys_errlist" and "sys_nerr";
  12187. the warning had appeared in 0.8.35.
  12188. </para>
  12189. </change>

  12190. <change type="bugfix">
  12191. <para lang="ru">
  12192. при использовании директивы auth_basic
  12193. в рабочем процессе мог произойти segmentation fault.<br/>
  12194. Спасибо Михаилу Лалетину.
  12195. </para>
  12196. <para lang="en">
  12197. a segmentation fault might occur in a worker process,
  12198. if the "auth_basic" directive was used.<br/>
  12199. Thanks to Michail Laletin.
  12200. </para>
  12201. </change>

  12202. <change type="bugfix">
  12203. <para lang="ru">
  12204. совместимость с модулем ngx_http_eval_module;
  12205. ошибка появилась в 0.8.42.
  12206. </para>
  12207. <para lang="en">
  12208. compatibility with ngx_http_eval_module;
  12209. the bug had appeared in 0.8.42.
  12210. </para>
  12211. </change>

  12212. </changes>


  12213. <changes ver="0.8.53" date="2010-10-18">

  12214. <change type="feature">
  12215. <para lang="ru">
  12216. теперь директива error_page позволяет менять код статуса у редиректа.
  12217. </para>
  12218. <para lang="en">
  12219. now the "error_page" directive allows to change a status code in a redirect.
  12220. </para>
  12221. </change>

  12222. <change type="feature">
  12223. <para lang="ru">
  12224. директива gzip_disable поддерживает специальную маску degradation.
  12225. </para>
  12226. <para lang="en">
  12227. the "gzip_disable" directive supports special "degradation" mask.
  12228. </para>
  12229. </change>

  12230. <change type="bugfix">
  12231. <para lang="ru">
  12232. при использовании файлового AIO могла происходить утечка сокетов.<br/>
  12233. Спасибо Максиму Дунину.
  12234. </para>
  12235. <para lang="en">
  12236. a socket leak might occurred if file AIO was used.<br/>
  12237. Thanks to Maxim Dounin.
  12238. </para>
  12239. </change>

  12240. <change type="bugfix">
  12241. <para lang="ru">
  12242. если в первом сервере не была описана директива listen и нигде явно
  12243. не описан сервер по умолчанию, то сервером по умолчанию становился
  12244. следующий сервер с директивой listen;
  12245. ошибка появилась в 0.8.21.
  12246. </para>
  12247. <para lang="en">
  12248. if the first server had no "listen" directive and there was no explicit
  12249. default server, then a next server with a "listen" directive became
  12250. the default server;
  12251. the bug had appeared in 0.8.21.
  12252. </para>
  12253. </change>

  12254. </changes>


  12255. <changes ver="0.8.52" date="2010-09-28">

  12256. <change type="bugfix">
  12257. <para lang="ru">
  12258. nginx использовал режим SSL для listen сокета, если для него был
  12259. установлен любой listen-параметр;
  12260. ошибка появилась в 0.8.51.
  12261. </para>
  12262. <para lang="en">
  12263. nginx used SSL mode for a listen socket if any listen option was set;
  12264. the bug had appeared in 0.8.51.
  12265. </para>
  12266. </change>

  12267. </changes>


  12268. <changes ver="0.8.51" date="2010-09-27">

  12269. <change type="change">
  12270. <para lang="ru">
  12271. директива secure_link_expires упразднена.
  12272. </para>
  12273. <para lang="en">
  12274. the "secure_link_expires" directive has been canceled.
  12275. </para>
  12276. </change>

  12277. <change type="change">
  12278. <para lang="ru">
  12279. уровень логгирования ошибок resolver'а понижен с уровня alert на error.
  12280. </para>
  12281. <para lang="en">
  12282. a logging level of resolver errors has been lowered from "alert" to "error".
  12283. </para>
  12284. </change>

  12285. <change type="feature">
  12286. <para lang="ru">
  12287. теперь параметр "ssl" listen-сокета можно устанавливать несколько раз.
  12288. </para>
  12289. <para lang="en">
  12290. now a listen socket "ssl" parameter may be set several times.
  12291. </para>
  12292. </change>

  12293. </changes>


  12294. <changes ver="0.8.50" date="2010-09-02">

  12295. <change type="feature">
  12296. <para lang="ru">
  12297. директивы secure_link, secure_link_md5 и secure_link_expires
  12298. модуля ngx_http_secure_link_module.
  12299. </para>
  12300. <para lang="en">
  12301. the "secure_link", "secure_link_md5", and "secure_link_expires" directives of
  12302. the ngx_http_secure_link_module.
  12303. </para>
  12304. </change>

  12305. <change type="feature">
  12306. <para lang="ru">
  12307. ключ -q.<br/>
  12308. Спасибо Геннадию Махомеду.
  12309. </para>
  12310. <para lang="en">
  12311. the -q switch.<br/>
  12312. Thanks to Gena Makhomed.
  12313. </para>
  12314. </change>

  12315. <change type="bugfix">
  12316. <para lang="ru">
  12317. при использовании кэширования рабочие процессы и могли зациклиться
  12318. во время переконфигурации;
  12319. ошибка появилась в 0.8.48.
  12320. </para>
  12321. <para lang="en">
  12322. worker processes may got caught in an endless loop during reconfiguration,
  12323. if a caching was used;
  12324. the bug had appeared in 0.8.48.
  12325. </para>
  12326. </change>

  12327. <change type="bugfix">
  12328. <para lang="ru">
  12329. в директиве gzip_disable.<br/>
  12330. Спасибо Derrick Petzold.
  12331. </para>
  12332. <para lang="en">
  12333. in the "gzip_disable" directive.<br/>
  12334. Thanks to Derrick Petzold.
  12335. </para>
  12336. </change>

  12337. <change type="bugfix">
  12338. <para lang="ru">
  12339. nginx/Windows не мог посылать сигналы stop, quit, reopen, reload процессу,
  12340. запущенному в другой сессии.
  12341. </para>
  12342. <para lang="en">
  12343. nginx/Windows could not send stop, quit, reopen, and reload signals
  12344. to a process run in other session.
  12345. </para>
  12346. </change>

  12347. </changes>


  12348. <changes ver="0.8.49" date="2010-08-09">

  12349. <change type="feature">
  12350. <para lang="ru">
  12351. директива image_filter_jpeg_quality поддерживает переменные.
  12352. </para>
  12353. <para lang="en">
  12354. the "image_filter_jpeg_quality" directive supports variables.
  12355. </para>
  12356. </change>

  12357. <change type="bugfix">
  12358. <para lang="ru">
  12359. при использовании переменной $geoip_region_name
  12360. в рабочем процессе мог произойти segmentation fault;
  12361. ошибка появилась в 0.8.48.
  12362. </para>
  12363. <para lang="en">
  12364. a segmentation fault might occur in a worker process,
  12365. if the $geoip_region_name variables was used;
  12366. the bug had appeared in 0.8.48.
  12367. </para>
  12368. </change>

  12369. <change type="bugfix">
  12370. <para lang="ru">
  12371. ошибки, перехваченные error_page, кэшировались только до следующего запроса;
  12372. ошибка появилась в 0.8.48.
  12373. </para>
  12374. <para lang="en">
  12375. errors intercepted by error_page were cached only for next request;
  12376. the bug had appeared in 0.8.48.
  12377. </para>
  12378. </change>

  12379. </changes>


  12380. <changes ver="0.8.48" date="2010-08-03">

  12381. <change type="change">
  12382. <para lang="ru">
  12383. теперь по умолчанию директива server_name имеет значение пустое имя "".<br/>
  12384. Спасибо Геннадию Махомеду.
  12385. </para>
  12386. <para lang="en">
  12387. now the "server_name" directive default value is an empty name "".<br/>
  12388. Thanks to Gena Makhomed.
  12389. </para>
  12390. </change>

  12391. <change type="change">
  12392. <para lang="ru">
  12393. теперь по умолчанию директива server_name_in_redirect имеет значение off.
  12394. </para>
  12395. <para lang="en">
  12396. now the "server_name_in_redirect" directive default value is "off".
  12397. </para>
  12398. </change>

  12399. <change type="feature">
  12400. <para lang="ru">
  12401. переменные $geoip_dma_code, $geoip_area_code и $geoip_region_name.<br/>
  12402. Спасибо Christine McGonagle.
  12403. </para>
  12404. <para lang="en">
  12405. the $geoip_dma_code, $geoip_area_code, and $geoip_region_name variables.<br/>
  12406. Thanks to Christine McGonagle.
  12407. </para>
  12408. </change>

  12409. <change type="bugfix">
  12410. <para lang="ru">
  12411. директивы proxy_pass, fastcgi_pass, uwsgi_pass и scgi_pass не наследовались
  12412. в блоки limit_except.
  12413. </para>
  12414. <para lang="en">
  12415. the "proxy_pass", "fastcgi_pass", "uwsgi_pass", and "scgi_pass" directives
  12416. were not inherited inside "limit_except" blocks.
  12417. </para>
  12418. </change>

  12419. <change type="bugfix">
  12420. <para lang="ru">
  12421. директивы proxy_cache_min_uses, fastcgi_cache_min_uses
  12422. uwsgi_cache_min_uses и scgi_cache_min_uses не работали;
  12423. ошибка появилась в 0.8.46.
  12424. </para>
  12425. <para lang="en">
  12426. the "proxy_cache_min_uses", "fastcgi_cache_min_uses"
  12427. "uwsgi_cache_min_uses", and "scgi_cache_min_uses" directives did not work;
  12428. the bug had appeared in 0.8.46.
  12429. </para>
  12430. </change>

  12431. <change type="bugfix">
  12432. <para lang="ru">
  12433. директива fastcgi_split_path_info неверно использовала выделения,
  12434. если в выделения попадала только часть URI.<br/>
  12435. Спасибо Юрию Тарадаю и Frank Enderle.
  12436. </para>
  12437. <para lang="en">
  12438. the "fastcgi_split_path_info" directive used incorrectly captures,
  12439. if only parts of an URI were captured.<br/>
  12440. Thanks to Yuriy Taraday and Frank Enderle.
  12441. </para>
  12442. </change>

  12443. <change type="bugfix">
  12444. <para lang="ru">
  12445. директива rewrite не экранировала символ ";" при копировании из URI
  12446. в аргументы.<br/>
  12447. Спасибо Daisuke Murase.
  12448. </para>
  12449. <para lang="en">
  12450. the "rewrite" directive did not escape a ";" character during copying
  12451. from URI to query string.<br/>
  12452. Thanks to Daisuke Murase.
  12453. </para>
  12454. </change>

  12455. <change type="bugfix">
  12456. <para lang="ru">
  12457. модуль ngx_http_image_filter_module закрывал соединение,
  12458. если изображение было больше размера image_filter_buffer.
  12459. </para>
  12460. <para lang="en">
  12461. the ngx_http_image_filter_module closed a connection,
  12462. if an image was larger than "image_filter_buffer" size.
  12463. </para>
  12464. </change>

  12465. </changes>


  12466. <changes ver="0.8.47" date="2010-07-28">

  12467. <change type="bugfix">
  12468. <para lang="ru">
  12469. переменная $request_time имела неверные значения для подзапросов.
  12470. </para>
  12471. <para lang="en">
  12472. $request_time variable had invalid values for subrequests.
  12473. </para>
  12474. </change>

  12475. <change type="bugfix">
  12476. <para lang="ru">
  12477. ошибки, перехваченные error_page, не кэшировались.
  12478. </para>
  12479. <para lang="en">
  12480. errors intercepted by error_page could not be cached.
  12481. </para>
  12482. </change>

  12483. <change type="bugfix">
  12484. <para lang="ru">
  12485. если использовался параметр max_size, то cache manager мог зациклиться;
  12486. ошибка появилась в 0.8.46.
  12487. </para>
  12488. <para lang="en">
  12489. a cache manager process may got caught in an endless loop,
  12490. if max_size parameter was used;
  12491. the bug had appeared in 0.8.46.
  12492. </para>
  12493. </change>

  12494. </changes>


  12495. <changes ver="0.8.46" date="2010-07-19">

  12496. <change type="change">
  12497. <para lang="ru">
  12498. директивы proxy_no_cache, fastcgi_no_cache, uwsgi_no_cache
  12499. и scgi_no_cache теперь влияют только на сохранение закэшированного ответа.
  12500. </para>
  12501. <para lang="en">
  12502. now the "proxy_no_cache", "fastcgi_no_cache", "uwsgi_no_cache", and
  12503. "scgi_no_cache" directives affect on a cached response saving only.
  12504. </para>
  12505. </change>

  12506. <change type="feature">
  12507. <para lang="ru">
  12508. директивы proxy_cache_bypass, fastcgi_cache_bypass, uwsgi_cache_bypass
  12509. и scgi_cache_bypass.
  12510. </para>
  12511. <para lang="en">
  12512. the "proxy_cache_bypass", "fastcgi_cache_bypass", "uwsgi_cache_bypass",
  12513. and "scgi_cache_bypass" directives.
  12514. </para>
  12515. </change>

  12516. <change type="bugfix">
  12517. <para lang="ru">
  12518. nginx не освобождал память в keys_zone кэшей в случае ошибки работы с
  12519. бэкендом: память освобождалась только по истечении времени неактивности
  12520. или при недостатке памяти.
  12521. </para>
  12522. <para lang="en">
  12523. nginx did not free memory in cache keys zones if there was an error
  12524. during working with backend: the memory was freed only after inactivity
  12525. time or on memory low condition.
  12526. </para>
  12527. </change>

  12528. </changes>


  12529. <changes ver="0.8.45" date="2010-07-13">

  12530. <change type="feature">
  12531. <para lang="ru">
  12532. улучшения в модуле ngx_http_xslt_filter.<br/>
  12533. Спасибо Laurence Rowe.
  12534. </para>
  12535. <para lang="en">
  12536. ngx_http_xslt_filter improvements.<br/>
  12537. Thanks to Laurence Rowe.
  12538. </para>
  12539. </change>

  12540. <change type="bugfix">
  12541. <para lang="ru">
  12542. ответ SSI модуля мог передаваться не полностью после команды include
  12543. с параметром wait="yes";
  12544. ошибка появилась в 0.7.25.<br/>
  12545. Спасибо Максиму Дунину.
  12546. </para>
  12547. <para lang="en">
  12548. SSI response might be truncated after include with wait="yes";
  12549. the bug had appeared in 0.7.25.<br/>
  12550. Thanks to Maxim Dounin.
  12551. </para>
  12552. </change>

  12553. <change type="bugfix">
  12554. <para lang="ru">
  12555. директива listen не поддерживала параметр setfib=0.
  12556. </para>
  12557. <para lang="en">
  12558. the "listen" directive did not support the "setfib=0" parameter.
  12559. </para>
  12560. </change>

  12561. </changes>


  12562. <changes ver="0.8.44" date="2010-07-05">

  12563. <change type="change">
  12564. <para lang="ru">
  12565. теперь nginx по умолчанию не кэширует ответы бэкендов,
  12566. в заголовке которых есть строка "Set-Cookie".
  12567. </para>
  12568. <para lang="en">
  12569. now nginx does not cache by default backend responses,
  12570. if they have a "Set-Cookie" header line.
  12571. </para>
  12572. </change>

  12573. <change type="feature">
  12574. <para lang="ru">
  12575. директива listen поддерживает параметр setfib.<br/>
  12576. Спасибо Андрею Филонову.
  12577. </para>
  12578. <para lang="en">
  12579. the "listen" directive supports the "setfib" parameter.<br/>
  12580. Thanks to Andrew Filonov.
  12581. </para>
  12582. </change>

  12583. <change type="bugfix">
  12584. <para lang="ru">
  12585. директива sub_filter могла изменять регистр букв при частичном совпадении.
  12586. </para>
  12587. <para lang="en">
  12588. the "sub_filter" directive might change character case on partial match.
  12589. </para>
  12590. </change>

  12591. <change type="bugfix">
  12592. <para lang="ru">
  12593. совместимость с HP/UX.
  12594. </para>
  12595. <para lang="en">
  12596. compatibility with HP/UX.
  12597. </para>
  12598. </change>

  12599. <change type="bugfix">
  12600. <para lang="ru">
  12601. совместимость с компилятором AIX xlC_r.
  12602. </para>
  12603. <para lang="en">
  12604. compatibility with AIX xlC_r compiler.
  12605. </para>
  12606. </change>

  12607. <change type="bugfix">
  12608. <para lang="ru">
  12609. nginx считал большие пакеты SSLv2 как обычные текстовые запросы.<br/>
  12610. Спасибо Miroslaw Jaworski.
  12611. </para>
  12612. <para lang="en">
  12613. nginx treated large SSLv2 packets as plain requests.<br/>
  12614. Thanks to Miroslaw Jaworski.
  12615. </para>
  12616. </change>

  12617. </changes>


  12618. <changes ver="0.8.43" date="2010-06-30">

  12619. <change type="feature">
  12620. <para lang="ru">
  12621. ускорение загрузки больших баз geo-диапазонов.
  12622. </para>
  12623. <para lang="en">
  12624. large geo ranges base loading speed-up.
  12625. </para>
  12626. </change>

  12627. <change type="bugfix">
  12628. <para lang="ru">
  12629. перенаправление ошибки в "location /zero {return 204;}" без изменения
  12630. кода ответа оставляло тело ошибки;
  12631. ошибка появилась в 0.8.42.
  12632. </para>
  12633. <para lang="en">
  12634. an error_page redirection to "location /zero {return 204;}" without
  12635. changing status code kept the error body;
  12636. the bug had appeared in 0.8.42.
  12637. </para>
  12638. </change>

  12639. <change type="bugfix">
  12640. <para lang="ru">
  12641. nginx мог закрывать IPv6 listen сокет во время переконфигурации.<br/>
  12642. Спасибо Максиму Дунину.
  12643. </para>
  12644. <para lang="en">
  12645. nginx might close IPv6 listen socket during reconfiguration.<br/>
  12646. Thanks to Maxim Dounin.
  12647. </para>
  12648. </change>

  12649. <change type="bugfix">
  12650. <para lang="ru">
  12651. переменную $uid_set можно использовать на любой стадии обработки запроса.
  12652. </para>
  12653. <para lang="en">
  12654. the $uid_set variable may be used at any request processing stage.
  12655. </para>
  12656. </change>

  12657. </changes>


  12658. <changes ver="0.8.42" date="2010-06-21">

  12659. <change type="change">
  12660. <para lang="ru">
  12661. теперь nginx проверяет location'ы, заданные регулярными выражениями,
  12662. если запрос полностью совпал с location'ом, заданным строкой префикса.
  12663. Предыдущее поведение появилось в 0.7.1.
  12664. </para>
  12665. <para lang="en">
  12666. now nginx tests locations given by regular expressions,
  12667. if request was matched exactly by a location given by a prefix string.
  12668. The previous behavior has been introduced in 0.7.1.
  12669. </para>
  12670. </change>

  12671. <change type="feature">
  12672. <para lang="ru">
  12673. модуль ngx_http_scgi_module.<br/>
  12674. Спасибо Manlio Perillo.
  12675. </para>
  12676. <para lang="en">
  12677. the ngx_http_scgi_module.<br/>
  12678. Thanks to Manlio Perillo.
  12679. </para>
  12680. </change>

  12681. <change type="feature">
  12682. <para lang="ru">
  12683. в директиве return можно добавлять текст ответа.
  12684. </para>
  12685. <para lang="en">
  12686. a text answer may be added to a "return" directive.
  12687. </para>
  12688. </change>

  12689. </changes>


  12690. <changes ver="0.8.41" date="2010-06-15">

  12691. <change type="security">
  12692. <para lang="ru">
  12693. рабочий процесс nginx/Windows мог завершаться аварийно при запросе файла
  12694. с неверной кодировкой UTF-8.
  12695. </para>
  12696. <para lang="en">
  12697. nginx/Windows worker might be terminated abnormally if a requested file name
  12698. has invalid UTF-8 encoding.
  12699. </para>
  12700. </change>

  12701. <change type="change">
  12702. <para lang="ru">
  12703. теперь nginx разрешает использовать пробелы в строке запроса.
  12704. </para>
  12705. <para lang="en">
  12706. now nginx allows to use spaces in a request line.
  12707. </para>
  12708. </change>

  12709. <change type="bugfix">
  12710. <para lang="ru">
  12711. директива proxy_redirect неправильно изменяла строку "Refresh" в заголовке
  12712. ответа бэкенда.<br/>
  12713. Спасибо Андрею Андрееву и Максиму Согину.
  12714. </para>
  12715. <para lang="en">
  12716. the "proxy_redirect" directive changed incorrectly a backend "Refresh"
  12717. response header line.<br/>
  12718. Thanks to Andrey Andreew and Max Sogin.
  12719. </para>
  12720. </change>

  12721. <change type="bugfix">
  12722. <para lang="ru">
  12723. nginx не поддерживал путь без имени хоста в
  12724. строке "Destination" в заголовке запроса.
  12725. </para>
  12726. <para lang="en">
  12727. nginx did not support path without host name
  12728. in "Destination" request header line.
  12729. </para>
  12730. </change>

  12731. </changes>


  12732. <changes ver="0.8.40" date="2010-06-07">

  12733. <change type="security">
  12734. <para lang="ru">
  12735. теперь nginx/Windows игнорирует имя потока файла по умолчанию.<br/>
  12736. Спасибо Jose Antonio Vazquez Gonzalez.
  12737. </para>
  12738. <para lang="en">
  12739. now nginx/Windows ignores default file stream name.<br/>
  12740. Thanks to Jose Antonio Vazquez Gonzalez.
  12741. </para>
  12742. </change>

  12743. <change type="feature">
  12744. <para lang="ru">
  12745. модуль ngx_http_uwsgi_module.<br/>
  12746. Спасибо Roberto De Ioris.
  12747. </para>
  12748. <para lang="en">
  12749. the ngx_http_uwsgi_module.<br/>
  12750. Thanks to Roberto De Ioris.
  12751. </para>
  12752. </change>

  12753. <change type="feature">
  12754. <para lang="ru">
  12755. директива fastcgi_param со значением, начинающимся со строки "HTTP_",
  12756. изменяет строку заголовка в запросе клиента.
  12757. </para>
  12758. <para lang="en">
  12759. a "fastcgi_param" directive with value starting with "HTTP_" overrides
  12760. a client request header line.
  12761. </para>
  12762. </change>

  12763. <change type="bugfix">
  12764. <para lang="ru">
  12765. строки "If-Modified-Since", "If-Range" и им подобные в заголовке запроса
  12766. клиента передавались FastCGI-серверу при кэшировании.
  12767. </para>
  12768. <para lang="en">
  12769. the "If-Modified-Since", "If-Range", etc. client request header lines
  12770. were passed to FastCGI-server while caching.
  12771. </para>
  12772. </change>

  12773. <change type="bugfix">
  12774. <para lang="ru">
  12775. listen unix domain сокет нельзя было изменить во время переконфигурации.<br/>
  12776. Спасибо Максиму Дунину.
  12777. </para>
  12778. <para lang="en">
  12779. listen unix domain socket could not be changed during reconfiguration.<br/>
  12780. Thanks to Maxim Dounin.
  12781. </para>
  12782. </change>

  12783. </changes>


  12784. <changes ver="0.8.39" date="2010-05-31">

  12785. <change type="bugfix">
  12786. <para lang="ru">
  12787. наследуемая директива alias неправильно работала во вложенном location'е.
  12788. </para>
  12789. <para lang="en">
  12790. an inherited "alias" directive worked incorrectly in inclusive location.
  12791. </para>
  12792. </change>

  12793. <change type="bugfix">
  12794. <para lang="ru">
  12795. в комбинации директив alias с переменными и try_files;
  12796. </para>
  12797. <para lang="en">
  12798. in "alias" with variables and "try_files" directives combination.
  12799. </para>
  12800. </change>

  12801. <change type="bugfix">
  12802. <para lang="ru">
  12803. listen unix domain и IPv6 сокеты не наследовались во время обновления
  12804. без перерыва.<br/>
  12805. Спасибо Максиму Дунину.
  12806. </para>
  12807. <para lang="en">
  12808. listen unix domain and IPv6 sockets did not inherit while online upgrade.<br/>
  12809. Thanks to Maxim Dounin.
  12810. </para>
  12811. </change>

  12812. </changes>


  12813. <changes ver="0.8.38" date="2010-05-24">

  12814. <change type="feature">
  12815. <para lang="ru">
  12816. директивы proxy_no_cache и fastcgi_no_cache.
  12817. </para>
  12818. <para lang="en">
  12819. the "proxy_no_cache" and "fastcgi_no_cache" directives.
  12820. </para>
  12821. </change>

  12822. <change type="feature">
  12823. <para lang="ru">
  12824. теперь при использовании переменной $scheme в директиве rewrite
  12825. автоматически делается редирект.<br/>
  12826. Спасибо Piotr Sikora.
  12827. </para>
  12828. <para lang="en">
  12829. now the "rewrite" directive does a redirect automatically
  12830. if the $scheme variable is used.<br/>
  12831. Thanks to Piotr Sikora.
  12832. </para>
  12833. </change>

  12834. <change type="bugfix">
  12835. <para lang="ru">
  12836. теперь задержки в директиве limit_req соответствует описанному алгоритму.<br/>
  12837. Спасибо Максиму Дунину.
  12838. </para>
  12839. <para lang="en">
  12840. now "limit_req" delay directive conforms to the described algorithm.<br/>
  12841. Thanks to Maxim Dounin.
  12842. </para>
  12843. </change>

  12844. <change type="bugfix">
  12845. <para lang="ru">
  12846. переменную $uid_got нельзя было использовать в SSI и перловом модулях.
  12847. </para>
  12848. <para lang="en">
  12849. the $uid_got variable might not be used in the SSI and perl modules.
  12850. </para>
  12851. </change>

  12852. </changes>


  12853. <changes ver="0.8.37" date="2010-05-17">

  12854. <change type="feature">
  12855. <para lang="ru">
  12856. модуль ngx_http_split_clients_module.
  12857. </para>
  12858. <para lang="en">
  12859. the ngx_http_split_clients_module.
  12860. </para>
  12861. </change>

  12862. <change type="feature">
  12863. <para lang="ru">
  12864. директива map поддерживает ключи больше 255 символов.
  12865. </para>
  12866. <para lang="en">
  12867. the "map" directive supports keys more than 255 characters.
  12868. </para>
  12869. </change>

  12870. <change type="bugfix">
  12871. <para lang="ru">
  12872. nginx игнорировал значения "private" и "no-store" в строке "Cache-Control"
  12873. в заголовке ответа бэкенда.
  12874. </para>
  12875. <para lang="en">
  12876. nginx ignored the "private" and "no-store" values
  12877. in the "Cache-Control" backend response header line.
  12878. </para>
  12879. </change>

  12880. <change type="bugfix">
  12881. <para lang="ru">
  12882. параметр stub в SSI-директиве include не использовался,
  12883. если пустой ответ имел код 200.
  12884. </para>
  12885. <para lang="en">
  12886. a "stub" parameter of an "include" SSI directive was not used,
  12887. if empty response has 200 status code.
  12888. </para>
  12889. </change>

  12890. <change type="bugfix">
  12891. <para lang="ru">
  12892. если проксированный или FastCGI запрос внутренне перенаправлялся
  12893. в другой проксированный или FastCGI location,
  12894. то в рабочем процессе мог произойти segmentation fault;
  12895. ошибка появилась в 0.8.33.<br/>
  12896. Спасибо Yichun Zhang.
  12897. </para>
  12898. <para lang="en">
  12899. if a proxied or FastCGI request was internally redirected
  12900. to another proxied or FastCGI location,
  12901. then a segmentation fault might occur in a worker process;
  12902. the bug had appeared in 0.8.33.<br/>
  12903. Thanks to Yichun Zhang.
  12904. </para>
  12905. </change>

  12906. <change type="bugfix">
  12907. <para lang="ru">
  12908. соединения IMAP к серверу Zimbra могло зависнуть до таймаута.<br/>
  12909. Спасибо Alan Batie.
  12910. </para>
  12911. <para lang="en">
  12912. IMAP connections may hang until they timed out
  12913. while talking to Zimbra server.<br/>
  12914. Thanks to Alan Batie.
  12915. </para>
  12916. </change>

  12917. </changes>


  12918. <changes ver="0.8.36" date="2010-04-22">

  12919. <change type="bugfix">
  12920. <para lang="ru">
  12921. модуль ngx_http_dav_module неправильно обрабатывал методы DELETE, COPY и MOVE
  12922. для симлинков.
  12923. </para>
  12924. <para lang="en">
  12925. the ngx_http_dav_module handled incorrectly the DELETE, COPY, and MOVE methods
  12926. for symlinks.
  12927. </para>
  12928. </change>

  12929. <change type="bugfix">
  12930. <para lang="ru">
  12931. модуль SSI в подзапросах использовал закэшированные в основном запросе
  12932. значения переменных $query_string, $arg_... и им подобных.
  12933. </para>
  12934. <para lang="en">
  12935. values of the $query_string, $arg_..., etc. variables cached in main
  12936. request were used by the SSI module in subrequests.
  12937. </para>
  12938. </change>

  12939. <change type="bugfix">
  12940. <para lang="ru">
  12941. значение переменной повторно экранировалось после каждого вывода
  12942. SSI-команды echo;
  12943. ошибка появилась в 0.6.14.
  12944. </para>
  12945. <para lang="en">
  12946. a variable value was repeatedly encoded after each
  12947. an "echo" SSI-command output;
  12948. the bug had appeared in 0.6.14.
  12949. </para>
  12950. </change>

  12951. <change type="bugfix">
  12952. <para lang="ru">
  12953. рабочий процесс зависал при запросе файла FIFO.<br/>
  12954. Спасибо Vicente Aguilar и Максиму Дунину.
  12955. </para>
  12956. <para lang="en">
  12957. a worker process hung if a FIFO file was requested.<br/>
  12958. Thanks to Vicente Aguilar and Maxim Dounin.
  12959. </para>
  12960. </change>

  12961. <change type="bugfix">
  12962. <para lang="ru">
  12963. совместимость с OpenSSL-1.0.0 на 64-битном Linux.<br/>
  12964. Спасибо Максиму Дунину.
  12965. </para>
  12966. <para lang="en">
  12967. OpenSSL-1.0.0 compatibility on 64-bit Linux.<br/>
  12968. Thanks to Maxim Dounin.
  12969. </para>
  12970. </change>

  12971. <change type="bugfix">
  12972. <para lang="ru">
  12973. nginx не собирался с параметром --without-http-cache;
  12974. ошибка появилась в 0.8.35.
  12975. </para>
  12976. <para lang="en">
  12977. nginx could not be built --without-http-cache;
  12978. the bug had appeared in 0.8.35.
  12979. </para>
  12980. </change>

  12981. </changes>


  12982. <changes ver="0.8.35" date="2010-04-01">

  12983. <change type="change">
  12984. <para lang="ru">
  12985. теперь charset-фильтр работает до SSI-фильтра.
  12986. </para>
  12987. <para lang="en">
  12988. now the charset filter runs before the SSI filter.
  12989. </para>
  12990. </change>

  12991. <change type="feature">
  12992. <para lang="ru">
  12993. директива chunked_transfer_encoding.
  12994. </para>
  12995. <para lang="en">
  12996. the "chunked_transfer_encoding" directive.
  12997. </para>
  12998. </change>

  12999. <change type="bugfix">
  13000. <para lang="ru">
  13001. символ "&amp;" при копировании в аргументы в правилах rewrite не экранировался.
  13002. </para>
  13003. <para lang="en">
  13004. an "&amp;" character was not escaped when it was copied in arguments part
  13005. in a rewrite rule.
  13006. </para>
  13007. </change>

  13008. <change type="bugfix">
  13009. <para lang="ru">
  13010. nginx мог завершаться аварийно во время обработки сигнала или
  13011. при использовании директивы timer_resolution на платформах,
  13012. не поддерживающих методы kqueue или eventport.<br/>
  13013. Спасибо George Xie и Максиму Дунину.
  13014. </para>
  13015. <para lang="en">
  13016. nginx might be terminated abnormally
  13017. while a signal processing or if the directive "timer_resolution" was used
  13018. on platforms which do not support kqueue or eventport notification methods.<br/>
  13019. Thanks to George Xie and Maxim Dounin.
  13020. </para>
  13021. </change>

  13022. <change type="bugfix">
  13023. <para lang="ru">
  13024. если временные файлы и постоянное место хранения располагались на разных
  13025. файловых системах, то у постоянных файлов время изменения было неверным.<br/>
  13026. Спасибо Максиму Дунину.
  13027. </para>
  13028. <para lang="en">
  13029. if temporary files and permanent storage area resided at different
  13030. file systems, then permanent file modification times were incorrect.<br/>
  13031. Thanks to Maxim Dounin.
  13032. </para>
  13033. </change>

  13034. <change type="bugfix">
  13035. <para lang="ru">
  13036. модуль ngx_http_memcached_module мог выдавать ошибку "memcached sent invalid
  13037. trailer".<br/>
  13038. Спасибо Максиму Дунину.
  13039. </para>
  13040. <para lang="en">
  13041. ngx_http_memcached_module might issue the error message "memcached sent invalid
  13042. trailer".<br/>
  13043. Thanks to Maxim Dounin.
  13044. </para>
  13045. </change>

  13046. <change type="bugfix">
  13047. <para lang="ru">
  13048. nginx не мог собрать библиотеку zlib-1.2.4 из исходных текстов.<br/>
  13049. Спасибо Максиму Дунину.
  13050. </para>
  13051. <para lang="en">
  13052. nginx could not built zlib-1.2.4 library using the library sources.<br/>
  13053. Thanks to Maxim Dounin.
  13054. </para>
  13055. </change>

  13056. <change type="bugfix">
  13057. <para lang="ru">
  13058. в рабочем процессе происходил segmentation fault,
  13059. если перед ответом FastCGI-сервера было много вывода в stderr;
  13060. ошибка появилась в 0.8.34.<br/>
  13061. Спасибо Максиму Дунину.
  13062. </para>
  13063. <para lang="en">
  13064. a segmentation fault occurred in a worker process,
  13065. if there was large stderr output before FastCGI response;
  13066. the bug had appeared in 0.8.34.<br/>
  13067. Thanks to Maxim Dounin.
  13068. </para>
  13069. </change>

  13070. </changes>


  13071. <changes ver="0.8.34" date="2010-03-03">

  13072. <change type="bugfix">
  13073. <para lang="ru">
  13074. nginx не поддерживал все шифры, используемые в клиентских сертификатах.<br/>
  13075. Спасибо Иннокентию Еникееву.
  13076. </para>
  13077. <para lang="en">
  13078. nginx did not support all ciphers and digests used in client certificates.<br/>
  13079. Thanks to Innocenty Enikeew.
  13080. </para>
  13081. </change>

  13082. <change type="bugfix">
  13083. <para lang="ru">
  13084. nginx неправильно кэшировал FastCGI-ответы, если перед ответом было
  13085. много вывода в stderr.
  13086. </para>
  13087. <para lang="en">
  13088. nginx cached incorrectly FastCGI responses if there was large stderr output
  13089. before response.
  13090. </para>
  13091. </change>

  13092. <change type="bugfix">
  13093. <para lang="ru">
  13094. nginx не поддерживал HTTPS-рефереры.
  13095. </para>
  13096. <para lang="en">
  13097. nginx did not support HTTPS referrers.
  13098. </para>
  13099. </change>

  13100. <change type="bugfix">
  13101. <para lang="ru">
  13102. nginx/Windows мог не находить файлы, если путь в конфигурации был задан
  13103. в другом регистре;
  13104. ошибка появилась в 0.8.33.
  13105. </para>
  13106. <para lang="en">
  13107. nginx/Windows might not find file if path in configuration was given
  13108. in other character case;
  13109. the bug had appeared in 0.8.33.
  13110. </para>
  13111. </change>

  13112. <change type="bugfix">
  13113. <para lang="ru">
  13114. переменная $date_local выдавала неверное время,
  13115. если использовался формат "%s".<br/>
  13116. Спасибо Максиму Дунину.
  13117. </para>
  13118. <para lang="en">
  13119. the $date_local variable has an incorrect value,
  13120. if the "%s" format was used.<br/>
  13121. Thanks to Maxim Dounin.
  13122. </para>
  13123. </change>

  13124. <change type="bugfix">
  13125. <para lang="ru">
  13126. если ssl_session_cache не был установлен или установлен в none,
  13127. то при проверке клиентского сертификаты могла происходить
  13128. ошибка "session id context uninitialized";
  13129. ошибка появилась в 0.7.1.
  13130. </para>
  13131. <para lang="en">
  13132. if ssl_session_cache was not set or was set to "none",
  13133. then during client certificate verify
  13134. the error "session id context uninitialized" might occur;
  13135. the bug had appeared in 0.7.1.
  13136. </para>
  13137. </change>

  13138. <change type="bugfix">
  13139. <para lang="ru">
  13140. geo-диапазон возвращал значение по умолчанию, если диапазон включал
  13141. в себя одну и более сетей размером /16 и не начинался на границе сети
  13142. размером /16.
  13143. </para>
  13144. <para lang="en">
  13145. a geo range returned default value if the range included two or more
  13146. /16 networks and did not begin at /16 network boundary.
  13147. </para>
  13148. </change>

  13149. <change type="bugfix">
  13150. <para lang="ru">
  13151. блок, используемый в параметре stub в SSI-директиве include,
  13152. выводился с MIME-типом "text/plain".
  13153. </para>
  13154. <para lang="en">
  13155. a block used in a "stub" parameter of an "include" SSI directive
  13156. was output with "text/plain" MIME type.
  13157. </para>
  13158. </change>

  13159. <change type="bugfix">
  13160. <para lang="ru">
  13161. $r->sleep() не работал;
  13162. ошибка появилась в 0.8.11.
  13163. </para>
  13164. <para lang="en">
  13165. $r->sleep() did not work;
  13166. the bug had appeared in 0.8.11.
  13167. </para>
  13168. </change>

  13169. </changes>


  13170. <changes ver="0.8.33" date="2010-02-01">

  13171. <change type="security">
  13172. <para lang="ru">
  13173. теперь nginx/Windows игнорирует пробелы в конце URI.<br/>
  13174. Спасибо Dan Crowley, Core Security Technologies.
  13175. </para>
  13176. <para lang="en">
  13177. now nginx/Windows ignores trailing spaces in URI.<br/>
  13178. Thanks to Dan Crowley, Core Security Technologies.
  13179. </para>
  13180. </change>

  13181. <change type="security">
  13182. <para lang="ru">
  13183. теперь nginx/Windows игнорирует короткие имена файлов.<br/>
  13184. Спасибо Dan Crowley, Core Security Technologies.
  13185. </para>
  13186. <para lang="en">
  13187. now nginx/Windows ignores short files names.<br/>
  13188. Thanks to Dan Crowley, Core Security Technologies.
  13189. </para>
  13190. </change>

  13191. <change type="change">
  13192. <para lang="ru">
  13193. теперь keepalive соединения после запросов POST не запрещаются для
  13194. MSIE 7.0+.<br/>
  13195. Спасибо Adam Lounds.
  13196. </para>
  13197. <para lang="en">
  13198. now keepalive connections after POST requests are not disabled for
  13199. MSIE 7.0+.<br/>
  13200. Thanks to Adam Lounds.
  13201. </para>
  13202. </change>

  13203. <change type="workaround">
  13204. <para lang="ru">
  13205. теперь keepalive соединения запрещены для Safari.<br/>
  13206. Спасибо Joshua Sierles.
  13207. </para>
  13208. <para lang="en">
  13209. now keepalive connections are disabled for Safari.<br/>
  13210. Thanks to Joshua Sierles.
  13211. </para>
  13212. </change>

  13213. <change type="bugfix">
  13214. <para lang="ru">
  13215. если проксированный или FastCGI запрос внутренне перенаправлялся
  13216. в другой проксированный или FastCGI location, то переменная
  13217. $upstream_response_time могла иметь ненормально большое значение;
  13218. ошибка появилась в 0.8.7.
  13219. </para>
  13220. <para lang="en">
  13221. if a proxied or FastCGI request was internally redirected
  13222. to another proxied or FastCGI location,
  13223. then $upstream_response_time variable may have abnormally large value;
  13224. the bug had appeared in 0.8.7.
  13225. </para>
  13226. </change>

  13227. <change type="bugfix">
  13228. <para lang="ru">
  13229. в рабочем процессе мог произойти segmentation fault
  13230. при отбрасывания тела запроса;
  13231. ошибка появилась в 0.8.11.
  13232. </para>
  13233. <para lang="en">
  13234. a segmentation fault might occur in a worker process,
  13235. while discarding a request body;
  13236. the bug had appeared in 0.8.11.
  13237. </para>
  13238. </change>

  13239. </changes>


  13240. <changes ver="0.8.32" date="2010-01-11">

  13241. <change type="bugfix">
  13242. <para lang="ru">
  13243. ошибки при использовании кодировки UTF-8 в ngx_http_autoindex_module.<br/>
  13244. Спасибо Максиму Дунину.
  13245. </para>
  13246. <para lang="en">
  13247. UTF-8 encoding usage in the ngx_http_autoindex_module.<br/>
  13248. Thanks to Maxim Dounin.
  13249. </para>
  13250. </change>

  13251. <change type="bugfix">
  13252. <para lang="ru">
  13253. именованные выделения в регулярных выражениях работали только для
  13254. двух переменных.<br/>
  13255. Спасибо Максиму Дунину.
  13256. </para>
  13257. <para lang="en">
  13258. regular expression named captures worked for two names only.<br/>
  13259. Thanks to Maxim Dounin.
  13260. </para>
  13261. </change>

  13262. <change type="bugfix">
  13263. <para lang="ru">
  13264. теперь в строке заголовка запроса "Host" используется имя "localhost",
  13265. если в директиве auth_http указан unix domain сокет.<br/>
  13266. Спасибо Максиму Дунину.
  13267. </para>
  13268. <para lang="en">
  13269. now the "localhost" name is used in the "Host" request header line,
  13270. if an unix domain socket is defined in the "auth_http" directive.<br/>
  13271. Thanks to Maxim Dounin.
  13272. </para>
  13273. </change>

  13274. <change type="bugfix">
  13275. <para lang="ru">
  13276. nginx не поддерживал передачу chunk'ами для 201-ых ответов.<br/>
  13277. Спасибо Julian Reich.
  13278. </para>
  13279. <para lang="en">
  13280. nginx did not support chunked transfer encoding for 201 responses.<br/>
  13281. Thanks to Julian Reich.
  13282. </para>
  13283. </change>

  13284. <change type="bugfix">
  13285. <para lang="ru">
  13286. если директива "expires modified" выставляла дату в прошлом, то в строке
  13287. заголовка ответа "Cache-Control" выдавалось отрицательное число.<br/>
  13288. Спасибо Алексею Капранову.
  13289. </para>
  13290. <para lang="en">
  13291. if the "expires modified" set date in the past, then a negative number
  13292. was set in the "Cache-Control" response header line.<br/>
  13293. Thanks to Alex Kapranoff.
  13294. </para>
  13295. </change>

  13296. </changes>


  13297. <changes ver="0.8.31" date="2009-12-23">

  13298. <change type="feature">
  13299. <para lang="ru">
  13300. теперь директива error_page может перенаправлять ответы со статусом 301 и 302.
  13301. </para>
  13302. <para lang="en">
  13303. now the "error_page" directive may redirect the 301 and 302 responses.
  13304. </para>
  13305. </change>

  13306. <change type="feature">
  13307. <para lang="ru">
  13308. переменные $geoip_city_continent_code, $geoip_latitude и $geoip_longitude.<br/>
  13309. Спасибо Arvind Sundararajan.
  13310. </para>
  13311. <para lang="en">
  13312. the $geoip_city_continent_code, $geoip_latitude, and $geoip_longitude
  13313. variables.<br/>
  13314. Thanks to Arvind Sundararajan.
  13315. </para>
  13316. </change>

  13317. <change type="feature">
  13318. <para lang="ru">
  13319. модуль ngx_http_image_filter_module теперь всегда удаляет
  13320. EXIF и другие данные, если они занимают больше 5% в JPEG-файле.
  13321. </para>
  13322. <para lang="en">
  13323. now the ngx_http_image_filter_module deletes always EXIF and other
  13324. application specific data if the data consume more than 5% of a JPEG file.
  13325. </para>
  13326. </change>

  13327. <change type="bugfix">
  13328. <para lang="ru">
  13329. nginx закрывал соединение при запросе закэшированного
  13330. ответа с пустым телом.<br/>
  13331. Спасибо Piotr Sikora.
  13332. </para>
  13333. <para lang="en">
  13334. nginx closed a connection if a cached response had an empty body.<br/>
  13335. Thanks to Piotr Sikora.
  13336. </para>
  13337. </change>

  13338. <change type="bugfix">
  13339. <para lang="ru">
  13340. nginx мог не собираться gcc 4.x при использовании оптимизации -O2 и выше.<br/>
  13341. Спасибо Максиму Дунину и Денису Латыпову.
  13342. </para>
  13343. <para lang="en">
  13344. nginx might not be built by gcc 4.x if the -O2 or higher optimization option
  13345. was used.<br/>
  13346. Thanks to Maxim Dounin and Denis F. Latypoff.
  13347. </para>
  13348. </change>

  13349. <change type="bugfix">
  13350. <para lang="ru">
  13351. регулярные выражения в location всегда тестировались с учётом регистра;
  13352. ошибка появилась в 0.8.25.
  13353. </para>
  13354. <para lang="en">
  13355. regular expressions in location were always tested in case-sensitive mode;
  13356. the bug had appeared in 0.8.25.
  13357. </para>
  13358. </change>

  13359. <change type="bugfix">
  13360. <para lang="ru">
  13361. nginx кэшировал 304 ответ, если в заголовке проксируемого запроса
  13362. была строка "If-None-Match".<br/>
  13363. Спасибо Tim Dettrick и David Kostal.
  13364. </para>
  13365. <para lang="en">
  13366. nginx cached a 304 response if there was the "If-None-Match" header line
  13367. in a proxied request.<br/>
  13368. Thanks to Tim Dettrick and David Kostal.
  13369. </para>
  13370. </change>

  13371. <change type="bugfix">
  13372. <para lang="ru">
  13373. nginx/Windows пытался дважды удалить временный файл
  13374. при перезаписи уже существующего файла.
  13375. </para>
  13376. <para lang="en">
  13377. nginx/Windows tried to delete a temporary file twice
  13378. if the file should replace an already existent file.
  13379. </para>
  13380. </change>

  13381. </changes>


  13382. <changes ver="0.8.30" date="2009-12-15">

  13383. <change type="change">
  13384. <para lang="ru">
  13385. теперь по умолчанию размер буфера директивы large_client_header_buffers
  13386. равен 8K.<br/>
  13387. Спасибо Andrew Cholakian.
  13388. </para>
  13389. <para lang="en">
  13390. now the default buffer size of the "large_client_header_buffers"
  13391. directive is 8K.<br/>
  13392. Thanks to Andrew Cholakian.
  13393. </para>
  13394. </change>

  13395. <change type="feature">
  13396. <para lang="ru">
  13397. файл conf/fastcgi.conf для простых конфигураций FastCGI.
  13398. </para>
  13399. <para lang="en">
  13400. the conf/fastcgi.conf for simple FastCGI configurations.
  13401. </para>
  13402. </change>

  13403. <change type="bugfix">
  13404. <para lang="ru">
  13405. nginx/Windows пытался дважды переименовать временный файл
  13406. при перезаписи уже существующего файла.
  13407. </para>
  13408. <para lang="en">
  13409. nginx/Windows tried to rename a temporary file twice if the file
  13410. should replace an already existent file.
  13411. </para>
  13412. </change>

  13413. <change type="bugfix">
  13414. <para lang="ru">
  13415. ошибки double free or corruption, возникающей, если имя хоста не было найдено;
  13416. ошибка появилась в 0.8.22.<br/>
  13417. Спасибо Константину Свисту.
  13418. </para>
  13419. <para lang="en">
  13420. of "double free or corruption" error issued if host could not be resolved;
  13421. the bug had appeared in 0.8.22.<br/>
  13422. Thanks to Konstantin Svist.
  13423. </para>
  13424. </change>

  13425. <change type="bugfix">
  13426. <para lang="ru">
  13427. в использовании libatomic на некоторых платформах.<br/>
  13428. Спасибо W-Mark Kubacki.
  13429. </para>
  13430. <para lang="en">
  13431. in libatomic usage on some platforms.<br/>
  13432. Thanks to W-Mark Kubacki.
  13433. </para>
  13434. </change>

  13435. </changes>


  13436. <changes ver="0.8.29" date="2009-11-30">

  13437. <change type="change">
  13438. <para lang="ru">
  13439. теперь для проксируемых ответов HTTP/0.9 в лог пишется код ответа "009".
  13440. </para>
  13441. <para lang="en">
  13442. now the "009" status code is written to an access log for proxied HTTP/0.9
  13443. responses.
  13444. </para>
  13445. </change>

  13446. <change type="feature">
  13447. <para lang="ru">
  13448. директивы addition_types, charset_types, gzip_types, ssi_types,
  13449. sub_filter_types и xslt_types поддерживают параметр "*".
  13450. </para>
  13451. <para lang="en">
  13452. the "addition_types", "charset_types", "gzip_types", "ssi_types",
  13453. "sub_filter_types", and "xslt_types" directives support an "*" parameter.
  13454. </para>
  13455. </change>

  13456. <change type="feature">
  13457. <para lang="ru">
  13458. использование встроенных атомарных операций GCC 4.1+.<br/>
  13459. Спасибо W-Mark Kubacki.
  13460. </para>
  13461. <para lang="en">
  13462. GCC 4.1+ built-in atomic operations usage.<br/>
  13463. Thanks to W-Mark Kubacki.
  13464. </para>
  13465. </change>

  13466. <change type="feature">
  13467. <para lang="ru">
  13468. параметр --with-libatomic[=DIR] в configure.<br/>
  13469. Спасибо W-Mark Kubacki.
  13470. </para>
  13471. <para lang="en">
  13472. the --with-libatomic[=DIR] option in the configure.<br/>
  13473. Thanks to W-Mark Kubacki.
  13474. </para>
  13475. </change>

  13476. <change type="bugfix">
  13477. <para lang="ru">
  13478. listen unix domain сокет имели ограниченные права доступа.
  13479. </para>
  13480. <para lang="en">
  13481. listen unix domain socket had limited access rights.
  13482. </para>
  13483. </change>

  13484. <change type="bugfix">
  13485. <para lang="ru">
  13486. закэшированные ответы ответов HTTP/0.9 неправильно обрабатывались.
  13487. </para>
  13488. <para lang="en">
  13489. cached HTTP/0.9 responses were handled incorrectly.
  13490. </para>
  13491. </change>

  13492. <change type="bugfix">
  13493. <para lang="ru">
  13494. именованные выделения в регулярных выражениях, заданные как "?P&lt;...&gt;",
  13495. не работали в директиве server_name.<br/>
  13496. Спасибо Максиму Дунину.
  13497. </para>
  13498. <para lang="en">
  13499. regular expression named captures given by "?P&lt;...&gt;" did not work
  13500. in a "server_name" directive.<br/>
  13501. Thanks to Maxim Dounin.
  13502. </para>
  13503. </change>

  13504. </changes>


  13505. <changes ver="0.8.28" date="2009-11-23">

  13506. <change type="bugfix">
  13507. <para lang="ru">
  13508. nginx не собирался с параметром --without-pcre;
  13509. ошибка появилась в 0.8.25.
  13510. </para>
  13511. <para lang="en">
  13512. nginx could not be built with the --without-pcre parameter;
  13513. the bug had appeared in 0.8.25.
  13514. </para>
  13515. </change>

  13516. </changes>


  13517. <changes ver="0.8.27" date="2009-11-17">

  13518. <change type="bugfix">
  13519. <para lang="ru">
  13520. регулярные выражения не работали в nginx/Windows;
  13521. ошибка появилась в 0.8.25.
  13522. </para>
  13523. <para lang="en">
  13524. regular expressions did not work in nginx/Windows;
  13525. the bug had appeared in 0.8.25.
  13526. </para>
  13527. </change>

  13528. </changes>


  13529. <changes ver="0.8.26" date="2009-11-16">

  13530. <change type="bugfix">
  13531. <para lang="ru">
  13532. ошибки при использовании выделений в директиве rewrite;
  13533. ошибка появилась в 0.8.25.
  13534. </para>
  13535. <para lang="en">
  13536. in captures usage in "rewrite" directive;
  13537. the bug had appeared in 0.8.25.
  13538. </para>
  13539. </change>

  13540. <change type="bugfix">
  13541. <para lang="ru">
  13542. nginx не собирался без параметра --with-debug;
  13543. ошибка появилась в 0.8.25.
  13544. </para>
  13545. <para lang="en">
  13546. nginx could not be built without the --with-debug option;
  13547. the bug had appeared in 0.8.25.
  13548. </para>
  13549. </change>

  13550. </changes>


  13551. <changes ver="0.8.25" date="2009-11-16">

  13552. <change type="change">
  13553. <para lang="ru">
  13554. теперь в лог ошибок не пишется сообщение, если переменная не найдена
  13555. с помощью метода $r->variable().
  13556. </para>
  13557. <para lang="en">
  13558. now no message is written in an error log if a variable is not found by
  13559. $r->variable() method.
  13560. </para>
  13561. </change>

  13562. <change type="feature">
  13563. <para lang="ru">
  13564. модуль ngx_http_degradation_module.
  13565. </para>
  13566. <para lang="en">
  13567. the ngx_http_degradation_module.
  13568. </para>
  13569. </change>

  13570. <change type="feature">
  13571. <para lang="ru">
  13572. именованные выделения в регулярных выражениях.
  13573. </para>
  13574. <para lang="en">
  13575. regular expression named captures.
  13576. </para>
  13577. </change>

  13578. <change type="feature">
  13579. <para lang="ru">
  13580. теперь при использовании переменных в директиве proxy_pass не требуется
  13581. задавать URI.
  13582. </para>
  13583. <para lang="en">
  13584. now URI part is not required a "proxy_pass" directive if variables are used.
  13585. </para>
  13586. </change>

  13587. <change type="feature">
  13588. <para lang="ru">
  13589. теперь директива msie_padding работает и для Chrome.
  13590. </para>
  13591. <para lang="en">
  13592. now the "msie_padding" directive works for Chrome too.
  13593. </para>
  13594. </change>

  13595. <change type="bugfix">
  13596. <para lang="ru">
  13597. в рабочем процессе происходил segmentation fault при недостатке памяти;
  13598. ошибка появилась в 0.8.18.
  13599. </para>
  13600. <para lang="en">
  13601. a segmentation fault occurred in a worker process on low memory condition;
  13602. the bug had appeared in 0.8.18.
  13603. </para>
  13604. </change>

  13605. <change type="bugfix">
  13606. <para lang="ru">
  13607. nginx передавал сжатые ответы клиентам, не поддерживающим сжатие,
  13608. при настройках gzip_static on и gzip_vary off;
  13609. ошибка появилась в 0.8.16.
  13610. </para>
  13611. <para lang="en">
  13612. nginx sent gzipped responses to clients those do not support gzip,
  13613. if "gzip_static on" and "gzip_vary off";
  13614. the bug had appeared in 0.8.16.
  13615. </para>
  13616. </change>

  13617. </changes>


  13618. <changes ver="0.8.24" date="2009-11-11">

  13619. <change type="bugfix">
  13620. <para lang="ru">
  13621. nginx всегда добавлял строку "Content-Encoding: gzip" в заголовок
  13622. 304-ых ответов модуля ngx_http_gzip_static_module.
  13623. </para>
  13624. <para lang="en">
  13625. nginx always added "Content-Encoding: gzip" response header line
  13626. in 304 responses sent by ngx_http_gzip_static_module.
  13627. </para>
  13628. </change>

  13629. <change type="bugfix">
  13630. <para lang="ru">
  13631. nginx не собирался без параметра --with-debug;
  13632. ошибка появилась в 0.8.23.
  13633. </para>
  13634. <para lang="en">
  13635. nginx could not be built without the --with-debug option;
  13636. the bug had appeared in 0.8.23.
  13637. </para>
  13638. </change>

  13639. <change type="bugfix">
  13640. <para lang="ru">
  13641. параметр "unix:" в директиве set_real_ip_from неправильно наследовался
  13642. с предыдущего уровня.
  13643. </para>
  13644. <para lang="en">
  13645. the "unix:" parameter of the "set_real_ip_from" directive inherited
  13646. incorrectly from previous level.
  13647. </para>
  13648. </change>

  13649. <change type="bugfix">
  13650. <para lang="ru">
  13651. в resolver'е при определении пустого имени.
  13652. </para>
  13653. <para lang="en">
  13654. in resolving empty name.
  13655. </para>
  13656. </change>

  13657. </changes>


  13658. <changes ver="0.8.23" date="2009-11-11">

  13659. <change type="security">
  13660. <para lang="ru">
  13661. теперь SSL/TLS renegotiation запрещён.<br/>
  13662. Спасибо Максиму Дунину.
  13663. </para>
  13664. <para lang="en">
  13665. now SSL/TLS renegotiation is disabled.<br/>
  13666. Thanks to Maxim Dounin.
  13667. </para>
  13668. </change>

  13669. <change type="bugfix">
  13670. <para lang="ru">
  13671. listen unix domain сокет не наследовался во время обновления без перерыва.
  13672. </para>
  13673. <para lang="en">
  13674. listen unix domain socket did not inherit while online upgrade.
  13675. </para>
  13676. </change>

  13677. <change type="bugfix">
  13678. <para lang="ru">
  13679. параметр "unix:" в директиве set_real_ip_from не работал без ещё
  13680. одной директивы с любым IP-адресом.
  13681. </para>
  13682. <para lang="en">
  13683. the "unix:" parameter of the "set_real_ip_from" directive did not without
  13684. yet another directive with any IP address.
  13685. </para>
  13686. </change>

  13687. <change type="bugfix">
  13688. <para lang="ru">
  13689. segmentation fault и зацикливания в resolver'е.
  13690. </para>
  13691. <para lang="en">
  13692. segmentation fault and infinite looping in resolver.
  13693. </para>
  13694. </change>

  13695. <change type="bugfix">
  13696. <para lang="ru">
  13697. в resolver'е.<br/>
  13698. Спасибо Артёму Бохану.
  13699. </para>
  13700. <para lang="en">
  13701. in resolver.<br/>
  13702. Thanks to Artem Bokhan.
  13703. </para>
  13704. </change>

  13705. </changes>


  13706. <changes ver="0.8.22" date="2009-11-03">

  13707. <change type="feature">
  13708. <para lang="ru">
  13709. директивы proxy_bind, fastcgi_bind и memcached_bind.
  13710. </para>
  13711. <para lang="en">
  13712. the "proxy_bind", "fastcgi_bind", and "memcached_bind" directives.
  13713. </para>
  13714. </change>

  13715. <change type="feature">
  13716. <para lang="ru">
  13717. директивы access и deny поддерживают IPv6.
  13718. </para>
  13719. <para lang="en">
  13720. the "access" and the "deny" directives support IPv6.
  13721. </para>
  13722. </change>

  13723. <change type="feature">
  13724. <para lang="ru">
  13725. директива set_real_ip_from поддерживает IPv6 адреса в заголовках запроса.
  13726. </para>
  13727. <para lang="en">
  13728. the "set_real_ip_from" directive supports IPv6 addresses in request headers.
  13729. </para>
  13730. </change>

  13731. <change type="feature">
  13732. <para lang="ru">
  13733. параметр "unix:" в директиве set_real_ip_from.
  13734. </para>
  13735. <para lang="en">
  13736. the "unix:" parameter of the "set_real_ip_from" directive.
  13737. </para>
  13738. </change>

  13739. <change type="bugfix">
  13740. <para lang="ru">
  13741. nginx не удалял unix domain сокет после тестирования конфигурации.
  13742. </para>
  13743. <para lang="en">
  13744. nginx did not delete unix domain socket after configuration testing.
  13745. </para>
  13746. </change>

  13747. <change type="bugfix">
  13748. <para lang="ru">
  13749. nginx удалял unix domain сокет во время обновления без перерыва.
  13750. </para>
  13751. <para lang="en">
  13752. nginx deleted unix domain socket while online upgrade.
  13753. </para>
  13754. </change>

  13755. <change type="bugfix">
  13756. <para lang="ru">
  13757. оператор "!-x" не работал.<br/>
  13758. Спасибо Максиму Дунину.
  13759. </para>
  13760. <para lang="en">
  13761. the "!-x" operator did not work.<br/>
  13762. Thanks to Maxim Dounin.
  13763. </para>
  13764. </change>

  13765. <change type="bugfix">
  13766. <para lang="ru">
  13767. в рабочем процессе мог произойти segmentation fault
  13768. при использовании limit_rate в HTTPS сервере.<br/>
  13769. Спасибо Максиму Дунину.
  13770. </para>
  13771. <para lang="en">
  13772. a segmentation fault might occur in a worker process,
  13773. if limit_rate was used in HTTPS server.<br/>
  13774. Thanks to Maxim Dounin.
  13775. </para>
  13776. </change>

  13777. <change type="bugfix">
  13778. <para lang="ru">
  13779. при записи в лог переменной $limit_rate
  13780. в рабочем процессе происходил segmentation fault.<br/>
  13781. Спасибо Максиму Дунину.
  13782. </para>
  13783. <para lang="en">
  13784. a segmentation fault might occur in a worker process
  13785. while $limit_rate logging.<br/>
  13786. Thanks to Maxim Dounin.
  13787. </para>
  13788. </change>

  13789. <change type="bugfix">
  13790. <para lang="ru">
  13791. в рабочем процессе мог произойти segmentation fault,
  13792. если внутри блока server не было директивы listen;
  13793. ошибка появилась в 0.8.21.
  13794. </para>
  13795. <para lang="en">
  13796. a segmentation fault might occur in a worker process,
  13797. if there was no "listen" directive in "server" block;
  13798. the bug had appeared in 0.8.21.
  13799. </para>
  13800. </change>

  13801. </changes>


  13802. <changes ver="0.8.21" date="2009-10-26">

  13803. <change type="feature">
  13804. <para lang="ru">
  13805. теперь ключ -V показывает статус поддержки TLS SNI.
  13806. </para>
  13807. <para lang="en">
  13808. now the "-V" switch shows TLS SNI support.
  13809. </para>
  13810. </change>

  13811. <change type="feature">
  13812. <para lang="ru">
  13813. директива listen модуля HTTP поддерживает unix domain сокеты.<br/>
  13814. Спасибо Hongli Lai.
  13815. </para>
  13816. <para lang="en">
  13817. the "listen" directive of the HTTP module supports unix domain sockets.<br/>
  13818. Thanks to Hongli Lai.
  13819. </para>
  13820. </change>

  13821. <change type="feature">
  13822. <para lang="ru">
  13823. параметр "default_server" в директиве listen.
  13824. </para>
  13825. <para lang="en">
  13826. the "default_server" parameter of the "listen" directive.
  13827. </para>
  13828. </change>

  13829. <change type="feature">
  13830. <para lang="ru">
  13831. теперь параметр "default" не обязателен для установки параметров listen-сокета.
  13832. </para>
  13833. <para lang="en">
  13834. now a "default" parameter is not required to set listen socket options.
  13835. </para>
  13836. </change>

  13837. <change type="bugfix">
  13838. <para lang="ru">
  13839. nginx не поддерживал даты в 2038 году на 32-битных платформах;
  13840. </para>
  13841. <para lang="en">
  13842. nginx did not support dates in 2038 year on 32-bit platforms;
  13843. </para>
  13844. </change>

  13845. <change type="bugfix">
  13846. <para lang="ru">
  13847. утечки сокетов;
  13848. ошибка появилась в 0.8.11.
  13849. </para>
  13850. <para lang="en">
  13851. socket leak;
  13852. the bug had appeared in 0.8.11.
  13853. </para>
  13854. </change>

  13855. </changes>


  13856. <changes ver="0.8.20" date="2009-10-14">

  13857. <change type="change">
  13858. <para lang="ru">
  13859. теперь по умолчанию используются следующие шифры SSL: "HIGH:!ADH:!MD5".
  13860. </para>
  13861. <para lang="en">
  13862. now default SSL ciphers are "HIGH:!ADH:!MD5".
  13863. </para>
  13864. </change>

  13865. <change type="bugfix">
  13866. <para lang="ru">
  13867. модуль ngx_http_autoindex_module не показывал последний слэш для линков
  13868. на каталоги;
  13869. ошибка появилась в 0.7.15.
  13870. </para>
  13871. <para lang="en">
  13872. the ngx_http_autoindex_module did not show the trailing slash in links to
  13873. a directory;
  13874. the bug had appeared in 0.7.15.
  13875. </para>
  13876. </change>

  13877. <change type="bugfix">
  13878. <para lang="ru">
  13879. nginx не закрывал лог, заданный параметром конфигурации --error-log-path;
  13880. ошибка появилась в 0.7.53.
  13881. </para>
  13882. <para lang="en">
  13883. nginx did not close a log file set by the --error-log-path configuration option;
  13884. the bug had appeared in 0.7.53.
  13885. </para>
  13886. </change>

  13887. <change type="bugfix">
  13888. <para lang="ru">
  13889. nginx не считал запятую разделителем в строке "Cache-Control" в
  13890. заголовке ответа бэкенда.
  13891. </para>
  13892. <para lang="en">
  13893. nginx did not treat a comma as separator in the "Cache-Control" backend response
  13894. header line.
  13895. </para>
  13896. </change>

  13897. <change type="bugfix">
  13898. <para lang="ru">
  13899. nginx/Windows мог не создать временный файл, файл в кэше или файл
  13900. с помощью директив proxy/fastcgi_store, если рабочий процесс не имел
  13901. достаточно прав для работы с каталогами верхнего уровня.
  13902. </para>
  13903. <para lang="en">
  13904. nginx/Windows might not create temporary file, a cache file, or
  13905. "proxy/fastcgi_store"d file if a worker had no enough access rights
  13906. for top level directories.
  13907. </para>
  13908. </change>

  13909. <change type="bugfix">
  13910. <para lang="ru">
  13911. строки "Set-Cookie" и "P3P" в заголовке ответа FastCGI-сервера не скрывались
  13912. при кэшировании, если не использовались директивы fastcgi_hide_header
  13913. с любыми параметрами.
  13914. </para>
  13915. <para lang="en">
  13916. the "Set-Cookie" and "P3P" FastCGI response header lines were not hidden
  13917. while caching if no "fastcgi_hide_header" directives were used with
  13918. any parameters.
  13919. </para>
  13920. </change>

  13921. <change type="bugfix">
  13922. <para lang="ru">
  13923. nginx неверно считал размер кэша на диске.
  13924. </para>
  13925. <para lang="en">
  13926. nginx counted incorrectly disk cache size.
  13927. </para>
  13928. </change>

  13929. </changes>


  13930. <changes ver="0.8.19" date="2009-10-06">

  13931. <change type="change">
  13932. <para lang="ru">
  13933. теперь протокол SSLv2 по умолчанию запрещён.
  13934. </para>
  13935. <para lang="en">
  13936. now SSLv2 protocol is disabled by default.
  13937. </para>
  13938. </change>

  13939. <change type="change">
  13940. <para lang="ru">
  13941. теперь по умолчанию используются следующие шифры SSL:
  13942. "ALL:!ADH:RC4+RSA:+HIGH:+MEDIUM".
  13943. </para>
  13944. <para lang="en">
  13945. now default SSL ciphers are "ALL:!ADH:RC4+RSA:+HIGH:+MEDIUM".
  13946. </para>
  13947. </change>

  13948. <change type="bugfix">
  13949. <para lang="ru">
  13950. директива limit_req не работала;
  13951. ошибка появилась в 0.8.18.
  13952. </para>
  13953. <para lang="en">
  13954. a "limit_req" directive did not work;
  13955. the bug had appeared in 0.8.18.
  13956. </para>
  13957. </change>

  13958. </changes>


  13959. <changes ver="0.8.18" date="2009-10-06">

  13960. <change type="feature">
  13961. <para lang="ru">
  13962. директива read_ahead.
  13963. </para>
  13964. <para lang="en">
  13965. the "read_ahead" directive.
  13966. </para>
  13967. </change>

  13968. <change type="feature">
  13969. <para lang="ru">
  13970. теперь можно использовать несколько директив perl_modules.
  13971. </para>
  13972. <para lang="en">
  13973. now several "perl_modules" directives may be used.
  13974. </para>
  13975. </change>

  13976. <change type="feature">
  13977. <para lang="ru">
  13978. директивы limit_req_log_level и limit_conn_log_level.
  13979. </para>
  13980. <para lang="en">
  13981. the "limit_req_log_level" and "limit_conn_log_level" directives.
  13982. </para>
  13983. </change>

  13984. <change type="bugfix">
  13985. <para lang="ru">
  13986. теперь директива limit_req соответствует алгоритму leaky bucket.<br/>
  13987. Спасибо Максиму Дунину.
  13988. </para>
  13989. <para lang="en">
  13990. now "limit_req" directive conforms to the leaky bucket algorithm.<br/>
  13991. Thanks to Maxim Dounin.
  13992. </para>
  13993. </change>

  13994. <change type="bugfix">
  13995. <para lang="ru">
  13996. nginx не работал на Linux/sparc.<br/>
  13997. Спасибо Marcus Ramberg.
  13998. </para>
  13999. <para lang="en">
  14000. nginx did not work on Linux/sparc.<br/>
  14001. Thanks to Marcus Ramberg.
  14002. </para>
  14003. </change>

  14004. <change type="bugfix">
  14005. <para lang="ru">
  14006. nginx слал символ '\0' в строке "Location" в заголовке в ответе на запрос
  14007. MKCOL.<br/>
  14008. Спасибо Xie Zhenye.
  14009. </para>
  14010. <para lang="en">
  14011. nginx sent '\0' in a "Location" response header line on MKCOL request.<br/>
  14012. Thanks to Xie Zhenye.
  14013. </para>
  14014. </change>

  14015. <change type="bugfix">
  14016. <para lang="ru">
  14017. вместо кода ответа 499 в лог записывался код 0;
  14018. ошибка появилась в 0.8.11.
  14019. </para>
  14020. <para lang="en">
  14021. zero status code was logged instead of 499 status code;
  14022. the bug had appeared in 0.8.11.
  14023. </para>
  14024. </change>

  14025. <change type="bugfix">
  14026. <para lang="ru">
  14027. утечки сокетов;
  14028. ошибка появилась в 0.8.11.
  14029. </para>
  14030. <para lang="en">
  14031. socket leak;
  14032. the bug had appeared in 0.8.11.
  14033. </para>
  14034. </change>

  14035. </changes>


  14036. <changes ver="0.8.17" date="2009-09-28">

  14037. <change type="security">
  14038. <para lang="ru">
  14039. теперь символы "/../" запрещены в строке "Destination" в заголовке запроса.
  14040. </para>
  14041. <para lang="en">
  14042. now "/../" are disabled in "Destination" request header line.
  14043. </para>
  14044. </change>

  14045. <change type="change">
  14046. <para lang="ru">
  14047. теперь значение переменной $host всегда в нижнем регистре.
  14048. </para>
  14049. <para lang="en">
  14050. now $host variable value is always low case.
  14051. </para>
  14052. </change>

  14053. <change type="feature">
  14054. <para lang="ru">
  14055. переменная $ssl_session_id.
  14056. </para>
  14057. <para lang="en">
  14058. the $ssl_session_id variable.
  14059. </para>
  14060. </change>

  14061. <change type="bugfix">
  14062. <para lang="ru">
  14063. утечки сокетов;
  14064. ошибка появилась в 0.8.11.
  14065. </para>
  14066. <para lang="en">
  14067. socket leak;
  14068. the bug had appeared in 0.8.11.
  14069. </para>
  14070. </change>

  14071. </changes>


  14072. <changes ver="0.8.16" date="2009-09-22">

  14073. <change type="feature">
  14074. <para lang="ru">
  14075. директива image_filter_transparency.
  14076. </para>
  14077. <para lang="en">
  14078. the "image_filter_transparency" directive.
  14079. </para>
  14080. </change>

  14081. <change type="bugfix">
  14082. <para lang="ru">
  14083. директива "addition_types" была неверно названа "addtion_types".
  14084. </para>
  14085. <para lang="en">
  14086. "addition_types" directive was incorrectly named "addtion_types".
  14087. </para>
  14088. </change>

  14089. <change type="bugfix">
  14090. <para lang="ru">
  14091. порчи кэша resolver'а.<br/>
  14092. Спасибо Matthew Dempsky.
  14093. </para>
  14094. <para lang="en">
  14095. resolver cache poisoning.<br/>
  14096. Thanks to Matthew Dempsky.
  14097. </para>
  14098. </change>

  14099. <change type="bugfix">
  14100. <para lang="ru">
  14101. утечки памяти в resolver'е.<br/>
  14102. Спасибо Matthew Dempsky.
  14103. </para>
  14104. <para lang="en">
  14105. memory leak in resolver.<br/>
  14106. Thanks to Matthew Dempsky.
  14107. </para>
  14108. </change>

  14109. <change type="bugfix">
  14110. <para lang="ru">
  14111. неверная строка запроса в переменной $request записывалась в access_log
  14112. только при использовании error_log на уровне info или debug.
  14113. </para>
  14114. <para lang="en">
  14115. invalid request line in $request variable was written in access_log
  14116. only if error_log was set to "info" or "debug" level.
  14117. </para>
  14118. </change>

  14119. <change type="bugfix">
  14120. <para lang="ru">
  14121. в поддержке альфа-канала PNG в модуле ngx_http_image_filter_module.
  14122. </para>
  14123. <para lang="en">
  14124. in PNG alpha-channel support in the ngx_http_image_filter_module.
  14125. </para>
  14126. </change>

  14127. <change type="bugfix">
  14128. <para lang="ru">
  14129. nginx всегда добавлял строку "Vary: Accept-Encoding" в заголовок ответа,
  14130. если обе директивы gzip_static и gzip_vary были включены.
  14131. </para>
  14132. <para lang="en">
  14133. nginx always added "Vary: Accept-Encoding" response header line,
  14134. if both "gzip_static" and "gzip_vary" were on.
  14135. </para>
  14136. </change>

  14137. <change type="bugfix">
  14138. <para lang="ru">
  14139. в поддержке кодировки UTF-8 директивой try_files в nginx/Windows.
  14140. </para>
  14141. <para lang="en">
  14142. in UTF-8 encoding support by "try_files" directive in nginx/Windows.
  14143. </para>
  14144. </change>

  14145. <change type="bugfix">
  14146. <para lang="ru">
  14147. ошибки при использовании post_action;
  14148. ошибка появилась в 0.8.11.<br/>
  14149. Спасибо Игорю Артемьеву.
  14150. </para>
  14151. <para lang="en">
  14152. in "post_action" directive usage;
  14153. the bug had appeared in 0.8.11.<br/>
  14154. Thanks to Igor Artemiev.
  14155. </para>
  14156. </change>

  14157. </changes>


  14158. <changes ver="0.8.15" date="2009-09-14">

  14159. <change type="security">
  14160. <para lang="ru">
  14161. при обработке специально созданного запроса
  14162. в рабочем процессе мог произойти segmentation fault.<br/>
  14163. Спасибо Chris Ries.
  14164. </para>
  14165. <para lang="en">
  14166. a segmentation fault might occur in worker process
  14167. while specially crafted request handling.<br/>
  14168. Thanks to Chris Ries.
  14169. </para>
  14170. </change>

  14171. <change type="bugfix">
  14172. <para lang="ru">
  14173. если были описаны имена .domain.tld, .sub.domain.tld и .domain-some.tld,
  14174. то имя .sub.domain.tld попадало под маску .domain.tld.
  14175. </para>
  14176. <para lang="en">
  14177. if names .domain.tld, .sub.domain.tld, and .domain-some.tld were defined,
  14178. then the name .sub.domain.tld was matched by .domain.tld.
  14179. </para>
  14180. </change>

  14181. <change type="bugfix">
  14182. <para lang="ru">
  14183. в поддержке прозрачности в модуле ngx_http_image_filter_module.
  14184. </para>
  14185. <para lang="en">
  14186. in transparency support in the ngx_http_image_filter_module.
  14187. </para>
  14188. </change>

  14189. <change type="bugfix">
  14190. <para lang="ru">
  14191. в файловом AIO.
  14192. </para>
  14193. <para lang="en">
  14194. in file AIO.
  14195. </para>
  14196. </change>

  14197. <change type="bugfix">
  14198. <para lang="ru">
  14199. ошибки при использовании X-Accel-Redirect;
  14200. ошибка появилась в 0.8.11.
  14201. </para>
  14202. <para lang="en">
  14203. in X-Accel-Redirect usage;
  14204. the bug had appeared in 0.8.11.
  14205. </para>
  14206. </change>

  14207. <change type="bugfix">
  14208. <para lang="ru">
  14209. ошибки при использовании встроенного перла;
  14210. ошибка появилась в 0.8.11.
  14211. </para>
  14212. <para lang="en">
  14213. in embedded perl module;
  14214. the bug had appeared in 0.8.11.
  14215. </para>
  14216. </change>

  14217. </changes>


  14218. <changes ver="0.8.14" date="2009-09-07">

  14219. <change type="bugfix">
  14220. <para lang="ru">
  14221. устаревший закэшированный запрос мог залипнуть в состоянии "UPDATING".
  14222. </para>
  14223. <para lang="en">
  14224. an expired cached response might stick in the "UPDATING" state.
  14225. </para>
  14226. </change>

  14227. <change type="bugfix">
  14228. <para lang="ru">
  14229. при использовании error_log на уровне info или debug
  14230. в рабочем процессе мог произойти segmentation fault.<br/>
  14231. Спасибо Сергею Боченкову.
  14232. </para>
  14233. <para lang="en">
  14234. a segmentation fault might occur in worker process,
  14235. if error_log was set to info or debug level.<br/>
  14236. Thanks to Sergey Bochenkov.
  14237. </para>
  14238. </change>

  14239. <change type="bugfix">
  14240. <para lang="ru">
  14241. ошибки при использовании встроенного перла;
  14242. ошибка появилась в 0.8.11.
  14243. </para>
  14244. <para lang="en">
  14245. in embedded perl module;
  14246. the bug had appeared in 0.8.11.
  14247. </para>
  14248. </change>

  14249. <change type="bugfix">
  14250. <para lang="ru">
  14251. директива error_page не перенаправляла ошибку 413;
  14252. ошибка появилась в 0.6.10.
  14253. </para>
  14254. <para lang="en">
  14255. an "error_page" directive did not redirect a 413 error;
  14256. the bug had appeared in 0.6.10.
  14257. </para>
  14258. </change>

  14259. </changes>


  14260. <changes ver="0.8.13" date="2009-08-31">

  14261. <change type="bugfix">
  14262. <para lang="ru">
  14263. в директиве "aio sendfile";
  14264. ошибка появилась в 0.8.12.
  14265. </para>
  14266. <para lang="en">
  14267. in the "aio sendfile" directive;
  14268. the bug had appeared in 0.8.12.
  14269. </para>
  14270. </change>

  14271. <change type="bugfix">
  14272. <para lang="ru">
  14273. nginx не собирался без параметра --with-file-aio на FreeBSD;
  14274. ошибка появилась в 0.8.12.
  14275. </para>
  14276. <para lang="en">
  14277. nginx could not be built without the --with-file-aio option on FreeBSD;
  14278. the bug had appeared in 0.8.12.
  14279. </para>
  14280. </change>

  14281. </changes>


  14282. <changes ver="0.8.12" date="2009-08-31">

  14283. <change type="feature">
  14284. <para lang="ru">
  14285. параметр sendfile в директиве aio во FreeBSD.
  14286. </para>
  14287. <para lang="en">
  14288. the "sendfile" parameter in the "aio" directive on FreeBSD.
  14289. </para>
  14290. </change>

  14291. <change type="bugfix">
  14292. <para lang="ru">
  14293. ошибки при использовании try_files;
  14294. ошибка появилась в 0.8.11.
  14295. </para>
  14296. <para lang="en">
  14297. in try_files;
  14298. the bug had appeared in 0.8.11.
  14299. </para>
  14300. </change>

  14301. <change type="bugfix">
  14302. <para lang="ru">
  14303. ошибки при использовании memcached;
  14304. ошибка появилась в 0.8.11.
  14305. </para>
  14306. <para lang="en">
  14307. in memcached;
  14308. the bug had appeared in 0.8.11.
  14309. </para>
  14310. </change>

  14311. </changes>

  14312. <changes ver="0.8.11" date="2009-08-28">

  14313. <change type="change">
  14314. <para lang="ru">
  14315. теперь директива "gzip_disable msie6" не запрещает сжатие для
  14316. <nobr>MSIE 6.0 SV1.</nobr>
  14317. </para>
  14318. <para lang="en">
  14319. now directive "gzip_disable msie6" does not disable gzipping for
  14320. <nobr>MSIE 6.0 SV1.</nobr>
  14321. </para>
  14322. </change>

  14323. <change type="feature">
  14324. <para lang="ru">
  14325. поддержка файлового AIO во FreeBSD и Linux.
  14326. </para>
  14327. <para lang="en">
  14328. file AIO support on FreeBSD and Linux.
  14329. </para>
  14330. </change>

  14331. <change type="feature">
  14332. <para lang="ru">
  14333. директива directio_alignment.
  14334. </para>
  14335. <para lang="en">
  14336. the "directio_alignment" directive.
  14337. </para>
  14338. </change>

  14339. </changes>


  14340. <changes ver="0.8.10" date="2009-08-24">

  14341. <change type="bugfix">
  14342. <para lang="ru">
  14343. утечек памяти при использовании базы GeoIP City.
  14344. </para>
  14345. <para lang="en">
  14346. memory leaks if GeoIP City database was used.
  14347. </para>
  14348. </change>

  14349. <change type="bugfix">
  14350. <para lang="ru">
  14351. ошибки при копировании временных файлов в постоянное место хранения;
  14352. ошибка появилась в 0.8.9.
  14353. </para>
  14354. <para lang="en">
  14355. in copying temporary files to permanent storage area;
  14356. the bug had appeared in 0.8.9.
  14357. </para>
  14358. </change>

  14359. </changes>


  14360. <changes ver="0.8.9" date="2009-08-17">

  14361. <change type="feature">
  14362. <para lang="ru">
  14363. теперь стартовый загрузчик кэша работает в отдельном процесс;
  14364. это должно улучшить обработку больших кэшей.
  14365. </para>
  14366. <para lang="en">
  14367. now the start cache loader runs in a separate process;
  14368. this should improve large caches handling.
  14369. </para>
  14370. </change>

  14371. <change type="feature">
  14372. <para lang="ru">
  14373. теперь временные файлы и постоянное место хранения могут располагаться
  14374. на разных файловых системах.
  14375. </para>
  14376. <para lang="en">
  14377. now temporary files and permanent storage area may reside at
  14378. different file systems.
  14379. </para>
  14380. </change>

  14381. </changes>


  14382. <changes ver="0.8.8" date="2009-08-10">

  14383. <change type="bugfix">
  14384. <para lang="ru">
  14385. в обработке заголовков ответа, разделённых в FastCGI-записях.
  14386. </para>
  14387. <para lang="en">
  14388. in handling FastCGI headers split in records.
  14389. </para>
  14390. </change>

  14391. <change type="bugfix">
  14392. <para lang="ru">
  14393. если запрос обрабатывался в двух проксированных или FastCGI location'ах
  14394. и в первом из них использовалось кэширование,
  14395. то в рабочем процессе происходил segmentation fault;
  14396. ошибка появилась в 0.8.7.
  14397. </para>
  14398. <para lang="en">
  14399. a segmentation fault occurred in worker process,
  14400. if a request was handled in two proxied or FastCGIed locations
  14401. and a caching was enabled in the first location;
  14402. the bug had appeared in 0.8.7.
  14403. </para>
  14404. </change>

  14405. </changes>


  14406. <changes ver="0.8.7" date="2009-07-27">

  14407. <change type="change">
  14408. <para lang="ru">
  14409. минимальная поддерживаемая версия OpenSSL&mdash;0.9.7.
  14410. </para>
  14411. <para lang="en">
  14412. minimum supported OpenSSL version is 0.9.7.
  14413. </para>
  14414. </change>

  14415. <change type="change">
  14416. <para lang="ru">
  14417. параметр ask директивы ssl_verify_client изменён на параметр optional
  14418. и теперь он проверяет клиентский сертификат, если он был предложен.<br/>
  14419. Спасибо Brice Figureau.
  14420. </para>
  14421. <para lang="en">
  14422. the "ask" parameter of the "ssl_verify_client" directive was changed
  14423. to the "optional" parameter and now it checks a client certificate if it was
  14424. offered.<br/>
  14425. Thanks to Brice Figureau.
  14426. </para>
  14427. </change>

  14428. <change type="feature">
  14429. <para lang="ru">
  14430. переменная $ssl_client_verify.<br/>
  14431. Спасибо Brice Figureau.
  14432. </para>
  14433. <para lang="en">
  14434. the $ssl_client_verify variable.<br/>
  14435. Thanks to Brice Figureau.
  14436. </para>
  14437. </change>

  14438. <change type="feature">
  14439. <para lang="ru">
  14440. директива ssl_crl.<br/>
  14441. Спасибо Brice Figureau.
  14442. </para>
  14443. <para lang="en">
  14444. the "ssl_crl" directive.<br/>
  14445. Thanks to Brice Figureau.
  14446. </para>
  14447. </change>

  14448. <change type="feature">
  14449. <para lang="ru">
  14450. параметр proxy директивы geo.
  14451. </para>
  14452. <para lang="en">
  14453. the "proxy" parameter of the "geo" directive.
  14454. </para>
  14455. </change>

  14456. <change type="feature">
  14457. <para lang="ru">
  14458. директива image_filter поддерживает переменные для задания размеров.
  14459. </para>
  14460. <para lang="en">
  14461. the "image_filter" directive supports variables for setting size.
  14462. </para>
  14463. </change>

  14464. <change type="bugfix">
  14465. <para lang="ru">
  14466. использование переменной $ssl_client_cert портило память;
  14467. ошибка появилась в 0.7.7.<br/>
  14468. Спасибо Сергею Журавлёву.
  14469. </para>
  14470. <para lang="en">
  14471. the $ssl_client_cert variable usage corrupted memory;
  14472. the bug had appeared in 0.7.7.<br/>
  14473. Thanks to Sergey Zhuravlev.
  14474. </para>
  14475. </change>

  14476. <change type="bugfix">
  14477. <para lang="ru">
  14478. директивы proxy_pass_header и fastcgi_pass_header" не передавали клиенту
  14479. строки "X-Accel-Redirect", "X-Accel-Limit-Rate", "X-Accel-Buffering" и
  14480. "X-Accel-Charset" из заголовка ответа бэкенда.<br/>
  14481. Спасибо Максиму Дунину.
  14482. </para>
  14483. <para lang="en">
  14484. "proxy_pass_header" and "fastcgi_pass_header" directives did not pass to
  14485. a client the "X-Accel-Redirect", "X-Accel-Limit-Rate", "X-Accel-Buffering",
  14486. and "X-Accel-Charset" lines from backend response header.<br/>
  14487. Thanks to Maxim Dounin.
  14488. </para>
  14489. </change>

  14490. <change type="bugfix">
  14491. <para lang="ru">
  14492. в обработке строк "Last-Modified" и "Accept-Ranges" в заголовке ответа бэкенда;
  14493. ошибка появилась в 0.7.44.<br/>
  14494. Спасибо Максиму Дунину.
  14495. </para>
  14496. <para lang="en">
  14497. in handling "Last-Modified" and "Accept-Ranges" backend response header lines;
  14498. the bug had appeared in 0.7.44.<br/>
  14499. Thanks to Maxim Dounin.
  14500. </para>
  14501. </change>

  14502. <change type="bugfix">
  14503. <para lang="ru">
  14504. ошибки "[alert] zero size buf" при получении пустых ответы в подзапросах;
  14505. ошибка появилась в 0.8.5.
  14506. </para>
  14507. <para lang="en">
  14508. the "[alert] zero size buf" error if subrequest returns an empty response;
  14509. the bug had appeared in 0.8.5.
  14510. </para>
  14511. </change>

  14512. </changes>


  14513. <changes ver="0.8.6" date="2009-07-20">

  14514. <change type="feature">
  14515. <para lang="ru">
  14516. модуль ngx_http_geoip_module.
  14517. </para>
  14518. <para lang="en">
  14519. the ngx_http_geoip_module.
  14520. </para>
  14521. </change>

  14522. <change type="bugfix">
  14523. <para lang="ru">
  14524. XSLT-фильтр мог выдавать ошибку "not well formed XML document" для
  14525. правильного документа.<br/>
  14526. Спасибо Kuramoto Eiji.
  14527. </para>
  14528. <para lang="en">
  14529. XSLT filter may fail with message "not well formed XML document"
  14530. for valid XML document.<br/>
  14531. Thanks to Kuramoto Eiji.
  14532. </para>
  14533. </change>

  14534. <change type="bugfix">
  14535. <para lang="ru">
  14536. в MacOSX, Cygwin и nginx/Windows при проверке location'ов, заданных
  14537. регулярным выражением, теперь всегда делается сравнение без учёта
  14538. регистра символов.
  14539. </para>
  14540. <para lang="en">
  14541. now in MacOSX, Cygwin, and nginx/Windows locations given by a regular
  14542. expression are always tested in case insensitive mode.
  14543. </para>
  14544. </change>

  14545. <change type="bugfix">
  14546. <para lang="ru">
  14547. теперь nginx/Windows игнорирует точки в конце URI.<br/>
  14548. Спасибо Hugo Leisink.
  14549. </para>
  14550. <para lang="en">
  14551. now nginx/Windows ignores trailing dots in URI.<br/>
  14552. Thanks to Hugo Leisink.
  14553. </para>
  14554. </change>

  14555. <change type="bugfix">
  14556. <para lang="ru">
  14557. имя файла указанного в --conf-path игнорировалось при установке;
  14558. ошибка появилась в 0.6.6.<br/>
  14559. Спасибо Максиму Дунину.
  14560. </para>
  14561. <para lang="en">
  14562. name of file specified in --conf-path was not honored during installation;
  14563. the bug had appeared in 0.6.6.<br/>
  14564. Thanks to Maxim Dounin.
  14565. </para>
  14566. </change>

  14567. </changes>


  14568. <changes ver="0.8.5" date="2009-07-13">

  14569. <change type="bugfix">
  14570. <para lang="ru">
  14571. теперь nginx разрешает подчёркивания в методе запроса.
  14572. </para>
  14573. <para lang="en">
  14574. now nginx allows underscores in a request method.
  14575. </para>
  14576. </change>

  14577. <change type="bugfix">
  14578. <para lang="ru">
  14579. при использовании HTTP Basic-аутентификации на Windows
  14580. для неверных имени/пароля возвращалась 500-ая ошибка.
  14581. </para>
  14582. <para lang="en">
  14583. a 500 error code was returned for invalid login/password while HTTP
  14584. Basic authentication on Windows.
  14585. </para>
  14586. </change>

  14587. <change type="bugfix">
  14588. <para lang="ru">
  14589. ответы модуля ngx_http_perl_module не работали в подзапросах.
  14590. </para>
  14591. <para lang="en">
  14592. ngx_http_perl_module responses did not work in subrequests.
  14593. </para>
  14594. </change>

  14595. <change type="bugfix">
  14596. <para lang="ru">
  14597. в модуле ngx_http_limit_req_module.<br/>
  14598. Спасибо Максиму Дунину.
  14599. </para>
  14600. <para lang="en">
  14601. in ngx_http_limit_req_module.<br/>
  14602. Thanks to Maxim Dounin.
  14603. </para>
  14604. </change>

  14605. </changes>


  14606. <changes ver="0.8.4" date="2009-06-22">

  14607. <change type="bugfix">
  14608. <para lang="ru">
  14609. nginx не собирался с параметром --without-http-cache;
  14610. ошибка появилась в 0.8.3.
  14611. </para>
  14612. <para lang="en">
  14613. nginx could not be built --without-http-cache;
  14614. the bug had appeared in 0.8.3.
  14615. </para>
  14616. </change>

  14617. </changes>


  14618. <changes ver="0.8.3" date="2009-06-19">

  14619. <change type="feature">
  14620. <para lang="ru">
  14621. переменная $upstream_cache_status.
  14622. </para>
  14623. <para lang="en">
  14624. the $upstream_cache_status variable.
  14625. </para>
  14626. </change>

  14627. <change type="bugfix">
  14628. <para lang="ru">
  14629. nginx не собирался на MacOSX 10.6.
  14630. </para>
  14631. <para lang="en">
  14632. nginx could not be built on MacOSX 10.6.
  14633. </para>
  14634. </change>

  14635. <change type="bugfix">
  14636. <para lang="ru">
  14637. nginx не собирался с параметром --without-http-cache;
  14638. ошибка появилась в 0.8.2.
  14639. </para>
  14640. <para lang="en">
  14641. nginx could not be built --without-http-cache;
  14642. the bug had appeared in 0.8.2.
  14643. </para>
  14644. </change>

  14645. <change type="bugfix">
  14646. <para lang="ru">
  14647. если использовался перехват 401 ошибки от бэкенда и бэкенд
  14648. не возвращал строку "WWW-Authenticate" в заголовке ответа,
  14649. то в рабочем процессе происходил segmentation fault.<br/>
  14650. Спасибо Евгению Мычло.
  14651. </para>
  14652. <para lang="en">
  14653. a segmentation fault occurred in worker process,
  14654. if a backend 401 error was intercepted and the backend did not set
  14655. the "WWW-Authenticate" response header line.<br/>
  14656. Thanks to Eugene Mychlo.
  14657. </para>
  14658. </change>

  14659. </changes>


  14660. <changes ver="0.8.2" date="2009-06-15">

  14661. <change type="bugfix">
  14662. <para lang="ru">
  14663. во взаимодействии open_file_cache и proxy/fastcgi кэша на старте.
  14664. </para>
  14665. <para lang="en">
  14666. in open_file_cache and proxy/fastcgi cache interaction on start up.
  14667. </para>
  14668. </change>

  14669. <change type="bugfix">
  14670. <para lang="ru">
  14671. open_file_cache мог кэшировать открытые файлы очень долго;
  14672. ошибка появилась в 0.7.4.
  14673. </para>
  14674. <para lang="en">
  14675. open_file_cache might cache open file descriptors too long;
  14676. the bug had appeared in 0.7.4.
  14677. </para>
  14678. </change>

  14679. </changes>


  14680. <changes ver="0.8.1" date="2009-06-08">

  14681. <change type="feature">
  14682. <para lang="ru">
  14683. параметр updating в директивах proxy_cache_use_stale и fastcgi_cache_use_stale.
  14684. </para>
  14685. <para lang="en">
  14686. the "updating" parameter in "proxy_cache_use_stale" and
  14687. "fastcgi_cache_use_stale" directives.
  14688. </para>
  14689. </change>

  14690. <change type="bugfix">
  14691. <para lang="ru">
  14692. строки "If-Modified-Since", "If-Range" и им подобные в заголовке запроса
  14693. клиента передавались бэкенду при кэшировании, если не использовалась
  14694. директива proxy_set_header с любыми параметрами.
  14695. </para>
  14696. <para lang="en">
  14697. the "If-Modified-Since", "If-Range", etc. client request header lines
  14698. were passed to backend while caching if no "proxy_set_header" directive
  14699. was used with any parameters.
  14700. </para>
  14701. </change>

  14702. <change type="bugfix">
  14703. <para lang="ru">
  14704. строки "Set-Cookie" и "P3P" в заголовке ответа бэкенда не скрывались
  14705. при кэшировании, если не использовались директивы
  14706. proxy_hide_header/fastcgi_hide_header с любыми параметрами.
  14707. </para>
  14708. <para lang="en">
  14709. the "Set-Cookie" and "P3P" response header lines were not hidden while caching
  14710. if no "proxy_hide_header/fastcgi_hide_header" directives were used with
  14711. any parameters.
  14712. </para>
  14713. </change>

  14714. <change type="bugfix">
  14715. <para lang="ru">
  14716. модуль ngx_http_image_filter_module не понимал формат GIF87a.<br/>
  14717. Спасибо Денису Ильиных.
  14718. </para>
  14719. <para lang="en">
  14720. the ngx_http_image_filter_module did not support GIF87a format.<br/>
  14721. Thanks to Denis Ilyinyh.
  14722. </para>
  14723. </change>

  14724. <change type="bugfix">
  14725. <para lang="ru">
  14726. nginx не собирался на Solaris 10 и более ранних;
  14727. ошибка появилась в 0.7.56.
  14728. </para>
  14729. <para lang="en">
  14730. nginx could not be built modules on Solaris 10 and early;
  14731. the bug had appeared in 0.7.56.
  14732. </para>
  14733. </change>

  14734. </changes>


  14735. <changes ver="0.8.0" date="2009-06-02">

  14736. <change type="feature">
  14737. <para lang="ru">
  14738. директива keepalive_requests.
  14739. </para>
  14740. <para lang="en">
  14741. the "keepalive_requests" directive.
  14742. </para>
  14743. </change>

  14744. <change type="feature">
  14745. <para lang="ru">
  14746. директива limit_rate_after.<br/>
  14747. Спасибо Ivan Debnar.
  14748. </para>
  14749. <para lang="en">
  14750. the "limit_rate_after" directive.<br/>
  14751. Thanks to Ivan Debnar.
  14752. </para>
  14753. </change>

  14754. <change type="bugfix">
  14755. <para lang="ru">
  14756. XSLT-фильтр не работал в подзапросах.
  14757. </para>
  14758. <para lang="en">
  14759. XLST filter did not work in subrequests.
  14760. </para>
  14761. </change>

  14762. <change type="bugfix">
  14763. <para lang="ru">
  14764. обработке относительных путей в nginx/Windows.
  14765. </para>
  14766. <para lang="en">
  14767. in relative paths handling in nginx/Windows.
  14768. </para>
  14769. </change>

  14770. <change type="bugfix">
  14771. <para lang="ru">
  14772. в proxy_store, fastcgi_store, proxy_cache и fastcgi_cache в nginx/Windows.
  14773. </para>
  14774. <para lang="en">
  14775. in proxy_store, fastcgi_store, proxy_cache, and fastcgi_cache in nginx/Windows.
  14776. </para>
  14777. </change>

  14778. <change type="bugfix">
  14779. <para lang="ru">
  14780. в обработке ошибок выделения памяти.<br/>
  14781. Спасибо Максиму Дунину и Кириллу Коринскому.
  14782. </para>
  14783. <para lang="en">
  14784. in memory allocation error handling.<br/>
  14785. Thanks to Maxim Dounin and Kirill A. Korinskiy.
  14786. </para>
  14787. </change>

  14788. </changes>


  14789. <changes ver="0.7.59" date="2009-05-25">

  14790. <change type="feature">
  14791. <para lang="ru">
  14792. директивы proxy_cache_methods и fastcgi_cache_methods.
  14793. </para>
  14794. <para lang="en">
  14795. the "proxy_cache_methods" and "fastcgi_cache_methods" directives.
  14796. </para>
  14797. </change>

  14798. <change type="bugfix">
  14799. <para lang="ru">
  14800. утечки сокетов;
  14801. ошибка появилась в 0.7.25.<br/>
  14802. Спасибо Максиму Дунину.
  14803. </para>
  14804. <para lang="en">
  14805. socket leak;
  14806. the bug had appeared in 0.7.25.<br/>
  14807. Thanks to Maxim Dounin.
  14808. </para>
  14809. </change>

  14810. <change type="bugfix">
  14811. <para lang="ru">
  14812. при использовании переменной $request_body
  14813. в рабочем процессе происходил segmentation fault,
  14814. если в запросе не было тела;
  14815. ошибка появилась в 0.7.58.
  14816. </para>
  14817. <para lang="en">
  14818. a segmentation fault occurred in worker process,
  14819. <nobr>if a request</nobr> had no body and the $request_body
  14820. variable was used;<br/>
  14821. the bug had appeared in 0.7.58.
  14822. </para>
  14823. </change>

  14824. <change type="bugfix">
  14825. <para lang="ru">
  14826. SSL-модули могли не собираться на Solaris и Linux;
  14827. ошибка появилась в 0.7.56.
  14828. </para>
  14829. <para lang="en">
  14830. the SSL modules might not built on Solaris and Linux;<br/>
  14831. the bug had appeared in 0.7.56.
  14832. </para>
  14833. </change>

  14834. <change type="bugfix">
  14835. <para lang="ru">
  14836. ответы модуля ngx_http_xslt_filter_module не обрабатывались
  14837. SSI-, charset- и gzip-фильтрами.
  14838. </para>
  14839. <para lang="en">
  14840. ngx_http_xslt_filter_module responses were not handled by SSI, charset,
  14841. and gzip filters.
  14842. </para>
  14843. </change>

  14844. <change type="bugfix">
  14845. <para lang="ru">
  14846. директива charset не ставила кодировку для ответов модуля
  14847. ngx_http_gzip_static_module.
  14848. </para>
  14849. <para lang="en">
  14850. a "charset" directive did not set a charset to ngx_http_gzip_static_module
  14851. responses.
  14852. </para>
  14853. </change>

  14854. </changes>


  14855. <changes ver="0.7.58" date="2009-05-18">

  14856. <change type="feature">
  14857. <para lang="ru">
  14858. директива listen почтового прокси-сервера поддерживает IPv6.
  14859. </para>
  14860. <para lang="en">
  14861. a "listen" directive of the mail proxy module supports IPv6.
  14862. </para>
  14863. </change>

  14864. <change type="feature">
  14865. <para lang="ru">
  14866. директива image_filter_jpeg_quality.
  14867. </para>
  14868. <para lang="en">
  14869. the "image_filter_jpeg_quality" directive.
  14870. </para>
  14871. </change>

  14872. <change type="feature">
  14873. <para lang="ru">
  14874. директива client_body_in_single_buffer.
  14875. </para>
  14876. <para lang="en">
  14877. the "client_body_in_single_buffer" directive.
  14878. </para>
  14879. </change>

  14880. <change type="feature">
  14881. <para lang="ru">
  14882. переменная $request_body.
  14883. </para>
  14884. <para lang="en">
  14885. the $request_body variable.
  14886. </para>
  14887. </change>

  14888. <change type="bugfix">
  14889. <para lang="ru">
  14890. в модуле ngx_http_autoindex_module в ссылках на имена файлов,
  14891. содержащих символ ":".
  14892. </para>
  14893. <para lang="en">
  14894. in ngx_http_autoindex_module in file name links
  14895. having a ":" symbol in the name.
  14896. </para>
  14897. </change>

  14898. <change type="bugfix">
  14899. <para lang="ru">
  14900. процедура "make upgrade" не работала;
  14901. ошибка появилась в 0.7.53.<br/>
  14902. Спасибо Денису Латыпову.
  14903. </para>
  14904. <para lang="en">
  14905. "make upgrade" procedure did not work;
  14906. the bug had appeared in 0.7.53.<br/>
  14907. Thanks to Denis F. Latypoff.
  14908. </para>
  14909. </change>

  14910. </changes>


  14911. <changes ver="0.7.57" date="2009-05-12">

  14912. <change type="bugfix">
  14913. <para lang="ru">
  14914. при перенаправлении ошибок модуля ngx_http_image_filter_module
  14915. в именованный location в рабочем процессе происходил floating-point fault;
  14916. ошибка появилась в 0.7.56.
  14917. </para>
  14918. <para lang="en">
  14919. a floating-point fault occurred in worker process,
  14920. if the ngx_http_image_filter_module errors were redirected to named location;
  14921. the bug had appeared in 0.7.56.
  14922. </para>
  14923. </change>

  14924. </changes>


  14925. <changes ver="0.7.56" date="2009-05-11">

  14926. <change type="feature">
  14927. <para lang="ru">
  14928. nginx/Windows поддерживает IPv6 в директиве listen модуля HTTP.
  14929. </para>
  14930. <para lang="en">
  14931. nginx/Windows supports IPv6 in a "listen" directive of the HTTP module.
  14932. </para>
  14933. </change>

  14934. <change type="bugfix">
  14935. <para lang="ru">
  14936. в модуле ngx_http_image_filter_module.
  14937. </para>
  14938. <para lang="en">
  14939. in ngx_http_image_filter_module.
  14940. </para>
  14941. </change>

  14942. </changes>


  14943. <changes ver="0.7.55" date="2009-05-06">

  14944. <change type="bugfix">
  14945. <para lang="ru">
  14946. параметры http_XXX в директивах proxy_cache_use_stale
  14947. и fastcgi_cache_use_stale не работали.
  14948. </para>
  14949. <para lang="en">
  14950. the http_XXX parameters in "proxy_cache_use_stale" and
  14951. "fastcgi_cache_use_stale" directives did not work.
  14952. </para>
  14953. </change>

  14954. <change type="bugfix">
  14955. <para lang="ru">
  14956. fastcgi кэш не кэшировал ответы, состоящие только из заголовка.
  14957. </para>
  14958. <para lang="en">
  14959. fastcgi cache did not cache header only responses.
  14960. </para>
  14961. </change>

  14962. <change type="bugfix">
  14963. <para lang="ru">
  14964. ошибки "select() failed (9: Bad file descriptor)" в nginx/Unix
  14965. и "select() failed (10038: ...)" в nginx/Windows.
  14966. </para>
  14967. <para lang="en">
  14968. of "select() failed (9: Bad file descriptor)" error in nginx/Unix
  14969. and "select() failed (10038: ...)" error in nginx/Windows.
  14970. </para>
  14971. </change>

  14972. <change type="bugfix">
  14973. <para lang="ru">
  14974. при использовании директивы debug_connection
  14975. в рабочем процессе мог произойти segmentation fault;
  14976. ошибка появилась в 0.7.54.
  14977. </para>
  14978. <para lang="en">
  14979. a segmentation fault might occur in worker process,
  14980. if an "debug_connection" directive was used;
  14981. the bug had appeared in 0.7.54.
  14982. </para>
  14983. </change>

  14984. <change type="bugfix">
  14985. <para lang="ru">
  14986. в сборке модуля ngx_http_image_filter_module.
  14987. </para>
  14988. <para lang="en">
  14989. fix ngx_http_image_filter_module building errors.
  14990. </para>
  14991. </change>

  14992. <change type="bugfix">
  14993. <para lang="ru">
  14994. файлы больше 2G не передавались с использованием $r->sendfile.<br/>
  14995. Спасибо Максиму Дунину.
  14996. </para>
  14997. <para lang="en">
  14998. the files bigger than 2G could not be transferred using $r->sendfile.<br/>
  14999. Thanks to Maxim Dounin.
  15000. </para>
  15001. </change>

  15002. </changes>


  15003. <changes ver="0.7.54" date="2009-05-01">

  15004. <change type="feature">
  15005. <para lang="ru">
  15006. модуль ngx_http_image_filter_module.
  15007. </para>
  15008. <para lang="en">
  15009. the ngx_http_image_filter_module.
  15010. </para>
  15011. </change>

  15012. <change type="feature">
  15013. <para lang="ru">
  15014. директивы proxy_ignore_headers и fastcgi_ignore_headers.
  15015. </para>
  15016. <para lang="en">
  15017. the "proxy_ignore_headers" and "fastcgi_ignore_headers" directives.
  15018. </para>
  15019. </change>

  15020. <change type="bugfix">
  15021. <para lang="ru">
  15022. при использовании переменных "open_file_cache_errors on"
  15023. в рабочем процессе мог произойти segmentation fault;
  15024. ошибка появилась в 0.7.53.
  15025. </para>
  15026. <para lang="en">
  15027. a segmentation fault might occur in worker process,
  15028. if an "open_file_cache_errors off" directive was used;
  15029. the bug had appeared in 0.7.53.
  15030. </para>
  15031. </change>

  15032. <change type="bugfix">
  15033. <para lang="ru">
  15034. директива "port_in_redirect off" не работала;
  15035. ошибка появилась в 0.7.39.
  15036. </para>
  15037. <para lang="en">
  15038. the "port_in_redirect off" directive did not work;
  15039. the bug had appeared in 0.7.39.
  15040. </para>
  15041. </change>

  15042. <change type="bugfix">
  15043. <para lang="ru">
  15044. улучшение обработки ошибок метода select.
  15045. </para>
  15046. <para lang="en">
  15047. improve handling of "select" method errors.
  15048. </para>
  15049. </change>

  15050. <change type="bugfix">
  15051. <para lang="ru">
  15052. ошибки "select() failed (10022: ...)" в nginx/Windows.
  15053. </para>
  15054. <para lang="en">
  15055. of "select() failed (10022: ...)" error in nginx/Windows.
  15056. </para>
  15057. </change>

  15058. <change type="bugfix">
  15059. <para lang="ru">
  15060. в текстовых сообщениях об ошибках в nginx/Windows;
  15061. ошибка появилась в 0.7.53.
  15062. </para>
  15063. <para lang="en">
  15064. in error text descriptions in nginx/Windows;
  15065. the bug had appeared in 0.7.53.
  15066. </para>
  15067. </change>

  15068. </changes>


  15069. <changes ver="0.7.53" date="2009-04-27">

  15070. <change type="change">
  15071. <para lang="ru">
  15072. теперь лог, указанный в --error-log-path, создаётся с самого начала работы.
  15073. </para>
  15074. <para lang="en">
  15075. now a log set by --error-log-path is created from the very start-up.
  15076. </para>
  15077. </change>

  15078. <change type="feature">
  15079. <para lang="ru">
  15080. теперь ошибки и предупреждения при старте записываются в error_log
  15081. и выводятся на stderr.
  15082. </para>
  15083. <para lang="en">
  15084. now the start up errors and warnings are outputted to an error_log and stderr.
  15085. </para>
  15086. </change>

  15087. <change type="feature">
  15088. <para lang="ru">
  15089. при сборке с пустым параметром --prefix= nginx использует как префикс каталог,
  15090. в котором он был запущен.
  15091. </para>
  15092. <para lang="en">
  15093. the empty --prefix= configure parameter forces nginx to use a directory
  15094. where it was run as prefix.
  15095. </para>
  15096. </change>

  15097. <change type="feature">
  15098. <para lang="ru">
  15099. ключ -p.
  15100. </para>
  15101. <para lang="en">
  15102. the -p switch.
  15103. </para>
  15104. </change>

  15105. <change type="feature">
  15106. <para lang="ru">
  15107. ключ -s на Unix-платформах.
  15108. </para>
  15109. <para lang="en">
  15110. the -s switch on Unix platforms.
  15111. </para>
  15112. </change>

  15113. <change type="feature">
  15114. <para lang="ru">
  15115. ключи -? и -h.<br/>
  15116. Спасибо Jerome Loyet.
  15117. </para>
  15118. <para lang="en">
  15119. the -? and -h switches.<br/>
  15120. Thanks to Jerome Loyet.
  15121. </para>
  15122. </change>

  15123. <change type="feature">
  15124. <para lang="ru">
  15125. теперь ключи можно задавать в сжатой форме.
  15126. </para>
  15127. <para lang="en">
  15128. now switches may be set in condensed form.
  15129. </para>
  15130. </change>

  15131. <change type="bugfix">
  15132. <para lang="ru">
  15133. nginx/Windows не работал, если файл конфигурации был задан ключом -c.
  15134. </para>
  15135. <para lang="en">
  15136. nginx/Windows did not work if configuration file was given by the -c switch.
  15137. </para>
  15138. </change>

  15139. <change type="bugfix">
  15140. <para lang="ru">
  15141. при использовании директив proxy_store, fastcgi_store,
  15142. proxy_cache или fastcgi_cache временные файлы могли не удаляться.<br/>
  15143. Спасибо Максиму Дунину.
  15144. </para>
  15145. <para lang="en">
  15146. temporary files might be not removed if the "proxy_store", "fastcgi_store",
  15147. "proxy_cache", or "fastcgi_cache" were used.<br/>
  15148. Thanks to Maxim Dounin.
  15149. </para>
  15150. </change>

  15151. <change type="bugfix">
  15152. <para lang="ru">
  15153. в заголовке Auth-Method запроса серверу аутентификации почтового
  15154. прокси-сервера передавалось неверное значение;
  15155. ошибка появилась в 0.7.34.<br/>
  15156. Спасибо Simon Lecaille.
  15157. </para>
  15158. <para lang="en">
  15159. an incorrect value was passed to mail proxy authentication server
  15160. in "Auth-Method" header line;
  15161. the bug had appeared<br/>
  15162. in 0.7.34.<br/>
  15163. Thanks to Simon Lecaille.
  15164. </para>
  15165. </change>

  15166. <change type="bugfix">
  15167. <para lang="ru">
  15168. при логгировании на Linux не писались текстовые описания системных ошибок;
  15169. ошибка появилась в 0.7.45.
  15170. </para>
  15171. <para lang="en">
  15172. system error text descriptions were not logged on Linux;<br/>
  15173. the bug had appeared in 0.7.45.
  15174. </para>
  15175. </change>

  15176. <change type="bugfix">
  15177. <para lang="ru">
  15178. директива fastcgi_cache_min_uses не работала.<br/>
  15179. Спасибо Андрею Воробьёву.
  15180. </para>
  15181. <para lang="en">
  15182. the "fastcgi_cache_min_uses" directive did not work.<br/>
  15183. Thanks to Andrew Vorobyoff.
  15184. </para>
  15185. </change>

  15186. </changes>


  15187. <changes ver="0.7.52" date="2009-04-20">

  15188. <change type="feature">
  15189. <para lang="ru">
  15190. первая бинарная версия под Windows.
  15191. </para>
  15192. <para lang="en">
  15193. the first native Windows binary release.
  15194. </para>
  15195. </change>

  15196. <change type="bugfix">
  15197. <para lang="ru">
  15198. корректная обработка метода HEAD при кэшировании.
  15199. </para>
  15200. <para lang="en">
  15201. in processing HEAD method while caching.
  15202. </para>
  15203. </change>

  15204. <change type="bugfix">
  15205. <para lang="ru">
  15206. корректная обработка строк "If-Modified-Since", "If-Range" и им подобных
  15207. в заголовке запроса клиента при кэшировании.
  15208. </para>
  15209. <para lang="en">
  15210. in processing the "If-Modified-Since", "If-Range", etc. client request
  15211. header lines while caching.
  15212. </para>
  15213. </change>

  15214. <change type="bugfix">
  15215. <para lang="ru">
  15216. теперь строки "Set-Cookie" и "P3P" скрываются в заголовке ответа
  15217. для закэшированных ответов.
  15218. </para>
  15219. <para lang="en">
  15220. now the "Set-Cookie" and "P3P" header lines are hidden in cacheable responses.
  15221. </para>
  15222. </change>

  15223. <change type="bugfix">
  15224. <para lang="ru">
  15225. если nginx был собран с модулем ngx_http_perl_module и perl
  15226. поддерживал потоки, то при выходе основного процесса
  15227. могла выдаваться ошибка "panic: MUTEX_LOCK".
  15228. </para>
  15229. <para lang="en">
  15230. if nginx was built with the ngx_http_perl_module and with a perl which
  15231. supports threads, then during a master process exit
  15232. the message "panic: MUTEX_LOCK" might be issued.
  15233. </para>
  15234. </change>

  15235. <change type="bugfix">
  15236. <para lang="ru">
  15237. nginx не собирался с параметром --without-http-cache;
  15238. ошибка появилась в 0.7.48.
  15239. </para>
  15240. <para lang="en">
  15241. nginx could not be built --without-http-cache;
  15242. the bug had appeared in 0.7.48.
  15243. </para>
  15244. </change>

  15245. <change type="bugfix">
  15246. <para lang="ru">
  15247. nginx не собирался на платформах, отличных от i386, amd64, sparc и ppc;
  15248. ошибка появилась в 0.7.42.
  15249. </para>
  15250. <para lang="en">
  15251. nginx could not be built on platforms different from i386, amd64, sparc,
  15252. and ppc;
  15253. the bug had appeared in 0.7.42.
  15254. </para>
  15255. </change>

  15256. </changes>


  15257. <changes ver="0.7.51" date="2009-04-12">

  15258. <change type="feature">
  15259. <para lang="ru">
  15260. директива try_files поддерживает код ответа в последнем параметре.
  15261. </para>
  15262. <para lang="en">
  15263. the "try_files" directive supports a response code in the fallback parameter.
  15264. </para>
  15265. </change>

  15266. <change type="feature">
  15267. <para lang="ru">
  15268. теперь в директиве return можно использовать любой код ответа.
  15269. </para>
  15270. <para lang="en">
  15271. now any response code can be used in the "return" directive.
  15272. </para>
  15273. </change>

  15274. <change type="bugfix">
  15275. <para lang="ru">
  15276. директива error_page делала внешний редирект без строки запроса;
  15277. ошибка появилась в 0.7.44.
  15278. </para>
  15279. <para lang="en">
  15280. the "error_page" directive made an external redirect without query string;
  15281. the bug had appeared in 0.7.44.
  15282. </para>
  15283. </change>

  15284. <change type="bugfix">
  15285. <para lang="ru">
  15286. если сервера слушали на нескольких явно описанных адресах,
  15287. то виртуальные сервера могли не работать;
  15288. ошибка появилась в 0.7.39.
  15289. </para>
  15290. <para lang="en">
  15291. if servers listened on several defined explicitly addresses,
  15292. then virtual servers might not work;
  15293. the bug had appeared in 0.7.39.
  15294. </para>
  15295. </change>

  15296. </changes>


  15297. <changes ver="0.7.50" date="2009-04-06">

  15298. <change type="bugfix">
  15299. <para lang="ru">
  15300. переменные $arg_... не работали;
  15301. ошибка появилась в 0.7.49.
  15302. </para>
  15303. <para lang="en">
  15304. the $arg_... variables did not work;
  15305. the bug had appeared in 0.7.49.
  15306. </para>
  15307. </change>

  15308. </changes>


  15309. <changes ver="0.7.49" date="2009-04-06">

  15310. <change type="bugfix">
  15311. <para lang="ru">
  15312. при использовании переменных $arg_...
  15313. в рабочем процессе мог произойти segmentation fault;
  15314. ошибка появилась в 0.7.48.
  15315. </para>
  15316. <para lang="en">
  15317. a segmentation fault might occur in worker process,
  15318. if the $arg_... variables were used;
  15319. the bug had appeared in 0.7.48.
  15320. </para>
  15321. </change>

  15322. </changes>


  15323. <changes ver="0.7.48" date="2009-04-06">

  15324. <change type="feature">
  15325. <para lang="ru">
  15326. директива proxy_cache_key.
  15327. </para>
  15328. <para lang="en">
  15329. the "proxy_cache_key" directive.
  15330. </para>
  15331. </change>

  15332. <change type="bugfix">
  15333. <para lang="ru">
  15334. теперь nginx учитывает при кэшировании строки "X-Accel-Expires",
  15335. "Expires" и "Cache-Control" в заголовке ответа бэкенда.
  15336. </para>
  15337. <para lang="en">
  15338. now nginx takes into account the "X-Accel-Expires", "Expires", and
  15339. "Cache-Control" header lines in a backend response.
  15340. </para>
  15341. </change>

  15342. <change type="bugfix">
  15343. <para lang="ru">
  15344. теперь nginx кэширует только ответы на запросы GET.
  15345. </para>
  15346. <para lang="en">
  15347. now nginx caches responses for the GET requests only.
  15348. </para>
  15349. </change>

  15350. <change type="bugfix">
  15351. <para lang="ru">
  15352. директива fastcgi_cache_key не наследовалась.
  15353. </para>
  15354. <para lang="en">
  15355. the "fastcgi_cache_key" directive was not inherited.
  15356. </para>
  15357. </change>

  15358. <change type="bugfix">
  15359. <para lang="ru">
  15360. переменные $arg_... не работали с SSI-подзапросами.<br/>
  15361. Спасибо Максиму Дунину.
  15362. </para>
  15363. <para lang="en">
  15364. the $arg_... variables did not work with SSI subrequests.<br/>
  15365. Thanks to Maxim Dounin.
  15366. </para>
  15367. </change>

  15368. <change type="bugfix">
  15369. <para lang="ru">
  15370. nginx не собирался с библиотекой uclibc.<br/>
  15371. Спасибо Timothy Redaelli.
  15372. </para>
  15373. <para lang="en">
  15374. nginx could not be built with uclibc library.<br/>
  15375. Thanks to Timothy Redaelli.
  15376. </para>
  15377. </change>

  15378. <change type="bugfix">
  15379. <para lang="ru">
  15380. nginx не собирался на OpenBSD;
  15381. ошибка появилась <nobr>в 0.7.46.</nobr>
  15382. </para>
  15383. <para lang="en">
  15384. nginx could not be built on OpenBSD;
  15385. the bug had <nobr>appeared in 0.7.46.</nobr>
  15386. </para>
  15387. </change>

  15388. </changes>


  15389. <changes ver="0.7.47" date="2009-04-01">

  15390. <change type="bugfix">
  15391. <para lang="ru">
  15392. nginx не собирался на FreeBSD 6 и более ранних версиях;
  15393. ошибка появилась в 0.7.46.
  15394. </para>
  15395. <para lang="en">
  15396. nginx could not be built on FreeBSD 6 and early versions;
  15397. the bug had appeared in 0.7.46.
  15398. </para>
  15399. </change>

  15400. <change type="bugfix">
  15401. <para lang="ru">
  15402. nginx не собирался на MacOSX;
  15403. ошибка появилась в 0.7.46.
  15404. </para>
  15405. <para lang="en">
  15406. nginx could not be built on MacOSX;
  15407. the bug had <nobr>appeared in 0.7.46.</nobr>
  15408. </para>
  15409. </change>

  15410. <change type="bugfix">
  15411. <para lang="ru">
  15412. если использовался параметр max_size, то cache manager мог удалить весь кэш;
  15413. ошибка появилась в 0.7.46.
  15414. </para>
  15415. <para lang="en">
  15416. if the "max_size" parameter was set, then the cache manager might purge
  15417. a whole cache;
  15418. the bug had appeared in 0.7.46.
  15419. </para>
  15420. </change>

  15421. <change type="change">
  15422. <para lang="ru">
  15423. в рабочем процессе мог произойти segmentation fault,
  15424. если директивы proxy_cache/fastcgi_cache
  15425. и proxy_cache_valid/ fastcgi_cache_valid не были заданы на одном уровне;
  15426. ошибка появилась в 0.7.46.
  15427. </para>
  15428. <para lang="en">
  15429. a segmentation fault might occur in worker process,
  15430. if the "proxy_cache"/"fastcgi_cache" and
  15431. the "proxy_cache_valid"/ "fastcgi_cache_valid" were set on different levels;
  15432. the bug had appeared in 0.7.46.
  15433. </para>
  15434. </change>

  15435. <change type="bugfix">
  15436. <para lang="ru">
  15437. в рабочем процессе мог произойти segmentation fault
  15438. при перенаправлении запроса проксированному или FastCGI-серверу
  15439. с помощью error_page или try_files;
  15440. ошибка появилась в 0.7.44.
  15441. </para>
  15442. <para lang="en">
  15443. a segmentation fault might occur in worker process,
  15444. if a request was redirected to a proxied or FastCGI server via
  15445. error_page or try_files;
  15446. the bug had appeared in 0.7.44.
  15447. </para>
  15448. </change>

  15449. </changes>


  15450. <changes ver="0.7.46" date="2009-03-30">

  15451. <change type="bugfix">
  15452. <para lang="ru">
  15453. архив предыдущего релиза был неверным.
  15454. </para>
  15455. <para lang="en">
  15456. the previous release tarball was incorrect.
  15457. </para>
  15458. </change>

  15459. </changes>


  15460. <changes ver="0.7.45" date="2009-03-30">

  15461. <change type="change">
  15462. <para lang="ru">
  15463. теперь директивы proxy_cache и proxy_cache_valid можно задавать
  15464. на разных уровнях.
  15465. </para>
  15466. <para lang="en">
  15467. now the "proxy_cache" and the "proxy_cache_valid" directives can be set on
  15468. different levels.
  15469. </para>
  15470. </change>

  15471. <change type="change">
  15472. <para lang="ru">
  15473. параметр clean_time в директиве proxy_cache_path удалён.
  15474. </para>
  15475. <para lang="en">
  15476. the "clean_time" parameter of the "proxy_cache_path" directive is canceled.
  15477. </para>
  15478. </change>

  15479. <change type="feature">
  15480. <para lang="ru">
  15481. параметр max_size в директиве proxy_cache_path.
  15482. </para>
  15483. <para lang="en">
  15484. the "max_size" parameter of the "proxy_cache_path" directive.
  15485. </para>
  15486. </change>

  15487. <change type="feature">
  15488. <para lang="ru">
  15489. предварительная поддержка кэширования в модуле ngx_http_fastcgi_module.
  15490. </para>
  15491. <para lang="en">
  15492. the ngx_http_fastcgi_module preliminary cache support.
  15493. </para>
  15494. </change>

  15495. <change type="feature">
  15496. <para lang="ru">
  15497. теперь при ошибках выделения в разделяемой памяти в логе указываются
  15498. названия директивы и зоны.
  15499. </para>
  15500. <para lang="en">
  15501. now on shared memory allocation errors directive and zone names are logged.
  15502. </para>
  15503. </change>

  15504. <change type="bugfix">
  15505. <para lang="ru">
  15506. директива "add_header last-modified ''" не удаляла в заголовке ответа
  15507. строку "Last-Modified";
  15508. ошибка появилась в 0.7.44.
  15509. </para>
  15510. <para lang="en">
  15511. the directive "add_header last-modified ''" did not delete a "Last-Modified"
  15512. response header line;
  15513. the bug had appeared in 0.7.44.
  15514. </para>
  15515. </change>

  15516. <change type="bugfix">
  15517. <para lang="ru">
  15518. в директиве auth_basic_user_file не работал относительный путь,
  15519. заданный строкой без переменных;
  15520. ошибка появилась в 0.7.44.<br/>
  15521. Спасибо Jerome Loyet.
  15522. </para>
  15523. <para lang="en">
  15524. a relative path in the "auth_basic_user_file" directive given without variables
  15525. did not work;
  15526. the bug had appeared in 0.7.44.<br/>
  15527. Thanks to Jerome Loyet.
  15528. </para>
  15529. </change>

  15530. <change type="bugfix">
  15531. <para lang="ru">
  15532. в директиве alias, заданной переменными
  15533. без ссылок на выделения в регулярных выражениях;
  15534. ошибка появилась в 0.7.42.
  15535. </para>
  15536. <para lang="en">
  15537. in an "alias" directive given using variables
  15538. without references to captures of regular expressions;
  15539. the bug had appeared in 0.7.42.
  15540. </para>
  15541. </change>

  15542. </changes>


  15543. <changes ver="0.7.44" date="2009-03-23">

  15544. <change type="feature">
  15545. <para lang="ru">
  15546. предварительная поддержка кэширования в модуле ngx_http_proxy_module.
  15547. </para>
  15548. <para lang="en">
  15549. the ngx_http_proxy_module preliminary cache support.
  15550. </para>
  15551. </change>

  15552. <change type="feature">
  15553. <para lang="ru">
  15554. параметр --with-pcre в configure.
  15555. </para>
  15556. <para lang="en">
  15557. the --with-pcre option in the configure.
  15558. </para>
  15559. </change>

  15560. <change type="feature">
  15561. <para lang="ru">
  15562. теперь директива try_files может быть использована на уровне server.
  15563. </para>
  15564. <para lang="en">
  15565. the "try_files" directive is now allowed on the server block level.
  15566. </para>
  15567. </change>

  15568. <change type="bugfix">
  15569. <para lang="ru">
  15570. директива try_files неправильно обрабатывала строку запроса в последнем
  15571. параметре.
  15572. </para>
  15573. <para lang="en">
  15574. the "try_files" directive handled incorrectly a query string
  15575. in a fallback parameter.
  15576. </para>
  15577. </change>

  15578. <change type="bugfix">
  15579. <para lang="ru">
  15580. директива try_files могла неверно тестировать каталоги.
  15581. </para>
  15582. <para lang="en">
  15583. the "try_files" directive might test incorrectly directories.
  15584. </para>
  15585. </change>

  15586. <change type="bugfix">
  15587. <para lang="ru">
  15588. если для пары адрес:порт описан только один сервер, то выделения
  15589. в регулярных выражениях в директиве server_name не работали.
  15590. </para>
  15591. <para lang="en">
  15592. if there was a single server for given address:port pair,
  15593. then captures in regular expressions in a "server_name" directive did not work.
  15594. </para>
  15595. </change>

  15596. </changes>


  15597. <changes ver="0.7.43" date="2009-03-18">

  15598. <change type="bugfix">
  15599. <para lang="ru">
  15600. запрос обрабатывался неверно, если директива root использовала переменные;
  15601. ошибка появилась в 0.7.42.
  15602. </para>
  15603. <para lang="en">
  15604. a request was handled incorrectly, if a "root" directive used variables;
  15605. the bug had appeared in 0.7.42.
  15606. </para>
  15607. </change>

  15608. <change type="bugfix">
  15609. <para lang="ru">
  15610. если сервер слушал на адресах типа "*", то значение переменной $server_addr
  15611. было "0.0.0.0";
  15612. ошибка появилась в 0.7.36.
  15613. </para>
  15614. <para lang="en">
  15615. if a server listened on wildcard address, then the $server_addr variable
  15616. value was "0.0.0.0";
  15617. the bug had appeared in 0.7.36.
  15618. </para>
  15619. </change>

  15620. </changes>


  15621. <changes ver="0.7.42" date="2009-03-16">

  15622. <change type="change">
  15623. <para lang="ru">
  15624. ошибка "Invalid argument", возвращаемая setsockopt(TCP_NODELAY) на Solaris,
  15625. теперь игнорируется.
  15626. </para>
  15627. <para lang="en">
  15628. now the "Invalid argument" error returned by setsockopt(TCP_NODELAY) on Solaris,
  15629. is ignored.
  15630. </para>
  15631. </change>

  15632. <change type="change">
  15633. <para lang="ru">
  15634. при отсутствии файла, указанного в директиве auth_basic_user_file,
  15635. теперь возвращается ошибка 403 вместо 500.
  15636. </para>
  15637. <para lang="en">
  15638. now if a file specified in a "auth_basic_user_file" directive is absent,
  15639. then the 403 error is returned instead of the 500 one.
  15640. </para>
  15641. </change>

  15642. <change type="feature">
  15643. <para lang="ru">
  15644. директива auth_basic_user_file поддерживает переменные.
  15645. <br/>
  15646. Спасибо Кириллу Коринскому.
  15647. </para>
  15648. <para lang="en">
  15649. the "auth_basic_user_file" directive supports variables.<br/>
  15650. Thanks to Kirill A. Korinskiy.
  15651. </para>
  15652. </change>

  15653. <change type="feature">
  15654. <para lang="ru">
  15655. директива listen поддерживает параметр ipv6only.<br/>
  15656. Спасибо Zhang Hua.
  15657. </para>
  15658. <para lang="en">
  15659. the "listen" directive supports the "ipv6only" parameter.
  15660. <br/>
  15661. Thanks to Zhang Hua.
  15662. </para>
  15663. </change>

  15664. <change type="bugfix">
  15665. <para lang="ru">
  15666. в директиве alias со ссылками на выделения в регулярных выражениях;
  15667. ошибка появилась в 0.7.40.
  15668. </para>
  15669. <para lang="en">
  15670. in an "alias" directive with references to captures of regular expressions;
  15671. the bug had appeared in 0.7.40.
  15672. </para>
  15673. </change>

  15674. <change type="bugfix">
  15675. <para lang="ru">
  15676. совместимость с Tru64 UNIX.<br/>
  15677. Спасибо Dustin Marquess.
  15678. </para>
  15679. <para lang="en">
  15680. compatibility with Tru64 UNIX.<br/>
  15681. Thanks to Dustin Marquess.
  15682. </para>
  15683. </change>

  15684. <change type="bugfix">
  15685. <para lang="ru">
  15686. nginx не собирался без библиотеки PCRE;
  15687. ошибка появилась в 0.7.41.
  15688. </para>
  15689. <para lang="en">
  15690. nginx could not be built without PCRE library;
  15691. the bug had appeared in 0.7.41.
  15692. </para>
  15693. </change>

  15694. </changes>


  15695. <changes ver="0.7.41" date="2009-03-11">

  15696. <change type="bugfix">
  15697. <para lang="ru">
  15698. в рабочем процессе мог произойти segmentation fault,
  15699. если в server_name или location были выделения в регулярных выражениях;
  15700. ошибка появилась в 0.7.40.<br/>
  15701. Спасибо Владимиру Сопоту.
  15702. </para>
  15703. <para lang="en">
  15704. a segmentation fault might occur in worker process,
  15705. if a "server_name" or a "location" directives had captures
  15706. in regular expressions;
  15707. the issue had appeared in 0.7.40.<br/>
  15708. Thanks to Vladimir Sopot.
  15709. </para>
  15710. </change>

  15711. </changes>


  15712. <changes ver="0.7.40" date="2009-03-09">

  15713. <change type="feature">
  15714. <para lang="ru">
  15715. директива location поддерживает выделения в регулярных выражениях.
  15716. </para>
  15717. <para lang="en">
  15718. the "location" directive supports captures in regular expressions.
  15719. </para>
  15720. </change>

  15721. <change type="feature">
  15722. <para lang="ru">
  15723. директиву alias с ссылками на выделения в регулярных выражениях
  15724. можно использовать внутри location'а, заданного регулярным выражением
  15725. с выделениями.
  15726. </para>
  15727. <para lang="en">
  15728. an "alias" directive with capture references may be used inside
  15729. a location given by a regular expression with captures.
  15730. </para>
  15731. </change>

  15732. <change type="feature">
  15733. <para lang="ru">
  15734. директива server_name поддерживает выделения в регулярных выражениях.
  15735. </para>
  15736. <para lang="en">
  15737. the "server_name" directive supports captures in regular expressions.
  15738. </para>
  15739. </change>

  15740. <change type="workaround">
  15741. <para lang="ru">
  15742. модуль ngx_http_autoindex_module не показывал последний слэш для каталогов
  15743. на файловой системе XFS;
  15744. ошибка появилась в 0.7.15.<br/>
  15745. Спасибо Дмитрию Кузьменко.
  15746. </para>
  15747. <para lang="en">
  15748. the ngx_http_autoindex_module did not show the trailing slash in directories
  15749. on XFS filesystem;
  15750. the issue had appeared in 0.7.15.<br/>
  15751. Thanks to Dmitry Kuzmenko.
  15752. </para>
  15753. </change>

  15754. </changes>


  15755. <changes ver="0.7.39" date="2009-03-02">

  15756. <change type="bugfix">
  15757. <para lang="ru">
  15758. при включённом сжатии большие ответы с использованием SSI могли зависать;
  15759. ошибка появилась в 0.7.28.<br/>
  15760. Спасибо Артёму Бохану.
  15761. </para>
  15762. <para lang="en">
  15763. large response with SSI might hang, if gzipping was enabled;
  15764. the bug had appeared in 0.7.28.<br/>
  15765. Thanks to Artem Bokhan.
  15766. </para>
  15767. </change>

  15768. <change type="bugfix">
  15769. <para lang="ru">
  15770. при использовании коротких статических вариантов в директиве try_files
  15771. в рабочем процессе мог произойти segmentation fault.
  15772. </para>
  15773. <para lang="en">
  15774. a segmentation fault might occur in worker process,
  15775. if short static variants are used in a "try_files" directive.
  15776. </para>
  15777. </change>

  15778. </changes>


  15779. <changes ver="0.7.38" date="2009-02-23">

  15780. <change type="feature">
  15781. <para lang="ru">
  15782. логгирование ошибок аутентификации.
  15783. </para>
  15784. <para lang="en">
  15785. authentication failures logging.
  15786. </para>
  15787. </change>

  15788. <change type="bugfix">
  15789. <para lang="ru">
  15790. имя/пароль, заданные в auth_basic_user_file, игнорировались после нечётного
  15791. числа пустых строк.<br/>
  15792. Спасибо Александру Загребину.
  15793. </para>
  15794. <para lang="en">
  15795. name/password in auth_basic_user_file were ignored after odd number
  15796. of empty lines.<br/>
  15797. Thanks to Alexander Zagrebin.
  15798. </para>
  15799. </change>

  15800. <change type="bugfix">
  15801. <para lang="ru">
  15802. при использовании длинного пути в unix domain сокете
  15803. в главном процессе происходил segmentation fault;
  15804. ошибка появилась в 0.7.36.
  15805. </para>
  15806. <para lang="en">
  15807. a segmentation fault occurred in a master process,
  15808. if long path was used in unix domain socket;
  15809. the bug had appeared in 0.7.36.
  15810. </para>
  15811. </change>

  15812. </changes>


  15813. <changes ver="0.7.37" date="2009-02-21">

  15814. <change type="bugfix">
  15815. <para lang="ru">
  15816. директивы, использующие upstream'ы, не работали;
  15817. ошибка появилась в 0.7.36.
  15818. </para>
  15819. <para lang="en">
  15820. directives using upstreams did not work;
  15821. the bug had appeared in 0.7.36.
  15822. </para>
  15823. </change>

  15824. </changes>


  15825. <changes ver="0.7.36" date="2009-02-21">

  15826. <change type="feature">
  15827. <para lang="ru">
  15828. предварительная поддержка IPv6;
  15829. директива listen модуля HTTP поддерживает IPv6.
  15830. </para>
  15831. <para lang="en">
  15832. a preliminary IPv6 support;
  15833. the "listen" directive of the HTTP module supports IPv6.
  15834. </para>
  15835. </change>

  15836. <change type="bugfix">
  15837. <para lang="ru">
  15838. переменная $ancient_browser не работала для браузеров, заданных
  15839. директивами modern_browser.
  15840. </para>
  15841. <para lang="en">
  15842. the $ancient_browser variable did not work for browsers
  15843. preset by a "modern_browser" directives.
  15844. </para>
  15845. </change>

  15846. </changes>


  15847. <changes ver="0.7.35" date="2009-02-16">

  15848. <change type="bugfix">
  15849. <para lang="ru">
  15850. директива ssl_engine не использовала SSL-акселератор
  15851. для асимметричных шифров.<br/>
  15852. Спасибо Marcin Gozdalik.
  15853. </para>
  15854. <para lang="en">
  15855. a "ssl_engine" directive did not use a SSL-accelerator
  15856. for asymmetric ciphers.<br/>
  15857. Thanks to Marcin Gozdalik.
  15858. </para>
  15859. </change>

  15860. <change type="bugfix">
  15861. <para lang="ru">
  15862. директива try_files выставляла MIME-type, исходя из расширения
  15863. первоначального запроса.
  15864. </para>
  15865. <para lang="en">
  15866. a "try_files" directive set MIME type depending on an
  15867. original request extension.
  15868. </para>
  15869. </change>

  15870. <change type="bugfix">
  15871. <para lang="ru">
  15872. в директивах server_name, valid_referers и map
  15873. неправильно обрабатывались имена вида "*domain.tld",
  15874. если использовались маски вида ".domain.tld" и ".subdomain.domain.tld";
  15875. ошибка появилась в 0.7.9.
  15876. </para>
  15877. <para lang="en">
  15878. "*domain.tld" names were handled incorrectly in
  15879. "server_name", "valid_referers", and "map" directives,
  15880. if ".domain.tld" and ".subdomain.domain.tld" wildcards were used;
  15881. <nobr>the bug had</nobr> appeared in 0.7.9.
  15882. </para>
  15883. </change>

  15884. </changes>


  15885. <changes ver="0.7.34" date="2009-02-10">

  15886. <change type="feature">
  15887. <para lang="ru">
  15888. параметр off в директиве if_modified_since.
  15889. </para>
  15890. <para lang="en">
  15891. the "off" parameter of the "if_modified_since" directive.
  15892. </para>
  15893. </change>

  15894. <change type="feature">
  15895. <para lang="ru">
  15896. теперь после команды XCLIENT nginx посылает команду HELO/EHLO.<br/>
  15897. Спасибо Максиму Дунину.
  15898. </para>
  15899. <para lang="en">
  15900. now nginx sends an HELO/EHLO command after a XCLIENT command.<br/>
  15901. Thanks to Maxim Dounin.
  15902. </para>
  15903. </change>

  15904. <change type="feature">
  15905. <para lang="ru">
  15906. поддержка Microsoft-специфичного режима
  15907. <nobr>"AUTH LOGIN with User Name"</nobr>
  15908. в почтовом прокси-сервере.<br/>
  15909. Спасибо Максиму Дунину.
  15910. </para>
  15911. <para lang="en">
  15912. Microsoft specific "AUTH LOGIN with User Name" mode support
  15913. in mail proxy server.<br/>
  15914. Thanks to Maxim Dounin.
  15915. </para>
  15916. </change>

  15917. <change type="bugfix">
  15918. <para lang="ru">
  15919. в директиве rewrite, возвращающей редирект, старые аргументы присоединялись
  15920. к новым через символ "?" вместо "&amp;";<br/>
  15921. ошибка появилась в 0.1.18.<br/>
  15922. Спасибо Максиму Дунину.
  15923. </para>
  15924. <para lang="en">
  15925. in a redirect rewrite directive original arguments were concatenated with
  15926. new arguments by a "?" rather than an "&amp;";<br/>
  15927. the bug had appeared in 0.1.18.<br/>
  15928. Thanks to Maxim Dounin.
  15929. </para>
  15930. </change>

  15931. <change type="bugfix">
  15932. <para lang="ru">
  15933. nginx не собирался на AIX.
  15934. </para>
  15935. <para lang="en">
  15936. nginx could not be built on AIX.
  15937. </para>
  15938. </change>

  15939. </changes>


  15940. <changes ver="0.7.33" date="2009-02-02">

  15941. <change type="bugfix">
  15942. <para lang="ru">
  15943. если на запрос с телом возвращался редирект, то ответ мог быть двойным
  15944. при использовании методов epoll или rtsig.<br/>
  15945. Спасибо Eden Li.
  15946. </para>
  15947. <para lang="en">
  15948. a double response might be returned if the epoll or rtsig methods are used
  15949. and a redirect was returned to a request with body.<br/>
  15950. Thanks to Eden Li.
  15951. </para>
  15952. </change>

  15953. <change type="bugfix">
  15954. <para lang="ru">
  15955. для некоторых типов редиректов в переменной $sent_http_location
  15956. было пустое значение.
  15957. </para>
  15958. <para lang="en">
  15959. the $sent_http_location variable was empty for some redirects types.
  15960. </para>
  15961. </change>

  15962. <change type="bugfix">
  15963. <para lang="ru">
  15964. при использовании директивы resolver в SMTP прокси-сервере
  15965. в рабочем процессе мог произойти segmentation fault.
  15966. </para>
  15967. <para lang="en">
  15968. a segmentation fault might occur in worker process
  15969. if "resolver" directive was used in SMTP proxy.
  15970. </para>
  15971. </change>

  15972. </changes>


  15973. <changes ver="0.7.32" date="2009-01-26">

  15974. <change type="feature">
  15975. <para lang="ru">
  15976. теперь в директиве try_files можно явно указать проверку каталога.
  15977. </para>
  15978. <para lang="en">
  15979. now a directory existence testing can be set explicitly
  15980. in the "try_files" directive.
  15981. </para>
  15982. </change>

  15983. <change type="bugfix">
  15984. <para lang="ru">
  15985. fastcgi_store не всегда сохранял файлы.
  15986. </para>
  15987. <para lang="en">
  15988. fastcgi_store stored files not always.
  15989. </para>
  15990. </change>

  15991. <change type="bugfix">
  15992. <para lang="ru">
  15993. в гео-диапазонах.
  15994. </para>
  15995. <para lang="en">
  15996. in geo ranges.
  15997. </para>
  15998. </change>

  15999. <change type="bugfix">
  16000. <para lang="ru">
  16001. ошибки выделения больших блоков в разделяемой памяти,
  16002. если nginx был собран без отладки.<br/>
  16003. Спасибо Андрею Квасову.
  16004. </para>
  16005. <para lang="en">
  16006. in shared memory allocations if nginx was built without debugging.<br/>
  16007. Thanks to Andrey Kvasov.
  16008. </para>
  16009. </change>

  16010. </changes>


  16011. <changes ver="0.7.31" date="2009-01-19">

  16012. <change type="change">
  16013. <para lang="ru">
  16014. теперь директива try_files проверяет только файлы, игнорируя каталоги.
  16015. </para>
  16016. <para lang="en">
  16017. now the "try_files" directive tests files only and ignores directories.
  16018. </para>
  16019. </change>

  16020. <change type="feature">
  16021. <para lang="ru">
  16022. директива fastcgi_split_path_info.
  16023. </para>
  16024. <para lang="en">
  16025. the "fastcgi_split_path_info" directive.
  16026. </para>
  16027. </change>

  16028. <change>
  16029. <para lang="ru">
  16030. Исправления в поддержке строки "Expect" в заголовке запроса.
  16031. </para>
  16032. <para lang="en">
  16033. Bugfixes in an "Expect" request header line support.
  16034. </para>
  16035. </change>

  16036. <change>
  16037. <para lang="ru">
  16038. Исправления в гео-диапазонах.
  16039. </para>
  16040. <para lang="en">
  16041. Bugfixes in geo ranges.
  16042. </para>
  16043. </change>

  16044. <change type="bugfix">
  16045. <para lang="ru">
  16046. при отсутствии ответа ngx_http_memcached_module возвращал
  16047. в теле ответа строку "END" вместо 404-ой страницы по умолчанию;
  16048. ошибка появилась в 0.7.18.<br/>
  16049. Спасибо Максиму Дунину.
  16050. </para>
  16051. <para lang="en">
  16052. in a miss case ngx_http_memcached_module returned the "END" line
  16053. as response body instead of default 404 page body;
  16054. the bug had appeared in 0.7.18.<br/>
  16055. Thanks to Maxim Dounin.
  16056. </para>
  16057. </change>

  16058. <change type="bugfix">
  16059. <para lang="ru">
  16060. при проксировании SMTP nginx выдавал сообщение
  16061. <nobr>"250 2.0.0 OK"</nobr> вместо "235 2.0.0 OK";
  16062. ошибка появилась в 0.7.22.<br/>
  16063. Спасибо Максиму Дунину.
  16064. </para>
  16065. <para lang="en">
  16066. while SMTP proxying nginx issued message
  16067. "250 2.0.0 OK" instead of "235 2.0.0 OK";
  16068. the bug had appeared in 0.7.22.<br/>
  16069. Thanks to Maxim Dounin.
  16070. </para>
  16071. </change>

  16072. </changes>



  16073. <changes ver="0.7.30" date="2008-12-24">

  16074. <change type="bugfix">
  16075. <para lang="ru">
  16076. в рабочем процессе происходил segmentation fault,
  16077. если в директивах fastcgi_pass или proxy_pass
  16078. использовались переменные и имя хоста должно было резолвиться;
  16079. ошибка появилась в 0.7.29.
  16080. </para>
  16081. <para lang="en">
  16082. a segmentation fault occurred in worker process,
  16083. if variables were used in the "fastcgi_pass" or "proxy_pass" directives
  16084. and host name must be resolved;
  16085. the bug had appeared in 0.7.29.
  16086. </para>
  16087. </change>

  16088. </changes>


  16089. <changes ver="0.7.29" date="2008-12-24">

  16090. <change type="bugfix">
  16091. <para lang="ru">
  16092. директивы fastcgi_pass и proxy_pass не поддерживали переменные
  16093. при использовании unix domain сокетов.
  16094. </para>
  16095. <para lang="en">
  16096. the "fastcgi_pass" and "proxy_pass" directives did not support
  16097. variables if unix domain sockets were used.
  16098. </para>
  16099. </change>

  16100. <change>
  16101. <para lang="ru">
  16102. Исправления в обработке подзапросов;
  16103. ошибки появились в 0.7.25.
  16104. </para>
  16105. <para lang="en">
  16106. Bugfixes in subrequest processing;
  16107. the bugs had appeared in 0.7.25.
  16108. </para>
  16109. </change>

  16110. <change type="bugfix">
  16111. <para lang="ru">
  16112. ответ "100 Continue" выдавался для запросов версии HTTP/1.0;<br/>
  16113. Спасибо Максиму Дунину.
  16114. </para>
  16115. <para lang="en">
  16116. a "100 Continue" response was issued for HTTP/1.0 requests;<br/>
  16117. Thanks to Maxim Dounin.
  16118. </para>
  16119. </change>

  16120. <change type="bugfix">
  16121. <para lang="ru">
  16122. в выделении памяти в модуле ngx_http_gzip_filter_module под Cygwin.
  16123. </para>
  16124. <para lang="en">
  16125. in memory allocation in the ngx_http_gzip_filter_module on Cygwin.
  16126. </para>
  16127. </change>

  16128. </changes>


  16129. <changes ver="0.7.28" date="2008-12-22">

  16130. <change type="change">
  16131. <para lang="ru">
  16132. в выделении памяти в модуле ngx_http_gzip_filter_module.
  16133. </para>
  16134. <para lang="en">
  16135. in memory allocation in the ngx_http_gzip_filter_module.
  16136. </para>
  16137. </change>

  16138. <change type="change">
  16139. <para lang="ru">
  16140. значения по умолчанию для директивы gzip_buffers изменены с 4 4k/8k
  16141. на 32 4k или 16 8k.
  16142. </para>
  16143. <para lang="en">
  16144. the default "gzip_buffers" directive values have been changed
  16145. to 32 4k or 16 8k from 4 4k/8k.
  16146. </para>
  16147. </change>

  16148. </changes>


  16149. <changes ver="0.7.27" date="2008-12-15">

  16150. <change type="feature">
  16151. <para lang="ru">
  16152. директива try_files.
  16153. </para>
  16154. <para lang="en">
  16155. the "try_files" directive.
  16156. </para>
  16157. </change>

  16158. <change type="feature">
  16159. <para lang="ru">
  16160. директива fastcgi_pass поддерживает переменные.
  16161. </para>
  16162. <para lang="en">
  16163. variables support in the "fastcgi_pass" directive.
  16164. </para>
  16165. </change>

  16166. <change type="feature">
  16167. <para lang="ru">
  16168. теперь директива geo может брать адрес из переменной.<br/>
  16169. Спасибо Андрею Нигматулину.
  16170. </para>
  16171. <para lang="en">
  16172. now the $geo variable may get an address from a variable.<br/>
  16173. Thanks to Andrei Nigmatulin.
  16174. </para>
  16175. </change>

  16176. <change type="feature">
  16177. <para lang="ru">
  16178. теперь модификатор location'а можно указывать без пробела перед названием.
  16179. </para>
  16180. <para lang="en">
  16181. now a location's modifier may be used without space before name.
  16182. </para>
  16183. </change>

  16184. <change type="feature">
  16185. <para lang="ru">
  16186. переменная $upstream_response_length.
  16187. </para>
  16188. <para lang="en">
  16189. the $upstream_response_length variable.
  16190. </para>
  16191. </change>

  16192. <change type="bugfix">
  16193. <para lang="ru">
  16194. теперь директива add_header не добавляет пустое значение.
  16195. </para>
  16196. <para lang="en">
  16197. now a "add_header" directive does not add an empty value.
  16198. </para>
  16199. </change>

  16200. <change type="bugfix">
  16201. <para lang="ru">
  16202. при запросе файла нулевой длины nginx закрывал соединение, ничего не передав;
  16203. ошибка появилась в 0.7.25.
  16204. </para>
  16205. <para lang="en">
  16206. if zero length static file was requested, then nginx just closed connection;
  16207. the bug had appeared in 0.7.25.
  16208. </para>
  16209. </change>

  16210. <change type="bugfix">
  16211. <para lang="ru">
  16212. метод MOVE не мог перемещать файл в несуществующий каталог.
  16213. </para>
  16214. <para lang="en">
  16215. a MOVE method could not move file in non-existent directory.
  16216. </para>
  16217. </change>

  16218. <change type="bugfix">
  16219. <para lang="ru">
  16220. если в сервере не был описан ни один именованный location,
  16221. но такой location использовался в директиве error_page,
  16222. то в рабочем процессе происходил segmentation fault.<br/>
  16223. Спасибо Сергею Боченкову.
  16224. </para>
  16225. <para lang="en">
  16226. a segmentation fault occurred in worker process,
  16227. if no one named location was defined in server,
  16228. but some one was used in an error_page directive.<br/>
  16229. Thanks to Sergey Bochenkov.
  16230. </para>
  16231. </change>

  16232. </changes>


  16233. <changes ver="0.7.26" date="2008-12-08">

  16234. <change type="bugfix">
  16235. <para lang="ru">
  16236. в обработке подзапросов;
  16237. ошибка появилась в 0.7.25.
  16238. </para>
  16239. <para lang="en">
  16240. in subrequest processing;
  16241. the bug had appeared in 0.7.25.
  16242. </para>
  16243. </change>

  16244. </changes>


  16245. <changes ver="0.7.25" date="2008-12-08">

  16246. <change type="change">
  16247. <para lang="ru">
  16248. в обработке подзапросов.
  16249. </para>
  16250. <para lang="en">
  16251. in subrequest processing.
  16252. </para>
  16253. </change>

  16254. <change type="change">
  16255. <para lang="ru">
  16256. теперь разрешаются POST'ы без строки "Content-Length" в заголовке запроса.
  16257. </para>
  16258. <para lang="en">
  16259. now POSTs without "Content-Length" header line are allowed.
  16260. </para>
  16261. </change>

  16262. <change type="bugfix">
  16263. <para lang="ru">
  16264. теперь директивы limit_req и limit_conn указывают причину запрета запроса.
  16265. </para>
  16266. <para lang="en">
  16267. now the "limit_req" and "limit_conn" directives log a prohibition reason.
  16268. </para>
  16269. </change>

  16270. <change type="bugfix">
  16271. <para lang="ru">
  16272. в параметре delete директивы geo.
  16273. </para>
  16274. <para lang="en">
  16275. in the "delete" parameter of the "geo" directive.
  16276. </para>
  16277. </change>

  16278. </changes>


  16279. <changes ver="0.7.24" date="2008-12-01">

  16280. <change type="feature">
  16281. <para lang="ru">
  16282. директива if_modified_since.
  16283. </para>
  16284. <para lang="en">
  16285. the "if_modified_since" directive.
  16286. </para>
  16287. </change>

  16288. <change type="bugfix">
  16289. <para lang="ru">
  16290. nginx не обрабатывал ответ FastCGI-сервера,
  16291. если перед ответом сервер передавал много сообщений в stderr.
  16292. </para>
  16293. <para lang="en">
  16294. nginx did not process a FastCGI server response,
  16295. if the server send too many messages to stderr before response.
  16296. </para>
  16297. </change>

  16298. <change type="bugfix">
  16299. <para lang="ru">
  16300. переменные "$cookie_..." не работали в SSI and в перловом модуле.
  16301. </para>
  16302. <para lang="en">
  16303. the "$cookie_..." variables did not work in the SSI and the perl module.
  16304. </para>
  16305. </change>

  16306. </changes>


  16307. <changes ver="0.7.23" date="2008-11-27">

  16308. <change type="feature">
  16309. <para lang="ru">
  16310. параметры delete и ranges в директиве geo.
  16311. </para>
  16312. <para lang="en">
  16313. the "delete" and "ranges" parameters in the "geo" directive.
  16314. </para>
  16315. </change>

  16316. <change type="feature">
  16317. <para lang="ru">
  16318. ускорение загрузки geo-базы с большим числом значений.
  16319. </para>
  16320. <para lang="en">
  16321. speeding up loading of geo base with large number of values.
  16322. </para>
  16323. </change>

  16324. <change type="feature">
  16325. <para lang="ru">
  16326. уменьшение памяти, необходимой для загрузки geo-базы.
  16327. </para>
  16328. <para lang="en">
  16329. decrease of memory required for geo base load.
  16330. </para>
  16331. </change>

  16332. </changes>


  16333. <changes ver="0.7.22" date="2008-11-20">

  16334. <change type="feature">
  16335. <para lang="ru">
  16336. параметр none в директиве smtp_auth.<br/>
  16337. Спасибо Максиму Дунину.
  16338. </para>
  16339. <para lang="en">
  16340. the "none" parameter in the "smtp_auth" directive.<br/>
  16341. Thanks to Maxim Dounin.
  16342. </para>
  16343. </change>

  16344. <change type="feature">
  16345. <para lang="ru">
  16346. переменные "$cookie_...".
  16347. </para>
  16348. <para lang="en">
  16349. the "$cookie_..." variables.
  16350. </para>
  16351. </change>

  16352. <change type="bugfix">
  16353. <para lang="ru">
  16354. директива directio не работала с файловой системой XFS.
  16355. </para>
  16356. <para lang="en">
  16357. the "directio" directive did not work in XFS filesystem.
  16358. </para>
  16359. </change>

  16360. <change type="bugfix">
  16361. <para lang="ru">
  16362. resolver не понимал большие DNS-ответы.<br/>
  16363. Спасибо Zyb.
  16364. </para>
  16365. <para lang="en">
  16366. the resolver did not understand big DNS responses.<br/>
  16367. Thanks to Zyb.
  16368. </para>
  16369. </change>

  16370. </changes>


  16371. <changes ver="0.7.21" date="2008-11-11">

  16372. <change>
  16373. <para lang="ru">
  16374. Изменения в модуле ngx_http_limit_req_module.
  16375. </para>
  16376. <para lang="en">
  16377. Changes in the ngx_http_limit_req_module.
  16378. </para>
  16379. </change>

  16380. <change type="feature">
  16381. <para lang="ru">
  16382. поддержка EXSLT в модуле ngx_http_xslt_module.<br/>
  16383. Спасибо Денису Латыпову.
  16384. </para>
  16385. <para lang="en">
  16386. the EXSLT support in the ngx_http_xslt_module.<br/>
  16387. Thanks to Denis F. Latypoff.
  16388. </para>
  16389. </change>

  16390. <change type="workaround">
  16391. <para lang="ru">
  16392. совместимость с glibc 2.3.<br/>
  16393. Спасибо Eric Benson и Максиму Дунину.
  16394. </para>
  16395. <para lang="en">
  16396. compatibility with glibc 2.3.<br/>
  16397. Thanks to Eric Benson and Maxim Dounin.
  16398. </para>
  16399. </change>

  16400. <change type="bugfix">
  16401. <para lang="ru">
  16402. nginx не запускался на MacOSX 10.4 и более ранних;
  16403. ошибка появилась в 0.7.6.
  16404. </para>
  16405. <para lang="en">
  16406. nginx could not run on MacOSX 10.4 and earlier;
  16407. the bug had appeared in 0.7.6.
  16408. </para>
  16409. </change>

  16410. </changes>


  16411. <changes ver="0.7.20" date="2008-11-10">

  16412. <change>
  16413. <para lang="ru">
  16414. Изменения в модуле ngx_http_gzip_filter_module.
  16415. </para>
  16416. <para lang="en">
  16417. Changes in the ngx_http_gzip_filter_module.
  16418. </para>
  16419. </change>

  16420. <change type="feature">
  16421. <para lang="ru">
  16422. модуль ngx_http_limit_req_module.
  16423. </para>
  16424. <para lang="en">
  16425. the ngx_http_limit_req_module.
  16426. </para>
  16427. </change>

  16428. <change type="bugfix">
  16429. <para lang="ru">
  16430. на платформах sparc и ppc рабочие процессы могли выходить по сигналу SIGBUS;
  16431. ошибка появилась в 0.7.3.<br/>
  16432. Спасибо Максиму Дунину.
  16433. </para>
  16434. <para lang="en">
  16435. worker processes might exit on a SIGBUS signal on sparc and ppc platforms;
  16436. the bug had appeared in 0.7.3.<br/>
  16437. Thanks to Maxim Dounin.
  16438. </para>
  16439. </change>

  16440. <change type="bugfix">
  16441. <para lang="ru">
  16442. директивы вида "proxy_pass http://host/some:uri" не работали;
  16443. ошибка появилась в 0.7.12.
  16444. </para>
  16445. <para lang="en">
  16446. the "proxy_pass http://host/some:uri" directives did not work;
  16447. the bug had appeared in 0.7.12.
  16448. </para>
  16449. </change>

  16450. <change type="bugfix">
  16451. <para lang="ru">
  16452. при использовании HTTPS запросы могли завершаться с ошибкой "bad write retry".
  16453. </para>
  16454. <para lang="en">
  16455. in HTTPS mode requests might fail with the "bad write retry" error.
  16456. </para>
  16457. </change>

  16458. <change type="bugfix">
  16459. <para lang="ru">
  16460. модуль ngx_http_secure_link_module не работал внутри location'ов
  16461. с именами меньше 3 символов.
  16462. </para>
  16463. <para lang="en">
  16464. the ngx_http_secure_link_module did not work inside locations,
  16465. whose names are less than 3 characters.
  16466. </para>
  16467. </change>

  16468. <change type="bugfix">
  16469. <para lang="ru">
  16470. переменная $server_addr могла не иметь значения.
  16471. </para>
  16472. <para lang="en">
  16473. $server_addr variable might have no value.
  16474. </para>
  16475. </change>

  16476. </changes>


  16477. <changes ver="0.7.19" date="2008-10-13">

  16478. <change type="bugfix">
  16479. <para lang="ru">
  16480. обновление номера версии.
  16481. </para>
  16482. <para lang="en">
  16483. version number update.
  16484. </para>
  16485. </change>

  16486. </changes>


  16487. <changes ver="0.7.18" date="2008-10-13">

  16488. <change type="change">
  16489. <para lang="ru">
  16490. директива underscores_in_headers;
  16491. теперь nginx по умолчанию не разрешает подчёркивания в именах строк
  16492. в заголовке запроса клиента.
  16493. </para>
  16494. <para lang="en">
  16495. the "underscores_in_headers" directive;
  16496. now nginx does not allows underscores in a client request header line names.
  16497. </para>
  16498. </change>

  16499. <change type="feature">
  16500. <para lang="ru">
  16501. модуль ngx_http_secure_link_module.
  16502. </para>
  16503. <para lang="en">
  16504. the ngx_http_secure_link_module.
  16505. </para>
  16506. </change>

  16507. <change type="feature">
  16508. <para lang="ru">
  16509. директива real_ip_header поддерживает любой заголовок.
  16510. </para>
  16511. <para lang="en">
  16512. the "real_ip_header" directive supports any header.
  16513. </para>
  16514. </change>

  16515. <change type="feature">
  16516. <para lang="ru">
  16517. директива log_subrequest.
  16518. </para>
  16519. <para lang="en">
  16520. the "log_subrequest" directive.
  16521. </para>
  16522. </change>

  16523. <change type="feature">
  16524. <para lang="ru">
  16525. переменная $realpath_root.
  16526. </para>
  16527. <para lang="en">
  16528. the $realpath_root variable.
  16529. </para>
  16530. </change>

  16531. <change type="feature">
  16532. <para lang="ru">
  16533. параметры http_502 и http_504 в директиве proxy_next_upstream.
  16534. </para>
  16535. <para lang="en">
  16536. the "http_502" and "http_504" parameters of the "proxy_next_upstream" directive.
  16537. </para>
  16538. </change>

  16539. <change type="bugfix">
  16540. <para lang="ru">
  16541. параметр http_503 в директивах proxy_next_upstream или fastcgi_next_upstream
  16542. не работал.
  16543. </para>
  16544. <para lang="en">
  16545. the "http_503" parameter of the "proxy_next_upstream" or
  16546. "fastcgi_next_upstream" directives did not work.
  16547. </para>
  16548. </change>

  16549. <change type="bugfix">
  16550. <para lang="ru">
  16551. nginx мог выдавать строку "Transfer-Encoding: chunked" для запросов  HEAD.
  16552. </para>
  16553. <para lang="en">
  16554. nginx might send a "Transfer-Encoding: chunked" header line for HEAD requests.
  16555. </para>
  16556. </change>

  16557. <change type="bugfix">
  16558. <para lang="ru">
  16559. теперь accept-лимит зависит от числа worker_connections.
  16560. </para>
  16561. <para lang="en">
  16562. now accept threshold depends on worker_connections.
  16563. </para>
  16564. </change>

  16565. </changes>


  16566. <changes ver="0.7.17" date="2008-09-15">

  16567. <change type="feature">
  16568. <para lang="ru">
  16569. директива directio теперь работает на Linux.
  16570. </para>
  16571. <para lang="en">
  16572. now the "directio" directive works on Linux.
  16573. </para>
  16574. </change>

  16575. <change type="feature">
  16576. <para lang="ru">
  16577. переменная $pid.
  16578. </para>
  16579. <para lang="en">
  16580. the $pid variable.
  16581. </para>
  16582. </change>

  16583. <change type="bugfix">
  16584. <para lang="ru">
  16585. оптимизация directio, появившаяся в 0.7.15, не работала при использовании
  16586. open_file_cache.
  16587. </para>
  16588. <para lang="en">
  16589. the "directio" optimization that had appeared in 0.7.15 did not work with
  16590. open_file_cache.
  16591. </para>
  16592. </change>

  16593. <change type="bugfix">
  16594. <para lang="ru">
  16595. access_log с переменными не работал на Linux;
  16596. ошибка появилась в 0.7.7.
  16597. </para>
  16598. <para lang="en">
  16599. the "access_log" with variables did not work on Linux;
  16600. the bug had appeared in 0.7.7.
  16601. </para>
  16602. </change>

  16603. <change type="bugfix">
  16604. <para lang="ru">
  16605. модуль ngx_http_charset_module не понимал название кодировки в кавычках,
  16606. полученное от бэкенда.
  16607. </para>
  16608. <para lang="en">
  16609. the ngx_http_charset_module did not understand quoted charset name
  16610. received from backend.
  16611. </para>
  16612. </change>

  16613. </changes>


  16614. <changes ver="0.7.16" date="2008-09-08">

  16615. <change type="bugfix">
  16616. <para lang="ru">
  16617. nginx не собирался на 64-битных платформах;
  16618. ошибка появилась в 0.7.15.
  16619. </para>
  16620. <para lang="en">
  16621. nginx could not be built on 64-bit platforms;
  16622. the bug had appeared in 0.7.15.
  16623. </para>
  16624. </change>

  16625. </changes>


  16626. <changes ver="0.7.15" date="2008-09-08">

  16627. <change type="feature">
  16628. <para lang="ru">
  16629. модуль ngx_http_random_index_module.
  16630. </para>
  16631. <para lang="en">
  16632. the ngx_http_random_index_module.
  16633. </para>
  16634. </change>

  16635. <change type="feature">
  16636. <para lang="ru">
  16637. директива directio оптимизирована для запросов файлов, начинающихся
  16638. с произвольной позиции.
  16639. </para>
  16640. <para lang="en">
  16641. the "directio" directive has been optimized for file requests starting
  16642. from arbitrary position.
  16643. </para>
  16644. </change>

  16645. <change type="feature">
  16646. <para lang="ru">
  16647. директива directio при необходимости запрещает использование sendfile.
  16648. </para>
  16649. <para lang="en">
  16650. the "directio" directive turns off sendfile if it is necessary.
  16651. </para>
  16652. </change>

  16653. <change type="feature">
  16654. <para lang="ru">
  16655. теперь nginx разрешает подчёркивания в именах строк в заголовке запроса клиента.
  16656. </para>
  16657. <para lang="en">
  16658. now nginx allows underscores in a client request header line names.
  16659. </para>
  16660. </change>

  16661. </changes>


  16662. <changes ver="0.7.14" date="2008-09-01">

  16663. <change type="change">
  16664. <para lang="ru">
  16665. теперь директивы ssl_certificate и ssl_certificate_key не имеют
  16666. значений по умолчанию.
  16667. </para>
  16668. <para lang="en">
  16669. now the ssl_certificate and ssl_certificate_key directives have no
  16670. default values.
  16671. </para>
  16672. </change>

  16673. <change type="feature">
  16674. <para lang="ru">
  16675. директива listen поддерживает параметр ssl.
  16676. </para>
  16677. <para lang="en">
  16678. the "listen" directive supports the "ssl" parameter.
  16679. </para>
  16680. </change>

  16681. <change type="feature">
  16682. <para lang="ru">
  16683. теперь при переконфигурации nginx учитывает изменение временной зоны
  16684. на FreeBSD и Linux.
  16685. </para>
  16686. <para lang="en">
  16687. now nginx takes into account a time zone change while reconfiguration
  16688. on FreeBSD and Linux.
  16689. </para>
  16690. </change>

  16691. <change type="bugfix">
  16692. <para lang="ru">
  16693. параметры директивы listen, такие как backlog, rcvbuf и прочие,
  16694. не устанавливались, если сервером по умолчанию был не первый сервер.
  16695. </para>
  16696. <para lang="en">
  16697. the "listen" directive parameters such as "backlog", "rcvbuf", etc.
  16698. were not set, if a default server was not the first one.
  16699. </para>
  16700. </change>

  16701. <change type="bugfix">
  16702. <para lang="ru">
  16703. при использовании в качестве аргументов части URI, выделенного с помощью
  16704. директивы rewrite, эти аргументы не экранировались.
  16705. </para>
  16706. <para lang="en">
  16707. if URI part captured by a "rewrite" directive was used as a query string,
  16708. then the query string was not escaped.
  16709. </para>
  16710. </change>

  16711. <change type="bugfix">
  16712. <para lang="ru">
  16713. улучшения тестирования правильности конфигурационного файла.
  16714. </para>
  16715. <para lang="en">
  16716. configuration file validity test improvements.
  16717. </para>
  16718. </change>


  16719. </changes>


  16720. <changes ver="0.7.13" date="2008-08-26">

  16721. <change type="bugfix">
  16722. <para lang="ru">
  16723. nginx не собирался на Linux и Solaris;
  16724. ошибка появилась в 0.7.12.
  16725. </para>
  16726. <para lang="en">
  16727. nginx could not be built on Linux and Solaris;
  16728. the bug had appeared in 0.7.12.
  16729. </para>
  16730. </change>

  16731. </changes>


  16732. <changes ver="0.7.12" date="2008-08-26">

  16733. <change type="feature">
  16734. <para lang="ru">
  16735. директива server_name поддерживает пустое имя "".
  16736. </para>
  16737. <para lang="en">
  16738. the "server_name" directive supports empty name "".
  16739. </para>
  16740. </change>

  16741. <change type="feature">
  16742. <para lang="ru">
  16743. директива gzip_disable поддерживает специальную маску msie6.
  16744. </para>
  16745. <para lang="en">
  16746. the "gzip_disable" directive supports special "msie6" mask.
  16747. </para>
  16748. </change>

  16749. <change type="bugfix">
  16750. <para lang="ru">
  16751. при использовании параметра max_fails=0 в upstream'е с несколькими
  16752. серверами рабочий процесс выходил по сигналу SIGFPE.<br/>
  16753. Спасибо Максиму Дунину.
  16754. </para>
  16755. <para lang="en">
  16756. if the "max_fails=0" parameter was used in upstream with several servers,
  16757. then a worker process exited on a SIGFPE signal.<br/>
  16758. Thanks to Maxim Dounin.
  16759. </para>
  16760. </change>

  16761. <change type="bugfix">
  16762. <para lang="ru">
  16763. при перенаправлении запроса с помощью директивы error_page
  16764. терялось тело запроса.
  16765. </para>
  16766. <para lang="en">
  16767. a request body was dropped while redirection via an "error_page" directive.
  16768. </para>
  16769. </change>

  16770. <change type="bugfix">
  16771. <para lang="ru">
  16772. при перенаправлении запроса с методом HEAD с помощью директивы error_page
  16773. возвращался полный ответ.
  16774. </para>
  16775. <para lang="en">
  16776. a full response was returned for request method HEAD
  16777. while redirection via an "error_page" directive.
  16778. </para>
  16779. </change>

  16780. <change type="bugfix">
  16781. <para lang="ru">
  16782. метод $r->header_in() не возвращал значения строк "Host", "User-Agent",
  16783. и "Connection" из заголовка запроса;
  16784. ошибка появилась в 0.7.0.
  16785. </para>
  16786. <para lang="en">
  16787. the $r->header_in() method did not return value of the "Host",
  16788. "User-Agent", and "Connection" request header lines;
  16789. the bug had appeared in 0.7.0.
  16790. </para>
  16791. </change>

  16792. </changes>


  16793. <changes ver="0.7.11" date="2008-08-18">

  16794. <change type="change">
  16795. <para lang="ru">
  16796. теперь ngx_http_charset_module по умолчанию не работает MIME-типом text/css.
  16797. </para>
  16798. <para lang="en">
  16799. now ngx_http_charset_module does not work by default with text/css MIME type.
  16800. </para>
  16801. </change>

  16802. <change type="feature">
  16803. <para lang="ru">
  16804. теперь nginx возвращает код 405 для метода POST при запросе статического
  16805. файла, только если файл существует.
  16806. </para>
  16807. <para lang="en">
  16808. now nginx returns the 405 status code for POST method requesting a static file
  16809. only if the file exists.
  16810. </para>
  16811. </change>

  16812. <change type="feature">
  16813. <para lang="ru">
  16814. директива proxy_ssl_session_reuse.
  16815. </para>
  16816. <para lang="en">
  16817. the "proxy_ssl_session_reuse" directive.
  16818. </para>
  16819. </change>

  16820. <change type="bugfix">
  16821. <para lang="ru">
  16822. после перенаправления запроса с помощью "X-Accel-Redirect"
  16823. директива proxy_pass без URI могла использовать оригинальный запрос.
  16824. </para>
  16825. <para lang="en">
  16826. a "proxy_pass" directive without URI part might use original request
  16827. after the "X-Accel-Redirect" redirection was used.
  16828. </para>
  16829. </change>

  16830. <change type="bugfix">
  16831. <para lang="ru">
  16832. если у каталога были права доступа только на поиск файлов
  16833. и первый индексный файл отсутствовал, то nginx возвращал ошибку 500.
  16834. </para>
  16835. <para lang="en">
  16836. if a directory has search only rights and the first index file was absent,
  16837. then nginx returned the 500 status code.
  16838. </para>
  16839. </change>

  16840. <change type="bugfix">
  16841. <para lang="ru">
  16842. ошибок во вложенных location'ах;
  16843. ошибки появились в 0.7.1.
  16844. </para>
  16845. <para lang="en">
  16846. in inclusive locations;
  16847. the bugs had appeared in 0.7.1.
  16848. </para>
  16849. </change>

  16850. </changes>


  16851. <changes ver="0.7.10" date="2008-08-13">

  16852. <change type="bugfix">
  16853. <para lang="ru">
  16854. ошибок в директивах addition_types, charset_types,
  16855. gzip_types, ssi_types, sub_filter_types и xslt_types;
  16856. ошибки появились в 0.7.9.
  16857. </para>
  16858. <para lang="en">
  16859. in the "addition_types", "charset_types",
  16860. "gzip_types", "ssi_types", "sub_filter_types", and "xslt_types" directives;
  16861. the bugs had appeared in 0.7.9.
  16862. </para>
  16863. </change>

  16864. <change type="bugfix">
  16865. <para lang="ru">
  16866. рекурсивной error_page для 500 ошибки.
  16867. </para>
  16868. <para lang="en">
  16869. of recursive error_page for 500 status code.
  16870. </para>
  16871. </change>

  16872. <change type="bugfix">
  16873. <para lang="ru">
  16874. теперь модуль ngx_http_realip_module устанавливает адрес не для
  16875. всего keepalive соединения, а для каждого запроса по этому соединению.
  16876. </para>
  16877. <para lang="en">
  16878. now the ngx_http_realip_module sets address not for whole keepalive connection,
  16879. but for each request passed via the connection.
  16880. </para>
  16881. </change>

  16882. </changes>


  16883. <changes ver="0.7.9" date="2008-08-12">

  16884. <change type="change">
  16885. <para lang="ru">
  16886. теперь ngx_http_charset_module по умолчанию работает со следующими MIME-типами:
  16887. text/html, text/css, text/xml, text/plain, text/vnd.wap.wml,
  16888. application/x-javascript и application/rss+xml.
  16889. </para>
  16890. <para lang="en">
  16891. now ngx_http_charset_module works by default with following MIME types:
  16892. text/html, text/css, text/xml, text/plain, text/vnd.wap.wml,
  16893. application/x-javascript, and application/rss+xml.
  16894. </para>
  16895. </change>

  16896. <change type="feature">
  16897. <para lang="ru">
  16898. директивы charset_types и addition_types.
  16899. </para>
  16900. <para lang="en">
  16901. the "charset_types" and "addition_types" directives.
  16902. </para>
  16903. </change>

  16904. <change type="feature">
  16905. <para lang="ru">
  16906. теперь директивы gzip_types, ssi_types и sub_filter_types используют хэш.
  16907. </para>
  16908. <para lang="en">
  16909. now the "gzip_types", "ssi_types", and "sub_filter_types" directives use hash.
  16910. </para>
  16911. </change>

  16912. <change type="feature">
  16913. <para lang="ru">
  16914. модуль ngx_cpp_test_module.
  16915. </para>
  16916. <para lang="en">
  16917. the ngx_cpp_test_module.
  16918. </para>
  16919. </change>

  16920. <change type="feature">
  16921. <para lang="ru">
  16922. директива expires поддерживает суточное время.
  16923. </para>
  16924. <para lang="en">
  16925. the "expires" directive supports daily time.
  16926. </para>
  16927. </change>

  16928. <change type="feature">
  16929. <para lang="ru">
  16930. улучшения и исправления в модуле ngx_http_xslt_module.<br/>
  16931. Спасибо Денису Латыпову и Максиму Дунину.
  16932. </para>
  16933. <para lang="en">
  16934. the ngx_http_xslt_module improvements and bug fixing.<br/>
  16935. Thanks to Denis F. Latypoff and Maxim Dounin.
  16936. </para>
  16937. </change>

  16938. <change type="bugfix">
  16939. <para lang="ru">
  16940. директива log_not_found не работала при поиске индексных файлов.
  16941. </para>
  16942. <para lang="en">
  16943. the "log_not_found" directive did not work for index files tests.
  16944. </para>
  16945. </change>

  16946. <change type="bugfix">
  16947. <para lang="ru">
  16948. HTTPS-соединения могли зависнуть,
  16949. если использовались методы kqueue, epoll, rtsig или eventport;
  16950. ошибка появилась в 0.7.7.
  16951. </para>
  16952. <para lang="en">
  16953. HTTPS connections might hang,
  16954. if kqueue, epoll, rtsig, or eventport methods were used;
  16955. the bug had appeared in 0.7.7.
  16956. </para>
  16957. </change>

  16958. <change type="bugfix">
  16959. <para lang="ru">
  16960. если в директивах server_name, valid_referers и map
  16961. использовалась маска вида "*.domain.tld" и при этом полное имя
  16962. вида "domain.tld" не было описано, то это имя попадало под маску;
  16963. ошибка появилась в 0.3.18.
  16964. </para>
  16965. <para lang="en">
  16966. if the "server_name", "valid_referers", and "map" directives used
  16967. an "*.domain.tld" wildcard and exact name "domain.tld" was not set,
  16968. then the exact name was matched by the wildcard;
  16969. the bug had appeared in 0.3.18.
  16970. </para>
  16971. </change>

  16972. </changes>


  16973. <changes ver="0.7.8" date="2008-08-04">

  16974. <change type="feature">
  16975. <para lang="ru">
  16976. модуль ngx_http_xslt_module.
  16977. </para>
  16978. <para lang="en">
  16979. the ngx_http_xslt_module.
  16980. </para>
  16981. </change>

  16982. <change type="feature">
  16983. <para lang="ru">
  16984. переменные "$arg_...".
  16985. </para>
  16986. <para lang="en">
  16987. the "$arg_..." variables.
  16988. </para>
  16989. </change>

  16990. <change type="feature">
  16991. <para lang="ru">
  16992. поддержка directio в Solaris.<br/>
  16993. Спасибо Ivan Debnar.
  16994. </para>
  16995. <para lang="en">
  16996. Solaris directio support.<br/>
  16997. Thanks to Ivan Debnar.
  16998. </para>
  16999. </change>

  17000. <change type="bugfix">
  17001. <para lang="ru">
  17002. теперь, если FastCGI-сервер присылает строку "Location" в заголовке ответа
  17003. без строки статуса, то nginx использует код статуса 302.<br/>
  17004. Спасибо Максиму Дунину.
  17005. </para>
  17006. <para lang="en">
  17007. now if FastCGI server sends a "Location" header line without status line,
  17008. then nginx uses 302 status code.<br/>
  17009. Thanks to Maxim Dounin.
  17010. </para>
  17011. </change>

  17012. </changes>


  17013. <changes ver="0.7.7" date="2008-07-30">

  17014. <change type="change">
  17015. <para lang="ru">
  17016. теперь ошибка EAGAIN при вызове connect() не считается временной.
  17017. </para>
  17018. <para lang="en">
  17019. now the EAGAIN error returned by connect() is not considered as temporary error.
  17020. </para>
  17021. </change>

  17022. <change type="change">
  17023. <para lang="ru">
  17024. значением переменной $ssl_client_cert теперь является сертификат,
  17025. перед каждой строкой которого, кроме первой, вставляется символ табуляции;
  17026. неизменённый сертификат доступен через переменную $ssl_client_raw_cert.
  17027. </para>
  17028. <para lang="en">
  17029. now the $ssl_client_cert variable value is a certificate with TAB character
  17030. intended before each line except first one;
  17031. an unchanged certificate is available in the $ssl_client_raw_cert variable.
  17032. </para>
  17033. </change>

  17034. <change type="feature">
  17035. <para lang="ru">
  17036. параметр ask директивы ssl_verify_client.
  17037. </para>
  17038. <para lang="en">
  17039. the "ask" parameter in the "ssl_verify_client" directive.
  17040. </para>
  17041. </change>

  17042. <change type="feature">
  17043. <para lang="ru">
  17044. улучшения в обработке byte-range.<br/>
  17045. Спасибо Максиму Дунину.
  17046. </para>
  17047. <para lang="en">
  17048. byte-range processing improvements.<br/>
  17049. Thanks to Maxim Dounin.
  17050. </para>
  17051. </change>

  17052. <change type="feature">
  17053. <para lang="ru">
  17054. директива directio.<br/>
  17055. Спасибо Jiang Hong.
  17056. </para>
  17057. <para lang="en">
  17058. the "directio" directive.<br/>
  17059. Thanks to Jiang Hong.
  17060. </para>
  17061. </change>

  17062. <change type="feature">
  17063. <para lang="ru">
  17064. поддержка sendfile() в MacOSX 10.5.
  17065. </para>
  17066. <para lang="en">
  17067. MacOSX 10.5 sendfile() support.
  17068. </para>
  17069. </change>

  17070. <change type="bugfix">
  17071. <para lang="ru">
  17072. в MacOSX и Cygwin при проверке location'ов теперь делается сравнение
  17073. без учёта регистра символов;
  17074. однако, сравнение ограничено только однобайтными locale'ями.
  17075. </para>
  17076. <para lang="en">
  17077. now in MacOSX and Cygwin locations are tested in case insensitive mode;
  17078. however, the compare is provided by single-byte locales only.
  17079. </para>
  17080. </change>

  17081. <change type="bugfix">
  17082. <para lang="ru">
  17083. соединения почтового прокси-сервера зависали в режиме SSL,
  17084. если использовались методы select, poll или /dev/poll.
  17085. </para>
  17086. <para lang="en">
  17087. mail proxy SSL connections hanged,
  17088. if select, poll, or /dev/poll methods were used.
  17089. </para>
  17090. </change>

  17091. <change type="bugfix">
  17092. <para lang="ru">
  17093. ошибки при использовании кодировки UTF-8 в ngx_http_autoindex_module.
  17094. </para>
  17095. <para lang="en">
  17096. UTF-8 encoding usage in the ngx_http_autoindex_module.
  17097. </para>
  17098. </change>

  17099. </changes>


  17100. <changes ver="0.7.6" date="2008-07-07">

  17101. <change type="bugfix">
  17102. <para lang="ru">
  17103. теперь при использовании переменных в директиве access_log
  17104. всегда проверяется существовании root'а для запроса.
  17105. </para>
  17106. <para lang="en">
  17107. now if variables are used in the "access_log" directive
  17108. a request root existence is always tested.
  17109. </para>
  17110. </change>

  17111. <change type="bugfix">
  17112. <para lang="ru">
  17113. модуль ngx_http_flv_module не поддерживал несколько значений в
  17114. аргументах запроса.
  17115. </para>
  17116. <para lang="en">
  17117. the ngx_http_flv_module did not support several values in a query string.
  17118. </para>
  17119. </change>

  17120. </changes>


  17121. <changes ver="0.7.5" date="2008-07-01">

  17122. <change>
  17123. <para lang="ru">
  17124. Исправления в поддержке переменных в директиве access_log;
  17125. ошибки появились в 0.7.4.
  17126. </para>
  17127. <para lang="en">
  17128. Bugfixes in variables support in the "access_log" directive;
  17129. the bugs had appeared in 0.7.4.
  17130. </para>
  17131. </change>

  17132. <change type="bugfix">
  17133. <para lang="ru">
  17134. nginx не собирался с параметром --without-http_gzip_module;
  17135. ошибка появилась в 0.7.3.<br/>
  17136. Спасибо Кириллу Коринскому.
  17137. </para>
  17138. <para lang="en">
  17139. nginx could not be built --without-http_gzip_module;
  17140. the bug had appeared in 0.7.3.<br/>
  17141. Thanks to Kirill A. Korinskiy.
  17142. </para>
  17143. </change>

  17144. <change type="bugfix">
  17145. <para lang="ru">
  17146. при совместном использовании sub_filter и SSI
  17147. ответы могли передаваться неверно.
  17148. </para>
  17149. <para lang="en">
  17150. if sub_filter and SSI were used together, then responses might
  17151. were transferred incorrectly.
  17152. </para>
  17153. </change>

  17154. </changes>


  17155. <changes ver="0.7.4" date="2008-06-30">

  17156. <change type="feature">
  17157. <para lang="ru">
  17158. директива access_log поддерживает переменные.
  17159. </para>
  17160. <para lang="en">
  17161. variables support in the "access_log" directive.
  17162. </para>
  17163. </change>

  17164. <change type="feature">
  17165. <para lang="ru">
  17166. директива open_log_file_cache.
  17167. </para>
  17168. <para lang="en">
  17169. the "open_log_file_cache" directive.
  17170. </para>
  17171. </change>

  17172. <change type="feature">
  17173. <para lang="ru">
  17174. ключ -g.
  17175. </para>
  17176. <para lang="en">
  17177. the -g switch.
  17178. </para>
  17179. </change>

  17180. <change type="feature">
  17181. <para lang="ru">
  17182. поддержка строки "Expect" в заголовке запроса.
  17183. </para>
  17184. <para lang="en">
  17185. the "Expect" request header line support.
  17186. </para>
  17187. </change>

  17188. <change type="bugfix">
  17189. <para lang="ru">
  17190. большие включения в SSI могли передавались не полностью.
  17191. </para>
  17192. <para lang="en">
  17193. large SSI inclusions might be truncated.
  17194. </para>
  17195. </change>

  17196. </changes>


  17197. <changes ver="0.7.3" date="2008-06-23">

  17198. <change type="change">
  17199. <para lang="ru">
  17200. MIME-тип для расширения rss изменён на "application/rss+xml".
  17201. </para>
  17202. <para lang="en">
  17203. the "rss" extension MIME type has been changed to "application/rss+xml".
  17204. </para>
  17205. </change>

  17206. <change type="change">
  17207. <para lang="ru">
  17208. теперь директива "gzip_vary on" выдаёт строку
  17209. <nobr>"Vary: Accept-Encoding"</nobr>
  17210. в заголовке ответа и для несжатых ответов.
  17211. </para>
  17212. <para lang="en">
  17213. now the "gzip_vary" directive turned on issues
  17214. a <nobr>"Vary: Accept-Encoding"</nobr>
  17215. header line for uncompressed responses too.
  17216. </para>
  17217. </change>

  17218. <change type="feature">
  17219. <para lang="ru">
  17220. теперь при использовании протокола "https://" в директиве rewrite
  17221. автоматически делается редирект.
  17222. </para>
  17223. <para lang="en">
  17224. now the "rewrite" directive does a redirect automatically
  17225. if the "https://" protocol is used.
  17226. </para>
  17227. </change>

  17228. <change type="bugfix">
  17229. <para lang="ru">
  17230. директива proxy_pass не работала с протоколом HTTPS;
  17231. ошибка появилась в 0.6.9.
  17232. </para>
  17233. <para lang="en">
  17234. the "proxy_pass" directive did not work with the HTTPS protocol;
  17235. the bug had appeared in 0.6.9.
  17236. </para>
  17237. </change>

  17238. </changes>


  17239. <changes ver="0.7.2" date="2008-06-16">

  17240. <change type="feature">
  17241. <para lang="ru">
  17242. теперь nginx поддерживает шифры с обменом EDH-ключами.
  17243. </para>
  17244. <para lang="en">
  17245. now nginx supports EDH key exchange ciphers.
  17246. </para>
  17247. </change>

  17248. <change type="feature">
  17249. <para lang="ru">
  17250. директива ssl_dhparam.
  17251. </para>
  17252. <para lang="en">
  17253. the "ssl_dhparam" directive.
  17254. </para>
  17255. </change>

  17256. <change type="feature">
  17257. <para lang="ru">
  17258. переменная $ssl_client_cert.<br/>
  17259. Спасибо Manlio Perillo.
  17260. </para>
  17261. <para lang="en">
  17262. the $ssl_client_cert variable.<br/>
  17263. Thanks to Manlio Perillo.
  17264. </para>
  17265. </change>

  17266. <change type="bugfix">
  17267. <para lang="ru">
  17268. после изменения URI с помощью директивы rewrite nginx не искал новый location;
  17269. ошибка появилась в 0.7.1.<br/>
  17270. Спасибо Максиму Дунину.
  17271. </para>
  17272. <para lang="en">
  17273. after changing URI via a "rewrite" directive nginx did not search
  17274. a new location;
  17275. the bug had appeared in 0.7.1.<br/>
  17276. Thanks to Maxim Dounin.
  17277. </para>
  17278. </change>

  17279. <change type="bugfix">
  17280. <para lang="ru">
  17281. nginx не собирался без библиотеки PCRE;
  17282. ошибка появилась в 0.7.1.
  17283. </para>
  17284. <para lang="en">
  17285. nginx could not be built without PCRE library;
  17286. the bug had appeared in 0.7.1.
  17287. </para>
  17288. </change>

  17289. <change type="bugfix">
  17290. <para lang="ru">
  17291. при редиректе запроса к каталогу с добавлением слэша nginx
  17292. не добавлял аргументы из оригинального запроса.
  17293. </para>
  17294. <para lang="en">
  17295. when a request to a directory was redirected with the slash added,
  17296. nginx dropped a query string from the original request.
  17297. </para>
  17298. </change>

  17299. </changes>


  17300. <changes ver="0.7.1" date="2008-05-26">

  17301. <change type="change">
  17302. <para lang="ru">
  17303. теперь поиск location'а делается с помощью дерева.
  17304. </para>
  17305. <para lang="en">
  17306. now locations are searched in a tree.
  17307. </para>
  17308. </change>

  17309. <change type="change">
  17310. <para lang="ru">
  17311. директива optimize_server_names упразднена в связи с появлением
  17312. директивы server_name_in_redirect.
  17313. </para>
  17314. <para lang="en">
  17315. the "optimize_server_names" directive was canceled
  17316. due to the "server_name_in_redirect" directive introduction.
  17317. </para>
  17318. </change>

  17319. <change type="change">
  17320. <para lang="ru">
  17321. некоторые давно устаревшие директивы больше не поддерживаются.
  17322. </para>
  17323. <para lang="en">
  17324. some long deprecated directives are not supported anymore.
  17325. </para>
  17326. </change>

  17327. <change type="change">
  17328. <para lang="ru">
  17329. параметр "none" в директиве ssl_session_cache;
  17330. теперь этот параметр используется по умолчанию.<br/>
  17331. Спасибо Rob Mueller.
  17332. </para>
  17333. <para lang="en">
  17334. the "none" parameter in the "ssl_session_cache" directive;
  17335. now this is default parameter.<br/>
  17336. Thanks to Rob Mueller.
  17337. </para>
  17338. </change>

  17339. <change type="bugfix">
  17340. <para lang="ru">
  17341. рабочие процессы могли не реагировать на сигналы переконфигурации
  17342. и ротации логов.
  17343. </para>
  17344. <para lang="en">
  17345. worker processes might not catch reconfiguration and log rotation signals.
  17346. </para>
  17347. </change>

  17348. <change type="bugfix">
  17349. <para lang="ru">
  17350. nginx не собирался на последних Fedora 9 Linux.<br/>
  17351. Спасибо Roxis.
  17352. </para>
  17353. <para lang="en">
  17354. nginx could not be built on latest Fedora 9 Linux.<br/>
  17355. Thanks to Roxis.
  17356. </para>
  17357. </change>

  17358. </changes>


  17359. <changes ver="0.7.0" date="2008-05-19">

  17360. <change type="change">
  17361. <para lang="ru">
  17362. теперь символы 0x00-0x1F, '"' и '\' в access_log записываются в виде \xXX.<br/>
  17363. Спасибо Максиму Дунину.
  17364. </para>
  17365. <para lang="en">
  17366. now the 0x00-0x1F, '"' and '\' characters are escaped as \xXX in an
  17367. access_log.<br/>
  17368. Thanks to Maxim Dounin.
  17369. </para>
  17370. </change>

  17371. <change type="change">
  17372. <para lang="ru">
  17373. теперь nginx разрешает несколько строк "Host" в заголовке запроса.
  17374. </para>
  17375. <para lang="en">
  17376. now nginx allows several "Host" request header line.
  17377. </para>
  17378. </change>

  17379. <change type="feature">
  17380. <para lang="ru">
  17381. директива expires поддерживает флаг modified.
  17382. </para>
  17383. <para lang="en">
  17384. the "modified" flag in the "expires" directive.
  17385. </para>
  17386. </change>

  17387. <change type="feature">
  17388. <para lang="ru">
  17389. переменные $uid_got и $uid_set можно использовать на любой стадии обработки
  17390. запроса.
  17391. </para>
  17392. <para lang="en">
  17393. the $uid_got and $uid_set variables may be used at any request processing stage.
  17394. </para>
  17395. </change>

  17396. <change type="feature">
  17397. <para lang="ru">
  17398. переменная $hostname.<br/>
  17399. Спасибо Андрею Нигматулину.
  17400. </para>
  17401. <para lang="en">
  17402. the $hostname variable.<br/>
  17403. Thanks to Andrei Nigmatulin.
  17404. </para>
  17405. </change>

  17406. <change type="feature">
  17407. <para lang="ru">
  17408. поддержка DESTDIR.<br/>
  17409. Спасибо Todd A. Fisher и Andras Voroskoi.
  17410. </para>
  17411. <para lang="en">
  17412. DESTDIR support.<br/>
  17413. Thanks to Todd A. Fisher and Andras Voroskoi.
  17414. </para>
  17415. </change>

  17416. <change type="bugfix">
  17417. <para lang="ru">
  17418. при использовании keepalive на Linux
  17419. в рабочем процессе мог произойти segmentation fault.
  17420. </para>
  17421. <para lang="en">
  17422. a segmentation fault might occur in worker process on Linux,
  17423. if keepalive was enabled.
  17424. </para>
  17425. </change>

  17426. </changes>


  17427. <changes ver="0.6.31" date="2008-05-12">

  17428. <change type="bugfix">
  17429. <para lang="ru">
  17430. nginx не обрабатывал ответ FastCGI-сервера, если строка заголовка ответа была
  17431. в конце записи FastCGI;
  17432. ошибка появилась в 0.6.2.<br/>
  17433. Спасибо Сергею Серову.
  17434. </para>
  17435. <para lang="en">
  17436. nginx did not process FastCGI response
  17437. if header was at the end of FastCGI record;
  17438. the bug had appeared in 0.6.2.<br/>
  17439. Thanks to Sergey Serov.
  17440. </para>
  17441. </change>

  17442. <change type="bugfix">
  17443. <para lang="ru">
  17444. при удалении файла и использовании директивы open_file_cache_errors off
  17445. в рабочем процессе мог произойти segmentation fault.
  17446. </para>
  17447. <para lang="en">
  17448. a segmentation fault might occur in worker process if a file was deleted
  17449. and the "open_file_cache_errors" directive was off.
  17450. </para>
  17451. </change>

  17452. </changes>


  17453. <changes ver="0.6.30" date="2008-04-29">

  17454. <change type="change">
  17455. <para lang="ru">
  17456. теперь, если маске, заданной в директиве include, не соответствует
  17457. ни один файл, то nginx не выдаёт ошибку.
  17458. </para>
  17459. <para lang="en">
  17460. now if an "include" directive pattern does not match any file,
  17461. then nginx does not issue an error.
  17462. </para>
  17463. </change>

  17464. <change type="feature">
  17465. <para lang="ru">
  17466. теперь время в директивах можно задавать без пробела, например, "1h50m".
  17467. </para>
  17468. <para lang="en">
  17469. now the time in directives may be specified without spaces,
  17470. for example, "1h50m".
  17471. </para>
  17472. </change>

  17473. <change type="bugfix">
  17474. <para lang="ru">
  17475. утечек памяти, если директива ssl_verify_client имела значение on.<br/>
  17476. Спасибо Chavelle Vincent.
  17477. </para>
  17478. <para lang="en">
  17479. memory leaks if the "ssl_verify_client" directive was on.<br/>
  17480. Thanks to Chavelle Vincent.
  17481. </para>
  17482. </change>

  17483. <change type="bugfix">
  17484. <para lang="ru">
  17485. директива sub_filter могла вставлять заменяемый текст в вывод.
  17486. </para>
  17487. <para lang="en">
  17488. the "sub_filter" directive might set text to change into output.
  17489. </para>
  17490. </change>

  17491. <change type="bugfix">
  17492. <para lang="ru">
  17493. директива error_page не воспринимала параметры в перенаправляемом URI.
  17494. </para>
  17495. <para lang="en">
  17496. the "error_page" directive did not take into account arguments in
  17497. redirected URI.
  17498. </para>
  17499. </change>

  17500. <change type="bugfix">
  17501. <para lang="ru">
  17502. теперь при сборке с Cygwin nginx всегда открывает файлы в бинарном режиме.
  17503. </para>
  17504. <para lang="en">
  17505. now nginx always opens files in binary mode under Cygwin.
  17506. </para>
  17507. </change>

  17508. <change type="bugfix">
  17509. <para lang="ru">
  17510. nginx не собирался под OpenBSD;
  17511. ошибка появилась в 0.6.15.
  17512. </para>
  17513. <para lang="en">
  17514. nginx could not be built on OpenBSD;
  17515. the bug had appeared in 0.6.15.
  17516. </para>
  17517. </change>

  17518. </changes>


  17519. <changes ver="0.6.29" date="2008-03-18">

  17520. <change type="feature">
  17521. <para lang="ru">
  17522. модуль ngx_google_perftools_module.
  17523. </para>
  17524. <para lang="en">
  17525. the ngx_google_perftools_module.
  17526. </para>
  17527. </change>

  17528. <change type="bugfix">
  17529. <para lang="ru">
  17530. модуль ngx_http_perl_module не собирался на 64-битных платформах;
  17531. ошибка появилась в 0.6.27.
  17532. </para>
  17533. <para lang="en">
  17534. the ngx_http_perl_module could not be built on 64-bit platforms;
  17535. the bug had appeared in 0.6.27.
  17536. </para>
  17537. </change>

  17538. </changes>


  17539. <changes ver="0.6.28" date="2008-03-13">

  17540. <change type="bugfix">
  17541. <para lang="ru">
  17542. метод rtsig не собирался;
  17543. ошибка появилась в 0.6.27.
  17544. </para>
  17545. <para lang="en">
  17546. the rtsig method could not be built;
  17547. the bug had appeared in 0.6.27.
  17548. </para>
  17549. </change>

  17550. </changes>


  17551. <changes ver="0.6.27" date="2008-03-12">

  17552. <change type="change">
  17553. <para lang="ru">
  17554. теперь на Linux 2.6.18+ по умолчанию не собирается метод rtsig.
  17555. </para>
  17556. <para lang="en">
  17557. now by default the rtsig method is not built on <nobr>Linux 2.6.18+.</nobr>
  17558. </para>
  17559. </change>

  17560. <change type="change">
  17561. <para lang="ru">
  17562. теперь при перенаправлении запроса в именованный location с помощью
  17563. директивы error_page метод запроса не изменяется.
  17564. </para>
  17565. <para lang="en">
  17566. now a request method is not changed while redirection to a named location
  17567. via an "error_page" directive.
  17568. </para>
  17569. </change>

  17570. <change type="feature">
  17571. <para lang="ru">
  17572. директивы resolver и resolver_timeout в SMTP прокси-сервере.
  17573. </para>
  17574. <para lang="en">
  17575. the "resolver" and "resolver_timeout" directives in SMTP proxy.
  17576. </para>
  17577. </change>

  17578. <change type="feature">
  17579. <para lang="ru">
  17580. директива post_action поддерживает именованные location'ы.
  17581. </para>
  17582. <para lang="en">
  17583. the "post_action" directive supports named locations.
  17584. </para>
  17585. </change>

  17586. <change type="bugfix">
  17587. <para lang="ru">
  17588. при перенаправлении запроса из location'а c обработчиком proxy, FastCGI
  17589. или memcached в именованный location со статическим обработчиком
  17590. в рабочем процессе происходил segmentation fault.
  17591. </para>
  17592. <para lang="en">
  17593. a segmentation fault occurred in worker process,
  17594. if a request was redirected from proxy, FastCGI, or memcached location
  17595. to static named locations.
  17596. </para>
  17597. </change>

  17598. <change type="bugfix">
  17599. <para lang="ru">
  17600. браузеры не повторяли SSL handshake, если при первом handshake
  17601. не оказалось правильного клиентского сертификата.
  17602. <br/>
  17603. Спасибо Александру Инюхину.
  17604. </para>
  17605. <para lang="en">
  17606. browsers did not repeat SSL handshake if there is no valid client certificate
  17607. in first handshake.
  17608. <br/>
  17609. Thanks to Alexander V. Inyukhin.
  17610. </para>
  17611. </change>

  17612. <change type="bugfix">
  17613. <para lang="ru">
  17614. при перенаправлении ошибок 495-497 с помощью директивы error_page
  17615. без изменения кода ошибки nginx пытался выделить очень много памяти.
  17616. </para>
  17617. <para lang="en">
  17618. if response code 495-497 was redirected via an "error_page" directive
  17619. without code change, then nginx tried to allocate too many memory.
  17620. </para>
  17621. </change>

  17622. <change type="bugfix">
  17623. <para lang="ru">
  17624. утечки памяти в долгоживущих небуфферизированных соединениях.
  17625. </para>
  17626. <para lang="en">
  17627. memory leak in long-lived non buffered connections.
  17628. </para>
  17629. </change>

  17630. <change type="bugfix">
  17631. <para lang="ru">
  17632. утечки памяти в resolver'е.
  17633. </para>
  17634. <para lang="en">
  17635. memory leak in resolver.
  17636. </para>
  17637. </change>

  17638. <change type="bugfix">
  17639. <para lang="ru">
  17640. при перенаправлении запроса из location'а c обработчиком proxy
  17641. в другой location с обработчиком proxy
  17642. в рабочем процессе происходил segmentation fault.
  17643. </para>
  17644. <para lang="en">
  17645. a segmentation fault occurred in worker process,
  17646. if a request was redirected from proxy, FastCGI, or memcached location
  17647. to static named locations.
  17648. </para>
  17649. </change>

  17650. <change type="bugfix">
  17651. <para lang="ru">
  17652. ошибки в кэшировании переменных $proxy_host и $proxy_port.<br/>
  17653. Спасибо Сергею Боченкову.
  17654. </para>
  17655. <para lang="en">
  17656. in the $proxy_host and $proxy_port variables caching.<br/>
  17657. Thanks to Sergey Bochenkov.
  17658. </para>
  17659. </change>

  17660. <change type="bugfix">
  17661. <para lang="ru">
  17662. директива proxy_pass с переменными использовала порт, описанной в другой
  17663. директиве proxy_pass без переменных, но с таким же именем хоста.<br/>
  17664. Спасибо Сергею Боченкову.
  17665. </para>
  17666. <para lang="en">
  17667. a "proxy_pass" directive with variables used incorrectly the same port
  17668. as in another "proxy_pass" directive with the same host name
  17669. and without variables.<br/>
  17670. Thanks to Sergey Bochenkov.
  17671. </para>
  17672. </change>

  17673. <change type="bugfix">
  17674. <para lang="ru">
  17675. во время переконфигурации на некоторых 64-битном платформах в лог
  17676. записывался alert "sendmsg() failed (9: Bad file descriptor)".
  17677. </para>
  17678. <para lang="en">
  17679. an alert "sendmsg() failed (9: Bad file descriptor)" on some 64-bit platforms
  17680. while reconfiguration.
  17681. </para>
  17682. </change>

  17683. <change type="bugfix">
  17684. <para lang="ru">
  17685. при повторном использовании в SSI пустого block'а в качестве заглушки
  17686. в рабочем процессе происходил segmentation fault.
  17687. </para>
  17688. <para lang="en">
  17689. a segmentation fault occurred in worker process,
  17690. if empty stub block was used second time in SSI.
  17691. </para>
  17692. </change>

  17693. <change type="bugfix">
  17694. <para lang="ru">
  17695. ошибки при копировании части URI, содержащего экранированные символы,
  17696. в аргументы.
  17697. </para>
  17698. <para lang="en">
  17699. in copying URI part contained escaped symbols into arguments.
  17700. </para>
  17701. </change>

  17702. </changes>


  17703. <changes ver="0.6.26" date="2008-02-11">

  17704. <change type="bugfix">
  17705. <para lang="ru">
  17706. директивы proxy_store и fastcgi_store не проверяли длину ответа.
  17707. </para>
  17708. <para lang="en">
  17709. the "proxy_store" and "fastcgi_store" directives did not check
  17710. a response length.
  17711. </para>
  17712. </change>

  17713. <change type="bugfix">
  17714. <para lang="ru">
  17715. при использовании большого значения в директиве expires
  17716. в рабочем процессе происходил segmentation fault.<br/>
  17717. Спасибо Joaquin Cuenca Abela.
  17718. </para>
  17719. <para lang="en">
  17720. a segmentation fault occurred in worker process,
  17721. if big value was used in a "expires" directive.<br/>
  17722. Thanks to Joaquin Cuenca Abela.
  17723. </para>
  17724. </change>

  17725. <change type="bugfix">
  17726. <para lang="ru">
  17727. nginx неверно определял длину строки кэша на <nobr>Pentium 4.</nobr><br/>
  17728. Спасибо Геннадию Махомеду.
  17729. </para>
  17730. <para lang="en">
  17731. nginx incorrectly detected cache line size on Pentium 4.<br/>
  17732. Thanks to Gena Makhomed.
  17733. </para>
  17734. </change>

  17735. <change type="bugfix">
  17736. <para lang="ru">
  17737. в проксированных подзапросах и подзапросах к FastCGI-серверу
  17738. вместо метода GET использовался оригинальный метод клиента.
  17739. </para>
  17740. <para lang="en">
  17741. in proxied or FastCGI subrequests a client original method was used
  17742. instead of the GET method.
  17743. </para>
  17744. </change>

  17745. <change type="bugfix">
  17746. <para lang="ru">
  17747. утечки сокетов в режиме HTTPS при использовании отложенного accept'а.<br/>
  17748. Спасибо Ben Maurer.
  17749. </para>
  17750. <para lang="en">
  17751. socket leak in HTTPS mode if deferred accept was used.<br/>
  17752. Thanks to Ben Maurer.
  17753. </para>
  17754. </change>

  17755. <change type="bugfix">
  17756. <para lang="ru">
  17757. nginx выдавал ошибочное сообщение "SSL_shutdown() failed (SSL: )";
  17758. ошибка появилась в 0.6.23.
  17759. </para>
  17760. <para lang="en">
  17761. nginx issued the bogus error message "SSL_shutdown() failed (SSL: )";
  17762. the bug had appeared in 0.6.23.
  17763. </para>
  17764. </change>

  17765. <change type="bugfix">
  17766. <para lang="ru">
  17767. при использовании HTTPS запросы могли завершаться с ошибкой "bad write retry";
  17768. ошибка появилась в 0.6.23.
  17769. </para>
  17770. <para lang="en">
  17771. in HTTPS mode requests might fail with the "bad write retry" error;
  17772. the bug had appeared in 0.6.23.
  17773. </para>
  17774. </change>

  17775. </changes>


  17776. <changes ver="0.6.25" date="2008-01-08">

  17777. <change type="change">
  17778. <para lang="ru">
  17779. вместо специального параметра "*" в директиве server_name теперь
  17780. используется директива server_name_in_redirect.
  17781. </para>
  17782. <para lang="en">
  17783. now the "server_name_in_redirect" directive is used instead of
  17784. the "server_name" directive's special "*" parameter.
  17785. </para>
  17786. </change>

  17787. <change type="change">
  17788. <para lang="ru">
  17789. в качестве основного имени в директиве server_name теперь
  17790. можно использовать имена с масками и регулярными выражениями.
  17791. </para>
  17792. <para lang="en">
  17793. now wildcard and regex names can be used as main name in
  17794. a "server_name" directive.
  17795. </para>
  17796. </change>

  17797. <change type="change">
  17798. <para lang="ru">
  17799. директива satisfy_any заменена директивой satisfy.
  17800. </para>
  17801. <para lang="en">
  17802. the "satisfy_any" directive was replaced by the "satisfy" directive.
  17803. </para>
  17804. </change>

  17805. <change type="workaround">
  17806. <para lang="ru">
  17807. после переконфигурации старые рабочие процесс могли сильно нагружать процессор
  17808. при запуске под Linux OpenVZ.
  17809. </para>
  17810. <para lang="en">
  17811. old worker processes might hog CPU after reconfiguration if they was run
  17812. under Linux OpenVZ.
  17813. </para>
  17814. </change>

  17815. <change type="feature">
  17816. <para lang="ru">
  17817. директива min_delete_depth.
  17818. </para>
  17819. <para lang="en">
  17820. the "min_delete_depth" directive.
  17821. </para>
  17822. </change>

  17823. <change type="bugfix">
  17824. <para lang="ru">
  17825. методы COPY и MOVE не работали с одиночными файлами.
  17826. </para>
  17827. <para lang="en">
  17828. the COPY and MOVE methods did not work with single files.
  17829. </para>
  17830. </change>

  17831. <change type="bugfix">
  17832. <para lang="ru">
  17833. модуль ngx_http_gzip_static_module не позволял работать модулю
  17834. ngx_http_dav_module;
  17835. ошибка появилась в 0.6.23.
  17836. </para>
  17837. <para lang="en">
  17838. the ngx_http_gzip_static_module did not allow the ngx_http_dav_module to work;
  17839. the bug had appeared in 0.6.23.
  17840. </para>
  17841. </change>

  17842. <change type="bugfix">
  17843. <para lang="ru">
  17844. утечки сокетов в режиме HTTPS при использовании отложенного accept'а.<br/>
  17845. Спасибо Ben Maurer.
  17846. </para>
  17847. <para lang="en">
  17848. socket leak in HTTPS mode if deferred accept was used.<br/>
  17849. Thanks to Ben Maurer.
  17850. </para>
  17851. </change>

  17852. <change type="bugfix">
  17853. <para lang="ru">
  17854. nginx не собирался без библиотеки PCRE;
  17855. ошибка появилась в 0.6.23.
  17856. </para>
  17857. <para lang="en">
  17858. nginx could not be built without PCRE library;
  17859. the bug had appeared in 0.6.23.
  17860. </para>
  17861. </change>

  17862. </changes>

  17863. <changes ver="0.6.24" date="2007-12-27">

  17864. <change type="bugfix">
  17865. <para lang="ru">
  17866. при использовании HTTPS в рабочем процессе мог произойти segmentation fault;
  17867. ошибка появилась в 0.6.23.
  17868. </para>
  17869. <para lang="en">
  17870. a segmentation fault might occur in worker process if HTTPS was used;
  17871. the bug had appeared in 0.6.23.
  17872. </para>
  17873. </change>

  17874. </changes>


  17875. <changes ver="0.6.23" date="2007-12-27">

  17876. <change type="change">
  17877. <para lang="ru">
  17878. параметр "off" в директиве ssl_session_cache;
  17879. теперь этот параметр используется по умолчанию.
  17880. </para>
  17881. <para lang="en">
  17882. the "off" parameter in the "ssl_session_cache" directive;
  17883. now this is default parameter.
  17884. </para>
  17885. </change>

  17886. <change type="change">
  17887. <para lang="ru">
  17888. директива open_file_cache_retest переименована в open_file_cache_valid.
  17889. </para>
  17890. <para lang="en">
  17891. the "open_file_cache_retest" directive was renamed
  17892. to the "open_file_cache_valid".
  17893. </para>
  17894. </change>

  17895. <change type="feature">
  17896. <para lang="ru">
  17897. директива open_file_cache_min_uses.
  17898. </para>
  17899. <para lang="en">
  17900. the "open_file_cache_min_uses" directive.
  17901. </para>
  17902. </change>

  17903. <change type="feature">
  17904. <para lang="ru">
  17905. модуль ngx_http_gzip_static_module.
  17906. </para>
  17907. <para lang="en">
  17908. the ngx_http_gzip_static_module.
  17909. </para>
  17910. </change>

  17911. <change type="feature">
  17912. <para lang="ru">
  17913. директива gzip_disable.
  17914. </para>
  17915. <para lang="en">
  17916. the "gzip_disable" directive.
  17917. </para>
  17918. </change>

  17919. <change type="feature">
  17920. <para lang="ru">
  17921. директиву memcached_pass можно использовать внутри блока if.
  17922. </para>
  17923. <para lang="en">
  17924. the "memcached_pass" directive may be used inside the "if" block.
  17925. </para>
  17926. </change>

  17927. <change type="bugfix">
  17928. <para lang="ru">
  17929. если внутри одного location'а использовались директивы "memcached_pass" и "if",
  17930. то в рабочем процессе происходил segmentation fault.
  17931. </para>
  17932. <para lang="en">
  17933. a segmentation fault occurred in worker process,
  17934. if the "memcached_pass" and "if" directives were used in the same location.
  17935. </para>
  17936. </change>

  17937. <change type="bugfix">
  17938. <para lang="ru">
  17939. если при использовании директивы satisfy_any on" были заданы директивы
  17940. не всех модулей доступа, то заданные директивы не проверялись.
  17941. </para>
  17942. <para lang="en">
  17943. if a "satisfy_any on" directive was used and not all access and auth modules
  17944. directives were set, then other given access and auth directives
  17945. were not tested;
  17946. </para>
  17947. </change>

  17948. <change type="bugfix">
  17949. <para lang="ru">
  17950. параметры, заданные регулярным выражением в директиве valid_referers,
  17951. не наследовалась с предыдущего уровня.
  17952. </para>
  17953. <para lang="en">
  17954. regex parameters in a "valid_referers" directive were not inherited
  17955. from previous level.
  17956. </para>
  17957. </change>

  17958. <change type="bugfix">
  17959. <para lang="ru">
  17960. директива post_action не работала, если запрос завершался с кодом 499.
  17961. </para>
  17962. <para lang="en">
  17963. a "post_action" directive did run if a request was completed
  17964. with 499 status code.
  17965. </para>
  17966. </change>

  17967. <change type="bugfix">
  17968. <para lang="ru">
  17969. оптимизация использования 16K буфера для SSL-соединения.<br/>
  17970. Спасибо Ben Maurer.
  17971. </para>
  17972. <para lang="en">
  17973. optimization of 16K buffer usage in a SSL connection.<br/>
  17974. Thanks to Ben Maurer.
  17975. </para>
  17976. </change>

  17977. <change type="bugfix">
  17978. <para lang="ru">
  17979. STARTTLS в режиме SMTP не работал.<br/>
  17980. Спасибо Олегу Мотиенко.
  17981. </para>
  17982. <para lang="en">
  17983. the STARTTLS in SMTP mode did not work.<br/>
  17984. Thanks to Oleg Motienko.
  17985. </para>
  17986. </change>

  17987. <change type="bugfix">
  17988. <para lang="ru">
  17989. при использовании HTTPS запросы могли завершаться с ошибкой "bad write retry";
  17990. ошибка появилась в 0.5.13.
  17991. </para>
  17992. <para lang="en">
  17993. in HTTPS mode requests might fail with the "bad write retry" error;
  17994. the bug had appeared in 0.5.13.
  17995. </para>
  17996. </change>

  17997. </changes>


  17998. <changes ver="0.6.22" date="2007-12-19">

  17999. <change type="change">
  18000. <para lang="ru">
  18001. теперь все методы модуля ngx_http_perl_module
  18002. возвращают значения, скопированные в память, выделенную perl'ом.
  18003. </para>
  18004. <para lang="en">
  18005. now all ngx_http_perl_module methods return values copied to perl's
  18006. allocated memory.
  18007. </para>
  18008. </change>

  18009. <change type="bugfix">
  18010. <para lang="ru">
  18011. если nginx был собран с модулем ngx_http_perl_module,
  18012. использовался perl до версии 5.8.6 и perl поддерживал потоки,
  18013. то во время переконфигурации основной процесс аварийно выходил;
  18014. ошибка появилась в 0.5.9.<br/>
  18015. Спасибо Борису Жмурову.
  18016. </para>
  18017. <para lang="en">
  18018. if nginx was built with ngx_http_perl_module,
  18019. the perl before 5.8.6 was used, and perl supported threads,
  18020. then during reconfiguration the master process aborted;
  18021. the bug had appeared in 0.5.9.<br/>
  18022. Thanks to Boris Zhmurov.
  18023. </para>
  18024. </change>

  18025. <change type="bugfix">
  18026. <para lang="ru">
  18027. в методы модуля ngx_http_perl_module
  18028. могли передаваться неверные результаты выделения в регулярных выражениях.
  18029. </para>
  18030. <para lang="en">
  18031. the ngx_http_perl_module methods may get invalid values of the regex captures.
  18032. </para>
  18033. </change>

  18034. <change type="bugfix">
  18035. <para lang="ru">
  18036. если метод $r->has_request_body() вызывался для запроса,
  18037. у которого небольшое тело запроса было уже полностью получено,
  18038. то в рабочем процессе происходил segmentation fault.
  18039. </para>
  18040. <para lang="en">
  18041. a segmentation fault occurred in worker process,
  18042. if the $r->has_request_body() method was called for a request
  18043. whose small request body was already received.
  18044. </para>
  18045. </change>

  18046. <change type="bugfix">
  18047. <para lang="ru">
  18048. large_client_header_buffers не освобождались перед переходом в состояние
  18049. keep-alive.<br/>
  18050. Спасибо Олександру Штепе.
  18051. </para>
  18052. <para lang="en">
  18053. large_client_header_buffers did not freed before going to keep-alive state.<br/>
  18054. Thanks to Olexander Shtepa.
  18055. </para>
  18056. </change>

  18057. <change type="bugfix">
  18058. <para lang="ru">
  18059. в переменной $upstream_addr не записывался последний адрес;
  18060. ошибка появилась в 0.6.18.
  18061. </para>
  18062. <para lang="en">
  18063. the last address was missed in the $upstream_addr variable;
  18064. the bug had appeared in 0.6.18.
  18065. </para>
  18066. </change>

  18067. <change type="bugfix">
  18068. <para lang="ru">
  18069. директива fastcgi_catch_stderr не возвращала ошибку;
  18070. теперь она возвращает ошибку 502, которую можно направить на следующий сервер
  18071. с помощью "fastcgi_next_upstream invalid_header".
  18072. </para>
  18073. <para lang="en">
  18074. the "fastcgi_catch_stderr" directive did return error code;
  18075. now it returns 502 code, that can be rerouted to a next server using
  18076. the "fastcgi_next_upstream invalid_header" directive.
  18077. </para>
  18078. </change>

  18079. <change type="bugfix">
  18080. <para lang="ru">
  18081. при использовании директивы fastcgi_catch_stderr
  18082. в основном процессе происходил segmentation fault;
  18083. ошибка появилась в 0.6.10.<br/>
  18084. Спасибо Manlio Perillo.
  18085. </para>
  18086. <para lang="en">
  18087. a segmentation fault occurred in master process
  18088. if the "fastcgi_catch_stderr" directive was used;
  18089. the bug had appeared in 0.6.10.<br/>
  18090. Thanks to Manlio Perillo.
  18091. </para>
  18092. </change>

  18093. </changes>


  18094. <changes ver="0.6.21" date="2007-12-03">

  18095. <change type="change">
  18096. <para lang="ru">
  18097. если в значениях переменных директивы proxy_pass используются
  18098. только IP-адреса, то указывать resolver не нужно.
  18099. </para>
  18100. <para lang="en">
  18101. if variable values used in a "proxy_pass" directive contain IP-addresses only,
  18102. then a "resolver" directive is not mandatory.
  18103. </para>
  18104. </change>

  18105. <change type="bugfix">
  18106. <para lang="ru">
  18107. при использовании директивы proxy_pass c URI-частью
  18108. в рабочем процессе мог произойти segmentation fault;
  18109. ошибка появилась в 0.6.19.
  18110. </para>
  18111. <para lang="en">
  18112. a segmentation fault might occur in worker process
  18113. if a "proxy_pass" directive with URI-part was used;
  18114. the bug had appeared in 0.6.19.
  18115. </para>
  18116. </change>

  18117. <change type="bugfix">
  18118. <para lang="ru">
  18119. если resolver использовался на платформах, не поддерживающих метод kqueue,
  18120. то nginx выдавал alert "name is out of response".<br/>
  18121. Спасибо Андрею Нигматулину.
  18122. </para>
  18123. <para lang="en">
  18124. if resolver was used on platform that does not support kqueue,
  18125. then nginx issued an alert "name is out of response".<br/>
  18126. Thanks to Andrei Nigmatulin.
  18127. </para>
  18128. </change>

  18129. <change type="bugfix">
  18130. <para lang="ru">
  18131. При использовании переменной $server_protocol в FastCGI-параметрах
  18132. и запросе, длина которого была близка к значению директивы
  18133. client_header_buffer_size,
  18134. nginx выдавал alert "fastcgi: the request record is too big".
  18135. </para>
  18136. <para lang="en">
  18137. if the $server_protocol was used in FastCGI parameters
  18138. and a request line length was near to the "client_header_buffer_size"
  18139. directive value,
  18140. then nginx issued an alert "fastcgi: the request record is too big".
  18141. </para>
  18142. </change>

  18143. <change type="bugfix">
  18144. <para lang="ru">
  18145. при обычном запросе версии HTTP/0.9 к HTTPS серверу nginx возвращал
  18146. обычный ответ.
  18147. </para>
  18148. <para lang="en">
  18149. if a plain text HTTP/0.9 version request was made to HTTPS server,
  18150. then nginx returned usual response.
  18151. </para>
  18152. </change>

  18153. </changes>


  18154. <changes ver="0.6.20" date="2007-11-28">

  18155. <change type="bugfix">
  18156. <para lang="ru">
  18157. при использовании директивы proxy_pass c URI-частью
  18158. в рабочем процессе мог произойти segmentation fault;
  18159. ошибка появилась в 0.6.19.
  18160. </para>
  18161. <para lang="en">
  18162. a segmentation fault might occur in worker process
  18163. if a "proxy_pass" directive with URI-part was used;
  18164. the bug had appeared in 0.6.19.
  18165. </para>
  18166. </change>

  18167. </changes>


  18168. <changes ver="0.6.19" date="2007-11-27">

  18169. <change type="bugfix">
  18170. <para lang="ru">
  18171. версия 0.6.18 не собиралась.
  18172. </para>
  18173. <para lang="en">
  18174. the 0.6.18 version could not be built.
  18175. </para>
  18176. </change>

  18177. </changes>

  18178. <changes ver="0.6.18" date="2007-11-27">

  18179. <change type="change">
  18180. <para lang="ru">
  18181. теперь модуль ngx_http_userid_module в поле куки с номером процесса
  18182. добавляет микросекунды на время старта.
  18183. </para>
  18184. <para lang="en">
  18185. now the ngx_http_userid_module adds start time microseconds
  18186. to the cookie field contains a pid value.
  18187. </para>
  18188. </change>

  18189. <change type="change">
  18190. <para lang="ru">
  18191. в error_log теперь записывается полная строка запроса вместо только URI.
  18192. </para>
  18193. <para lang="en">
  18194. now the full request line instead of URI only is written to error_log.
  18195. </para>
  18196. </change>

  18197. <change type="feature">
  18198. <para lang="ru">
  18199. директива proxy_pass поддерживает переменные.
  18200. </para>
  18201. <para lang="en">
  18202. variables support in the "proxy_pass" directive.
  18203. </para>
  18204. </change>

  18205. <change type="feature">
  18206. <para lang="ru">
  18207. директивы resolver и resolver_timeout.
  18208. </para>
  18209. <para lang="en">
  18210. the "resolver" and "resolver_timeout" directives.
  18211. </para>
  18212. </change>

  18213. <change type="feature">
  18214. <para lang="ru">
  18215. теперь директива "add_header last-modified ''" удаляет в заголовке ответа
  18216. строку "Last-Modified".
  18217. </para>
  18218. <para lang="en">
  18219. now the directive "add_header last-modified ''" deletes a "Last-Modified"
  18220. response header line.
  18221. </para>
  18222. </change>

  18223. <change type="bugfix">
  18224. <para lang="ru">
  18225. директива limit_rate не позволяла передавать на полной скорости,
  18226. даже если был указан очень большой лимит.
  18227. </para>
  18228. <para lang="en">
  18229. the "limit_rate" directive did not allow to use full throughput,
  18230. even if limit value was very high.
  18231. </para>
  18232. </change>

  18233. </changes>


  18234. <changes ver="0.6.17" date="2007-11-15">

  18235. <change type="feature">
  18236. <para lang="ru">
  18237. поддержка строки "If-Range" в заголовке запроса.<br/>
  18238. Спасибо Александру Инюхину.
  18239. </para>
  18240. <para lang="en">
  18241. the "If-Range" request header line support.<br/>
  18242. Thanks to Alexander V. Inyukhin.
  18243. </para>
  18244. </change>

  18245. <change type="bugfix">
  18246. <para lang="ru">
  18247. при использовании директивы msie_refresh повторно экранировались
  18248. уже экранированные символы;
  18249. ошибка появилась в 0.6.4.
  18250. </para>
  18251. <para lang="en">
  18252. URL double escaping in a redirect of the "msie_refresh" directive;
  18253. the bug had appeared in 0.6.4.
  18254. </para>
  18255. </change>

  18256. <change type="bugfix">
  18257. <para lang="ru">
  18258. директива autoindex не работала при использовании "alias /".
  18259. </para>
  18260. <para lang="en">
  18261. the "autoindex" directive did not work with the "alias /" directive.
  18262. </para>
  18263. </change>

  18264. <change type="bugfix">
  18265. <para lang="ru">
  18266. при использовании подзапросов
  18267. в рабочем процессе мог произойти segmentation fault.
  18268. </para>
  18269. <para lang="en">
  18270. a segmentation fault might occur in worker process if subrequests were used.
  18271. </para>
  18272. </change>

  18273. <change type="bugfix">
  18274. <para lang="ru">
  18275. при использовании SSL и gzip большие ответы могли передаваться не полностью.
  18276. </para>
  18277. <para lang="en">
  18278. the big responses may be transferred truncated if SSL and gzip were used.
  18279. </para>
  18280. </change>

  18281. <change type="bugfix">
  18282. <para lang="ru">
  18283. если ответ проксированного сервера был версии HTTP/0.9,
  18284. то переменная $status была равна 0.
  18285. </para>
  18286. <para lang="en">
  18287. the $status variable was equal to 0 if a proxied server returned response
  18288. in HTTP/0.9 version.
  18289. </para>
  18290. </change>

  18291. </changes>


  18292. <changes ver="0.6.16" date="2007-10-29">

  18293. <change type="change">
  18294. <para lang="ru">
  18295. теперь на Linux используется uname(2) вместо procfs.<br/>
  18296. Спасибо Илье Новикову.
  18297. </para>
  18298. <para lang="en">
  18299. now the uname(2) is used on Linux instead of procfs.<br/>
  18300. Thanks to Ilya Novikov.
  18301. </para>
  18302. </change>

  18303. <change type="bugfix">
  18304. <para lang="ru">
  18305. если в директиве error_page использовался символ "?", то он экранировался
  18306. при проксировании запроса;
  18307. ошибка появилась в 0.6.11.
  18308. </para>
  18309. <para lang="en">
  18310. if the "?" character was in a "error_page" directive, then it was escaped
  18311. in a proxied request;
  18312. the bug had appeared in 0.6.11.
  18313. </para>
  18314. </change>

  18315. <change type="bugfix">
  18316. <para lang="ru">
  18317. совместимость с mget.
  18318. </para>
  18319. <para lang="en">
  18320. compatibility with mget.
  18321. </para>
  18322. </change>

  18323. </changes>


  18324. <changes ver="0.6.15" date="2007-10-22">

  18325. <change type="feature">
  18326. <para lang="ru">
  18327. совместимость с Cygwin.<br/>
  18328. Спасибо Владимиру Кутакову.
  18329. </para>
  18330. <para lang="en">
  18331. Cygwin compatibility.<br/>
  18332. Thanks to Vladimir Kutakov.
  18333. </para>
  18334. </change>

  18335. <change type="feature">
  18336. <para lang="ru">
  18337. директива merge_slashes.
  18338. </para>
  18339. <para lang="en">
  18340. the "merge_slashes" directive.
  18341. </para>
  18342. </change>

  18343. <change type="feature">
  18344. <para lang="ru">
  18345. директива gzip_vary.
  18346. </para>
  18347. <para lang="en">
  18348. the "gzip_vary" directive.
  18349. </para>
  18350. </change>

  18351. <change type="feature">
  18352. <para lang="ru">
  18353. директива server_tokens.
  18354. </para>
  18355. <para lang="en">
  18356. the "server_tokens" directive.
  18357. </para>
  18358. </change>

  18359. <change type="bugfix">
  18360. <para lang="ru">
  18361. nginx не раскодировал URI в команде SSI include.
  18362. </para>
  18363. <para lang="en">
  18364. nginx did not unescape URI in the "include" SSI command.
  18365. </para>
  18366. </change>

  18367. <change type="bugfix">
  18368. <para lang="ru">
  18369. при использовании переменной в директивах charset или source_charset
  18370. на старте или во время переконфигурации происходил segmentation fault,
  18371. </para>
  18372. <para lang="en">
  18373. the segmentation fault was occurred on start or while reconfiguration
  18374. if variable was used in the "charset" or "source_charset" directives.
  18375. </para>
  18376. </change>

  18377. <change type="bugfix">
  18378. <para lang="ru">
  18379. nginx возвращал ошибку 400 на запросы вида
  18380. <nobr>"GET http://www.domain.com HTTP/1.0"</nobr>.<br/>
  18381. Спасибо James Oakley.
  18382. </para>
  18383. <para lang="en">
  18384. nginx returned the 400 response on requests like
  18385. <nobr>"GET http://www.domain.com HTTP/1.0"</nobr>.<br/>
  18386. Thanks to James Oakley.
  18387. </para>
  18388. </change>

  18389. <change type="bugfix">
  18390. <para lang="ru">
  18391. после перенаправления запроса с телом запроса с помощью директивы
  18392. error_page nginx пытался снова прочитать тело запроса;
  18393. ошибка появилась в 0.6.7.
  18394. </para>
  18395. <para lang="en">
  18396. if request with request body was redirected using the "error_page" directive,
  18397. then nginx tried to read the request body again;
  18398. the bug had appeared in 0.6.7.
  18399. </para>
  18400. </change>

  18401. <change type="bugfix">
  18402. <para lang="ru">
  18403. в рабочем процессе происходил segmentation fault, если у сервера,
  18404. обрабатывающему запрос, не был явно определён server_name;
  18405. ошибка появилась в 0.6.7.
  18406. </para>
  18407. <para lang="en">
  18408. a segmentation fault occurred in worker process
  18409. if no server_name was explicitly defined for server processing request;
  18410. the bug had appeared in 0.6.7.
  18411. </para>
  18412. </change>

  18413. </changes>


  18414. <changes ver="0.6.14" date="2007-10-15">

  18415. <change type="change">
  18416. <para lang="ru">
  18417. теперь по умолчанию команда SSI echo использует кодирование entity.
  18418. </para>
  18419. <para lang="en">
  18420. now by default the "echo" SSI command uses entity encoding.
  18421. </para>
  18422. </change>

  18423. <change type="feature">
  18424. <para lang="ru">
  18425. параметр encoding в команде SSI echo.
  18426. </para>
  18427. <para lang="en">
  18428. the "encoding" parameter in the "echo" SSI command.
  18429. </para>
  18430. </change>

  18431. <change type="feature">
  18432. <para lang="ru">
  18433. директиву access_log можно использовать внутри блока limit_except.
  18434. </para>
  18435. <para lang="en">
  18436. the "access_log" directive may be used inside the "limit_except" block.
  18437. </para>
  18438. </change>

  18439. <change type="bugfix">
  18440. <para lang="ru">
  18441. если все сервера апстрима оказывались недоступными,
  18442. то до восстановления работоспособности
  18443. у всех серверов вес становился равным одному;
  18444. ошибка появилась в 0.6.6.
  18445. </para>
  18446. <para lang="en">
  18447. if all upstream servers were failed, then all servers had got weight
  18448. the was equal one until servers became alive;
  18449. the bug had appeared in 0.6.6.
  18450. </para>
  18451. </change>

  18452. <change type="bugfix">
  18453. <para lang="ru">
  18454. при использовании переменных $date_local и $date_gmt вне модуля
  18455. ngx_http_ssi_filter_module в рабочем процессе происходил segmentation fault.
  18456. </para>
  18457. <para lang="en">
  18458. a segmentation fault occurred in worker process
  18459. if $date_local and $date_gmt were used outside the ngx_http_ssi_filter_module.
  18460. </para>
  18461. </change>

  18462. <change type="bugfix">
  18463. <para lang="ru">
  18464. при использовании включённом отладочном логе
  18465. в рабочем процессе мог произойти segmentation fault.<br/>
  18466. Спасибо Андрею Нигматулину.
  18467. </para>
  18468. <para lang="en">
  18469. a segmentation fault might occur in worker process
  18470. if debug log was enabled.<br/>
  18471. Thanks to Andrei Nigmatulin.
  18472. </para>
  18473. </change>

  18474. <change type="bugfix">
  18475. <para lang="ru">
  18476. ngx_http_memcached_module не устанавливал $upstream_response_time.<br/>
  18477. Спасибо Максиму Дунину.
  18478. </para>
  18479. <para lang="en">
  18480. ngx_http_memcached_module did not set $upstream_response_time.<br/>
  18481. Thanks to Maxim Dounin.
  18482. </para>
  18483. </change>

  18484. <change type="bugfix">
  18485. <para lang="ru">
  18486. рабочий процесс мог зациклиться при использовании memcached.
  18487. </para>
  18488. <para lang="en">
  18489. a worker process may got caught in an endless loop, if the memcached was used.
  18490. </para>
  18491. </change>

  18492. <change type="bugfix">
  18493. <para lang="ru">
  18494. nginx распознавал параметры "close" и "keep-alive" в строке "Connection"
  18495. в заголовке запроса только, если они были в нижнем регистре;
  18496. ошибка появилась в 0.6.11.
  18497. </para>
  18498. <para lang="en">
  18499. nginx supported low case only "close" and "keep-alive" values
  18500. in the "Connection" request header line;
  18501. the bug had appeared in 0.6.11.
  18502. </para>
  18503. </change>

  18504. <change type="bugfix">
  18505. <para lang="ru">
  18506. sub_filter не работал с пустой строкой замены.
  18507. </para>
  18508. <para lang="en">
  18509. sub_filter did not work with empty substitution.
  18510. </para>
  18511. </change>

  18512. <change type="bugfix">
  18513. <para lang="ru">
  18514. в парсинге sub_filter.
  18515. </para>
  18516. <para lang="en">
  18517. in sub_filter parsing.
  18518. </para>
  18519. </change>

  18520. </changes>


  18521. <changes ver="0.6.13" date="2007-09-24">

  18522. <change type="bugfix">
  18523. <para lang="ru">
  18524. nginx не закрывал файл каталога для запроса HEAD,
  18525. если использовался autoindex<br/>
  18526. Спасибо Arkadiusz Patyk.
  18527. </para>
  18528. <para lang="en">
  18529. nginx did not close directory file on HEAD request if autoindex was used.<br/>
  18530. Thanks to Arkadiusz Patyk.
  18531. </para>
  18532. </change>

  18533. </changes>


  18534. <changes ver="0.6.12" date="2007-09-21">

  18535. <change type="change">
  18536. <para lang="ru">
  18537. почтовый прокси-сервер разделён на три модуля: pop3, imap и smtp.
  18538. </para>
  18539. <para lang="en">
  18540. mail proxy was split on three modules: pop3, imap and smtp.
  18541. </para>
  18542. </change>

  18543. <change type="feature">
  18544. <para lang="ru">
  18545. параметры конфигурации --without-mail_pop3_module,
  18546. --without-mail_imap_module и --without-mail_smtp_module.
  18547. </para>
  18548. <para lang="en">
  18549. the --without-mail_pop3_module, --without-mail_imap_module,
  18550. and --without-mail_smtp_module configuration parameters.
  18551. </para>
  18552. </change>

  18553. <change type="feature">
  18554. <para lang="ru">
  18555. директивы smtp_greeting_delay и smtp_client_buffer модуля ngx_mail_smtp_module.
  18556. </para>
  18557. <para lang="en">
  18558. the "smtp_greeting_delay" and "smtp_client_buffer" directives
  18559. of the ngx_mail_smtp_module.
  18560. </para>
  18561. </change>

  18562. <change type="bugfix">
  18563. <para lang="ru">
  18564. wildcard в конце имени сервера не работали;
  18565. ошибка появилась в 0.6.9.
  18566. </para>
  18567. <para lang="en">
  18568. the trailing wildcards did not work;
  18569. the bug had appeared in 0.6.9.
  18570. </para>
  18571. </change>

  18572. <change type="bugfix">
  18573. <para lang="ru">
  18574. при использовании разделяемой библиотеки PCRE,
  18575. расположенной в нестандартном месте, nginx не запускался на Solaris.
  18576. </para>
  18577. <para lang="en">
  18578. nginx could not start on Solaris if the shared PCRE library located
  18579. in non-standard place was used.
  18580. </para>
  18581. </change>

  18582. <change type="bugfix">
  18583. <para lang="ru">
  18584. директивы proxy_hide_header и fastcgi_hide_header не скрывали
  18585. строки заголовка ответа с именем больше 32 символов.<br/>
  18586. Спасибо Manlio Perillo.
  18587. </para>
  18588. <para lang="en">
  18589. the "proxy_hide_header" and "fastcgi_hide_header" directives did not
  18590. hide response header lines whose name was longer than 32 characters.<br/>
  18591. Thanks to Manlio Perillo.
  18592. </para>
  18593. </change>

  18594. </changes>


  18595. <changes ver="0.6.11" date="2007-09-11">

  18596. <change type="bugfix">
  18597. <para lang="ru">
  18598. счётчик активных соединений всегда рос при использовании почтового
  18599. прокси-сервера.
  18600. </para>
  18601. <para lang="en">
  18602. active connection counter always increased if mail proxy was used.
  18603. </para>
  18604. </change>

  18605. <change type="bugfix">
  18606. <para lang="ru">
  18607. если бэкенд возвращал только заголовок ответа при небуферизированном
  18608. проксировании, то nginx закрывал соединение с бэкендом по таймауту.
  18609. </para>
  18610. <para lang="en">
  18611. if backend returned response header only using non-buffered proxy,
  18612. then nginx closed backend connection on timeout.
  18613. </para>
  18614. </change>

  18615. <change type="bugfix">
  18616. <para lang="ru">
  18617. nginx не поддерживал несколько строк "Connection" в заголовке запроса.
  18618. </para>
  18619. <para lang="en">
  18620. nginx did not support several "Connection" request header lines.
  18621. </para>
  18622. </change>

  18623. <change type="bugfix">
  18624. <para lang="ru">
  18625. если в сервере апстрима был задан max_fails, то после первой же неудачной
  18626. попытки вес сервера навсегда становился равным одному;
  18627. ошибка появилась в 0.6.6.
  18628. </para>
  18629. <para lang="en">
  18630. if the "max_fails" was set for upstream server, then after first
  18631. failure server weight was always one;
  18632. the bug had appeared in 0.6.6.
  18633. </para>
  18634. </change>

  18635. </changes>


  18636. <changes ver="0.6.10" date="2007-09-03">

  18637. <change type="feature">
  18638. <para lang="ru">
  18639. директивы open_file_cache, open_file_cache_retest и open_file_cache_errors.
  18640. </para>
  18641. <para lang="en">
  18642. the "open_file_cache", "open_file_cache_retest", and "open_file_cache_errors"
  18643. directives.
  18644. </para>
  18645. </change>

  18646. <change type="bugfix">
  18647. <para lang="ru">
  18648. утечки сокетов;
  18649. ошибка появилась в 0.6.7.
  18650. </para>
  18651. <para lang="en">
  18652. socket leak;
  18653. the bug had appeared in 0.6.7.
  18654. </para>
  18655. </change>

  18656. <change type="bugfix">
  18657. <para lang="ru">
  18658. В строку заголовка ответа "Content-Type", указанную в методе
  18659. $r->send_http_header(), не добавлялась кодировка, указанная в директиве charset.
  18660. </para>
  18661. <para lang="en">
  18662. a charset set by the "charset" directive was not appended
  18663. to the "Content-Type" header set by $r->send_http_header().
  18664. </para>
  18665. </change>

  18666. <change type="bugfix">
  18667. <para lang="ru">
  18668. при использовании метода /dev/poll
  18669. в рабочем процессе мог произойти segmentation fault.
  18670. </para>
  18671. <para lang="en">
  18672. a segmentation fault might occur in worker process
  18673. if /dev/poll method was used.
  18674. </para>
  18675. </change>

  18676. </changes>


  18677. <changes ver="0.6.9" date="2007-08-28">

  18678. <change type="bugfix">
  18679. <para lang="ru">
  18680. рабочий процесс мог зациклиться при использовании протокола HTTPS;
  18681. ошибка появилась в 0.6.7.
  18682. </para>
  18683. <para lang="en">
  18684. a worker process may got caught in an endless loop,
  18685. if the HTTPS protocol was used;
  18686. the bug had appeared in 0.6.7.
  18687. </para>
  18688. </change>

  18689. <change type="bugfix">
  18690. <para lang="ru">
  18691. если сервер слушал на двух адресах или портах, то nginx не запускался
  18692. при использовании wildcard в конце имени сервера.
  18693. </para>
  18694. <para lang="en">
  18695. if server listened on two addresses or ports and trailing wildcard was used,
  18696. then nginx did not run.
  18697. </para>
  18698. </change>

  18699. <change type="bugfix">
  18700. <para lang="ru">
  18701. директива ip_hash могла неверно помечать сервера как нерабочие.
  18702. </para>
  18703. <para lang="en">
  18704. the "ip_hash" directive might incorrectly mark servers as down.
  18705. </para>
  18706. </change>

  18707. <change type="bugfix">
  18708. <para lang="ru">
  18709. nginx не собирался на amd64;
  18710. ошибка появилась в 0.6.8.
  18711. </para>
  18712. <para lang="en">
  18713. nginx could not be built on amd64;
  18714. the bug had appeared in 0.6.8.
  18715. </para>
  18716. </change>

  18717. </changes>


  18718. <changes ver="0.6.8" date="2007-08-20">

  18719. <change type="change">
  18720. <para lang="ru">
  18721. теперь nginx пытается установить директивы worker_priority,
  18722. worker_rlimit_nofile, worker_rlimit_core, worker_rlimit_sigpending
  18723. без привилегий root'а.
  18724. </para>
  18725. <para lang="en">
  18726. now nginx tries to set the "worker_priority", "worker_rlimit_nofile",
  18727. "worker_rlimit_core", and "worker_rlimit_sigpending" without super-user
  18728. privileges.
  18729. </para>
  18730. </change>

  18731. <change type="change">
  18732. <para lang="ru">
  18733. теперь nginx экранирует символы пробела и "%" при передаче запроса
  18734. серверу аутентификации почтового прокси-сервера.
  18735. </para>
  18736. <para lang="en">
  18737. now nginx escapes space and "%" in request to a mail proxy authentication
  18738. server.
  18739. </para>
  18740. </change>

  18741. <change type="change">
  18742. <para lang="ru">
  18743. теперь nginx экранирует символ "%" в переменной $memcached_key.
  18744. </para>
  18745. <para lang="en">
  18746. now nginx escapes "%" in $memcached_key variable.
  18747. </para>
  18748. </change>

  18749. <change type="bugfix">
  18750. <para lang="ru">
  18751. при указании относительного пути к конфигурационному файлу в качестве
  18752. параметра ключа -c nginx определял путь относительно конфигурационного префикса;
  18753. ошибка появилась в 0.6.6.
  18754. </para>
  18755. <para lang="en">
  18756. nginx used path relative to configuration prefix for non-absolute
  18757. configuration file path specified in the "-c" key;
  18758. the bug had appeared in 0.6.6.
  18759. </para>
  18760. </change>

  18761. <change type="bugfix">
  18762. <para lang="ru">
  18763. nginx не работал на FreeBSD/sparc64.
  18764. </para>
  18765. <para lang="en">
  18766. nginx did not work on FreeBSD/sparc64.
  18767. </para>
  18768. </change>

  18769. </changes>


  18770. <changes ver="0.6.7" date="2007-08-15">

  18771. <change type="change">
  18772. <para lang="ru">
  18773. теперь пути, указанные в директивах include, auth_basic_user_file,
  18774. perl_modules, ssl_certificate, ssl_certificate_key и
  18775. ssl_client_certificate, определяются относительно каталога конфигурационного
  18776. файла nginx.conf, а не относительно префикса.
  18777. </para>
  18778. <para lang="en">
  18779. now the paths specified in the "include", "auth_basic_user_file",
  18780. "perl_modules", "ssl_certificate", "ssl_certificate_key", and
  18781. "ssl_client_certificate" directives are relative to directory of
  18782. nginx configuration file nginx.conf, but not to nginx prefix directory.
  18783. </para>
  18784. </change>

  18785. <change type="change">
  18786. <para lang="ru">
  18787. параметр --sysconfdir=PATH в configure упразднён.
  18788. </para>
  18789. <para lang="en">
  18790. the --sysconfdir=PATH option in configure was canceled.
  18791. </para>
  18792. </change>

  18793. <change type="change">
  18794. <para lang="ru">
  18795. для обновления на лету версий 0.1.x создан специальный сценарий
  18796. <nobr>make upgrade1.</nobr>
  18797. </para>
  18798. <para lang="en">
  18799. the special make target "upgrade1" was defined for online upgrade of
  18800. 0.1.x versions.
  18801. </para>
  18802. </change>

  18803. <change type="feature">
  18804. <para lang="ru">
  18805. директивы server_name и valid_referers поддерживают регулярные выражения.
  18806. </para>
  18807. <para lang="en">
  18808. the "server_name" and "valid_referers" directives support regular expressions.
  18809. </para>
  18810. </change>

  18811. <change type="feature">
  18812. <para lang="ru">
  18813. директива server в блоке upstream поддерживает параметр backup.
  18814. </para>
  18815. <para lang="en">
  18816. the "server" directive in the "upstream" context supports
  18817. the "backup" parameter.
  18818. </para>
  18819. </change>

  18820. <change type="feature">
  18821. <para lang="ru">
  18822. модуль ngx_http_perl_module поддерживает метод $r->discard_request_body.
  18823. </para>
  18824. <para lang="en">
  18825. the ngx_http_perl_module supports the $r->discard_request_body.
  18826. </para>
  18827. </change>

  18828. <change type="feature">
  18829. <para lang="ru">
  18830. директива "add_header Last-Modified ..." меняет строку "Last-Modified"
  18831. в заголовке ответа.
  18832. </para>
  18833. <para lang="en">
  18834. the "add_header Last-Modified ..." directive changes the "Last-Modified"
  18835. response header line.
  18836. </para>
  18837. </change>

  18838. <change type="bugfix">
  18839. <para lang="ru">
  18840. если на запрос с телом возвращался ответ с кодом HTTP отличным от 200,
  18841. и после этого запроса соединение переходило в состояние keep-alive,
  18842. то на следующий запрос nginx возвращал 400.
  18843. </para>
  18844. <para lang="en">
  18845. if a response different than 200 was returned to a request with body
  18846. and connection went to the keep-alive state after the request, then
  18847. nginx returned 400 for the next request.
  18848. </para>
  18849. </change>

  18850. <change type="bugfix">
  18851. <para lang="ru">
  18852. если в директиве auth_http был задан неправильный адрес, то
  18853. в рабочем процессе происходил segmentation fault.
  18854. </para>
  18855. <para lang="en">
  18856. a segmentation fault occurred in worker process
  18857. if invalid address was set in the "auth_http" directive.
  18858. </para>
  18859. </change>

  18860. <change type="bugfix">
  18861. <para lang="ru">
  18862. теперь по умолчанию nginx использует значение 511 для listen backlog
  18863. на всех платформах, кроме FreeBSD.<br/>
  18864. Спасибо Jiang Hong.
  18865. </para>
  18866. <para lang="en">
  18867. now nginx uses default listen backlog value 511 on all platforms
  18868. except FreeBSD.<br/>
  18869. Thanks to Jiang Hong.
  18870. </para>
  18871. </change>

  18872. <change type="bugfix">
  18873. <para lang="ru">
  18874. рабочий процесс мог зациклиться, если server в блоке upstream был помечен
  18875. как down;
  18876. ошибка появилась в 0.6.6.
  18877. </para>
  18878. <para lang="en">
  18879. a worker process may got caught in an endless loop, if a "server" inside
  18880. "upstream" block was marked as "down";
  18881. the bug had appeared in 0.6.6.
  18882. </para>
  18883. </change>

  18884. <change type="bugfix">
  18885. <para lang="ru">
  18886. sendfilev() в Solaris теперь не используется при передаче тела запроса
  18887. FastCGI-серверу через unix domain сокет.
  18888. </para>
  18889. <para lang="en">
  18890. now Solaris sendfilev() is not used to transfer the client request body
  18891. to FastCGI-server via the unix domain socket.
  18892. </para>
  18893. </change>

  18894. </changes>


  18895. <changes ver="0.6.6" date="2007-07-30">

  18896. <change type="feature">
  18897. <para lang="ru">
  18898. параметр --sysconfdir=PATH в configure.
  18899. </para>
  18900. <para lang="en">
  18901. the --sysconfdir=PATH option in configure.
  18902. </para>
  18903. </change>

  18904. <change type="feature">
  18905. <para lang="ru">
  18906. именованные location'ы.
  18907. </para>
  18908. <para lang="en">
  18909. named locations.
  18910. </para>
  18911. </change>

  18912. <change type="feature">
  18913. <para lang="ru">
  18914. переменную $args можно устанавливать с помощью set.
  18915. </para>
  18916. <para lang="en">
  18917. the $args variable can be set with the "set" directive.
  18918. </para>
  18919. </change>

  18920. <change type="feature">
  18921. <para lang="ru">
  18922. переменная $is_args.
  18923. </para>
  18924. <para lang="en">
  18925. the $is_args variable.
  18926. </para>
  18927. </change>

  18928. <change type="bugfix">
  18929. <para lang="ru">
  18930. равномерное распределение запросов к апстримам с большими весами.
  18931. </para>
  18932. <para lang="en">
  18933. fair big weight upstream balancer.
  18934. </para>
  18935. </change>

  18936. <change type="bugfix">
  18937. <para lang="ru">
  18938. если клиент в почтовом прокси-сервере закрывал соединение,
  18939. то nginx мог не закрывать соединение с бэкендом.
  18940. </para>
  18941. <para lang="en">
  18942. if a client has closed connection to mail proxy
  18943. then nginx might not close connection to backend.
  18944. </para>
  18945. </change>

  18946. <change type="bugfix">
  18947. <para lang="ru">
  18948. при использовании одного хоста в качестве бэкендов для протоколов HTTP и HTTPS
  18949. без явного указания портов, nginx использовал только один порт&mdash;80 или 443.
  18950. </para>
  18951. <para lang="en">
  18952. if the same host without specified port was used as backend for HTTP and HTTPS,
  18953. then nginx used only one port&mdash;80 or 443.
  18954. </para>
  18955. </change>

  18956. <change type="bugfix">
  18957. <para lang="ru">
  18958. nginx не собирался на Solaris/amd64 Sun Studio 11 и более ранними версиями;
  18959. ошибка появилась в 0.6.4.
  18960. </para>
  18961. <para lang="en">
  18962. fix building on Solaris/amd64 by Sun Studio 11 and early versions;
  18963. the bug had appeared in 0.6.4.
  18964. </para>
  18965. </change>

  18966. </changes>


  18967. <changes ver="0.6.5" date="2007-07-23">

  18968. <change type="feature">
  18969. <para lang="ru">
  18970. переменная $nginx_version.<br/>
  18971. Спасибо Николаю Гречуху.
  18972. </para>
  18973. <para lang="en">
  18974. $nginx_version variable.<br/>
  18975. Thanks to Nick S. Grechukh.
  18976. </para>
  18977. </change>

  18978. <change type="feature">
  18979. <para lang="ru">
  18980. почтовый прокси-сервер поддерживает AUTHENTICATE в режиме IMAP.<br/>
  18981. Спасибо Максиму Дунину.
  18982. </para>
  18983. <para lang="en">
  18984. the mail proxy supports AUTHENTICATE in IMAP mode.<br/>
  18985. Thanks to Maxim Dounin.
  18986. </para>
  18987. </change>

  18988. <change type="feature">
  18989. <para lang="ru">
  18990. почтовый прокси-сервер поддерживает STARTTLS в режиме SMTP.<br/>
  18991. Спасибо Максиму Дунину.
  18992. </para>
  18993. <para lang="en">
  18994. the mail proxy supports STARTTLS in SMTP mode.<br/>
  18995. Thanks to Maxim Dounin.
  18996. </para>
  18997. </change>

  18998. <change type="bugfix">
  18999. <para lang="ru">
  19000. теперь nginx экранирует пробел в переменной $memcached_key.
  19001. </para>
  19002. <para lang="en">
  19003. now nginx escapes space in $memcached_key variable.
  19004. </para>
  19005. </change>

  19006. <change type="bugfix">
  19007. <para lang="ru">
  19008. nginx неправильно собирался Sun Studio на Solaris/amd64.<br/>
  19009. Спасибо Jiang Hong.
  19010. </para>
  19011. <para lang="en">
  19012. nginx was incorrectly built by Sun Studio on Solaris/amd64.<br/>
  19013. Thanks to Jiang Hong.
  19014. </para>
  19015. </change>

  19016. <change type="bugfix">
  19017. <para lang="ru">
  19018. незначительных потенциальных ошибок.<br/>
  19019. Спасибо Coverity's Scan.
  19020. </para>
  19021. <para lang="en">
  19022. of minor potential bugs.<br/>
  19023. Thanks to Coverity's Scan.
  19024. </para>
  19025. </change>

  19026. </changes>


  19027. <changes ver="0.6.4" date="2007-07-17">

  19028. <change type="security">
  19029. <para lang="ru">
  19030. при использовании директивы msie_refresh был возможен XSS.<br/>
  19031. Спасибо Максиму Богуку.
  19032. </para>
  19033. <para lang="en">
  19034. the "msie_refresh" directive allowed XSS.<br/>
  19035. Thanks to Maxim Boguk.
  19036. </para>
  19037. </change>

  19038. <change type="change">
  19039. <para lang="ru">
  19040. директивы proxy_store и fastcgi_store изменены.
  19041. </para>
  19042. <para lang="en">
  19043. the "proxy_store" and "fastcgi_store" directives were changed.
  19044. </para>
  19045. </change>

  19046. <change type="feature">
  19047. <para lang="ru">
  19048. директивы proxy_store_access и fastcgi_store_access.
  19049. </para>
  19050. <para lang="en">
  19051. the "proxy_store_access" and "fastcgi_store_access" directives.
  19052. </para>
  19053. </change>

  19054. <change type="bugfix">
  19055. <para lang="ru">
  19056. nginx не работал на Solaris/sparc64, если был собран Sun Studio.<br/>
  19057. Спасибо Андрею Нигматулину.
  19058. </para>
  19059. <para lang="en">
  19060. nginx did not work on Solaris/sparc64 if it was built by Sun Studio.<br/>
  19061. Thanks to Andrei Nigmatulin.
  19062. </para>
  19063. </change>

  19064. <change type="workaround">
  19065. <para lang="ru">
  19066. обход ошибки в Sun Studio 12.<br/>
  19067. Спасибо Jiang Hong.
  19068. </para>
  19069. <para lang="en">
  19070. for Sun Studio 12.<br/>
  19071. Thanks to Jiang Hong.
  19072. </para>
  19073. </change>

  19074. </changes>


  19075. <changes ver="0.6.3" date="2007-07-12">

  19076. <change type="feature">
  19077. <para lang="ru">
  19078. директивы proxy_store и fastcgi_store.
  19079. </para>
  19080. <para lang="en">
  19081. the "proxy_store" and "fastcgi_store" directives.
  19082. </para>
  19083. </change>

  19084. <change type="bugfix">
  19085. <para lang="ru">
  19086. при использовании директивы auth_http_header
  19087. в рабочем процессе мог произойти segmentation fault.<br/>
  19088. Спасибо Максиму Дунину.
  19089. </para>
  19090. <para lang="en">
  19091. a segmentation fault might occur in worker process
  19092. if the "auth_http_header" directive was used.<br/>
  19093. Thanks to Maxim Dounin.
  19094. </para>
  19095. </change>

  19096. <change type="bugfix">
  19097. <para lang="ru">
  19098. если использовался метод аутентификации CRAM-MD5, но он не был разрешён,
  19099. то в рабочем процессе происходил segmentation fault.
  19100. </para>
  19101. <para lang="en">
  19102. a segmentation fault occurred in worker process
  19103. if the CRAM-MD5 authentication method was used, but it was not enabled.
  19104. </para>
  19105. </change>

  19106. <change type="bugfix">
  19107. <para lang="ru">
  19108. при использовании протокола HTTPS в директиве proxy_pass
  19109. в рабочем процессе мог произойти segmentation fault.
  19110. </para>
  19111. <para lang="en">
  19112. a segmentation fault might occur in worker process when
  19113. the HTTPS protocol was used in the "proxy_pass" directive.
  19114. </para>
  19115. </change>

  19116. <change type="bugfix">
  19117. <para lang="ru">
  19118. в рабочем процессе мог произойти segmentation fault,
  19119. если использовался метод eventport.
  19120. </para>
  19121. <para lang="en">
  19122. a segmentation fault might occur in worker process
  19123. if the eventport method was used.
  19124. </para>
  19125. </change>

  19126. <change type="bugfix">
  19127. <para lang="ru">
  19128. директивы proxy_ignore_client_abort и fastcgi_ignore_client_abort не работали;
  19129. ошибка появилась в 0.5.13.
  19130. </para>
  19131. <para lang="en">
  19132. the "proxy_ignore_client_abort" and "fastcgi_ignore_client_abort" directives
  19133. did not work;
  19134. the bug had appeared in 0.5.13.
  19135. </para>
  19136. </change>

  19137. </changes>


  19138. <changes ver="0.6.2" date="2007-07-09">

  19139. <change type="bugfix">
  19140. <para lang="ru">
  19141. если заголовок ответа был разделён в FastCGI-записях, то nginx передавал
  19142. клиенту мусор в таких заголовках.
  19143. </para>
  19144. <para lang="en">
  19145. if the FastCGI header was split in records,
  19146. then nginx passed garbage in the header to a client.
  19147. </para>
  19148. </change>

  19149. </changes>


  19150. <changes ver="0.6.1" date="2007-06-17">

  19151. <change type="bugfix">
  19152. <para lang="ru">
  19153. в парсинге SSI.
  19154. </para>
  19155. <para lang="en">
  19156. in SSI parsing.
  19157. </para>
  19158. </change>

  19159. <change type="bugfix">
  19160. <para lang="ru">
  19161. при использовании удалённого подзапроса в SSI последующий
  19162. подзапрос локального файла мог отдаваться клиенту в неверном порядке.
  19163. </para>
  19164. <para lang="en">
  19165. if remote SSI subrequest was used, then posterior local file subrequest
  19166. might transferred to client in wrong order.
  19167. </para>
  19168. </change>

  19169. <change type="bugfix">
  19170. <para lang="ru">
  19171. большие включения в SSI, сохранённые во временные файлы,
  19172. передавались не полностью.
  19173. </para>
  19174. <para lang="en">
  19175. large SSI inclusions buffered in temporary files were truncated.
  19176. </para>
  19177. </change>

  19178. <change type="bugfix">
  19179. <para lang="ru">
  19180. значение perl'овой переменной $$ модуля ngx_http_perl_module было равно
  19181. номеру главного процесса.
  19182. </para>
  19183. <para lang="en">
  19184. the perl $$ variable value in ngx_http_perl_module was equal to the master
  19185. process identification number.
  19186. </para>
  19187. </change>

  19188. </changes>


  19189. <changes ver="0.6.0" date="2007-06-14">

  19190. <change type="feature">
  19191. <para lang="ru">
  19192. директивы "server_name", "map", and "valid_referers" поддерживают
  19193. маски вида "www.example.*".
  19194. </para>
  19195. <para lang="en">
  19196. the "server_name", "map", and "valid_referers" directives support
  19197. the "www.example.*" wildcards.
  19198. </para>
  19199. </change>

  19200. </changes>


  19201. <changes ver="0.5.25" date="2007-06-11">

  19202. <change type="bugfix">
  19203. <para lang="ru">
  19204. nginx не собирался с параметром --without-http_rewrite_module;
  19205. ошибка появилась в 0.5.24.
  19206. </para>
  19207. <para lang="en">
  19208. nginx could not be built with the --without-http_rewrite_module parameter;
  19209. the bug had appeared in 0.5.24.
  19210. </para>
  19211. </change>

  19212. </changes>


  19213. <changes ver="0.5.24" date="2007-06-06">

  19214. <change type="security">
  19215. <para lang="ru">
  19216. директива ssl_verify_client не работала, если запрос выполнялся
  19217. по протоколу HTTP/0.9.
  19218. </para>
  19219. <para lang="en">
  19220. the "ssl_verify_client" directive did not work if request was made
  19221. using HTTP/0.9.
  19222. </para>
  19223. </change>

  19224. <change type="bugfix">
  19225. <para lang="ru">
  19226. при использовании сжатия часть ответа могла передаваться несжатой;
  19227. ошибка появилась в 0.5.23.
  19228. </para>
  19229. <para lang="en">
  19230. a part of response body might be passed uncompressed if gzip was used;
  19231. the bug had appeared in 0.5.23.
  19232. </para>
  19233. </change>

  19234. </changes>


  19235. <changes ver="0.5.23" date="2007-06-04">

  19236. <change type="feature">
  19237. <para lang="ru">
  19238. модуль ngx_http_ssl_module поддерживает расширение TLS Server Name Indication.
  19239. </para>
  19240. <para lang="en">
  19241. the ngx_http_ssl_module supports Server Name Indication TLS extension.
  19242. </para>
  19243. </change>

  19244. <change type="feature">
  19245. <para lang="ru">
  19246. директива fastcgi_catch_stderr.<br/>
  19247. Спасибо Николаю Гречуху, проект OWOX.
  19248. </para>
  19249. <para lang="en">
  19250. the "fastcgi_catch_stderr" directive.<br/>
  19251. Thanks to Nick S. Grechukh, OWOX project.
  19252. </para>
  19253. </change>

  19254. <change type="bugfix">
  19255. <para lang="ru">
  19256. на Линуксе в основном процессе происходил segmentation fault,
  19257. если два виртуальных сервера должны bind()ится к пересекающимся портам.
  19258. </para>
  19259. <para lang="en">
  19260. a segmentation fault occurred in master process if
  19261. two virtual servers should bind() to the overlapping ports.
  19262. </para>
  19263. </change>

  19264. <change type="bugfix">
  19265. <para lang="ru">
  19266. если nginx был собран с модулем ngx_http_perl_module и perl
  19267. поддерживал потоки, то во время второй переконфигурации
  19268. выдавались ошибки "panic: MUTEX_LOCK" и "perl_parse() failed".
  19269. </para>
  19270. <para lang="en">
  19271. if nginx was built with ngx_http_perl_module and perl supported threads,
  19272. then during second reconfiguration the error messages
  19273. "panic: MUTEX_LOCK" and "perl_parse() failed" were issued.
  19274. </para>
  19275. </change>

  19276. <change type="bugfix">
  19277. <para lang="ru">
  19278. в использовании протокола HTTPS в директиве proxy_pass.
  19279. </para>
  19280. <para lang="en">
  19281. in the HTTPS protocol in the "proxy_pass" directive.
  19282. </para>
  19283. </change>

  19284. </changes>


  19285. <changes ver="0.5.22" date="2007-05-29">

  19286. <change type="bugfix">
  19287. <para lang="ru">
  19288. большое тело запроса могло не передаваться бэкенду;
  19289. ошибка появилась в 0.5.21.
  19290. </para>
  19291. <para lang="en">
  19292. a big request body might not be passed to backend;
  19293. the bug had appeared in 0.5.21.
  19294. </para>
  19295. </change>

  19296. </changes>


  19297. <changes ver="0.5.21" date="2007-05-28">

  19298. <change type="bugfix">
  19299. <para lang="ru">
  19300. если внутри сервера описано больше примерно десяти location'ов,
  19301. то location'ы, заданные с помощью регулярного выражения,
  19302. могли выполняться не в том, порядке, в каком они описаны.
  19303. </para>
  19304. <para lang="en">
  19305. if server has more than about ten locations, then regex locations
  19306. might be chosen not in that order as they were specified.
  19307. </para>
  19308. </change>

  19309. <change type="bugfix">
  19310. <para lang="ru">
  19311. на 64-битной платформе рабочий процесс мог зациклиться, если 33-тий
  19312. по счёту или последующий бэкенд упал.<br/>
  19313. Спасибо Антону Поварову.
  19314. </para>
  19315. <para lang="en">
  19316. a worker process may got caught in an endless loop on 64-bit platform,
  19317. if the 33-rd or next in succession backend has failed.<br/>
  19318. Thanks to Anton Povarov.
  19319. </para>
  19320. </change>

  19321. <change type="bugfix">
  19322. <para lang="ru">
  19323. при использовании библиотеки PCRE на Solaris/sparc64
  19324. мог произойти bus error.<br/>
  19325. Спасибо Андрею Нигматулину.
  19326. </para>
  19327. <para lang="en">
  19328. a bus error might occur on Solaris/sparc64 if the PCRE library was used.<br/>
  19329. Thanks to Andrei Nigmatulin.
  19330. </para>
  19331. </change>

  19332. <change type="bugfix">
  19333. <para lang="ru">
  19334. в использовании протокола HTTPS в директиве proxy_pass.
  19335. </para>
  19336. <para lang="en">
  19337. in the HTTPS protocol in the "proxy_pass" directive.
  19338. </para>
  19339. </change>

  19340. </changes>


  19341. <changes ver="0.5.20" date="2007-05-07">

  19342. <change type="feature">
  19343. <para lang="ru">
  19344. директива sendfile_max_chunk.
  19345. </para>
  19346. <para lang="en">
  19347. the "sendfile_max_chunk" directive.
  19348. </para>
  19349. </change>

  19350. <change type="feature">
  19351. <para lang="ru">
  19352. переменные "$http_...", "$sent_http_..." и "$upstream_http_..."
  19353. можно менять директивой set.
  19354. </para>
  19355. <para lang="en">
  19356. the "$http_...", "$sent_http_...", and "$upstream_http_..." variables
  19357. may be changed using the "set" directive.
  19358. </para>
  19359. </change>

  19360. <change type="bugfix">
  19361. <para lang="ru">
  19362. при использовании SSI-команды 'if expr="$var = /"'
  19363. в рабочем процессе мог произойти segmentation fault.
  19364. </para>
  19365. <para lang="en">
  19366. a segmentation fault might occur in worker process
  19367. if the SSI command 'if expr="$var = /"' was used.
  19368. </para>
  19369. </change>

  19370. <change type="bugfix">
  19371. <para lang="ru">
  19372. завершающая строка multipart range ответа передавалась неверно.<br/>
  19373. Спасибо Evan Miller.
  19374. </para>
  19375. <para lang="en">
  19376. trailing boundary of multipart range response was transferred incorrectly.<br/>
  19377. Thanks to Evan Miller.
  19378. </para>
  19379. </change>

  19380. <change type="bugfix">
  19381. <para lang="ru">
  19382. nginx не работал на Solaris/sparc64, если был собран Sun Studio.<br/>
  19383. Спасибо Андрею Нигматулину.
  19384. </para>
  19385. <para lang="en">
  19386. nginx did not work on Solaris/sparc64 if it was built by Sun Studio.<br/>
  19387. Thanks to Andrei Nigmatulin.
  19388. </para>
  19389. </change>

  19390. <change type="bugfix">
  19391. <para lang="ru">
  19392. модуль ngx_http_perl_module не собирался make в Solaris.<br/>
  19393. Спасибо Андрею Нигматулину.
  19394. </para>
  19395. <para lang="en">
  19396. the ngx_http_perl_module could not be built by Solaris make.<br/>
  19397. Thanks to Andrei Nigmatulin.
  19398. </para>
  19399. </change>

  19400. </changes>


  19401. <changes ver="0.5.19" date="2007-04-24">

  19402. <change type="change">
  19403. <para lang="ru">
  19404. значение переменной $request_time теперь записывается с точностью
  19405. до миллисекунд.
  19406. </para>
  19407. <para lang="en">
  19408. now the $request_time variable has millisecond precision.
  19409. </para>
  19410. </change>

  19411. <change type="change">
  19412. <para lang="ru">
  19413. метод $r->rflush в модуле ngx_http_perl_module переименован в $r->flush.
  19414. </para>
  19415. <para lang="en">
  19416. the method $r->rflush of ngx_http_perl_module was renamed to the $r->flush.
  19417. </para>
  19418. </change>

  19419. <change type="feature">
  19420. <para lang="ru">
  19421. переменная $upstream_addr.
  19422. </para>
  19423. <para lang="en">
  19424. the $upstream_addr variable.
  19425. </para>
  19426. </change>

  19427. <change type="feature">
  19428. <para lang="ru">
  19429. директивы proxy_headers_hash_max_size и proxy_headers_hash_bucket_size.<br/>
  19430. Спасибо Володымыру Костырко.
  19431. </para>
  19432. <para lang="en">
  19433. the "proxy_headers_hash_max_size" and "proxy_headers_hash_bucket_size"
  19434. directives.<br/>
  19435. Thanks to Volodymyr Kostyrko.
  19436. </para>
  19437. </change>

  19438. <change type="bugfix">
  19439. <para lang="ru">
  19440. при использовании sendfile и limit_rate на 64-битных платформах
  19441. нельзя было передавать файлы больше 2G.
  19442. </para>
  19443. <para lang="en">
  19444. the files more than 2G could not be transferred using sendfile and limit_rate
  19445. on 64-bit platforms.
  19446. </para>
  19447. </change>

  19448. <change type="bugfix">
  19449. <para lang="ru">
  19450. при использовании sendfile на 64-битном Linux нельзя было передавать файлы
  19451. больше 2G.
  19452. </para>
  19453. <para lang="en">
  19454. the files more than 2G could not be transferred using sendfile on 64-bit Linux.
  19455. </para>
  19456. </change>

  19457. </changes>


  19458. <changes ver="0.5.18" date="2007-04-19">

  19459. <change type="feature">
  19460. <para lang="ru">
  19461. модуль ngx_http_sub_filter_module.
  19462. </para>
  19463. <para lang="en">
  19464. the ngx_http_sub_filter_module.
  19465. </para>
  19466. </change>

  19467. <change type="feature">
  19468. <para lang="ru">
  19469. переменные "$upstream_http_...".
  19470. </para>
  19471. <para lang="en">
  19472. the "$upstream_http_..." variables.
  19473. </para>
  19474. </change>

  19475. <change type="feature">
  19476. <para lang="ru">
  19477. теперь переменные $upstream_status и $upstream_response_time
  19478. содержат данные о всех обращениях к апстримам, сделанным до X-Accel-Redirect.
  19479. </para>
  19480. <para lang="en">
  19481. now the $upstream_status and $upstream_response_time variables
  19482. keep data about all upstreams before X-Accel-Redirect.
  19483. </para>
  19484. </change>

  19485. <change type="bugfix">
  19486. <para lang="ru">
  19487. если nginx был собран с модулем ngx_http_perl_module и perl
  19488. не поддерживал multiplicity, то после первой переконфигурации
  19489. и после получения любого сигнала
  19490. в основном процессе происходил segmentation fault;
  19491. ошибка появилась в 0.5.9.
  19492. </para>
  19493. <para lang="en">
  19494. a segmentation fault occurred in master process
  19495. after first reconfiguration and receiving any signal
  19496. if nginx was built with ngx_http_perl_module and perl
  19497. did not support multiplicity;
  19498. the bug had appeared in 0.5.9.
  19499. </para>
  19500. </change>

  19501. <change type="bugfix">
  19502. <para lang="ru">
  19503. если perl не поддерживал multiplicity, то после переконфигурации
  19504. перловый код не работал;
  19505. ошибка появилась в 0.3.38.
  19506. </para>
  19507. <para lang="en">
  19508. if perl did not support multiplicity, then after reconfiguration
  19509. perl code did not work;
  19510. the bug had appeared in 0.3.38.
  19511. </para>
  19512. </change>

  19513. </changes>


  19514. <changes ver="0.5.17" date="2007-04-02">

  19515. <change type="change">
  19516. <para lang="ru">
  19517. теперь nginx для метода TRACE всегда возвращает код 405.
  19518. </para>
  19519. <para lang="en">
  19520. now nginx always returns the 405 status for the TRACE method.
  19521. </para>
  19522. </change>

  19523. <change type="feature">
  19524. <para lang="ru">
  19525. теперь nginx поддерживает директиву include внутри блока types.
  19526. </para>
  19527. <para lang="en">
  19528. now nginx supports the "include" directive inside the "types" block.
  19529. </para>
  19530. </change>

  19531. <change type="bugfix">
  19532. <para lang="ru">
  19533. использование переменной $document_root в директиве root и alias
  19534. запрещено: оно вызывало рекурсивное переполнение стека.
  19535. </para>
  19536. <para lang="en">
  19537. the $document_root variable usage in the "root" and "alias" directives
  19538. is disabled: this caused recursive stack overflow.
  19539. </para>
  19540. </change>

  19541. <change type="bugfix">
  19542. <para lang="ru">
  19543. в использовании протокола HTTPS в директиве proxy_pass.
  19544. </para>
  19545. <para lang="en">
  19546. in the HTTPS protocol in the "proxy_pass" directive.
  19547. </para>
  19548. </change>

  19549. <change type="bugfix">
  19550. <para lang="ru">
  19551. в некоторых случаях некэшируемые переменные (такие, как $uri)
  19552. возвращали старое закэшированное значение.
  19553. </para>
  19554. <para lang="en">
  19555. in some cases non-cacheable variables (such as $uri variable)
  19556. returned old cached value.
  19557. </para>
  19558. </change>

  19559. </changes>


  19560. <changes ver="0.5.16" date="2007-03-26">

  19561. <change type="bugfix">
  19562. <para lang="ru">
  19563. в качестве ключа для хэша в директиве ip_hash не использовалась сеть
  19564. класса С.<br/>
  19565. Спасибо Павлу Ярковому.
  19566. </para>
  19567. <para lang="en">
  19568. the C-class network was not used as hash key in the "ip_hash" directive.<br/>
  19569. Thanks to Pavel Yarkovoy.
  19570. </para>
  19571. </change>

  19572. <change type="bugfix">
  19573. <para lang="ru">
  19574. если в строке "Content-Type" в заголовке ответа бэкенда был указан charset
  19575. и строка завершалась символом ";",
  19576. то в рабочем процессе мог произойти segmentation fault;
  19577. ошибка появилась в 0.3.50.
  19578. </para>
  19579. <para lang="en">
  19580. a segmentation fault might occur in worker process
  19581. if a charset was set in the "Content-Type" header line and the line
  19582. has trailing ";";
  19583. the bug had appeared in 0.3.50.
  19584. </para>
  19585. </change>

  19586. <change type="bugfix">
  19587. <para lang="ru">
  19588. ошибки "[alert] zero size buf" при работе с FastCGI-сервером, если
  19589. тело запроса, записанное во временный файл, было кратно 32K.
  19590. </para>
  19591. <para lang="en">
  19592. the "[alert] zero size buf" error when FastCGI server was used and
  19593. a request body written in a temporary file was multiple of 32K.
  19594. </para>
  19595. </change>

  19596. <change type="bugfix">
  19597. <para lang="ru">
  19598. nginx не собирался на Solaris без параметра --with-debug;
  19599. ошибка появилась в 0.5.15.
  19600. </para>
  19601. <para lang="en">
  19602. nginx could not be built on Solaris without the --with-debug option;
  19603. the bug had appeared in 0.5.15.
  19604. </para>
  19605. </change>

  19606. </changes>


  19607. <changes ver="0.5.15" date="2007-03-19">

  19608. <change type="feature">
  19609. <para lang="ru">
  19610. почтовый прокси-сервер поддерживает аутентифицированное SMTP-проксирование и
  19611. директивы smtp_auth, smtp_capabilities и xclient.<br/>
  19612. Спасибо Антону Южанинову и Максиму Дунину.
  19613. </para>
  19614. <para lang="en">
  19615. the mail proxy supports authenticated SMTP proxying and
  19616. the "smtp_auth", "smtp_capabilities", and "xclient" directives.<br/>
  19617. Thanks to Anton Yuzhaninov and Maxim Dounin.
  19618. </para>
  19619. </change>

  19620. <change type="feature">
  19621. <para lang="ru">
  19622. теперь keep-alive соединения закрываются сразу же по получении сигнала
  19623. переконфигурации.
  19624. </para>
  19625. <para lang="en">
  19626. now the keep-alive connections are closed just after receiving
  19627. the reconfiguration signal.
  19628. </para>
  19629. </change>

  19630. <change type="change">
  19631. <para lang="ru">
  19632. директивы imap и auth переименованы соответственно в mail и pop3_auth.
  19633. </para>
  19634. <para lang="en">
  19635. the "imap" and "auth" directives were renamed
  19636. to the "mail" and "pop3_auth" directives.
  19637. </para>
  19638. </change>

  19639. <change type="bugfix">
  19640. <para lang="ru">
  19641. если использовался метод аутентификации CRAM-MD5 и не был разрешён метод APOP,
  19642. то в рабочем процессе происходил segmentation fault.
  19643. </para>
  19644. <para lang="en">
  19645. a segmentation fault occurred in worker process
  19646. if the CRAM-MD5 authentication method was used
  19647. and the APOP method was disabled.
  19648. </para>
  19649. </change>

  19650. <change type="bugfix">
  19651. <para lang="ru">
  19652. при использовании директивы starttls only в протоколе POP3 nginx
  19653. разрешал аутентификацию без перехода в режим SSL.
  19654. </para>
  19655. <para lang="en">
  19656. if the "starttls only" directive was used in POP3 protocol,
  19657. then nginx allowed authentication without switching to the SSL mode.
  19658. </para>
  19659. </change>

  19660. <change type="bugfix">
  19661. <para lang="ru">
  19662. рабочие процессы не выходили после переконфигурации и не переоткрывали логи,
  19663. если использовался метод eventport.
  19664. </para>
  19665. <para lang="en">
  19666. worker processes did not exit after reconfiguration and
  19667. did not rotate logs if the eventport method was used.
  19668. </para>
  19669. </change>

  19670. <change type="bugfix">
  19671. <para lang="ru">
  19672. при использовании директивы ip_hash рабочий процесс мог зациклиться.
  19673. </para>
  19674. <para lang="en">
  19675. a worker process may got caught in an endless loop,
  19676. if the "ip_hash" directive was used.
  19677. </para>
  19678. </change>

  19679. <change type="bugfix">
  19680. <para lang="ru">
  19681. теперь nginx не пишет в лог некоторые alert'ы,
  19682. если используются методы eventport или /dev/poll.
  19683. </para>
  19684. <para lang="en">
  19685. now nginx does not log some alerts if eventport or /dev/poll methods are used.
  19686. </para>
  19687. </change>

  19688. </changes>


  19689. <changes ver="0.5.14" date="2007-02-23">

  19690. <change type="bugfix">
  19691. <para lang="ru">
  19692. nginx игнорировал лишние закрывающие скобки "}" в конце
  19693. конфигурационного файла.
  19694. </para>
  19695. <para lang="en">
  19696. nginx ignored superfluous closing "}" in the end of configuration file.
  19697. </para>
  19698. </change>

  19699. </changes>


  19700. <changes ver="0.5.13" date="2007-02-19">

  19701. <change type="feature">
  19702. <para lang="ru">
  19703. методы COPY и MOVE.
  19704. </para>
  19705. <para lang="en">
  19706. the COPY and MOVE methods.
  19707. </para>
  19708. </change>

  19709. <change type="bugfix">
  19710. <para lang="ru">
  19711. модуль ngx_http_realip_module устанавливал мусор для запросов,
  19712. переданных по keep-alive соединению.
  19713. </para>
  19714. <para lang="en">
  19715. the ngx_http_realip_module set garbage for requests passed via
  19716. keep-alive connection.
  19717. </para>
  19718. </change>

  19719. <change type="bugfix">
  19720. <para lang="ru">
  19721. nginx не работал на 64-битном big-endian Linux.<br/>
  19722. Спасибо Андрею Нигматулину.
  19723. </para>
  19724. <para lang="en">
  19725. nginx did not work on big-endian 64-bit Linux.<br/>
  19726. Thanks to Andrei Nigmatulin.
  19727. </para>
  19728. </change>

  19729. <change type="bugfix">
  19730. <para lang="ru">
  19731. при получении слишком длинной команды IMAP/POP3-прокси теперь сразу
  19732. закрывает соединение, а не по таймауту.
  19733. </para>
  19734. <para lang="en">
  19735. now when IMAP/POP3 proxy receives too long command it closes the connection
  19736. right away, but not after timeout.
  19737. </para>
  19738. </change>

  19739. <change type="bugfix">
  19740. <para lang="ru">
  19741. если при использовании метода epoll клиент закрывал преждевременно
  19742. соединение со своей стороны, то nginx закрывал это соединение только
  19743. по истечении таймаута на передачу.
  19744. </para>
  19745. <para lang="en">
  19746. if the "epoll" method was used and a client closed a connection prematurely,
  19747. then nginx closed the connection after a send timeout only.
  19748. </para>
  19749. </change>

  19750. <change type="bugfix">
  19751. <para lang="ru">
  19752. nginx не собирался на платформах, отличных от i386, amd64, sparc и ppc;
  19753. ошибка появилась в 0.5.8.
  19754. </para>
  19755. <para lang="en">
  19756. nginx could not be built on platforms different from i386, amd64, sparc,
  19757. and ppc;
  19758. the bug had appeared in 0.5.8.
  19759. </para>
  19760. </change>

  19761. </changes>


  19762. <changes ver="0.5.12" date="2007-02-12">

  19763. <change type="bugfix">
  19764. <para lang="ru">
  19765. nginx не собирался на платформах, отличных от i386, amd64, sparc и ppc;
  19766. ошибка появилась в 0.5.8.
  19767. </para>
  19768. <para lang="en">
  19769. nginx could not be built on platforms different from i386, amd64, sparc,
  19770. and ppc;
  19771. the bug had appeared in 0.5.8.
  19772. </para>
  19773. </change>

  19774. <change type="bugfix">
  19775. <para lang="ru">
  19776. при использовании временных файлов в время работы с FastCGI-сервером
  19777. в рабочем процессе мог произойти segmentation fault;
  19778. ошибка появилась в 0.5.8.
  19779. </para>
  19780. <para lang="en">
  19781. a segmentation fault might occur in worker process
  19782. if the temporary files were used while working with FastCGI server;
  19783. the bug had appeared in 0.5.8.
  19784. </para>
  19785. </change>

  19786. <change type="bugfix">
  19787. <para lang="ru">
  19788. если переменная $fastcgi_script_name записывалась в лог,
  19789. то в рабочем процессе мог произойти segmentation fault.
  19790. </para>
  19791. <para lang="en">
  19792. a segmentation fault might occur in worker process
  19793. if the $fastcgi_script_name variable was logged.
  19794. </para>
  19795. </change>

  19796. <change type="bugfix">
  19797. <para lang="ru">
  19798. ngx_http_perl_module не собирался на Solaris.
  19799. </para>
  19800. <para lang="en">
  19801. ngx_http_perl_module could not be built on Solaris.
  19802. </para>
  19803. </change>

  19804. </changes>


  19805. <changes ver="0.5.11" date="2007-02-05">

  19806. <change type="feature">
  19807. <para lang="ru">
  19808. теперь configure определяет библиотеку PCRE в MacPorts.<br/>
  19809. Спасибо Chris McGrath.
  19810. </para>
  19811. <para lang="en">
  19812. now configure detects system PCRE library in MacPorts.<br/>
  19813. Thanks to Chris McGrath.
  19814. </para>
  19815. </change>

  19816. <change type="bugfix">
  19817. <para lang="ru">
  19818. ответ был неверным, если запрашивалось несколько диапазонов;
  19819. ошибка появилась в 0.5.6.
  19820. </para>
  19821. <para lang="en">
  19822. the response was incorrect if several ranges were requested;
  19823. the bug had appeared in 0.5.6.
  19824. </para>
  19825. </change>

  19826. <change type="bugfix">
  19827. <para lang="ru">
  19828. директива create_full_put_path не могла создавать промежуточные каталоги,
  19829. если не была установлена директива dav_access.<br/>
  19830. Спасибо Evan Miller.
  19831. </para>
  19832. <para lang="en">
  19833. the "create_full_put_path" directive could not create the intermediate
  19834. directories if no "dav_access" directive was set.<br/>
  19835. Thanks to Evan Miller.
  19836. </para>
  19837. </change>

  19838. <change type="bugfix">
  19839. <para lang="ru">
  19840. вместо кодов ошибок "400" и "408" в access_log мог записываться код "0".
  19841. </para>
  19842. <para lang="en">
  19843. the "0" response code might be logged in the access_log instead of
  19844. the "400" and "408" error codes.
  19845. </para>
  19846. </change>

  19847. <change type="bugfix">
  19848. <para lang="ru">
  19849. при сборке с оптимизацией -O2 в рабочем процессе мог произойти
  19850. segmentation fault.
  19851. </para>
  19852. <para lang="en">
  19853. a segmentation fault might occur in worker process
  19854. if nginx was built with -O2 optimization.
  19855. </para>
  19856. </change>

  19857. </changes>


  19858. <changes ver="0.5.10" date="2007-01-26">

  19859. <change type="bugfix">
  19860. <para lang="ru">
  19861. во время обновления исполняемого файла новый процесс не наследовал
  19862. слушающие сокеты;
  19863. ошибка появилась в 0.5.9.
  19864. </para>
  19865. <para lang="en">
  19866. while online executable file upgrade the new master process did not
  19867. inherit the listening sockets;
  19868. the bug had appeared in 0.5.9.
  19869. </para>
  19870. </change>

  19871. <change type="bugfix">
  19872. <para lang="ru">
  19873. при сборке с оптимизацией -O2 в рабочем процессе мог произойти
  19874. segmentation fault;
  19875. ошибка появилась в 0.5.1.
  19876. </para>
  19877. <para lang="en">
  19878. a segmentation fault might occur in worker process
  19879. if nginx was built with -O2 optimization;
  19880. the bug had appeared in 0.5.1.
  19881. </para>
  19882. </change>

  19883. </changes>


  19884. <changes ver="0.5.9" date="2007-01-25">

  19885. <change type="change">
  19886. <para lang="ru">
  19887. модуль ngx_http_memcached_module теперь в качестве ключа использует
  19888. значение переменной $memcached_key.
  19889. </para>
  19890. <para lang="en">
  19891. now the ngx_http_memcached_module uses the $memcached_key variable value
  19892. as a key.
  19893. </para>
  19894. </change>

  19895. <change type="feature">
  19896. <para lang="ru">
  19897. переменная $memcached_key.
  19898. </para>
  19899. <para lang="en">
  19900. the $memcached_key variable.
  19901. </para>
  19902. </change>

  19903. <change type="feature">
  19904. <para lang="ru">
  19905. параметр clean в директиве client_body_in_file_only.
  19906. </para>
  19907. <para lang="en">
  19908. the "clean" parameter in the "client_body_in_file_only" directive.
  19909. </para>
  19910. </change>

  19911. <change type="feature">
  19912. <para lang="ru">
  19913. директива env.
  19914. </para>
  19915. <para lang="en">
  19916. the "env" directive.
  19917. </para>
  19918. </change>

  19919. <change type="feature">
  19920. <para lang="ru">
  19921. директива sendfile работает внутри блока if.
  19922. </para>
  19923. <para lang="en">
  19924. the "sendfile" directive is available inside the "if" block.
  19925. </para>
  19926. </change>

  19927. <change type="feature">
  19928. <para lang="ru">
  19929. теперь при ошибке записи в access_log nginx записывает сообщение в error_log,
  19930. но не чаще одного раза в минуту.
  19931. </para>
  19932. <para lang="en">
  19933. now on failure of the writing to access nginx logs a message to error_log,
  19934. but not more often than once a minute.
  19935. </para>
  19936. </change>

  19937. <change type="bugfix">
  19938. <para lang="ru">
  19939. директива "access_log off" не всегда запрещала запись в лог.
  19940. </para>
  19941. <para lang="en">
  19942. the "access_log off" directive did not always turn off the logging.
  19943. </para>
  19944. </change>

  19945. </changes>


  19946. <changes ver="0.5.8" date="2007-01-19">

  19947. <change type="bugfix">
  19948. <para lang="ru">
  19949. если использовалась директива <nobr>"client_body_in_file_only on"</nobr>
  19950. и тело запроса было небольшое, то мог произойти segmentation fault.
  19951. </para>
  19952. <para lang="en">
  19953. a segmentation fault might occur if
  19954. <nobr>"client_body_in_file_only on"</nobr> was used
  19955. and a request body was small.
  19956. </para>
  19957. </change>

  19958. <change type="bugfix">
  19959. <para lang="ru">
  19960. происходил segmentation fault, если использовались директивы
  19961. <nobr>"client_body_in_file_only on"</nobr>
  19962. и <nobr>"proxy_pass_request_body off"</nobr>
  19963. или <nobr>"fastcgi_pass_request_body off"</nobr>,
  19964. и делался переход к следующему бэкенду.
  19965. </para>
  19966. <para lang="en">
  19967. a segmentation fault occurred if <nobr>"client_body_in_file_only on"</nobr>
  19968. and <nobr>"proxy_pass_request_body off"</nobr>
  19969. or <nobr>"fastcgi_pass_request_body off"</nobr>
  19970. directives were used, and nginx switched to a next upstream.
  19971. </para>
  19972. </change>

  19973. <change type="bugfix">
  19974. <para lang="ru">
  19975. если при использовании директивы "proxy_buffering off" соединение с клиентом
  19976. было неактивно, то оно закрывалось по таймауту, заданному директивой
  19977. send_timeout;
  19978. ошибка появилась в 0.4.7.
  19979. </para>
  19980. <para lang="en">
  19981. if the "proxy_buffering off" directive was used and a client connection
  19982. was non-active, then the connection was closed after send timeout;
  19983. the bug had appeared in 0.4.7.
  19984. </para>
  19985. </change>

  19986. <change type="bugfix">
  19987. <para lang="ru">
  19988. если при использовании метода epoll клиент закрывал преждевременно
  19989. соединение со своей стороны, то nginx закрывал это соединение только
  19990. по истечении таймаута на передачу.
  19991. </para>
  19992. <para lang="en">
  19993. if the "epoll" method was used and a client closed a connection prematurely,
  19994. then nginx closed the connection after a send timeout only.
  19995. </para>
  19996. </change>

  19997. <change type="bugfix">
  19998. <para lang="ru">
  19999. ошибки "[alert] zero size buf" при работе с FastCGI-сервером.
  20000. </para>
  20001. <para lang="en">
  20002. the "[alert] zero size buf" error when FastCGI server was used.
  20003. </para>
  20004. </change>

  20005. <change>
  20006. <para lang="ru">
  20007. Исправление ошибок в директиве limit_zone.
  20008. </para>
  20009. <para lang="en">
  20010. Bugfixes in the "limit_zone" directive.
  20011. </para>
  20012. </change>

  20013. </changes>


  20014. <changes ver="0.5.7" date="2007-01-15">

  20015. <change type="feature">
  20016. <para lang="ru">
  20017. оптимизация использования памяти в ssl_session_cache.
  20018. </para>
  20019. <para lang="en">
  20020. the ssl_session_cache storage optimization.
  20021. </para>
  20022. </change>

  20023. <change>
  20024. <para lang="ru">
  20025. Исправление ошибок в директивах ssl_session_cache и limit_zone.
  20026. </para>
  20027. <para lang="en">
  20028. Bugfixes in the "ssl_session_cache" and "limit_zone" directives.
  20029. </para>
  20030. </change>

  20031. <change type="bugfix">
  20032. <para lang="ru">
  20033. на старте или во время переконфигурации происходил segmentation fault,
  20034. если директивы ssl_session_cache или limit_zone использовались
  20035. на 64-битных платформах.
  20036. </para>
  20037. <para lang="en">
  20038. the segmentation fault was occurred on start or while reconfiguration
  20039. if the "ssl_session_cache" or "limit_zone" directives were used
  20040. on 64-bit platforms.
  20041. </para>
  20042. </change>

  20043. <change type="bugfix">
  20044. <para lang="ru">
  20045. при использовании директив add_before_body или add_after_body происходил
  20046. segmentation fault, если в заголовке ответа нет строки "Content-Type".
  20047. </para>
  20048. <para lang="en">
  20049. a segmentation fault occurred if the "add_before_body" or "add_after_body"
  20050. directives were used and there was no "Content-Type" header line in response.
  20051. </para>
  20052. </change>

  20053. <change type="bugfix">
  20054. <para lang="ru">
  20055. библиотека OpenSSL всегда собиралась с поддержкой потоков.<br/>
  20056. Спасибо Дену Иванову.
  20057. </para>
  20058. <para lang="en">
  20059. the OpenSSL library was always built with the threads support.<br/>
  20060. Thanks to Den Ivanov.
  20061. </para>
  20062. </change>

  20063. <change type="bugfix">
  20064. <para lang="ru">
  20065. совместимость библиотеки PCRE-6.5+ и компилятора icc.
  20066. </para>
  20067. <para lang="en">
  20068. the PCRE-6.5+ library and the icc compiler compatibility.
  20069. </para>
  20070. </change>

  20071. </changes>


  20072. <changes ver="0.5.6" date="2007-01-09">

  20073. <change type="change">
  20074. <para lang="ru">
  20075. теперь модуль ngx_http_index_module игнорирует все методы,
  20076. кроме GET, HEAD и POST.
  20077. </para>
  20078. <para lang="en">
  20079. now the ngx_http_index_module ignores all methods except the GET, HEAD, and
  20080. POST methods.
  20081. </para>
  20082. </change>

  20083. <change type="feature">
  20084. <para lang="ru">
  20085. модуль ngx_http_limit_zone_module.
  20086. </para>
  20087. <para lang="en">
  20088. the ngx_http_limit_zone_module.
  20089. </para>
  20090. </change>

  20091. <change type="feature">
  20092. <para lang="ru">
  20093. переменная $binary_remote_addr.
  20094. </para>
  20095. <para lang="en">
  20096. the $binary_remote_addr variable.
  20097. </para>
  20098. </change>

  20099. <change type="feature">
  20100. <para lang="ru">
  20101. директивы ssl_session_cache модулей ngx_http_ssl_module и ngx_imap_ssl_module.
  20102. </para>
  20103. <para lang="en">
  20104. the "ssl_session_cache" directives
  20105. of the ngx_http_ssl_module and ngx_imap_ssl_module.
  20106. </para>
  20107. </change>

  20108. <change type="feature">
  20109. <para lang="ru">
  20110. метод DELETE поддерживает рекурсивное удаление.
  20111. </para>
  20112. <para lang="en">
  20113. the DELETE method supports recursive removal.
  20114. </para>
  20115. </change>

  20116. <change type="bugfix">
  20117. <para lang="ru">
  20118. при использовании $r->sendfile() byte-ranges передавались неверно.
  20119. </para>
  20120. <para lang="en">
  20121. the byte-ranges were transferred incorrectly if the $r->sendfile() was used.
  20122. </para>
  20123. </change>

  20124. </changes>


  20125. <changes ver="0.5.5" date="2006-12-24">

  20126. <change type="change">
  20127. <para lang="ru">
  20128. ключ -v больше не выводит информацию о компиляторе.
  20129. </para>
  20130. <para lang="en">
  20131. the -v switch does not show compiler information any more.
  20132. </para>
  20133. </change>

  20134. <change type="feature">
  20135. <para lang="ru">
  20136. ключ -V.
  20137. </para>
  20138. <para lang="en">
  20139. the -V switch.
  20140. </para>
  20141. </change>

  20142. <change type="feature">
  20143. <para lang="ru">
  20144. директива worker_rlimit_core поддерживает указание размера в K, M и G.
  20145. </para>
  20146. <para lang="en">
  20147. the "worker_rlimit_core" directive supports size in K, M, and G.
  20148. </para>
  20149. </change>

  20150. <change type="bugfix">
  20151. <para lang="ru">
  20152. модуль nginx.pm теперь может устанавливаться непривилегированным пользователем.
  20153. </para>
  20154. <para lang="en">
  20155. the nginx.pm module now could be installed by an unprivileged user.
  20156. </para>
  20157. </change>

  20158. <change type="bugfix">
  20159. <para lang="ru">
  20160. при использовании методов $r->request_body или $r->request_body_file мог
  20161. произойти segmentation fault.
  20162. </para>
  20163. <para lang="en">
  20164. a segmentation fault might occur if the $r->request_body or
  20165. $r->request_body_file methods were used.
  20166. </para>
  20167. </change>

  20168. <change type="bugfix">
  20169. <para lang="ru">
  20170. ошибок, специфичных для платформы ppc.
  20171. </para>
  20172. <para lang="en">
  20173. the ppc platform specific bugs.
  20174. </para>
  20175. </change>

  20176. </changes>


  20177. <changes ver="0.5.4" date="2006-12-15">

  20178. <change type="feature">
  20179. <para lang="ru">
  20180. директиву perl можно использовать внутри блока limit_except.
  20181. </para>
  20182. <para lang="en">
  20183. the "perl" directive may be used inside the "limit_except" block.
  20184. </para>
  20185. </change>

  20186. <change type="bugfix">
  20187. <para lang="ru">
  20188. модуль ngx_http_dav_module требовал строку "Date" в заголовке запроса
  20189. для метода DELETE.
  20190. </para>
  20191. <para lang="en">
  20192. the ngx_http_dav_module required the "Date" request header line
  20193. for the DELETE method.
  20194. </para>
  20195. </change>

  20196. <change type="bugfix">
  20197. <para lang="ru">
  20198. при использовании одного параметра в директиве dav_access nginx мог
  20199. сообщить об ошибке в конфигурации.
  20200. </para>
  20201. <para lang="en">
  20202. if one only parameter was used in the "dav_access" directive, then
  20203. nginx might report about configuration error.
  20204. </para>
  20205. </change>

  20206. <change type="bugfix">
  20207. <para lang="ru">
  20208. при использовании переменной $host мог произойти segmentation fault;
  20209. ошибка появилась в 0.4.14.
  20210. </para>
  20211. <para lang="en">
  20212. a segmentation fault might occur if the $host variable was used;
  20213. the bug had appeared in 0.4.14.
  20214. </para>
  20215. </change>

  20216. </changes>


  20217. <changes ver="0.5.3" date="2006-12-13">

  20218. <change type="feature">
  20219. <para lang="ru">
  20220. модуль ngx_http_perl_module поддерживает методы $r->status, $r->log_error
  20221. и $r->sleep.
  20222. </para>
  20223. <para lang="en">
  20224. the ngx_http_perl_module supports the $r->status, $r->log_error,
  20225. and $r->sleep methods.
  20226. </para>
  20227. </change>

  20228. <change type="feature">
  20229. <para lang="ru">
  20230. метод $r->variable поддерживает переменные, неописанные в конфигурации nginx'а.
  20231. </para>
  20232. <para lang="en">
  20233. the $r->variable method supports variables that do not exist in nginx
  20234. configuration.
  20235. </para>
  20236. </change>

  20237. <change type="bugfix">
  20238. <para lang="ru">
  20239. метод $r->has_request_body не работал.
  20240. </para>
  20241. <para lang="en">
  20242. the $r->has_request_body method did not work.
  20243. </para>
  20244. </change>

  20245. </changes>


  20246. <changes ver="0.5.2" date="2006-12-11">

  20247. <change type="bugfix">
  20248. <para lang="ru">
  20249. если в директивах proxy_pass использовалось имя, указанное в upstream,
  20250. то nginx пытался найти IP-адрес этого имени;
  20251. ошибка появилась в 0.5.1.
  20252. </para>
  20253. <para lang="en">
  20254. if the "proxy_pass" directive used the name of the "upstream" block,
  20255. then nginx tried to resolve the name;
  20256. the bug had appeared in 0.5.1.
  20257. </para>
  20258. </change>

  20259. </changes>


  20260. <changes ver="0.5.1" date="2006-12-11">

  20261. <change type="bugfix">
  20262. <para lang="ru">
  20263. директива post_action могла не работать после неудачного завершения запроса.
  20264. </para>
  20265. <para lang="en">
  20266. the "post_action" directive might not run after a unsuccessful completion
  20267. of a request.
  20268. </para>
  20269. </change>

  20270. <change type="workaround">
  20271. <para lang="ru">
  20272. обход ошибки в Eudora для Mac;
  20273. ошибка появилась в 0.4.11.<br/>
  20274. Спасибо Bron Gondwana.
  20275. </para>
  20276. <para lang="en">
  20277. for Eudora for Mac;
  20278. the bug had appeared in 0.4.11.<br/>
  20279. Thanks to Bron Gondwana.
  20280. </para>
  20281. </change>

  20282. <change type="bugfix">
  20283. <para lang="ru">
  20284. при указании в директиве fastcgi_pass имени описанного upstream'а выдавалось
  20285. сообщение "no port in upstream";
  20286. ошибка появилась в 0.5.0.
  20287. </para>
  20288. <para lang="en">
  20289. if the "upstream" name was used in the "fastcgi_pass", then the message
  20290. "no port in upstream" was issued;
  20291. the bug had appeared in 0.5.0.
  20292. </para>
  20293. </change>

  20294. <change type="bugfix">
  20295. <para lang="ru">
  20296. если в директивах proxy_pass и fastcgi_pass использовались одинаковых имена
  20297. серверов, но с разными портами, то эти директивы использовали первый
  20298. описанный порт;
  20299. ошибка появилась в 0.5.0.
  20300. </para>
  20301. <para lang="en">
  20302. if the "proxy_pass" and "fastcgi_pass" directives used the same servers but
  20303. different ports, then these directives uses the first described port;
  20304. the bug had appeared in 0.5.0.
  20305. </para>
  20306. </change>

  20307. <change type="bugfix">
  20308. <para lang="ru">
  20309. если в директивах proxy_pass и fastcgi_pass использовались unix domain сокеты,
  20310. то эти директивы использовали первый описанный сокет;
  20311. ошибка появилась в 0.5.0.
  20312. </para>
  20313. <para lang="en">
  20314. if the "proxy_pass" and "fastcgi_pass" directives used the unix domain sockets,
  20315. then these directives used first described socket;
  20316. the bug had appeared in 0.5.0.
  20317. </para>
  20318. </change>

  20319. <change type="bugfix">
  20320. <para lang="ru">
  20321. ngx_http_auth_basic_module игнорировал пользователя, если он был указан
  20322. в последней строке файла паролей и после пароля не было перевода строки,
  20323. возврата каретки или символа ":".
  20324. </para>
  20325. <para lang="en">
  20326. ngx_http_auth_basic_module ignored the user if it was in the last line in
  20327. the password file and there was no the carriage return, the line feed,
  20328. or the ":" symbol after the password.
  20329. </para>
  20330. </change>

  20331. <change type="bugfix">
  20332. <para lang="ru">
  20333. переменная $upstream_response_time могла быть равна "0.000", хотя время
  20334. обработки было больше 1 миллисекунды.
  20335. </para>
  20336. <para lang="en">
  20337. the $upstream_response_time variable might be equal to "0.000", although
  20338. response time was more than 1 millisecond.
  20339. </para>
  20340. </change>

  20341. </changes>


  20342. <changes ver="0.5.0" date="2006-12-04">

  20343. <change type="change">
  20344. <para lang="ru">
  20345. параметры в виде "%name" в директиве log_format больше не поддерживаются.
  20346. </para>
  20347. <para lang="en">
  20348. the parameters in the "%name" form in the "log_format" directive
  20349. are not supported anymore.
  20350. </para>
  20351. </change>

  20352. <change type="change">
  20353. <para lang="ru">
  20354. директивы proxy_upstream_max_fails, proxy_upstream_fail_timeout,
  20355. fastcgi_upstream_max_fails, и fastcgi_upstream_fail_timeout,
  20356. memcached_upstream_max_fails и memcached_upstream_fail_timeout
  20357. больше не поддерживаются.
  20358. </para>
  20359. <para lang="en">
  20360. the "proxy_upstream_max_fails", "proxy_upstream_fail_timeout",
  20361. "fastcgi_upstream_max_fails", "fastcgi_upstream_fail_timeout",
  20362. "memcached_upstream_max_fails", and "memcached_upstream_fail_timeout"
  20363. directives are not supported anymore.
  20364. </para>
  20365. </change>

  20366. <change type="feature">
  20367. <para lang="ru">
  20368. директива server в блоке upstream поддерживает параметры
  20369. max_fails, fail_timeout и down.
  20370. </para>
  20371. <para lang="en">
  20372. the "server" directive in the "upstream" context supports
  20373. the "max_fails", "fail_timeout", and "down" parameters.
  20374. </para>
  20375. </change>

  20376. <change type="feature">
  20377. <para lang="ru">
  20378. директива ip_hash в блоке upstream.
  20379. </para>
  20380. <para lang="en">
  20381. the "ip_hash" directive inside the "upstream" block.
  20382. </para>
  20383. </change>

  20384. <change type="feature">
  20385. <para lang="ru">
  20386. статус WAIT в строке "Auth-Status" в заголовке ответа сервера аутентификации
  20387. IMAP/POP3 прокси.
  20388. </para>
  20389. <para lang="en">
  20390. the WAIT status in the "Auth-Status" header line of the IMAP/POP3 proxy
  20391. authentication server response.
  20392. </para>
  20393. </change>

  20394. <change type="bugfix">
  20395. <para lang="ru">
  20396. nginx не собирался на 64-битных платформах;
  20397. ошибка появилась в 0.4.14.
  20398. </para>
  20399. <para lang="en">
  20400. nginx could not be built on 64-bit platforms;
  20401. the bug had appeared in 0.4.14.
  20402. </para>
  20403. </change>

  20404. </changes>


  20405. <changes ver="0.4.14" date="2006-11-27">

  20406. <change type="feature">
  20407. <para lang="ru">
  20408. директива proxy_pass_error_message в IMAP/POP3 прокси.
  20409. </para>
  20410. <para lang="en">
  20411. the "proxy_pass_error_message" directive in IMAP/POP3 proxy.
  20412. </para>
  20413. </change>

  20414. <change type="feature">
  20415. <para lang="ru">
  20416. теперь configure определяет библиотеку PCRE на FreeBSD, Linux и NetBSD.
  20417. </para>
  20418. <para lang="en">
  20419. now configure detects system PCRE library on FreeBSD, Linux, and NetBSD.
  20420. </para>
  20421. </change>

  20422. <change type="bugfix">
  20423. <para lang="ru">
  20424. ngx_http_perl_module не работал с перлом, собранным с поддержкой потоков;
  20425. ошибка появилась в 0.3.38.
  20426. </para>
  20427. <para lang="en">
  20428. ngx_http_perl_module did not work with perl built with the threads support;
  20429. the bug had appeared in 0.3.38.
  20430. </para>
  20431. </change>

  20432. <change type="bugfix">
  20433. <para lang="ru">
  20434. ngx_http_perl_module не работал корректно, если перл вызывался рекурсивно.
  20435. </para>
  20436. <para lang="en">
  20437. ngx_http_perl_module did not work if perl was called recursively.
  20438. </para>
  20439. </change>

  20440. <change type="bugfix">
  20441. <para lang="ru">
  20442. nginx игнорировал имя сервера в строке запроса.
  20443. </para>
  20444. <para lang="en">
  20445. nginx ignored a host name in a request line.
  20446. </para>
  20447. </change>

  20448. <change type="bugfix">
  20449. <para lang="ru">
  20450. если FastCGI сервер передавал много в stderr,
  20451. то рабочий процесс мог зациклиться.
  20452. </para>
  20453. <para lang="en">
  20454. a worker process may got caught in an endless loop,
  20455. if a FastCGI server sent too many data to the stderr.
  20456. </para>
  20457. </change>

  20458. <change type="bugfix">
  20459. <para lang="ru">
  20460. при изменении системного времени переменная $upstream_response_time
  20461. могла быть отрицательной.
  20462. </para>
  20463. <para lang="en">
  20464. the $upstream_response_time variable may be negative if the system time
  20465. was changed backward.
  20466. </para>
  20467. </change>

  20468. <change type="bugfix">
  20469. <para lang="ru">
  20470. при использовании POP3 серверу аутентификации IMAP/POP3 прокси
  20471. не передавался параметр Auth-Login-Attempt.
  20472. </para>
  20473. <para lang="en">
  20474. the "Auth-Login-Attempt" parameter was not sent to
  20475. IMAP/POP3 proxy authentication server when POP3 was used.
  20476. </para>
  20477. </change>

  20478. <change type="bugfix">
  20479. <para lang="ru">
  20480. при ошибке соединения с сервером аутентификации IMAP/POP3 прокси
  20481. мог произойти segmentation fault.
  20482. </para>
  20483. <para lang="en">
  20484. a segmentation fault might occur if connect to IMAP/POP3 proxy
  20485. authentication server failed.
  20486. </para>
  20487. </change>

  20488. </changes>


  20489. <changes ver="0.4.13" date="2006-11-15">

  20490. <change type="feature">
  20491. <para lang="ru">
  20492. директиву proxy_pass можно использовать внутри блока limit_except.
  20493. </para>
  20494. <para lang="en">
  20495. the "proxy_pass" directive may be used inside the "limit_except" block.
  20496. </para>
  20497. </change>

  20498. <change type="feature">
  20499. <para lang="ru">
  20500. директива limit_except поддерживает все WebDAV методы.
  20501. </para>
  20502. <para lang="en">
  20503. the "limit_except" directive supports all WebDAV methods.
  20504. </para>
  20505. </change>

  20506. <change type="bugfix">
  20507. <para lang="ru">
  20508. при использовании директивы add_before_body без директивы add_after_body
  20509. ответ передавался не полностью.
  20510. </para>
  20511. <para lang="en">
  20512. if the "add_before_body" directive was used without
  20513. the "add_after_body" directive, then a response did not transferred complete.
  20514. </para>
  20515. </change>

  20516. <change type="bugfix">
  20517. <para lang="ru">
  20518. большое тело запроса не принималось, если использовались метод epoll
  20519. и deferred accept().
  20520. </para>
  20521. <para lang="en">
  20522. a large request body did not receive if the epoll method
  20523. and the deferred accept() were used.
  20524. </para>
  20525. </change>

  20526. <change type="bugfix">
  20527. <para lang="ru">
  20528. для ответов модуля ngx_http_autoindex_module не выставлялась кодировка;
  20529. ошибка появилась в 0.3.50.
  20530. </para>
  20531. <para lang="en">
  20532. a charset could not be set for ngx_http_autoindex_module responses;
  20533. the bug had appeared in 0.3.50.
  20534. </para>
  20535. </change>

  20536. <change type="bugfix">
  20537. <para lang="ru">
  20538. ошибки "[alert] zero size buf" при работе с FastCGI-сервером;
  20539. </para>
  20540. <para lang="en">
  20541. the "[alert] zero size buf" error when FastCGI server was used;
  20542. </para>
  20543. </change>

  20544. <change type="bugfix">
  20545. <para lang="ru">
  20546. параметр конфигурации --group= игнорировался.<br/>
  20547. Спасибо Thomas Moschny.
  20548. </para>
  20549. <para lang="en">
  20550. the --group= configuration parameter was ignored.<br/>
  20551. Thanks to Thomas Moschny.
  20552. </para>
  20553. </change>

  20554. <change type="bugfix">
  20555. <para lang="ru">
  20556. 50-й подзапрос в SSI ответе не работал;
  20557. ошибка появилась в 0.3.50.
  20558. </para>
  20559. <para lang="en">
  20560. the 50th subrequest in SSI response did not work;
  20561. the bug had appeared in 0.3.50.
  20562. </para>
  20563. </change>

  20564. </changes>


  20565. <changes ver="0.4.12" date="2006-10-31">

  20566. <change type="feature">
  20567. <para lang="ru">
  20568. модуль ngx_http_perl_module поддерживает метод $r->variable.
  20569. </para>
  20570. <para lang="en">
  20571. the ngx_http_perl_module supports the $r->variable method.
  20572. </para>
  20573. </change>

  20574. <change type="bugfix">
  20575. <para lang="ru">
  20576. при включении в ответ большого статического файла с помощью SSI
  20577. ответ мог передаваться не полностью.
  20578. </para>
  20579. <para lang="en">
  20580. if a big static file was included using SSI in a response,
  20581. then the response may be transferred incomplete.
  20582. </para>
  20583. </change>

  20584. <change type="bugfix">
  20585. <para lang="ru">
  20586. nginx не убирал "#fragment" в URI.
  20587. </para>
  20588. <para lang="en">
  20589. nginx did not omit the "#fragment" part in URI.
  20590. </para>
  20591. </change>

  20592. </changes>


  20593. <changes ver="0.4.11" date="2006-10-25">

  20594. <change type="feature">
  20595. <para lang="ru">
  20596. POP3 прокси поддерживает AUTH LOGIN PLAIN и CRAM-MD5.
  20597. </para>
  20598. <para lang="en">
  20599. the POP3 proxy supports the AUTH LOGIN PLAIN and CRAM-MD5.
  20600. </para>
  20601. </change>

  20602. <change type="feature">
  20603. <para lang="ru">
  20604. модуль ngx_http_perl_module поддерживает метод $r->allow_ranges.
  20605. </para>
  20606. <para lang="en">
  20607. the ngx_http_perl_module supports the $r->allow_ranges method.
  20608. </para>
  20609. </change>

  20610. <change type="bugfix">
  20611. <para lang="ru">
  20612. при включённой поддержке команды APOP в POP3 прокси могли
  20613. не работать команды USER/PASS;
  20614. ошибка появилась в 0.4.10.
  20615. </para>
  20616. <para lang="en">
  20617. if the APOP was enabled in the POP3 proxy, then the USER/PASS commands
  20618. might not work;
  20619. the bug had appeared in 0.4.10.
  20620. </para>
  20621. </change>

  20622. </changes>


  20623. <changes ver="0.4.10" date="2006-10-23">

  20624. <change type="feature">
  20625. <para lang="ru">
  20626. POP3 прокси поддерживает APOP.
  20627. </para>
  20628. <para lang="en">
  20629. the POP3 proxy supports the APOP command.
  20630. </para>
  20631. </change>

  20632. <change type="bugfix">
  20633. <para lang="ru">
  20634. при использовании методов select, poll и /dev/poll во время ожидания
  20635. ответа от сервера аутентификации IMAP/POP3 прокси нагружал процессор.
  20636. </para>
  20637. <para lang="en">
  20638. if the select, poll or /dev/poll methods were used, then while
  20639. waiting authentication server response the IMAP/POP3 proxy hogged CPU.
  20640. </para>
  20641. </change>

  20642. <change type="bugfix">
  20643. <para lang="ru">
  20644. при использовании переменной $server_addr в директиве map мог
  20645. произойти segmentation fault.
  20646. </para>
  20647. <para lang="en">
  20648. a segmentation fault might occur if the $server_addr variable was used
  20649. in the "map" directive.
  20650. </para>
  20651. </change>

  20652. <change type="bugfix">
  20653. <para lang="ru">
  20654. модуль ngx_http_flv_module не поддерживал byte ranges для полных ответов;
  20655. ошибка появилась в 0.4.7.
  20656. </para>
  20657. <para lang="en">
  20658. the ngx_http_flv_module did not support the byte ranges for full responses;
  20659. the bug had appeared in 0.4.7.
  20660. </para>
  20661. </change>

  20662. <change type="bugfix">
  20663. <para lang="ru">
  20664. nginx не собирался на Debian amd64;
  20665. ошибка появилась в 0.4.9.
  20666. </para>
  20667. <para lang="en">
  20668. nginx could not be built on Debian amd64;
  20669. the bug had appeared in 0.4.9.
  20670. </para>
  20671. </change>

  20672. </changes>


  20673. <changes ver="0.4.9" date="2006-10-13">

  20674. <change type="feature">
  20675. <para lang="ru">
  20676. параметр set в команде SSI include.
  20677. </para>
  20678. <para lang="en">
  20679. the "set" parameter in the "include" SSI command.
  20680. </para>
  20681. </change>

  20682. <change type="feature">
  20683. <para lang="ru">
  20684. модуль ngx_http_perl_module теперь проверяет версию модуля nginx.pm.
  20685. </para>
  20686. <para lang="en">
  20687. the ngx_http_perl_module now tests the nginx.pm module version.
  20688. </para>
  20689. </change>

  20690. </changes>


  20691. <changes ver="0.4.8" date="2006-10-11">

  20692. <change type="bugfix">
  20693. <para lang="ru">
  20694. если до команды SSI include с параметром wait выполнялась ещё
  20695. одна команда SSI include, то параметр wait мог не работать.
  20696. </para>
  20697. <para lang="en">
  20698. if an "include" SSI command were before another "include" SSI command
  20699. with a "wait" parameter, then the "wait" parameter might not work.
  20700. </para>
  20701. </change>

  20702. <change type="bugfix">
  20703. <para lang="ru">
  20704. модуль ngx_http_flv_module добавлял FLV-заголовок для полных ответов.<br/>
  20705. Спасибо Алексею Ковырину.
  20706. </para>
  20707. <para lang="en">
  20708. the ngx_http_flv_module added the FLV header to the full responses.<br/>
  20709. Thanks to Alexey Kovyrin.
  20710. </para>
  20711. </change>

  20712. </changes>


  20713. <changes ver="0.4.7" date="2006-10-10">

  20714. <change type="feature">
  20715. <para lang="ru">
  20716. модуль ngx_http_flv_module.
  20717. </para>
  20718. <para lang="en">
  20719. the ngx_http_flv_module.
  20720. </para>
  20721. </change>

  20722. <change type="feature">
  20723. <para lang="ru">
  20724. переменная $request_body_file.
  20725. </para>
  20726. <para lang="en">
  20727. the $request_body_file variable.
  20728. </para>
  20729. </change>

  20730. <change type="feature">
  20731. <para lang="ru">
  20732. директивы charset и source_charset поддерживают переменные.
  20733. </para>
  20734. <para lang="en">
  20735. the "charset" and "source_charset" directives support the variables.
  20736. </para>
  20737. </change>

  20738. <change type="bugfix">
  20739. <para lang="ru">
  20740. если до команды SSI include с параметром wait выполнялась ещё
  20741. одна команда SSI include, то параметр wait мог не работать.
  20742. </para>
  20743. <para lang="en">
  20744. if an "include" SSI command were before another "include" SSI command
  20745. with a "wait" parameter, then the "wait" parameter might not work.
  20746. </para>
  20747. </change>

  20748. <change type="bugfix">
  20749. <para lang="ru">
  20750. при использовании директивы "proxy_buffering off" или при работе
  20751. с memcached соединения могли не закрываться по таймауту.
  20752. </para>
  20753. <para lang="en">
  20754. if the "proxy_buffering off" directive was used or while working with
  20755. memcached the connections might not be closed on timeout.
  20756. </para>
  20757. </change>

  20758. <change type="bugfix">
  20759. <para lang="ru">
  20760. nginx не запускался на 64-битных платформах, отличных от amd64, sparc64 и ppc64.
  20761. </para>
  20762. <para lang="en">
  20763. nginx did not run on 64-bit platforms except amd64, sparc64, and ppc64.
  20764. </para>
  20765. </change>

  20766. </changes>


  20767. <changes ver="0.4.6" date="2006-10-06">

  20768. <change type="bugfix">
  20769. <para lang="ru">
  20770. nginx не запускался на 64-битных платформах, отличных от amd64, sparc64 и ppc64.
  20771. </para>
  20772. <para lang="en">
  20773. nginx did not run on 64-bit platforms except amd64, sparc64, and ppc64.
  20774. </para>
  20775. </change>

  20776. <change type="bugfix">
  20777. <para lang="ru">
  20778. при запросе версии HTTP/1.1 nginx передавал ответ chunk'ами,
  20779. если длина ответа в методе $r->headers_out("Content-Length", ...)
  20780. была задана текстовой строкой.
  20781. </para>
  20782. <para lang="en">
  20783. nginx sent the chunked response for HTTP/1.1 request,<br/>
  20784. if its length was set by text string in
  20785. the $r->headers_out("Content-Length", ...) method.
  20786. </para>
  20787. </change>

  20788. <change type="bugfix">
  20789. <para lang="ru">
  20790. после перенаправления ошибки с помощью директивы error_page любая директива
  20791. модуля ngx_http_rewrite_module возвращала эту ошибку;
  20792. ошибка появилась в 0.4.4.
  20793. </para>
  20794. <para lang="en">
  20795. after redirecting error by an "error_page" directive
  20796. any ngx_http_rewrite_module directive returned this error code;
  20797. the bug had appeared in 0.4.4.
  20798. </para>
  20799. </change>

  20800. </changes>


  20801. <changes ver="0.4.5" date="2006-10-02">

  20802. <change type="bugfix">
  20803. <para lang="ru">
  20804. nginx не собирался на Linux и Solaris;
  20805. ошибка появилась в 0.4.4.
  20806. </para>
  20807. <para lang="en">
  20808. nginx could not be built on Linux and Solaris;
  20809. the bug had appeared in 0.4.4.
  20810. </para>
  20811. </change>

  20812. </changes>


  20813. <changes ver="0.4.4" date="2006-10-02">

  20814. <change type="feature">
  20815. <para lang="ru">
  20816. переменная $scheme.
  20817. </para>
  20818. <para lang="en">
  20819. the $scheme variable.
  20820. </para>
  20821. </change>

  20822. <change type="feature">
  20823. <para lang="ru">
  20824. директива expires поддерживает параметр max.
  20825. </para>
  20826. <para lang="en">
  20827. the "expires" directive supports the "max" parameter.
  20828. </para>
  20829. </change>

  20830. <change type="feature">
  20831. <para lang="ru">
  20832. директива include поддерживает маску "*".<br/>
  20833. Спасибо Jonathan Dance.
  20834. </para>
  20835. <para lang="en">
  20836. the "include" directive supports the "*" mask.<br/>
  20837. Thanks to Jonathan Dance.
  20838. </para>
  20839. </change>

  20840. <change type="bugfix">
  20841. <para lang="ru">
  20842. директива return всегда изменяла код ответа, перенаправленного
  20843. директивой error_page.
  20844. </para>
  20845. <para lang="en">
  20846. the "return" directive always overrode the "error_page" response code
  20847. redirected by the "error_page" directive.
  20848. </para>
  20849. </change>

  20850. <change type="bugfix">
  20851. <para lang="ru">
  20852. происходил segmentation fault, если в методе PUT передавалось
  20853. тело нулевой длины.
  20854. </para>
  20855. <para lang="en">
  20856. a segmentation fault occurred if zero-length body was in PUT method.
  20857. </para>
  20858. </change>

  20859. <change type="bugfix">
  20860. <para lang="ru">
  20861. при использовании переменных в директиве proxy_redirect редирект
  20862. изменялся неверно.
  20863. </para>
  20864. <para lang="en">
  20865. the redirect was changed incorrectly if the variables were used
  20866. in the "proxy_redirect" directive.
  20867. </para>
  20868. </change>

  20869. </changes>


  20870. <changes ver="0.4.3" date="2006-09-26">

  20871. <change type="change">
  20872. <para lang="ru">
  20873. ошибку 499 теперь нельзя перенаправить с помощью директивы error_page.
  20874. </para>
  20875. <para lang="en">
  20876. now the 499 error could not be redirected using an "error_page" directive.
  20877. </para>
  20878. </change>

  20879. <change type="feature">
  20880. <para lang="ru">
  20881. поддержка Solaris 10 event ports.
  20882. </para>
  20883. <para lang="en">
  20884. the Solaris 10 event ports support.
  20885. </para>
  20886. </change>

  20887. <change type="feature">
  20888. <para lang="ru">
  20889. модуль ngx_http_browser_module.
  20890. </para>
  20891. <para lang="en">
  20892. the ngx_http_browser_module.
  20893. </para>
  20894. </change>

  20895. <change type="bugfix">
  20896. <para lang="ru">
  20897. при перенаправлении ошибки 400 проксированному серверу
  20898. помощью директивы error_page мог произойти segmentation fault.
  20899. </para>
  20900. <para lang="en">
  20901. a segmentation fault may occur while redirecting the 400 error
  20902. to the proxied server using a "proxy_pass" directive.
  20903. </para>
  20904. </change>

  20905. <change type="bugfix">
  20906. <para lang="ru">
  20907. происходил segmentation fault, если в директиве proxy_pass использовался
  20908. unix domain сокет;
  20909. ошибка появилась в 0.3.47.
  20910. </para>
  20911. <para lang="en">
  20912. a segmentation fault occurred if an unix domain socket was used in
  20913. a "proxy_pass" directive;
  20914. the bug had appeared in 0.3.47.
  20915. </para>
  20916. </change>

  20917. <change type="bugfix">
  20918. <para lang="ru">
  20919. SSI не работал с ответами memcached и небуферизированными проксированными
  20920. ответами.
  20921. </para>
  20922. <para lang="en">
  20923. SSI did work with memcached and nonbuffered responses.
  20924. </para>
  20925. </change>

  20926. <change type="workaround">
  20927. <para lang="ru">
  20928. обход ошибки PAUSE hardware capability в Sun Studio.
  20929. </para>
  20930. <para lang="en">
  20931. of the Sun Studio PAUSE hardware capability bug.
  20932. </para>
  20933. </change>

  20934. </changes>


  20935. <changes ver="0.4.2" date="2006-09-14">

  20936. <change type="bugfix">
  20937. <para lang="ru">
  20938. убрана поддержка флага O_NOATIME на Linux;
  20939. ошибка появилась в 0.4.1.
  20940. </para>
  20941. <para lang="en">
  20942. the O_NOATIME flag support on Linux was canceled;
  20943. the bug had appeared in 0.4.1.
  20944. </para>
  20945. </change>

  20946. </changes>


  20947. <changes ver="0.4.1" date="2006-09-14">

  20948. <change type="bugfix">
  20949. <para lang="ru">
  20950. совместимость с DragonFlyBSD.<br/>
  20951. Спасибо Павлу Назарову.
  20952. </para>
  20953. <para lang="en">
  20954. the DragonFlyBSD compatibility.<br/>
  20955. Thanks to Pavel Nazarov.
  20956. </para>
  20957. </change>

  20958. <change type="workaround">
  20959. <para lang="ru">
  20960. обход ошибки в sendfile() в 64-битном Linux при передаче файлов больше 2G.
  20961. </para>
  20962. <para lang="en">
  20963. of bug in 64-bit Linux sendfile(), when file is more than 2G.
  20964. </para>
  20965. </change>

  20966. <change type="feature">
  20967. <para lang="ru">
  20968. теперь на Linux nginx для статических запросов использует флаг O_NOATIME.<br/>
  20969. Спасибо Yusuf Goolamabbas.
  20970. </para>
  20971. <para lang="en">
  20972. now on Linux nginx uses O_NOATIME flag for static requests.<br/>
  20973. Thanks to Yusuf Goolamabbas.
  20974. </para>
  20975. </change>

  20976. </changes>


  20977. <changes ver="0.4.0" date="2006-08-30">

  20978. <change>
  20979. <para lang="ru">
  20980. Изменение во внутреннем API: инициализация модулей HTTP перенесена из фазы
  20981. init module в фазу HTTP postconfiguration.
  20982. </para>
  20983. <para lang="en">
  20984. Change in internal API: the HTTP modules initialization was moved
  20985. from the init module phase to the HTTP postconfiguration phase.
  20986. </para>
  20987. </change>

  20988. <change type="change">
  20989. <para lang="ru">
  20990. теперь тело запроса в модуле ngx_http_perl_module не считывается
  20991. заранее: нужно явно инициировать чтение с помощью метода $r->has_request_body.
  20992. </para>
  20993. <para lang="en">
  20994. now the request body is not read beforehand for the ngx_http_perl_module:
  20995. it's required to start the reading using the $r->has_request_body method.
  20996. </para>
  20997. </change>

  20998. <change type="feature">
  20999. <para lang="ru">
  21000. модуль ngx_http_perl_module поддерживает код возврата DECLINED.
  21001. </para>
  21002. <para lang="en">
  21003. the ngx_http_perl_module supports the DECLINED return code.
  21004. </para>
  21005. </change>

  21006. <change type="feature">
  21007. <para lang="ru">
  21008. модуль ngx_http_dav_module поддерживает входящую строку заголовка "Date"
  21009. для метода PUT.
  21010. </para>
  21011. <para lang="en">
  21012. the ngx_http_dav_module supports the incoming "Date" header line
  21013. for the PUT method.
  21014. </para>
  21015. </change>

  21016. <change type="feature">
  21017. <para lang="ru">
  21018. директива ssi работает внутри блока if.
  21019. </para>
  21020. <para lang="en">
  21021. the "ssi" directive is available inside the "if" block.
  21022. </para>
  21023. </change>

  21024. <change type="bugfix">
  21025. <para lang="ru">
  21026. происходил segmentation fault, если в директиве index использовалась
  21027. переменные и при этом первое имя индексного файла было без переменных;
  21028. ошибка появилась в 0.1.29.
  21029. </para>
  21030. <para lang="en">
  21031. a segmentation fault occurred if there was an "index" directive with
  21032. variables and the first index name was without variables;
  21033. the bug had appeared in 0.1.29.
  21034. </para>
  21035. </change>

  21036. </changes>


  21037. <changes ver="0.3.61" date="2006-08-28">

  21038. <change type="change">
  21039. <para lang="ru">
  21040. директива tcp_nodelay теперь по умолчанию включена.
  21041. </para>
  21042. <para lang="en">
  21043. now the "tcp_nodelay" directive is turned on by default.
  21044. </para>
  21045. </change>

  21046. <change type="feature">
  21047. <para lang="ru">
  21048. директива msie_refresh.
  21049. </para>
  21050. <para lang="en">
  21051. the "msie_refresh" directive.
  21052. </para>
  21053. </change>

  21054. <change type="feature">
  21055. <para lang="ru">
  21056. директива recursive_error_pages.
  21057. </para>
  21058. <para lang="en">
  21059. the "recursive_error_pages" directive.
  21060. </para>
  21061. </change>

  21062. <change type="bugfix">
  21063. <para lang="ru">
  21064. директива rewrite возвращала неправильный редирект, если редирект
  21065. включал в себя выделенные закодированные символы из оригинального URI.
  21066. </para>
  21067. <para lang="en">
  21068. the "rewrite" directive returned incorrect redirect, if the redirect
  21069. had the captured escaped symbols from original URI.
  21070. </para>
  21071. </change>

  21072. </changes>


  21073. <changes ver="0.3.60" date="2006-08-18">

  21074. <change type="bugfix">
  21075. <para lang="ru">
  21076. во время перенаправления ошибки рабочий процесс мог зациклиться;
  21077. ошибка появилась в 0.3.59.
  21078. </para>
  21079. <para lang="en">
  21080. a worker process may got caught in an endless loop
  21081. while an error redirection;
  21082. the bug had appeared in 0.3.59.
  21083. </para>
  21084. </change>

  21085. </changes>


  21086. <changes ver="0.3.59" date="2006-08-16">

  21087. <change type="feature">
  21088. <para lang="ru">
  21089. теперь можно делать несколько перенаправлений через директиву error_page.
  21090. </para>
  21091. <para lang="en">
  21092. now is possible to do several redirection using the "error_page" directive.
  21093. </para>
  21094. </change>

  21095. <change type="bugfix">
  21096. <para lang="ru">
  21097. директива dav_access не поддерживала три параметра.
  21098. </para>
  21099. <para lang="en">
  21100. the "dav_access" directive did not support three parameters.
  21101. </para>
  21102. </change>

  21103. <change type="bugfix">
  21104. <para lang="ru">
  21105. директива error_page не изменяла строку "Content-Type"
  21106. после перенаправления с помощью "X-Accel-Redirect";
  21107. ошибка появилась в 0.3.58.
  21108. </para>
  21109. <para lang="en">
  21110. the "error_page" directive did not changes the "Content-Type" header line
  21111. after the "X-Accel-Redirect" was used;
  21112. the bug had appeared in 0.3.58.
  21113. </para>
  21114. </change>

  21115. </changes>


  21116. <changes ver="0.3.58" date="2006-08-14">

  21117. <change type="feature">
  21118. <para lang="ru">
  21119. директива error_page поддерживает переменные.
  21120. </para>
  21121. <para lang="en">
  21122. the "error_page" directive supports the variables.
  21123. </para>
  21124. </change>

  21125. <change type="change">
  21126. <para lang="ru">
  21127. теперь на Linux используется интерфейс procfs вместо sysctl.
  21128. </para>
  21129. <para lang="en">
  21130. now the procfs interface instead of sysctl is used on Linux.
  21131. </para>
  21132. </change>

  21133. <change type="change">
  21134. <para lang="ru">
  21135. теперь при использовании "X-Accel-Redirect" строка "Content-Type" наследуется
  21136. из первоначального ответа.
  21137. </para>
  21138. <para lang="en">
  21139. now the "Content-Type" header line is inherited from first response
  21140. when the "X-Accel-Redirect" was used.
  21141. </para>
  21142. </change>

  21143. <change type="bugfix">
  21144. <para lang="ru">
  21145. директива error_page не перенаправляла ошибку 413.
  21146. </para>
  21147. <para lang="en">
  21148. the "error_page" directive did not redirect the 413 error.
  21149. </para>
  21150. </change>

  21151. <change type="bugfix">
  21152. <para lang="ru">
  21153. завершающий "?" не удалял старые аргументы, если в переписанном URI
  21154. не было новых аргументов.
  21155. </para>
  21156. <para lang="en">
  21157. the trailing "?" did not remove old arguments if no new arguments
  21158. were added to a rewritten URI.
  21159. </para>
  21160. </change>

  21161. <change type="bugfix">
  21162. <para lang="ru">
  21163. nginx не запускался на 64-битной FreeBSD 7.0-CURRENT.
  21164. </para>
  21165. <para lang="en">
  21166. nginx could not run on 64-bit FreeBSD 7.0-CURRENT.
  21167. </para>
  21168. </change>

  21169. </changes>


  21170. <changes ver="0.3.57" date="2006-08-09">

  21171. <change type="feature">
  21172. <para lang="ru">
  21173. переменная $ssl_client_serial.
  21174. </para>
  21175. <para lang="en">
  21176. the $ssl_client_serial variable.
  21177. </para>
  21178. </change>

  21179. <change type="bugfix">
  21180. <para lang="ru">
  21181. в операторе "!-e" в директиве if.<br/>
  21182. Спасибо Андриану Буданцову.
  21183. </para>
  21184. <para lang="en">
  21185. in the "!-e" operator of the "if" directive.<br/>
  21186. Thanks to Andrian Budanstov.
  21187. </para>
  21188. </change>

  21189. <change type="bugfix">
  21190. <para lang="ru">
  21191. при проверке клиентского сертификата nginx не передавал клиенту
  21192. информацию о требуемых сертификатах.
  21193. </para>
  21194. <para lang="en">
  21195. while a client certificate verification nginx did not send to a client
  21196. the required certificates information.
  21197. </para>
  21198. </change>

  21199. <change type="bugfix">
  21200. <para lang="ru">
  21201. переменная $document_root не поддерживала переменные в директиве root.
  21202. </para>
  21203. <para lang="en">
  21204. the $document_root variable did not support the variables in the "root"
  21205. directive.
  21206. </para>
  21207. </change>

  21208. </changes>


  21209. <changes ver="0.3.56" date="2006-08-04">

  21210. <change type="feature">
  21211. <para lang="ru">
  21212. директива dav_access.
  21213. </para>
  21214. <para lang="en">
  21215. the "dav_access" directive.
  21216. </para>
  21217. </change>

  21218. <change type="feature">
  21219. <para lang="ru">
  21220. директива if поддерживает операторы "-d", "!-d", "-e", "!-e", "-x" и "!-x".
  21221. </para>
  21222. <para lang="en">
  21223. the "if" directive supports the "-d", "!-d", "-e", "!-e", "-x", and "!-x"
  21224. operators.
  21225. </para>
  21226. </change>

  21227. <change type="bugfix">
  21228. <para lang="ru">
  21229. при записи в access_log некоторых передаваемых клиенту строк заголовков
  21230. происходил segmentation fault, если запрос возвращал редирект.
  21231. </para>
  21232. <para lang="en">
  21233. a segmentation fault occurred if a request returned a redirect and
  21234. some sent to client header lines were logged in the access log.
  21235. </para>
  21236. </change>

  21237. </changes>


  21238. <changes ver="0.3.55" date="2006-07-28">

  21239. <change type="feature">
  21240. <para lang="ru">
  21241. параметр stub в команде SSI include.
  21242. </para>
  21243. <para lang="en">
  21244. the "stub" parameter in the "include" SSI command.
  21245. </para>
  21246. </change>

  21247. <change type="feature">
  21248. <para lang="ru">
  21249. команда SSI block.
  21250. </para>
  21251. <para lang="en">
  21252. the "block" SSI command.
  21253. </para>
  21254. </change>

  21255. <change type="feature">
  21256. <para lang="ru">
  21257. скрипт unicode2nginx добавлен в contrib.
  21258. </para>
  21259. <para lang="en">
  21260. the unicode2nginx script was added to contrib.
  21261. </para>
  21262. </change>

  21263. <change type="bugfix">
  21264. <para lang="ru">
  21265. если root был задан только переменной, то корень задавался
  21266. относительно префикса сервера.
  21267. </para>
  21268. <para lang="en">
  21269. if a "root" was specified by variable only, then the root was relative
  21270. to a server prefix.
  21271. </para>
  21272. </change>

  21273. <change type="bugfix">
  21274. <para lang="ru">
  21275. если в запросе был "//" или "/.", и после этого закодированные
  21276. символы в виде "%XX", то проксируемый запрос передавался незакодированным.
  21277. </para>
  21278. <para lang="en">
  21279. if the request contained "//" or "/./" and escaped symbols after them,
  21280. then the proxied request was sent unescaped.
  21281. </para>
  21282. </change>

  21283. <change type="bugfix">
  21284. <para lang="ru">
  21285. метод $r->header_in("Cookie") модуля ngx_http_perl_module теперь возвращает
  21286. все строки "Cookie" в заголовке запроса.
  21287. </para>
  21288. <para lang="en">
  21289. the $r->header_in("Cookie") of the ngx_http_perl_module now returns
  21290. all "Cookie" header lines.
  21291. </para>
  21292. </change>

  21293. <change type="bugfix">
  21294. <para lang="ru">
  21295. происходил segmentation fault, если использовался
  21296. <nobr>"client_body_in_file_only on"</nobr>
  21297. и делался переход к следующему бэкенду.
  21298. </para>
  21299. <para lang="en">
  21300. a segmentation fault occurred if <nobr>"client_body_in_file_only on"</nobr>
  21301. was used and nginx switched to a next upstream.
  21302. </para>
  21303. </change>

  21304. <change type="bugfix">
  21305. <para lang="ru">
  21306. при некоторых условиях во время переконфигурации коды символов
  21307. внутри директивы charset_map могли считаться неверными;
  21308. ошибка появилась в 0.3.50.
  21309. </para>
  21310. <para lang="en">
  21311. on some condition while reconfiguration character codes
  21312. inside the "charset_map" may be treated invalid;
  21313. the bug had appeared in 0.3.50.
  21314. </para>
  21315. </change>

  21316. </changes>


  21317. <changes ver="0.3.54" date="2006-07-11">

  21318. <change type="feature">
  21319. <para lang="ru">
  21320. nginx теперь записывает в лог информацию о подзапросах.
  21321. </para>
  21322. <para lang="en">
  21323. nginx now logs the subrequest information to the error log.
  21324. </para>
  21325. </change>

  21326. <change type="feature">
  21327. <para lang="ru">
  21328. директивы proxy_next_upstream, fastcgi_next_upstream и memcached_next_upstream
  21329. поддерживают параметр off.
  21330. </para>
  21331. <para lang="en">
  21332. the "proxy_next_upstream", "fastcgi_next_upstream",
  21333. and "memcached_next_upstream" directives support the "off" parameter.
  21334. </para>
  21335. </change>

  21336. <change type="feature">
  21337. <para lang="ru">
  21338. директива debug_connection поддерживает запись адресов в формате CIDR.
  21339. </para>
  21340. <para lang="en">
  21341. the "debug_connection" directive supports the CIDR address form.
  21342. </para>
  21343. </change>

  21344. <change type="bugfix">
  21345. <para lang="ru">
  21346. при перекодировании ответа проксированного сервера или сервера FastCGI
  21347. в UTF-8 или наоборот ответ мог передаваться не полностью.
  21348. </para>
  21349. <para lang="en">
  21350. if a response of proxied server or FastCGI server was converted from UTF-8
  21351. or back, then it may be transferred incomplete.
  21352. </para>
  21353. </change>

  21354. <change type="bugfix">
  21355. <para lang="ru">
  21356. переменная $upstream_response_time содержала время только первого
  21357. обращения к бэкенду.
  21358. </para>
  21359. <para lang="en">
  21360. the $upstream_response_time variable had the time of the first
  21361. request to a backend only.
  21362. </para>
  21363. </change>

  21364. <change type="bugfix">
  21365. <para lang="ru">
  21366. nginx не собирался на платформе amd64;
  21367. ошибка появилась в 0.3.53.
  21368. </para>
  21369. <para lang="en">
  21370. nginx could not be built on amd64 platform;
  21371. the bug had appeared in 0.3.53.
  21372. </para>
  21373. </change>

  21374. </changes>


  21375. <changes ver="0.3.53" date="2006-07-07">

  21376. <change type="change">
  21377. <para lang="ru">
  21378. директива add_header добавляет строки в ответы с кодом 204, 301 и 302.
  21379. </para>
  21380. <para lang="en">
  21381. the "add_header" directive adds the string to 204, 301, and 302 responses.
  21382. </para>
  21383. </change>

  21384. <change type="feature">
  21385. <para lang="ru">
  21386. директива server в блоке upstream поддерживает параметр weight.
  21387. </para>
  21388. <para lang="en">
  21389. the "server" directive in the "upstream" context supports
  21390. the "weight" parameter.
  21391. </para>
  21392. </change>

  21393. <change type="feature">
  21394. <para lang="ru">
  21395. директива server_name поддерживает маску "*".
  21396. </para>
  21397. <para lang="en">
  21398. the "server_name" directive supports the "*" wildcard.
  21399. </para>
  21400. </change>

  21401. <change type="feature">
  21402. <para lang="ru">
  21403. nginx поддерживает тело запроса больше 2G.
  21404. </para>
  21405. <para lang="en">
  21406. nginx supports the request body size more than 2G.
  21407. </para>
  21408. </change>

  21409. <change type="bugfix">
  21410. <para lang="ru">
  21411. если при использовании "satisfy_any on" клиент успешно проходил аутентификацию,
  21412. в лог всё равно записалоcь сообщение "access forbidden by rule".
  21413. </para>
  21414. <para lang="en">
  21415. if a client was successfully authorized using "satisfy_any on", then anyway
  21416. the message "access forbidden by rule" was written in the log.
  21417. </para>
  21418. </change>

  21419. <change type="bugfix">
  21420. <para lang="ru">
  21421. метод PUT мог ошибочно не создать файл и вернуть код 409.
  21422. </para>
  21423. <para lang="en">
  21424. the "PUT" method may erroneously not create a file and return the 409 code.
  21425. </para>
  21426. </change>

  21427. <change type="bugfix">
  21428. <para lang="ru">
  21429. если во время аутентификации IMAP/POP3 бэкенд возвращал ошибку, nginx
  21430. продолжал проксирование.
  21431. </para>
  21432. <para lang="en">
  21433. if the IMAP/POP3 backend returned an error, then nginx continued proxying
  21434. anyway.
  21435. </para>
  21436. </change>

  21437. </changes>


  21438. <changes ver="0.3.52" date="2006-07-03">

  21439. <change type="change">
  21440. <para lang="ru">
  21441. восстановлено поведение модуля ngx_http_index_module для запросов "POST /":
  21442. как в версии до 0.3.40, модуль теперь не выдаёт ошибку 405.
  21443. </para>
  21444. <para lang="en">
  21445. the ngx_http_index_module behavior for the "POST /" requests is reverted
  21446. to the 0.3.40 version state: the module now does not return the 405 error.
  21447. </para>
  21448. </change>

  21449. <change type="bugfix">
  21450. <para lang="ru">
  21451. при использовании ограничения скорости рабочий процесс мог зациклиться;
  21452. ошибка появилась в 0.3.37.
  21453. </para>
  21454. <para lang="en">
  21455. the worker process may got caught in an endless loop if the limit rate was used;
  21456. the bug had appeared in 0.3.37.
  21457. </para>
  21458. </change>

  21459. <change type="bugfix">
  21460. <para lang="ru">
  21461. модуль ngx_http_charset_module записывал в лог ошибку "unknown charset",
  21462. даже если перекодировка не требовалась;
  21463. ошибка появилась в 0.3.50.
  21464. </para>
  21465. <para lang="en">
  21466. ngx_http_charset_module logged "unknown charset" alert, even if the recoding
  21467. was not needed;
  21468. the bug had appeared in 0.3.50.
  21469. </para>
  21470. </change>

  21471. <change type="bugfix">
  21472. <para lang="ru">
  21473. если в результате запроса PUT возвращался код 409, то временный файл
  21474. не удалялся.
  21475. </para>
  21476. <para lang="en">
  21477. if a code response of the PUT request was 409, then a temporary file
  21478. was not removed.
  21479. </para>
  21480. </change>

  21481. </changes>


  21482. <changes ver="0.3.51" date="2006-06-30">

  21483. <change type="bugfix">
  21484. <para lang="ru">
  21485. при некоторых условиях в SSI мог пропадать символы "&lt;";
  21486. ошибка появилась в 0.3.50.
  21487. </para>
  21488. <para lang="en">
  21489. the "&lt;" symbols might disappeared some conditions in the SSI;
  21490. the bug had appeared in 0.3.50.
  21491. </para>
  21492. </change>

  21493. </changes>


  21494. <changes ver="0.3.50" date="2006-06-28">

  21495. <change type="change">
  21496. <para lang="ru">
  21497. директивы proxy_redirect_errors и fastcgi_redirect_errors
  21498. переименованы соответственно в proxy_intercept_errors и
  21499. fastcgi_intercept_errors.
  21500. </para>
  21501. <para lang="en">
  21502. the "proxy_redirect_errors" and "fastcgi_redirect_errors" directives
  21503. was renamed to the "proxy_intercept_errors" and
  21504. "fastcgi_intercept_errors" directives.
  21505. </para>
  21506. </change>

  21507. <change type="feature">
  21508. <para lang="ru">
  21509. модуль ngx_http_charset_module поддерживает перекодирование из
  21510. однобайтных кодировок в UTF-8 и обратно.
  21511. </para>
  21512. <para lang="en">
  21513. the ngx_http_charset_module supports the recoding from the single byte
  21514. encodings to the UTF-8 encoding and back.
  21515. </para>
  21516. </change>

  21517. <change type="feature">
  21518. <para lang="ru">
  21519. в режиме прокси и FastCGI поддерживается строка заголовка "X-Accel-Charset"
  21520. в ответе бэкенда.
  21521. </para>
  21522. <para lang="en">
  21523. the "X-Accel-Charset" response header line is supported in proxy
  21524. and FastCGI mode.
  21525. </para>
  21526. </change>

  21527. <change type="bugfix">
  21528. <para lang="ru">
  21529. символ "\" в парах "\"" и "\'" в SSI командах убирался, только если
  21530. также использовался символ "$".
  21531. </para>
  21532. <para lang="en">
  21533. the "\" escape symbol in the "\"" and "\'" pairs in the SSI command
  21534. was removed only if the command also has the "$" symbol.
  21535. </para>
  21536. </change>

  21537. <change type="bugfix">
  21538. <para lang="ru">
  21539. при некоторых условиях в SSI после вставки могла быть добавлена
  21540. строка "&lt;!--".
  21541. </para>
  21542. <para lang="en">
  21543. the "&lt;!--" string might be added on some conditions
  21544. in the SSI after inclusion.
  21545. </para>
  21546. </change>

  21547. <change type="bugfix">
  21548. <para lang="ru">
  21549. если в заголовке ответа была строка <nobr>"Content-Length: 0",</nobr>
  21550. то при использовании небуферизированного проксировании не закрывалось соединение
  21551. с клиентом.
  21552. </para>
  21553. <para lang="en">
  21554. if the "Content-Length: 0" header line was in response, then
  21555. in nonbuffered proxying mode the client connection was not closed.
  21556. </para>
  21557. </change>

  21558. </changes>


  21559. <changes ver="0.3.49" date="2006-05-31">

  21560. <change type="bugfix">
  21561. <para lang="ru">
  21562. в директиве set.
  21563. </para>
  21564. <para lang="en">
  21565. in the "set" directive.
  21566. </para>
  21567. </change>

  21568. <change type="bugfix">
  21569. <para lang="ru">
  21570. при включении в ssi двух и более подзапросов, обрабатываемых через FastCGI,
  21571. вместо вывода второго и остальных подзапросов в ответ включался вывод
  21572. первого подзапроса.
  21573. </para>
  21574. <para lang="en">
  21575. if two or more FastCGI subrequests was in SSI, then first subrequest output
  21576. was included instead of second and following subrequests.
  21577. </para>
  21578. </change>

  21579. </changes>


  21580. <changes ver="0.3.48" date="2006-05-29">

  21581. <change type="change">
  21582. <para lang="ru">
  21583. теперь модуль ngx_http_charset_module работает для подзапросов,
  21584. в ответах которых нет строки заголовка "Content-Type".
  21585. </para>
  21586. <para lang="en">
  21587. now the ngx_http_charset_module works for subrequests,
  21588. if the response has no "Content-Type" header line.
  21589. </para>
  21590. </change>

  21591. <change type="bugfix">
  21592. <para lang="ru">
  21593. если в директиве proxy_pass не было URI,
  21594. то директива "proxy_redirect  default" добавляла в переписанный
  21595. редирект в начало лишний слэш.
  21596. </para>
  21597. <para lang="en">
  21598. if the "proxy_pass" directive has no URI part,
  21599. then the "proxy_redirect  default" directive add the unnecessary slash
  21600. in start of the rewritten redirect.
  21601. </para>
  21602. </change>

  21603. <change type="bugfix">
  21604. <para lang="ru">
  21605. внутренний редирект всегда превращал любой HTTP-метод в GET,
  21606. теперь это делается только для редиректов, выполняемых с помощью
  21607. X-Accel-Redirect, и у которых метод не равен HEAD;
  21608. ошибка появилась в 0.3.42.
  21609. </para>
  21610. <para lang="en">
  21611. the internal redirect always transform client's HTTP method to GET,
  21612. now the transformation is made for the "X-Accel-Redirect" redirects only
  21613. and if the method is not HEAD;
  21614. the bug had appeared in 0.3.42.
  21615. </para>
  21616. </change>

  21617. <change type="bugfix">
  21618. <para lang="ru">
  21619. модуль ngx_http_perl_module не собирался, если перл был с поддержкой потоков;
  21620. ошибка появилась в 0.3.46.
  21621. </para>
  21622. <para lang="en">
  21623. the ngx_http_perl_module could not be built, if the perl was built
  21624. with the threads support;
  21625. the bug had appeared in 0.3.46.
  21626. </para>
  21627. </change>

  21628. </changes>


  21629. <changes ver="0.3.47" date="2006-05-23">

  21630. <change type="feature">
  21631. <para lang="ru">
  21632. директива upstream.
  21633. </para>
  21634. <para lang="en">
  21635. the "upstream" directive.
  21636. </para>
  21637. </change>

  21638. <change type="change">
  21639. <para lang="ru">
  21640. символ "\" в парах "\"" и "\'" в SSI командах теперь всегда убирается.
  21641. </para>
  21642. <para lang="en">
  21643. now the "\" escape symbol in the "\"" and "\'" pairs in the SSI command
  21644. is always removed.
  21645. </para>
  21646. </change>

  21647. </changes>


  21648. <changes ver="0.3.46" date="2006-05-11">

  21649. <change type="feature">
  21650. <para lang="ru">
  21651. директивы proxy_hide_header, proxy_pass_header, fastcgi_hide_header
  21652. и fastcgi_pass_header.
  21653. </para>
  21654. <para lang="en">
  21655. the "proxy_hide_header", "proxy_pass_header", "fastcgi_hide_header",
  21656. and "fastcgi_pass_header" directives.
  21657. </para>
  21658. </change>

  21659. <change type="change">
  21660. <para lang="ru">
  21661. директивы proxy_pass_x_powered_by, fastcgi_x_powered_by и proxy_pass_server
  21662. упразднены.
  21663. </para>
  21664. <para lang="en">
  21665. the "proxy_pass_x_powered_by", "fastcgi_x_powered_by", and "proxy_pass_server"
  21666. directives were canceled.
  21667. </para>
  21668. </change>

  21669. <change type="feature">
  21670. <para lang="ru">
  21671. в режиме прокси поддерживается строка заголовка "X-Accel-Buffering"
  21672. в ответе бэкенда.
  21673. </para>
  21674. <para lang="en">
  21675. the "X-Accel-Buffering" response header line is supported in proxy mode.
  21676. </para>
  21677. </change>

  21678. <change type="bugfix">
  21679. <para lang="ru">
  21680. ошибок и утечек памяти при переконфигурации в модуле ngx_http_perl_module.
  21681. </para>
  21682. <para lang="en">
  21683. the reconfiguration bug and memory leaks in the ngx_http_perl_module.
  21684. </para>
  21685. </change>

  21686. </changes>


  21687. <changes ver="0.3.45" date="2006-05-06">

  21688. <change type="feature">
  21689. <para lang="ru">
  21690. директивы ssl_verify_client, ssl_verify_depth и ssl_client_certificate.
  21691. </para>
  21692. <para lang="en">
  21693. the "ssl_verify_client", "ssl_verify_depth", and "ssl_client_certificate"
  21694. directives.
  21695. </para>
  21696. </change>

  21697. <change type="change">
  21698. <para lang="ru">
  21699. теперь переменная $request_method возвращает метод только основного запроса.
  21700. </para>
  21701. <para lang="en">
  21702. the $request_method variable now returns the main request method.
  21703. </para>
  21704. </change>

  21705. <change type="change">
  21706. <para lang="ru">
  21707. в таблице перекодировки koi-win изменены коды символа &amp;deg;.
  21708. </para>
  21709. <para lang="en">
  21710. the &amp;deg; symbol codes were changed in koi-win conversion table.
  21711. </para>
  21712. </change>

  21713. <change type="feature">
  21714. <para lang="ru">
  21715. в таблицу перекодировки koi-win добавлены символы евро и номера.
  21716. </para>
  21717. <para lang="en">
  21718. the euro and N symbols were added to koi-win conversion table.
  21719. </para>
  21720. </change>

  21721. <change type="bugfix">
  21722. <para lang="ru">
  21723. если nginx распределял запросы на несколько машин, то при падении
  21724. одной из них запросы, предназначенные для этой машины, перенаправлялись только
  21725. на одну машину вместо того, чтобы равномерно распределяться между остальными.
  21726. </para>
  21727. <para lang="en">
  21728. if nginx distributed the requests among several backends and some backend
  21729. failed, then requests intended for this backend was directed to one live
  21730. backend only instead of being distributed among the rest.
  21731. </para>
  21732. </change>

  21733. </changes>


  21734. <changes ver="0.3.44" date="2006-05-04">

  21735. <change type="feature">
  21736. <para lang="ru">
  21737. параметр wait в команде SSI include.
  21738. </para>
  21739. <para lang="en">
  21740. the "wait" parameter in the "include" SSI command.
  21741. </para>
  21742. </change>

  21743. <change type="feature">
  21744. <para lang="ru">
  21745. в таблицу перекодировки koi-win добавлены украинские и белорусские символы.
  21746. </para>
  21747. <para lang="en">
  21748. the Ukrainian and Byelorussian characters were added to koi-win conversion
  21749. table.
  21750. </para>
  21751. </change>

  21752. <change type="bugfix">
  21753. <para lang="ru">
  21754. в SSI.
  21755. </para>
  21756. <para lang="en">
  21757. in the SSI.
  21758. </para>
  21759. </change>

  21760. </changes>


  21761. <changes ver="0.3.43" date="2006-04-26">

  21762. <change type="bugfix">
  21763. <para lang="ru">
  21764. в SSI.
  21765. </para>
  21766. <para lang="en">
  21767. in the SSI.
  21768. </para>
  21769. </change>

  21770. </changes>


  21771. <changes ver="0.3.42" date="2006-04-26">

  21772. <change type="feature">
  21773. <para lang="ru">
  21774. параметр bind в директиве listen в IMAP/POP3 прокси.
  21775. </para>
  21776. <para lang="en">
  21777. the "bind" option of the "listen" directive in IMAP/POP3 proxy.
  21778. </para>
  21779. </change>

  21780. <change type="bugfix">
  21781. <para lang="ru">
  21782. ошибки при использовании в директиве rewrite одного и того же
  21783. выделения более одного раза.
  21784. </para>
  21785. <para lang="en">
  21786. if the same capture in the "rewrite" directive was used more then once.
  21787. </para>
  21788. </change>

  21789. <change type="bugfix">
  21790. <para lang="ru">
  21791. в лог не записывались переменные
  21792. $sent_http_content_type, $sent_http_content_length, $sent_http_last_modified,
  21793. $sent_http_connection, $sent_http_keep_alive и $sent_http_transfer_encoding.
  21794. </para>
  21795. <para lang="en">
  21796. the $sent_http_content_type, $sent_http_content_length,
  21797. $sent_http_last_modified, $sent_http_connection, $sent_http_keep_alive,
  21798. and $sent_http_transfer_encoding variables were not written to access log.
  21799. </para>
  21800. </change>

  21801. <change type="bugfix">
  21802. <para lang="ru">
  21803. переменная $sent_http_cache_control возвращала содержимое только одной
  21804. строки "Cache-Control" в заголовке ответа.
  21805. </para>
  21806. <para lang="en">
  21807. the $sent_http_cache_control returned value of the single "Cache-Control"
  21808. response header line.
  21809. </para>
  21810. </change>

  21811. </changes>


  21812. <changes ver="0.3.41" date="2006-04-21">

  21813. <change type="feature">
  21814. <para lang="ru">
  21815. ключ -v.
  21816. </para>
  21817. <para lang="en">
  21818. the -v switch.
  21819. </para>
  21820. </change>

  21821. <change type="bugfix">
  21822. <para lang="ru">
  21823. при включении в SSI удалённых подзапросов
  21824. мог произойти segmentation fault.
  21825. </para>
  21826. <para lang="en">
  21827. the segmentation fault may occurred if the SSI page has remote subrequests.
  21828. </para>
  21829. </change>

  21830. <change type="bugfix">
  21831. <para lang="ru">
  21832. в обработке FastCGI.
  21833. </para>
  21834. <para lang="en">
  21835. in FastCGI handling.
  21836. </para>
  21837. </change>

  21838. <change type="bugfix">
  21839. <para lang="ru">
  21840. если путь к перловым модулям не был указан с помощью
  21841. --with-perl_modules_path=PATH или директивы perl_modules,
  21842. то на старте происходил segmentation fault.
  21843. </para>
  21844. <para lang="en">
  21845. if the perl modules path was not set using
  21846. --with-perl_modules_path=PATH or the "perl_modules", then
  21847. the segmentation fault was occurred.
  21848. </para>
  21849. </change>

  21850. </changes>


  21851. <changes ver="0.3.40" date="2006-04-19">

  21852. <change type="feature">
  21853. <para lang="ru">
  21854. модуль ngx_http_dav_module поддерживает метод MKCOL.
  21855. </para>
  21856. <para lang="en">
  21857. the ngx_http_dav_module supports the MKCOL method.
  21858. </para>
  21859. </change>

  21860. <change type="feature">
  21861. <para lang="ru">
  21862. директива create_full_put_path.
  21863. </para>
  21864. <para lang="en">
  21865. the "create_full_put_path" directive.
  21866. </para>
  21867. </change>

  21868. <change type="feature">
  21869. <para lang="ru">
  21870. переменная $limit_rate.
  21871. </para>
  21872. <para lang="en">
  21873. the "$limit_rate" variable.
  21874. </para>
  21875. </change>

  21876. </changes>


  21877. <changes ver="0.3.39" date="2006-04-17">

  21878. <change type="feature">
  21879. <para lang="ru">
  21880. директива uninitialized_variable_warn; уровень логгирования сообщения
  21881. о неинициализированной переменной понижен с уровня alert на warn.
  21882. </para>
  21883. <para lang="en">
  21884. the "uninitialized_variable_warn" directive; the logging level of the
  21885. "uninitialized variable" message was lowered from "alert" to "warn".
  21886. </para>
  21887. </change>

  21888. <change type="feature">
  21889. <para lang="ru">
  21890. директива override_charset.
  21891. </para>
  21892. <para lang="en">
  21893. the "override_charset" directive.
  21894. </para>
  21895. </change>

  21896. <change type="change">
  21897. <para lang="ru">
  21898. при использовании неизвестной переменной в SSI-командах echo и if expr='$name'
  21899. теперь не записывается в лог сообщение о неизвестной переменной.
  21900. </para>
  21901. <para lang="en">
  21902. now if the unknown variable is used in the "echo" and "if expr='$name'"
  21903. SSI-commands, then the "unknown variable" message is not logged.
  21904. </para>
  21905. </change>

  21906. <change type="bugfix">
  21907. <para lang="ru">
  21908. счётчик активных соединений рос при превышении лимита соединений,
  21909. заданного директивой worker_connections;
  21910. ошибка появилась в 0.2.0.
  21911. </para>
  21912. <para lang="en">
  21913. the active connection counter increased on the exceeding of the connection
  21914. limit specified by the "worker_connections" directive;
  21915. the bug had appeared in 0.2.0.
  21916. </para>
  21917. </change>

  21918. <change type="bugfix">
  21919. <para lang="ru">
  21920. при некоторых условия ограничение скорости соединения могло не работать;
  21921. ошибка появилась в 0.3.38.
  21922. </para>
  21923. <para lang="en">
  21924. the limit rate might not work on some condition;
  21925. the bug had appeared in 0.3.38.
  21926. </para>
  21927. </change>

  21928. </changes>


  21929. <changes ver="0.3.38" date="2006-04-14">

  21930. <change type="feature">
  21931. <para lang="ru">
  21932. модуль ngx_http_dav_module.
  21933. </para>
  21934. <para lang="en">
  21935. the ngx_http_dav_module.
  21936. </para>
  21937. </change>

  21938. <change type="change">
  21939. <para lang="ru">
  21940. оптимизация модуля ngx_http_perl_module.<br/>
  21941. Спасибо Сергею Скворцову.
  21942. </para>
  21943. <para lang="en">
  21944. the ngx_http_perl_module optimizations.<br/>
  21945. Thanks to Sergey Skvortsov.
  21946. </para>
  21947. </change>

  21948. <change type="feature">
  21949. <para lang="ru">
  21950. модуль ngx_http_perl_module поддерживает метод $r->request_body_file.
  21951. </para>
  21952. <para lang="en">
  21953. the ngx_http_perl_module supports the $r->request_body_file method.
  21954. </para>
  21955. </change>

  21956. <change type="feature">
  21957. <para lang="ru">
  21958. директива client_body_in_file_only.
  21959. </para>
  21960. <para lang="en">
  21961. the "client_body_in_file_only" directive.
  21962. </para>
  21963. </change>

  21964. <change type="workaround">
  21965. <para lang="ru">
  21966. теперь при переполнении диска nginx пытается писать access_log'и только
  21967. раз в секунду.<br/>
  21968. Спасибо Антону Южанинову и Максиму Дунину.
  21969. </para>
  21970. <para lang="en">
  21971. now on disk overflow nginx tries to write access logs once a second only.<br/>
  21972. Thanks to Anton Yuzhaninov and Maxim Dounin.
  21973. </para>
  21974. </change>

  21975. <change type="bugfix">
  21976. <para lang="ru">
  21977. теперь директива limit_rate точнее ограничивает скорость при значениях
  21978. больше <nobr>100 Kbyte/s.</nobr><br/>
  21979. Спасибо ForJest.
  21980. </para>
  21981. <para lang="en">
  21982. now the "limit_rate" directive more precisely limits rate if rate is more
  21983. than <nobr>100 Kbyte/s.</nobr><br/>
  21984. Thanks to ForJest.
  21985. </para>
  21986. </change>

  21987. <change type="bugfix">
  21988. <para lang="ru">
  21989. IMAP/POP3 прокси теперь передаёт серверу авторизации символы "\r" и "\n"
  21990. в логине и пароле в закодированном виде.<br/>
  21991. Спасибо Максиму Дунину.
  21992. </para>
  21993. <para lang="en">
  21994. now the IMAP/POP3 proxy escapes the "\r" and "\n" symbols in login and
  21995. password to pass authorization server.<br/>
  21996. Thanks to Maxim Dounin.
  21997. </para>
  21998. </change>

  21999. </changes>


  22000. <changes ver="0.3.37" date="2006-04-07">

  22001. <change type="feature">
  22002. <para lang="ru">
  22003. директива limit_except.
  22004. </para>
  22005. <para lang="en">
  22006. the "limit_except" directive.
  22007. </para>
  22008. </change>

  22009. <change type="feature">
  22010. <para lang="ru">
  22011. директива if поддерживает операторы "!~", "!~*", "-f" и "!-f".
  22012. </para>
  22013. <para lang="en">
  22014. the "if" directive supports the "!~", "!~*", "-f", and "!-f" operators.
  22015. </para>
  22016. </change>

  22017. <change type="feature">
  22018. <para lang="ru">
  22019. модуль ngx_http_perl_module поддерживает метод $r->request_body.
  22020. </para>
  22021. <para lang="en">
  22022. the ngx_http_perl_module supports the $r->request_body method.
  22023. </para>
  22024. </change>

  22025. <change type="bugfix">
  22026. <para lang="ru">
  22027. в модуле ngx_http_addition_filter_module.
  22028. </para>
  22029. <para lang="en">
  22030. in the ngx_http_addition_filter_module.
  22031. </para>
  22032. </change>

  22033. </changes>


  22034. <changes ver="0.3.36" date="2006-04-05">

  22035. <change type="feature">
  22036. <para lang="ru">
  22037. модуль ngx_http_addition_filter_module.
  22038. </para>
  22039. <para lang="en">
  22040. the ngx_http_addition_filter_module.
  22041. </para>
  22042. </change>

  22043. <change type="feature">
  22044. <para lang="ru">
  22045. директивы proxy_pass и fastcgi_pass можно использовать внутри блока if.
  22046. </para>
  22047. <para lang="en">
  22048. the "proxy_pass" and "fastcgi_pass" directives may be used inside
  22049. the "if" block.
  22050. </para>
  22051. </change>

  22052. <change type="feature">
  22053. <para lang="ru">
  22054. директивы proxy_ignore_client_abort и fastcgi_ignore_client_abort.
  22055. </para>
  22056. <para lang="en">
  22057. the "proxy_ignore_client_abort" and "fastcgi_ignore_client_abort" directives.
  22058. </para>
  22059. </change>

  22060. <change type="feature">
  22061. <para lang="ru">
  22062. переменная $request_completion.
  22063. </para>
  22064. <para lang="en">
  22065. the "$request_completion" variable.
  22066. </para>
  22067. </change>

  22068. <change type="feature">
  22069. <para lang="ru">
  22070. модуль ngx_http_perl_module поддерживает методы $r->request_method и
  22071. $r->remote_addr.
  22072. </para>
  22073. <para lang="en">
  22074. the ngx_http_perl_module supports the $r->request_method and $r->remote_addr.
  22075. </para>
  22076. </change>

  22077. <change type="feature">
  22078. <para lang="ru">
  22079. модуль ngx_http_ssi_module поддерживает команду elif.
  22080. </para>
  22081. <para lang="en">
  22082. the ngx_http_ssi_module supports the "elif" command.
  22083. </para>
  22084. </change>

  22085. <change type="bugfix">
  22086. <para lang="ru">
  22087. строка "\/" в начале выражения команды if модуля ngx_http_ssi_module
  22088. воспринималась неверно.
  22089. </para>
  22090. <para lang="en">
  22091. the "\/" string in the expression of the "if" command of the
  22092. ngx_http_ssi_module was treated incorrectly.
  22093. </para>
  22094. </change>

  22095. <change type="bugfix">
  22096. <para lang="ru">
  22097. в использовании регулярных выражениях в команде if модуля ngx_http_ssi_module.
  22098. </para>
  22099. <para lang="en">
  22100. in the regular expressions in the "if" command of the ngx_http_ssi_module.
  22101. </para>
  22102. </change>

  22103. <change type="bugfix">
  22104. <para lang="ru">
  22105. при задании относительного пути в директивах
  22106. client_body_temp_path, proxy_temp_path, fastcgi_temp_path и perl_modules
  22107. использовался каталог относительно текущего каталога, а не относительно
  22108. префикса сервера.
  22109. </para>
  22110. <para lang="en">
  22111. if the relative path was specified in the "client_body_temp_path",
  22112. "proxy_temp_path", "fastcgi_temp_path", and "perl_modules" directives,
  22113. then the directory was used relatively to a current path but not
  22114. to a server prefix.
  22115. </para>
  22116. </change>

  22117. </changes>


  22118. <changes ver="0.3.35" date="2006-03-22">

  22119. <change type="bugfix">
  22120. <para lang="ru">
  22121. accept-фильтр и TCP_DEFER_ACCEPT устанавливались только для первой
  22122. директивы listen;
  22123. ошибка появилась в 0.3.31.
  22124. </para>
  22125. <para lang="en">
  22126. the accept-filter and the TCP_DEFER_ACCEPT option were set for first "listen"
  22127. directive only;
  22128. the bug had appeared in 0.3.31.
  22129. </para>
  22130. </change>

  22131. <change type="bugfix">
  22132. <para lang="ru">
  22133. в директиве proxy_pass без URI при использовании в подзапросе.
  22134. </para>
  22135. <para lang="en">
  22136. in the "proxy_pass" directive without the URI part in a subrequest.
  22137. </para>
  22138. </change>

  22139. </changes>


  22140. <changes ver="0.3.34" date="2006-03-21">

  22141. <change type="feature">
  22142. <para lang="ru">
  22143. директива add_header поддерживает переменные.
  22144. </para>
  22145. <para lang="en">
  22146. the "add_header" directive supports the variables.
  22147. </para>
  22148. </change>

  22149. </changes>


  22150. <changes ver="0.3.33" date="2006-03-15">

  22151. <change type="feature">
  22152. <para lang="ru">
  22153. параметр http_503 в директивах proxy_next_upstream или fastcgi_next_upstream.
  22154. </para>
  22155. <para lang="en">
  22156. the "http_503" parameter of the "proxy_next_upstream" or
  22157. "fastcgi_next_upstream" directives.
  22158. </para>
  22159. </change>

  22160. <change type="bugfix">
  22161. <para lang="ru">
  22162. ngx_http_perl_module не работал со встроенным в конфигурационный файл кодом,
  22163. если он не начинался сразу же с "sub".
  22164. </para>
  22165. <para lang="en">
  22166. ngx_http_perl_module did not work with inlined in the configuration code,
  22167. if it was not started with the "sub" word.
  22168. </para>
  22169. </change>

  22170. <change type="bugfix">
  22171. <para lang="ru">
  22172. в директиве post_action.
  22173. </para>
  22174. <para lang="en">
  22175. in the "post_action" directive.
  22176. </para>
  22177. </change>

  22178. </changes>


  22179. <changes ver="0.3.32" date="2006-03-11">

  22180. <change type="bugfix">
  22181. <para lang="ru">
  22182. удаление отладочного логгирования на старте и при переконфигурации;
  22183. ошибка появилась в 0.3.31.
  22184. </para>
  22185. <para lang="en">
  22186. the debug logging on startup and reconfiguration time was removed;
  22187. the bug had appeared in 0.3.31.
  22188. </para>
  22189. </change>

  22190. </changes>


  22191. <changes ver="0.3.31" date="2006-03-10">

  22192. <change type="change">
  22193. <para lang="ru">
  22194. теперь nginx передаёт неверные ответы проксированного бэкенда.
  22195. </para>
  22196. <para lang="en">
  22197. now nginx passes the malformed proxied backend responses.
  22198. </para>
  22199. </change>

  22200. <change type="feature">
  22201. <para lang="ru">
  22202. директивы listen поддерживают адрес в виде "*:порт".
  22203. </para>
  22204. <para lang="en">
  22205. the "listen" directives support the address in the "*:port" form.
  22206. </para>
  22207. </change>

  22208. <change type="feature">
  22209. <para lang="ru">
  22210. поддержка EVFILER_TIMER в MacOSX 10.4.
  22211. </para>
  22212. <para lang="en">
  22213. the EVFILER_TIMER support in MacOSX 10.4.
  22214. </para>
  22215. </change>

  22216. <change type="workaround">
  22217. <para lang="ru">
  22218. обход ошибки обработки миллисекундных таймаутов kqueue в 64-битном ядре
  22219. MacOSX.<br/>
  22220. Спасибо Андрею Нигматулину.
  22221. </para>
  22222. <para lang="en">
  22223. for MacOSX 64-bit kernel kqueue millisecond timeout bug.<br/>
  22224. Thanks to Andrei Nigmatulin.
  22225. </para>
  22226. </change>

  22227. <change type="bugfix">
  22228. <para lang="ru">
  22229. если внутри одного сервера описаны несколько директив listen, слушающих на
  22230. разных адресах, то имена серверов вида "*.domain.tld" работали только
  22231. для первого адреса;
  22232. ошибка появилась в 0.3.18.
  22233. </para>
  22234. <para lang="en">
  22235. if there were several "listen" directives listening one various addresses
  22236. inside one server, then server names like "*.domain.tld" worked for first
  22237. address only;
  22238. the bug had appeared in 0.3.18.
  22239. </para>
  22240. </change>

  22241. <change type="bugfix">
  22242. <para lang="ru">
  22243. при использовании протокола HTTPS в директиве proxy_pass не передавались
  22244. запросы с телом, записанным во временный файл.
  22245. </para>
  22246. <para lang="en">
  22247. if the HTTPS protocol was used in the "proxy_pass" directive and
  22248. the request body was in temporary file then the request was not transferred.
  22249. </para>
  22250. </change>

  22251. <change type="bugfix">
  22252. <para lang="ru">
  22253. совместимость с perl 5.8.8.
  22254. </para>
  22255. <para lang="en">
  22256. perl 5.8.8 compatibility.
  22257. </para>
  22258. </change>

  22259. </changes>


  22260. <changes ver="0.3.30" date="2006-02-22">

  22261. <change type="change">
  22262. <para lang="ru">
  22263. уровень записи в лог ошибки ECONNABORTED изменён на error с уровня crit.
  22264. </para>
  22265. <para lang="en">
  22266. the ECONNABORTED error log level was changed to "error" from "crit".
  22267. </para>
  22268. </change>

  22269. <change type="bugfix">
  22270. <para lang="ru">
  22271. модуль ngx_http_perl_module не собирался без модуля ngx_http_ssi_filter_module.
  22272. </para>
  22273. <para lang="en">
  22274. the ngx_http_perl_module could not be build without
  22275. the ngx_http_ssi_filter_module.
  22276. </para>
  22277. </change>

  22278. <change type="bugfix">
  22279. <para lang="ru">
  22280. nginx не собирался на i386 платформе, если использовался PIC;
  22281. ошибка появилась в 0.3.27.
  22282. </para>
  22283. <para lang="en">
  22284. nginx could not be built on i386 platform, if the PIC was used;
  22285. the bug had appeared in 0.3.27.
  22286. </para>
  22287. </change>

  22288. </changes>


  22289. <changes ver="0.3.29" date="2006-02-20">

  22290. <change type="feature">
  22291. <para lang="ru">
  22292. теперь nginx использует меньше памяти, если PHP в режиме FastCGI передаёт
  22293. большое количество предупреждений перед ответом.
  22294. </para>
  22295. <para lang="en">
  22296. now nginx uses less memory, if PHP in FastCGI mode sends many warnings
  22297. before the response.
  22298. </para>
  22299. </change>

  22300. <change type="bugfix">
  22301. <para lang="ru">
  22302. в ответах 204 для запросов версии HTTP/1.1 выдавалась строка заголовка
  22303. "Transfer-Encoding: chunked".
  22304. </para>
  22305. <para lang="en">
  22306. the "Transfer-Encoding: chunked" header line was issued in the 204 responses
  22307. for the HTTP/1.1 requests.
  22308. </para>
  22309. </change>

  22310. <change type="bugfix">
  22311. <para lang="ru">
  22312. nginx возвращал 502 код ответа, если FastCGI сервер передавал полные строки
  22313. заголовка ответа в отдельных FastCGI записях.
  22314. </para>
  22315. <para lang="en">
  22316. nginx returned the 502 response, if the complete response header lines
  22317. were transferred in a separate FastCGI records.
  22318. </para>
  22319. </change>

  22320. <change type="bugfix">
  22321. <para lang="ru">
  22322. если в директиве post_action был указан проксируемый URI, то он выполнялся
  22323. только после успешного завершения запроса.
  22324. </para>
  22325. <para lang="en">
  22326. if the proxied URI was specified in the "post_action" directive, then it ran
  22327. only after a successful completion of a request.
  22328. </para>
  22329. </change>

  22330. </changes>


  22331. <changes ver="0.3.28" date="2006-02-16">

  22332. <change type="feature">
  22333. <para lang="ru">
  22334. директива restrict_host_names упразднена.
  22335. </para>
  22336. <para lang="en">
  22337. the "restrict_host_names" directive was canceled.
  22338. </para>
  22339. </change>

  22340. <change type="feature">
  22341. <para lang="ru">
  22342. параметр конфигурации --with-cpu-opt=ppc64.
  22343. </para>
  22344. <para lang="en">
  22345. the --with-cpu-opt=ppc64 configuration parameter.
  22346. </para>
  22347. </change>

  22348. <change type="bugfix">
  22349. <para lang="ru">
  22350. при некоторых условиях проксированное соединение с клиентом завершалось
  22351. преждевременно.<br/>
  22352. Спасибо Владимиру Шутову.
  22353. </para>
  22354. <para lang="en">
  22355. on some condition the proxied connection with a client was terminated
  22356. prematurely.<br/>
  22357. Thanks to Vladimir Shutoff.
  22358. </para>
  22359. </change>

  22360. <change type="bugfix">
  22361. <para lang="ru">
  22362. строка заголовка "X-Accel-Limit-Rate" не учитывалась для запросов,
  22363. перенаправленных с помощью строки "X-Accel-Redirect".
  22364. </para>
  22365. <para lang="en">
  22366. the "X-Accel-Limit-Rate" header line was not taken into account
  22367. if the request was redirected using the "X-Accel-Redirect" header line.
  22368. </para>
  22369. </change>

  22370. <change type="bugfix">
  22371. <para lang="ru">
  22372. директива post_action работала только после успешного завершения запроса.
  22373. </para>
  22374. <para lang="en">
  22375. the "post_action" directive ran only after a successful completion of a request.
  22376. </para>
  22377. </change>

  22378. <change type="bugfix">
  22379. <para lang="ru">
  22380. тело проксированного ответа, создаваемого директивой post_action,
  22381. передавалось клиенту.
  22382. </para>
  22383. <para lang="en">
  22384. the proxied response body generated by the "post_action" directive
  22385. was transferred to a client.
  22386. </para>
  22387. </change>

  22388. </changes>


  22389. <changes ver="0.3.27" date="2006-02-08">

  22390. <change type="change">
  22391. <para lang="ru">
  22392. директивы variables_hash_max_size и variables_hash_bucket_size.
  22393. </para>
  22394. <para lang="en">
  22395. the "variables_hash_max_size" and "variables_hash_bucket_size" directives.
  22396. </para>
  22397. </change>

  22398. <change type="feature">
  22399. <para lang="ru">
  22400. переменная $body_bytes_sent доступна не только в директиве log_format.
  22401. </para>
  22402. <para lang="en">
  22403. the $body_bytes_sent variable can be used not only in the "log_format"
  22404. directive.
  22405. </para>
  22406. </change>

  22407. <change type="feature">
  22408. <para lang="ru">
  22409. переменные $ssl_protocol и $ssl_cipher.
  22410. </para>
  22411. <para lang="en">
  22412. the $ssl_protocol and $ssl_cipher variables.
  22413. </para>
  22414. </change>

  22415. <change type="feature">
  22416. <para lang="ru">
  22417. определение размера строки кэша распространённых процессоров при старте.
  22418. </para>
  22419. <para lang="en">
  22420. the cache line size detection for widespread CPUs at start time.
  22421. </para>
  22422. </change>

  22423. <change type="feature">
  22424. <para lang="ru">
  22425. директива accept_mutex теперь поддерживается посредством fcntl(2)
  22426. на платформах, отличных от i386, amd64, sparc64 и ppc.
  22427. </para>
  22428. <para lang="en">
  22429. now the "accept_mutex" directive is supported using fcntl(2)
  22430. on platforms different from i386, amd64, sparc64, and ppc.
  22431. </para>
  22432. </change>

  22433. <change type="feature">
  22434. <para lang="ru">
  22435. директива lock_file и параметр автоконфигурации --with-lock-path=PATH.
  22436. </para>
  22437. <para lang="en">
  22438. the "lock_file" directive and the --with-lock-path=PATH autoconfiguration
  22439. directive.
  22440. </para>
  22441. </change>

  22442. <change type="bugfix">
  22443. <para lang="ru">
  22444. при использовании протокола HTTPS в директиве proxy_pass не передавались
  22445. запросы с телом.
  22446. </para>
  22447. <para lang="en">
  22448. if the HTTPS protocol was used in the "proxy_pass" directive then
  22449. the requests with the body was not transferred.
  22450. </para>
  22451. </change>

  22452. </changes>


  22453. <changes ver="0.3.26" date="2006-02-03">

  22454. <change type="change">
  22455. <para lang="ru">
  22456. директива optimize_host_names переименована в optimize_server_names.
  22457. </para>
  22458. <para lang="en">
  22459. the "optimize_host_names" directive was renamed to the "optimize_server_names".
  22460. </para>
  22461. </change>

  22462. <change type="bugfix">
  22463. <para lang="ru">
  22464. при проксировании подзапроса в SSI бэкенду передавался URI основного запроса,
  22465. если в директиве proxy_pass отсутствовал URI.
  22466. </para>
  22467. <para lang="en">
  22468. if in the "proxy_pass" directive was no the URI part, then the main request
  22469. URI was transferred to a backend while proxying the SSI subrequest.
  22470. </para>
  22471. </change>

  22472. </changes>


  22473. <changes ver="0.3.25" date="2006-02-01">

  22474. <change type="bugfix">
  22475. <para lang="ru">
  22476. при неверной конфигурации на старте или во время переконфигурации происходил
  22477. segmentation fault;
  22478. ошибка появилась в 0.3.24.
  22479. </para>
  22480. <para lang="en">
  22481. the segmentation fault was occurred on start or while reconfiguration
  22482. if there was invalid configuration;
  22483. the bug had appeared in 0.3.24.
  22484. </para>
  22485. </change>

  22486. </changes>


  22487. <changes ver="0.3.24" date="2006-02-01">

  22488. <change type="workaround">
  22489. <para lang="ru">
  22490. обход ошибки в kqueue во FreeBSD.
  22491. </para>
  22492. <para lang="en">
  22493. for bug in FreeBSD kqueue.
  22494. </para>
  22495. </change>

  22496. <change type="bugfix">
  22497. <para lang="ru">
  22498. ответ, создаваемый директивой post_action, теперь не передаётся клиенту.
  22499. </para>
  22500. <para lang="en">
  22501. now a response generated by the "post_action" directive is not transferred
  22502. to a client.
  22503. </para>
  22504. </change>

  22505. <change type="bugfix">
  22506. <para lang="ru">
  22507. при использовании большого количества лог-файлов происходила утечка памяти.
  22508. </para>
  22509. <para lang="en">
  22510. the memory leaks were occurring if many log files were used.
  22511. </para>
  22512. </change>

  22513. <change type="bugfix">
  22514. <para lang="ru">
  22515. внутри одного location работала только первая директива proxy_redirect.
  22516. </para>
  22517. <para lang="en">
  22518. the first "proxy_redirect" directive was working inside one location.
  22519. </para>
  22520. </change>

  22521. <change type="bugfix">
  22522. <para lang="ru">
  22523. на 64-битных платформах при старте мог произойти segmentation fault,
  22524. если использовалось большое количество имён в директивах server_name;
  22525. ошибка появилась в 0.3.18.
  22526. </para>
  22527. <para lang="en">
  22528. on 64-bit platforms segmentation fault may occurred on start
  22529. if the many names were used in the "server_name" directives;
  22530. the bug had appeared in 0.3.18.
  22531. </para>
  22532. </change>

  22533. </changes>


  22534. <changes ver="0.3.23" date="2006-01-24">

  22535. <change type="feature">
  22536. <para lang="ru">
  22537. директива optimize_host_names.
  22538. </para>
  22539. <para lang="en">
  22540. the "optimize_host_names" directive.
  22541. </para>
  22542. </change>

  22543. <change type="bugfix">
  22544. <para lang="ru">
  22545. ошибки при использовании переменных в директивах path и alias.
  22546. </para>
  22547. <para lang="en">
  22548. in using of the variables in the "path" and "alias" directives.
  22549. </para>
  22550. </change>

  22551. <change type="bugfix">
  22552. <para lang="ru">
  22553. модуль ngx_http_perl_module неправильно собирался на Linux и Solaris.
  22554. </para>
  22555. <para lang="en">
  22556. the ngx_http_perl_module was incorrectly built on Linux and Solaris.
  22557. </para>
  22558. </change>

  22559. </changes>


  22560. <changes ver="0.3.22" date="2006-01-17">

  22561. <change type="feature">
  22562. <para lang="ru">
  22563. модуль ngx_http_perl_module поддерживает методы $r->args и $r->unescape.
  22564. </para>
  22565. <para lang="en">
  22566. the ngx_http_perl_module supports the $r->args and $r->unescape methods.
  22567. </para>
  22568. </change>

  22569. <change type="feature">
  22570. <para lang="ru">
  22571. метод $r->query_string в модуле ngx_http_perl_module упразднён.
  22572. </para>
  22573. <para lang="en">
  22574. the method $r->query_string of ngx_http_perl_module was canceled.
  22575. </para>
  22576. </change>

  22577. <change type="bugfix">
  22578. <para lang="ru">
  22579. если в директиве valid_referers указаны только none или blocked, то
  22580. происходил segmentation fault;
  22581. ошибка появилась в 0.3.18.
  22582. </para>
  22583. <para lang="en">
  22584. segmentation fault was occurred if the "none" or "blocked" values was
  22585. specified in the "valid_referers" directive;
  22586. the bug had appeared in 0.3.18.
  22587. </para>
  22588. </change>

  22589. </changes>


  22590. <changes ver="0.3.21" date="2006-01-16">

  22591. <change type="feature">
  22592. <para lang="ru">
  22593. модуль ngx_http_perl_module.
  22594. </para>
  22595. <para lang="en">
  22596. the ngx_http_perl_module.
  22597. </para>
  22598. </change>

  22599. <change type="change">
  22600. <para lang="ru">
  22601. директива valid_referers разрешает использовать рефереры совсем без URI.
  22602. </para>
  22603. <para lang="en">
  22604. the "valid_referers" directive allows the referrers without URI part.
  22605. </para>
  22606. </change>

  22607. </changes>


  22608. <changes ver="0.3.20" date="2006-01-11">

  22609. <change type="bugfix">
  22610. <para lang="ru">
  22611. ошибки в обработке SSI.
  22612. </para>
  22613. <para lang="en">
  22614. in SSI handling.
  22615. </para>
  22616. </change>

  22617. <change type="bugfix">
  22618. <para lang="ru">
  22619. модуль ngx_http_memcached_module не поддерживал ключи в виде /uri?args.
  22620. </para>
  22621. <para lang="en">
  22622. the ngx_http_memcached_module did not support the keys in the "/usr?args" form.
  22623. </para>
  22624. </change>

  22625. </changes>

  22626. <changes ver="0.3.19" date="2005-12-28">

  22627. <change type="feature">
  22628. <para lang="ru">
  22629. директивы path и alias поддерживают переменные.
  22630. </para>
  22631. <para lang="en">
  22632. the "path" and "alias" directives support the variables.
  22633. </para>
  22634. </change>

  22635. <change type="change">
  22636. <para lang="ru">
  22637. теперь директива valid_referers опять учитывает URI.
  22638. </para>
  22639. <para lang="en">
  22640. now the "valid_referers" directive again checks the URI part.
  22641. </para>
  22642. </change>

  22643. <change type="bugfix">
  22644. <para lang="ru">
  22645. ошибки в обработке SSI.
  22646. </para>
  22647. <para lang="en">
  22648. in SSI handling.
  22649. </para>
  22650. </change>

  22651. </changes>


  22652. <changes ver="0.3.18" date="2005-12-26">

  22653. <change type="feature">
  22654. <para lang="ru">
  22655. директива server_names поддерживает имена вида ".domain.tld".
  22656. </para>
  22657. <para lang="en">
  22658. the "server_names" directive supports the ".domain.tld" names.
  22659. </para>
  22660. </change>

  22661. <change type="feature">
  22662. <para lang="ru">
  22663. директива server_names использует хэш для имён вида "*.domain.tld"
  22664. и более эффективный хэш для обычных имён.
  22665. </para>
  22666. <para lang="en">
  22667. the "server_names" directive uses the hash for the "*.domain.tld" names
  22668. and more effective hash for usual names.
  22669. </para>
  22670. </change>

  22671. <change type="change">
  22672. <para lang="ru">
  22673. директивы server_names_hash_max_size и server_names_hash_bucket_size.
  22674. </para>
  22675. <para lang="en">
  22676. the "server_names_hash_max_size" and "server_names_hash_bucket_size" directives.
  22677. </para>
  22678. </change>

  22679. <change type="change">
  22680. <para lang="ru">
  22681. директивы server_names_hash и server_names_hash_threshold упразднены.
  22682. </para>
  22683. <para lang="en">
  22684. the "server_names_hash" and "server_names_hash_threshold" directives
  22685. were canceled.
  22686. </para>
  22687. </change>

  22688. <change type="feature">
  22689. <para lang="ru">
  22690. директива valid_referers использует хэш для имён сайтов.
  22691. </para>
  22692. <para lang="en">
  22693. the "valid_referers" directive uses the hash site names.
  22694. </para>
  22695. </change>

  22696. <change type="change">
  22697. <para lang="ru">
  22698. теперь директива valid_referers проверяет только имена сайтов без учёта URI.
  22699. </para>
  22700. <para lang="en">
  22701. now the "valid_referers" directive checks the site names only without
  22702. the URI part.
  22703. </para>
  22704. </change>

  22705. <change type="bugfix">
  22706. <para lang="ru">
  22707. некоторые имена вида ".domain.tld" неверно обрабатывались модулем
  22708. ngx_http_map_module.
  22709. </para>
  22710. <para lang="en">
  22711. some ".domain.tld" names incorrectly processed by the ngx_http_map_module.
  22712. </para>
  22713. </change>

  22714. <change type="bugfix">
  22715. <para lang="ru">
  22716. если конфигурационного файла не было, то происходил segmentation fault;
  22717. ошибка появилась в 0.3.12.
  22718. </para>
  22719. <para lang="en">
  22720. segmentation fault was occurred if configuration file did not exist;
  22721. the bug had appeared in 0.3.12.
  22722. </para>
  22723. </change>

  22724. <change type="bugfix">
  22725. <para lang="ru">
  22726. на 64-битных платформах при старте мог произойти segmentation fault;
  22727. ошибка появилась в 0.3.16.
  22728. </para>
  22729. <para lang="en">
  22730. on 64-bit platforms segmentation fault may occurred on start;
  22731. the bug had appeared in 0.3.16.
  22732. </para>
  22733. </change>

  22734. </changes>


  22735. <changes ver="0.3.17" date="2005-12-18">

  22736. <change type="change">
  22737. <para lang="ru">
  22738. на Linux configure теперь проверяет наличие epoll и sendfile64() в ядре.
  22739. </para>
  22740. <para lang="en">
  22741. now on Linux configure checks the presence of epoll and sendfile64() in kernel.
  22742. </para>
  22743. </change>

  22744. <change type="feature">
  22745. <para lang="ru">
  22746. директива map поддерживает доменные имена в формате ".domain.tld".
  22747. </para>
  22748. <para lang="en">
  22749. the "map" directive supports domain names in the ".domain.tld" form.
  22750. </para>
  22751. </change>

  22752. <change type="bugfix">
  22753. <para lang="ru">
  22754. во время SSL handshake не иcпользовались таймауты;
  22755. ошибка появилась в 0.2.4.
  22756. </para>
  22757. <para lang="en">
  22758. the timeouts were not used in SSL handshake;
  22759. the bug had appeared in 0.2.4.
  22760. </para>
  22761. </change>

  22762. <change type="bugfix">
  22763. <para lang="ru">
  22764. в использовании протокола HTTPS в директиве proxy_pass.
  22765. </para>
  22766. <para lang="en">
  22767. in the HTTPS protocol in the "proxy_pass" directive.
  22768. </para>
  22769. </change>

  22770. <change type="bugfix">
  22771. <para lang="ru">
  22772. при использовании протокола HTTPS в директиве proxy_pass по умолчанию
  22773. использовался порт 80.
  22774. </para>
  22775. <para lang="en">
  22776. when the HTTPS protocol was used in the "proxy_pass" directive the port 80
  22777. was used by default.
  22778. </para>
  22779. </change>

  22780. </changes>


  22781. <changes ver="0.3.16" date="2005-12-16">

  22782. <change type="feature">
  22783. <para lang="ru">
  22784. модуль ngx_http_map_module.
  22785. </para>
  22786. <para lang="en">
  22787. the ngx_http_map_module.
  22788. </para>
  22789. </change>

  22790. <change type="feature">
  22791. <para lang="ru">
  22792. директивы types_hash_max_size и types_hash_bucket_size.
  22793. </para>
  22794. <para lang="en">
  22795. the "types_hash_max_size" and "types_hash_bucket_size" directives.
  22796. </para>
  22797. </change>

  22798. <change type="feature">
  22799. <para lang="ru">
  22800. директива ssi_value_length.
  22801. </para>
  22802. <para lang="en">
  22803. the "ssi_value_length" directive.
  22804. </para>
  22805. </change>

  22806. <change type="feature">
  22807. <para lang="ru">
  22808. директива worker_rlimit_core.
  22809. </para>
  22810. <para lang="en">
  22811. the "worker_rlimit_core" directive.
  22812. </para>
  22813. </change>

  22814. <change type="workaround">
  22815. <para lang="ru">
  22816. при сборке компиляторами icc 8.1 и 9.0 с оптимизацией для
  22817. <nobr>Pentium 4</nobr> номер соединения в логах всегда был равен 1.
  22818. </para>
  22819. <para lang="en">
  22820. the connection number in logs was always 1 if nginx was built by the
  22821. icc 8.1 or 9.0 compilers with optimization for <nobr>Pentium 4.</nobr>
  22822. </para>
  22823. </change>

  22824. <change type="bugfix">
  22825. <para lang="ru">
  22826. команда config timefmt в SSI задавала неверный формат времени.
  22827. </para>
  22828. <para lang="en">
  22829. the "config timefmt" SSI command set incorrect time format.
  22830. </para>
  22831. </change>

  22832. <change type="bugfix">
  22833. <para lang="ru">
  22834. nginx не закрывал соединения с IMAP/POP3 бэкендом при использовании SSL
  22835. соединений;
  22836. ошибка появилась в 0.3.13.<br/>
  22837. Спасибо Rob Mueller.
  22838. </para>
  22839. <para lang="en">
  22840. nginx did not close connection to IMAP/POP3 backend for the SSL
  22841. connections;
  22842. the bug had appeared in 0.3.13.<br/>
  22843. Thanks to Rob Mueller.
  22844. </para>
  22845. </change>

  22846. <change type="bugfix">
  22847. <para lang="ru">
  22848. segmentation fault мог произойти во время SSL shutdown;
  22849. ошибка появилась в 0.3.13.
  22850. </para>
  22851. <para lang="en">
  22852. segmentation fault may occurred in at SSL shutdown;
  22853. the bug had appeared in 0.3.13.
  22854. </para>
  22855. </change>

  22856. </changes>


  22857. <changes ver="0.3.15" date="2005-12-07">

  22858. <change type="feature">
  22859. <para lang="ru">
  22860. новой код 444 в директиве return для закрытия соединения.
  22861. </para>
  22862. <para lang="en">
  22863. the new 444 code of the "return" directive to close connection.
  22864. </para>
  22865. </change>

  22866. <change type="feature">
  22867. <para lang="ru">
  22868. директива so_keepalive в IMAP/POP3 прокси.
  22869. </para>
  22870. <para lang="en">
  22871. the "so_keepalive" directive in IMAP/POP3 proxy.
  22872. </para>
  22873. </change>

  22874. <change type="bugfix">
  22875. <para lang="ru">
  22876. nginx теперь вызывает abort() при обнаружении незакрытых соединений
  22877. только при плавном выходе и включённой директиве debug_points.
  22878. </para>
  22879. <para lang="en">
  22880. if there are unclosed connection nginx now calls abort() only on graceful
  22881. quit and active "debug_points" directive.
  22882. </para>
  22883. </change>

  22884. </changes>


  22885. <changes ver="0.3.14" date="2005-12-05">

  22886. <change type="bugfix">
  22887. <para lang="ru">
  22888. в ответе 304 передавалось тело ответа;
  22889. ошибка появилась в 0.3.13.
  22890. </para>
  22891. <para lang="en">
  22892. in the 304 response the body was transferred;
  22893. the bug had appeared in 0.3.13.
  22894. </para>
  22895. </change>

  22896. </changes>


  22897. <changes ver="0.3.13" date="2005-12-05">

  22898. <change type="feature">
  22899. <para lang="ru">
  22900. IMAP/POP3 прокси поддерживает STARTTLS и STLS.
  22901. </para>
  22902. <para lang="en">
  22903. the IMAP/POP3 proxy supports STARTTLS and STLS.
  22904. </para>
  22905. </change>

  22906. <change type="bugfix">
  22907. <para lang="ru">
  22908. IMAP/POP3 прокси не работала с методами select, poll и /dev/poll.
  22909. </para>
  22910. <para lang="en">
  22911. the IMAP/POP3 proxy did not work with the select, poll, and /dev/poll methods.
  22912. </para>
  22913. </change>

  22914. <change type="bugfix">
  22915. <para lang="ru">
  22916. ошибки в обработке SSI.
  22917. </para>
  22918. <para lang="en">
  22919. in SSI handling.
  22920. </para>
  22921. </change>

  22922. <change type="bugfix">
  22923. <para lang="ru">
  22924. sendfilev() в Solaris теперь не используется при передаче тела запроса
  22925. FastCGI-серверу через unix domain сокет.
  22926. </para>
  22927. <para lang="en">
  22928. now Solaris sendfilev() is not used to transfer the client request body
  22929. to FastCGI-server via the unix domain socket.
  22930. </para>
  22931. </change>

  22932. <change type="bugfix">
  22933. <para lang="ru">
  22934. директива auth_basic не запрещала аутентификацию;
  22935. ошибка появилась в 0.3.11.
  22936. </para>
  22937. <para lang="en">
  22938. the "auth_basic" directive did not disable the authorization;
  22939. the bug had appeared in 0.3.11.
  22940. </para>
  22941. </change>

  22942. </changes>


  22943. <changes ver="0.3.12" date="2005-11-26">

  22944. <change type="security">
  22945. <para lang="ru">
  22946. если nginx был собран с модулем ngx_http_realip_module, то при использовании
  22947. директивы "satisfy_any on" директивы доступа и аутентификации не работали.
  22948. Модуль ngx_http_realip_module не собирался и не собирается по умолчанию.
  22949. </para>
  22950. <para lang="en">
  22951. if nginx was built with the ngx_http_realip_module and the "satisfy_any on"
  22952. directive was used, then access and authorization directives did not work.
  22953. The ngx_http_realip_module was not built and is not built by default.
  22954. </para>
  22955. </change>

  22956. <change type="change">
  22957. <para lang="ru">
  22958. имя переменной "$time_gmt" изменено на "$time_local".
  22959. </para>
  22960. <para lang="en">
  22961. the "$time_gmt" variable name was changed to "$time_local".
  22962. </para>
  22963. </change>

  22964. <change type="change">
  22965. <para lang="ru">
  22966. директивы proxy_header_buffer_size и fastcgi_header_buffer_size
  22967. переименованы соответственно в proxy_buffer_size и fastcgi_buffer_size.
  22968. </para>
  22969. <para lang="en">
  22970. the "proxy_header_buffer_size" and "fastcgi_header_buffer_size" directives
  22971. was renamed to the "proxy_buffer_size" and "fastcgi_buffer_size" directives.
  22972. </para>
  22973. </change>

  22974. <change type="feature">
  22975. <para lang="ru">
  22976. модуль ngx_http_memcached_module.
  22977. </para>
  22978. <para lang="en">
  22979. the ngx_http_memcached_module.
  22980. </para>
  22981. </change>

  22982. <change type="feature">
  22983. <para lang="ru">
  22984. директива proxy_buffering.
  22985. </para>
  22986. <para lang="en">
  22987. the "proxy_buffering" directive.
  22988. </para>
  22989. </change>

  22990. <change type="bugfix">
  22991. <para lang="ru">
  22992. изменение в работе с accept mutex при использовании метода rtsig;
  22993. ошибка появилась в 0.3.0.
  22994. </para>
  22995. <para lang="en">
  22996. the changes in accept mutex  handling when the "rtsig" method was used;
  22997. the bug had appeared in 0.3.0.
  22998. </para>
  22999. </change>

  23000. <change type="bugfix">
  23001. <para lang="ru">
  23002. если клиент передал строку "Transfer-Encoding: chunked" в заголовке
  23003. запроса, то nginx теперь выдаёт ошибку 411.
  23004. </para>
  23005. <para lang="en">
  23006. if the client sent the "Transfer-Encoding: chunked" header line, then
  23007. nginx returns the 411 error.
  23008. </para>
  23009. </change>

  23010. <change type="bugfix">
  23011. <para lang="ru">
  23012. при наследовании директивы auth_basic с уровня http в строке
  23013. "WWW-Authenticate" заголовка ответа выводился realm без текста "Basic realm".
  23014. </para>
  23015. <para lang="en">
  23016. if the "auth_basic" directive was inherited from the http level,
  23017. then the realm in the "WWW-Authenticate" header line was without
  23018. the "Basic realm" text.
  23019. </para>
  23020. </change>

  23021. <change type="bugfix">
  23022. <para lang="ru">
  23023. если в директиве access_log был явно указан формат combined, то в лог
  23024. записывались пустые строки;
  23025. ошибка появилась в 0.3.8.
  23026. </para>
  23027. <para lang="en">
  23028. if the "combined" format was explicitly specified in the "access_log" directive,
  23029. then the empty lines was written to the log;
  23030. the bug had appeared in 0.3.8.
  23031. </para>
  23032. </change>

  23033. <change type="bugfix">
  23034. <para lang="ru">
  23035. nginx не работал на платформе sparc под любыми OS, кроме Solaris.
  23036. </para>
  23037. <para lang="en">
  23038. nginx did not run on the sparc platform under any OS except Solaris.
  23039. </para>
  23040. </change>

  23041. <change type="bugfix">
  23042. <para lang="ru">
  23043. в директиве if теперь не нужно разделять пробелом строку в кавычках и
  23044. закрывающую скобку.
  23045. </para>
  23046. <para lang="en">
  23047. now it is not necessary to place space between the quoted string and closing
  23048. bracket in the "if" directive.
  23049. </para>
  23050. </change>

  23051. </changes>


  23052. <changes ver="0.3.11" date="2005-11-15">

  23053. <change type="bugfix">
  23054. <para lang="ru">
  23055. nginx не передавал при проксировании тело запроса и строки заголовка клиента;
  23056. ошибка появилась в 0.3.10.
  23057. </para>
  23058. <para lang="en">
  23059. nginx did not pass the client request headers and body while proxying;
  23060. the bug had appeared in 0.3.10.
  23061. </para>
  23062. </change>

  23063. </changes>


  23064. <changes ver="0.3.10" date="2005-11-15">

  23065. <change type="change">
  23066. <para lang="ru">
  23067. директива valid_referers и переменная $invalid_referer перенесены
  23068. из модуля ngx_http_rewrite_module в новый модуль ngx_http_referer_module.
  23069. </para>
  23070. <para lang="en">
  23071. the "valid_referers" directive and the "$invalid_referer" variable
  23072. were moved to the new ngx_http_referer_module from the ngx_http_rewrite_module.
  23073. </para>
  23074. </change>

  23075. <change type="change">
  23076. <para lang="ru">
  23077. имя переменной "$apache_bytes_sent" изменено на "$body_bytes_sent".
  23078. </para>
  23079. <para lang="en">
  23080. the "$apache_bytes_sent" variable name was changed to "$body_bytes_sent".
  23081. </para>
  23082. </change>

  23083. <change type="feature">
  23084. <para lang="ru">
  23085. переменные "$sent_http_...".
  23086. </para>
  23087. <para lang="en">
  23088. the "$sent_http_..." variables.
  23089. </para>
  23090. </change>

  23091. <change type="feature">
  23092. <para lang="ru">
  23093. директива if поддерживает операции "=" и "!=".
  23094. </para>
  23095. <para lang="en">
  23096. the "if" directive supports the "=" and "!=" operations.
  23097. </para>
  23098. </change>

  23099. <change type="feature">
  23100. <para lang="ru">
  23101. директива proxy_pass поддерживает протокол HTTPS.
  23102. </para>
  23103. <para lang="en">
  23104. the "proxy_pass" directive supports the HTTPS protocol.
  23105. </para>
  23106. </change>

  23107. <change type="feature">
  23108. <para lang="ru">
  23109. директива proxy_set_body.
  23110. </para>
  23111. <para lang="en">
  23112. the "proxy_set_body" directive.
  23113. </para>
  23114. </change>

  23115. <change type="feature">
  23116. <para lang="ru">
  23117. директива post_action.
  23118. </para>
  23119. <para lang="en">
  23120. the "post_action" directive.
  23121. </para>
  23122. </change>

  23123. <change type="feature">
  23124. <para lang="ru">
  23125. модуль ngx_http_empty_gif_module.
  23126. </para>
  23127. <para lang="en">
  23128. the ngx_http_empty_gif_module.
  23129. </para>
  23130. </change>

  23131. <change type="feature">
  23132. <para lang="ru">
  23133. директива worker_cpu_affinity для Linux.
  23134. </para>
  23135. <para lang="en">
  23136. the "worker_cpu_affinity" directive for Linux.
  23137. </para>
  23138. </change>

  23139. <change type="bugfix">
  23140. <para lang="ru">
  23141. директива rewrite не раскодировала символы в редиректах в URI,
  23142. теперь символы раскодируются, кроме символов %00-%25 и %7F-%FF.
  23143. </para>
  23144. <para lang="en">
  23145. the "rewrite" directive did not unescape URI part in redirect,
  23146. now it is unescaped except the %00-%25 and %7F-%FF characters.
  23147. </para>
  23148. </change>

  23149. <change type="bugfix">
  23150. <para lang="ru">
  23151. nginx не собирался компилятором icc 9.0.
  23152. </para>
  23153. <para lang="en">
  23154. nginx could not be built by the icc 9.0 compiler.
  23155. </para>
  23156. </change>

  23157. <change type="bugfix">
  23158. <para lang="ru">
  23159. если для статического файла нулевого размера был разрешён SSI,
  23160. то ответ передавался неверно при кодировании chunk'ами.
  23161. </para>
  23162. <para lang="en">
  23163. if the SSI was enabled for zero size static file, then the chunked
  23164. response was encoded incorrectly.
  23165. </para>
  23166. </change>

  23167. </changes>


  23168. <changes ver="0.3.9" date="2005-11-10">

  23169. <change type="bugfix">
  23170. <para lang="ru">
  23171. nginx считал небезопасными URI, в которых между двумя слэшами
  23172. находилось два любых символа;
  23173. ошибка появилась в 0.3.8.
  23174. </para>
  23175. <para lang="en">
  23176. nginx considered URI as unsafe if two any symbols was between two slashes;
  23177. the bug had appeared in 0.3.8.
  23178. </para>
  23179. </change>

  23180. </changes>


  23181. <changes ver="0.3.8" date="2005-11-09">

  23182. <change type="security">
  23183. <para lang="ru">
  23184. nginx теперь проверят URI, полученные от бэкенда в строке "X-Accel-Redirect"
  23185. в заголовке ответа, или в SSI файле на наличие путей "/../" и нулей.
  23186. </para>
  23187. <para lang="en">
  23188. nginx now checks URI got from a backend in "X-Accel-Redirect" header line
  23189. or in SSI file for the "/../" paths and zeroes.
  23190. </para>
  23191. </change>

  23192. <change type="change">
  23193. <para lang="ru">
  23194. nginx теперь не воспринимает пустое имя как правильное
  23195. в строке "Authorization" в заголовке запроса.
  23196. </para>
  23197. <para lang="en">
  23198. nginx now does not treat the empty user name in the "Authorization" header
  23199. line as valid one.
  23200. </para>
  23201. </change>

  23202. <change type="feature">
  23203. <para lang="ru">
  23204. директива ssl_session_timeout модулей
  23205. ngx_http_ssl_module и ngx_imap_ssl_module.
  23206. </para>
  23207. <para lang="en">
  23208. the "ssl_session_timeout" directives
  23209. of the ngx_http_ssl_module and ngx_imap_ssl_module.
  23210. </para>
  23211. </change>

  23212. <change type="feature">
  23213. <para lang="ru">
  23214. директива auth_http_header модуля ngx_imap_auth_http_module.
  23215. </para>
  23216. <para lang="en">
  23217. the "auth_http_header" directive of the ngx_imap_auth_http_module.
  23218. </para>
  23219. </change>

  23220. <change type="feature">
  23221. <para lang="ru">
  23222. директива add_header.
  23223. </para>
  23224. <para lang="en">
  23225. the "add_header" directive.
  23226. </para>
  23227. </change>

  23228. <change type="feature">
  23229. <para lang="ru">
  23230. модуль ngx_http_realip_module.
  23231. </para>
  23232. <para lang="en">
  23233. the ngx_http_realip_module.
  23234. </para>
  23235. </change>

  23236. <change type="feature">
  23237. <para lang="ru">
  23238. новые переменные для использования в директиве log_format:
  23239. $bytes_sent, $apache_bytes_sent, $status, $time_gmt,
  23240. $uri, $request_time, $request_length,
  23241. $upstream_status, $upstream_response_time,
  23242. $gzip_ratio,
  23243. $uid_got, $uid_set,
  23244. $connection, $pipe и $msec.
  23245. Параметры в виде "%name" скоро будут упразднены.
  23246. </para>
  23247. <para lang="en">
  23248. the new variables to use in the "log_format" directive:
  23249. $bytes_sent, $apache_bytes_sent, $status, $time_gmt,
  23250. $uri, $request_time, $request_length,
  23251. $upstream_status, $upstream_response_time,
  23252. $gzip_ratio,
  23253. $uid_got, $uid_set,
  23254. $connection, $pipe, and $msec.
  23255. The parameters in the "%name" form will be canceled soon.
  23256. </para>
  23257. </change>

  23258. <change type="change">
  23259. <para lang="ru">
  23260. в директиве "if" ложными значениями переменных теперь являются
  23261. пустая строка "" и строки, начинающиеся на "0".
  23262. </para>
  23263. <para lang="en">
  23264. now the false variable values in the "if" directive are the empty string ""
  23265. and string starting with "0".
  23266. </para>
  23267. </change>

  23268. <change type="bugfix">
  23269. <para lang="ru">
  23270. при работает с проксированными или FastCGI-серверами nginx мог оставлять
  23271. открытыми соединения и временные файлы с запросами клиентов.
  23272. </para>
  23273. <para lang="en">
  23274. while using proxied or FastCGI-server nginx may leave connections
  23275. and temporary files with client requests in open state.
  23276. </para>
  23277. </change>

  23278. <change type="bugfix">
  23279. <para lang="ru">
  23280. рабочие процессы не сбрасывали буферизированные логи при плавном выходе.
  23281. </para>
  23282. <para lang="en">
  23283. the worker processes did not flush the buffered logs on graceful exit.
  23284. </para>
  23285. </change>

  23286. <change type="bugfix">
  23287. <para lang="ru">
  23288. если URI запроса изменялось с помощью rewrite, а затем запрос проксировался
  23289. в location, заданном регулярным выражением, то бэкенду передавался
  23290. неверный запрос;
  23291. ошибка появилась в 0.2.6.
  23292. </para>
  23293. <para lang="en">
  23294. if the request URI was changes by the "rewrite" directive and the request
  23295. was proxied in location given by regular expression, then the incorrect
  23296. request was transferred to backend;
  23297. the bug had appeared in 0.2.6.
  23298. </para>
  23299. </change>

  23300. <change type="bugfix">
  23301. <para lang="ru">
  23302. директива expires не удаляла уже установленную строку заголовка "Expires".
  23303. </para>
  23304. <para lang="en">
  23305. the "expires" directive did not remove the previous "Expires" header.
  23306. </para>
  23307. </change>

  23308. <change type="bugfix">
  23309. <para lang="ru">
  23310. при использовании метода rtsig и нескольких рабочих процессах nginx
  23311. мог перестать принимать запросы.
  23312. </para>
  23313. <para lang="en">
  23314. nginx may stop to accept requests if the "rtsig" method and several worker
  23315. processes were used.
  23316. </para>
  23317. </change>

  23318. <change type="bugfix">
  23319. <para lang="ru">
  23320. в SSI командах неверно обрабатывались строки "\"" и "\'".
  23321. </para>
  23322. <para lang="en">
  23323. the "\"" and "\'" escape symbols were incorrectly handled in SSI commands.
  23324. </para>
  23325. </change>

  23326. <change type="bugfix">
  23327. <para lang="ru">
  23328. если ответ заканчивался сразу же после SSI команды, то при использовании
  23329. сжатия ответ передавался не до конца или не передавался вообще.
  23330. </para>
  23331. <para lang="en">
  23332. if the response was ended just after the SSI command and gzipping was used,
  23333. then the response did not transferred complete or did not transferred at all.
  23334. </para>
  23335. </change>

  23336. </changes>


  23337. <changes ver="0.3.7" date="2005-10-27">

  23338. <change type="feature">
  23339. <para lang="ru">
  23340. директива access_log поддерживает параметр buffer=.
  23341. </para>
  23342. <para lang="en">
  23343. the "access_log" supports the "buffer=" parameter.
  23344. </para>
  23345. </change>

  23346. <change type="bugfix">
  23347. <para lang="ru">
  23348. nginx не собирался на платформах, отличных от i386, amd64, sparc и ppc;
  23349. ошибка появилась в 0.3.2.
  23350. </para>
  23351. <para lang="en">
  23352. nginx could not be built on platforms different from i386, amd64, sparc,
  23353. and ppc;
  23354. the bug had appeared in 0.3.2.
  23355. </para>
  23356. </change>

  23357. </changes>


  23358. <changes ver="0.3.6" date="2005-10-24">

  23359. <change type="change">
  23360. <para lang="ru">
  23361. IMAP/POP3 прокси теперь не передаёт серверу авторизации пустой логин.
  23362. </para>
  23363. <para lang="en">
  23364. now the IMAP/POP3 proxy do not send the empty login to authorization server.
  23365. </para>
  23366. </change>

  23367. <change type="feature">
  23368. <para lang="ru">
  23369. директива log_format поддерживает переменные в виде $name.
  23370. </para>
  23371. <para lang="en">
  23372. the "log_format" supports the variables in the $name form.
  23373. </para>
  23374. </change>

  23375. <change type="bugfix">
  23376. <para lang="ru">
  23377. если хотя бы в одном сервере не было описано ни одной директивы listen, то
  23378. nginx не слушал на 80 порту;
  23379. ошибка появилась в 0.3.3.
  23380. </para>
  23381. <para lang="en">
  23382. if at least in one server was no the "listen" directive, then nginx did not
  23383. listen on the 80 port;
  23384. the bug had appeared in 0.3.3.
  23385. </para>
  23386. </change>

  23387. <change type="bugfix">
  23388. <para lang="ru">
  23389. если в директиве proxy_pass отсутствовал URI, то всегда использовался порт 80.
  23390. </para>
  23391. <para lang="en">
  23392. if the URI part is omitted in "proxy_pass" directive, the 80 port was
  23393. always used.
  23394. </para>
  23395. </change>

  23396. </changes>


  23397. <changes ver="0.3.5" date="2005-10-21">

  23398. <change type="bugfix">
  23399. <para lang="ru">
  23400. если логин IMAP/POP3 менялся сервером авторизации, то мог произойти
  23401. segmentation fault;
  23402. ошибка появилась в 0.2.2.
  23403. </para>
  23404. <para lang="en">
  23405. the segmentation fault may occurred if the IMAP/POP3 login was changed
  23406. by authorization server;
  23407. the bug had appeared in 0.2.2.
  23408. </para>
  23409. </change>

  23410. <change type="bugfix">
  23411. <para lang="ru">
  23412. accept mutex не работал, все соединения обрабатывались одним рабочим процессом;
  23413. ошибка появилась в 0.3.3.
  23414. </para>
  23415. <para lang="en">
  23416. the accept mutex did not work and all connections were handled by one process;
  23417. the bug had appeared in 0.3.3.
  23418. </para>
  23419. </change>

  23420. <change type="bugfix">
  23421. <para lang="ru">
  23422. при использовании метода rtsig и директивы timer_resolution
  23423. не работали таймауты.
  23424. </para>
  23425. <para lang="en">
  23426. the timeout did not work if the "rtsig" method and the "timer_resolution"
  23427. directive were used.
  23428. </para>
  23429. </change>

  23430. </changes>


  23431. <changes ver="0.3.4" date="2005-10-19">

  23432. <change type="bugfix">
  23433. <para lang="ru">
  23434. nginx не собирался на Linux 2.4+ и MacOS X;
  23435. ошибка появилась в 0.3.3.
  23436. </para>
  23437. <para lang="en">
  23438. nginx could not be built on Linux 2.4+ and MacOS X;
  23439. the bug had appeared in 0.3.3.
  23440. </para>
  23441. </change>

  23442. </changes>


  23443. <changes ver="0.3.3" date="2005-10-19">

  23444. <change type="change">
  23445. <para lang="ru">
  23446. параметры "bl" и "af" директивы listen переименованы в "backlog"
  23447. и "accept_filter".
  23448. </para>
  23449. <para lang="en">
  23450. the "bl" and "af" parameters of the "listen" directive was renamed to
  23451. the "backlog" and "accept_filter".
  23452. </para>
  23453. </change>

  23454. <change type="feature">
  23455. <para lang="ru">
  23456. параметры "rcvbuf" и "sndbuf" в директиве listen.
  23457. </para>
  23458. <para lang="en">
  23459. the "rcvbuf" and "sndbuf" parameters of the "listen" directive.
  23460. </para>
  23461. </change>

  23462. <change type="change">
  23463. <para lang="ru">
  23464. параметр лога $msec теперь не требует дополнительного системного
  23465. вызова gettimeofday().
  23466. </para>
  23467. <para lang="en">
  23468. the "$msec" log parameter does not require now the additional
  23469. the gettimeofday() system call.
  23470. </para>
  23471. </change>

  23472. <change type="feature">
  23473. <para lang="ru">
  23474. ключ -t теперь проверяет директивы listen.
  23475. </para>
  23476. <para lang="en">
  23477. the -t switch now tests the "listen" directives.
  23478. </para>
  23479. </change>

  23480. <change type="bugfix">
  23481. <para lang="ru">
  23482. если в директиве listen был указан неверный адрес, то nginx после
  23483. сигнала -HUP оставлял открытый сокет в состоянии CLOSED.
  23484. </para>
  23485. <para lang="en">
  23486. if the invalid address was specified in the "listen" directive, then
  23487. after the -HUP signal nginx left an open socket in the CLOSED state.
  23488. </para>
  23489. </change>

  23490. <change type="bugfix">
  23491. <para lang="ru">
  23492. для индексных файлов, содержащих в имени переменную, мог неверно выставляться
  23493. тип mime по умолчанию;
  23494. ошибка появилась в 0.3.0.
  23495. </para>
  23496. <para lang="en">
  23497. the mime type may be incorrectly set to default value for index file with
  23498. variable in the name;
  23499. the bug had appeared in 0.3.0.
  23500. </para>
  23501. </change>

  23502. <change type="feature">
  23503. <para lang="ru">
  23504. директива timer_resolution.
  23505. </para>
  23506. <para lang="en">
  23507. the "timer_resolution" directive.
  23508. </para>
  23509. </change>

  23510. <change type="feature">
  23511. <para lang="ru">
  23512. параметр лога $upstream_response_time в миллисекундах.
  23513. </para>
  23514. <para lang="en">
  23515. the millisecond "$upstream_response_time" log parameter.
  23516. </para>
  23517. </change>

  23518. <change type="bugfix">
  23519. <para lang="ru">
  23520. временный файл с телом запроса клиента теперь удаляется сразу после того,
  23521. как клиенту передан заголовок ответа.
  23522. </para>
  23523. <para lang="en">
  23524. a temporary file with client request body now is removed just after
  23525. the response header was transferred to a client.
  23526. </para>
  23527. </change>

  23528. <change type="bugfix">
  23529. <para lang="ru">
  23530. совместимость с OpenSSL 0.9.6.
  23531. </para>
  23532. <para lang="en">
  23533. OpenSSL 0.9.6 compatibility.
  23534. </para>
  23535. </change>

  23536. <change type="bugfix">
  23537. <para lang="ru">
  23538. пути к файлам с SSL сертификатом и ключом не могли быть относительными.
  23539. </para>
  23540. <para lang="en">
  23541. the SSL certificate and key file paths could not be relative.
  23542. </para>
  23543. </change>

  23544. <change type="bugfix">
  23545. <para lang="ru">
  23546. директива ssl_prefer_server_ciphers не работала для модуля ngx_imap_ssl_module.
  23547. </para>
  23548. <para lang="en">
  23549. the "ssl_prefer_server_ciphers" directive did not work in
  23550. the ngx_imap_ssl_module.
  23551. </para>
  23552. </change>

  23553. <change type="bugfix">
  23554. <para lang="ru">
  23555. директива ssl_protocols позволяла задать только один протокол.
  23556. </para>
  23557. <para lang="en">
  23558. the "ssl_protocols" directive allowed to specify the single protocol only.
  23559. </para>
  23560. </change>

  23561. </changes>


  23562. <changes ver="0.3.2" date="2005-10-12">

  23563. <change type="feature">
  23564. <para lang="ru">
  23565. поддержка Sun Studio 10 C compiler.
  23566. </para>
  23567. <para lang="en">
  23568. the Sun Studio 10 C compiler support.
  23569. </para>
  23570. </change>

  23571. <change type="feature">
  23572. <para lang="ru">
  23573. директивы proxy_upstream_max_fails, proxy_upstream_fail_timeout,
  23574. fastcgi_upstream_max_fails и fastcgi_upstream_fail_timeout.
  23575. </para>
  23576. <para lang="en">
  23577. the "proxy_upstream_max_fails", "proxy_upstream_fail_timeout",
  23578. "fastcgi_upstream_max_fails", and "fastcgi_upstream_fail_timeout"
  23579. directives.
  23580. </para>
  23581. </change>

  23582. </changes>


  23583. <changes ver="0.3.1" date="2005-10-10">

  23584. <change type="bugfix">
  23585. <para lang="ru">
  23586. во время переполнения очереди сигналов при использовании метода rtsig
  23587. происходил segmentation fault;
  23588. ошибка появилась в 0.2.0.
  23589. </para>
  23590. <para lang="en">
  23591. the segmentation fault occurred when the signal queue overflowed
  23592. if the "rtsig" method was used;
  23593. the bug had appeared in 0.2.0.
  23594. </para>
  23595. </change>

  23596. <change type="change">
  23597. <para lang="ru">
  23598. корректная обработка пар "\\", "\"", "\'" и "\$" в SSI.
  23599. </para>
  23600. <para lang="en">
  23601. correct handling of the "\\", "\"", "\'", and "\$" pairs in SSI.
  23602. </para>
  23603. </change>

  23604. </changes>


  23605. <changes ver="0.3.0" date="2005-10-07">

  23606. <change type="change">
  23607. <para lang="ru">
  23608. убрано десятидневное ограничение времени работы рабочего процесса.
  23609. Ограничение было введено из-за переполнения миллисекундных таймеров.
  23610. </para>
  23611. <para lang="en">
  23612. the 10-days live time limit of worker process was eliminated.
  23613. The limit was introduced because of millisecond timers overflow.
  23614. </para>
  23615. </change>

  23616. </changes>


  23617. <changes ver="0.2.6" date="2005-10-05">

  23618. <change type="change">
  23619. <para lang="ru">
  23620. с 60 до 10 секунд уменьшено время повторного обращения к бэкенду
  23621. при использовании распределения нагрузки.
  23622. </para>
  23623. <para lang="en">
  23624. while using load-balancing the time before the failed backend retry
  23625. was decreased from 60 to 10 seconds.
  23626. </para>
  23627. </change>

  23628. <change type="change">
  23629. <para lang="ru">
  23630. директива proxy_pass_unparsed_uri упразднена, оригинальный запрос теперь
  23631. передаётся, если в директиве proxy_pass отсутствует URI.
  23632. </para>
  23633. <para lang="en">
  23634. the "proxy_pass_unparsed_uri" was canceled, the original URI now passed,
  23635. if the URI part is omitted in "proxy_pass" directive.
  23636. </para>
  23637. </change>

  23638. <change type="feature">
  23639. <para lang="ru">
  23640. директива error_page поддерживает редиректы и позволяет более гибко
  23641. менять код ошибки.
  23642. </para>
  23643. <para lang="en">
  23644. the "error_page" directive supports redirects and allows more flexible
  23645. to change an error code.
  23646. </para>
  23647. </change>

  23648. <change type="change">
  23649. <para lang="ru">
  23650. в проксированных подзапросах теперь игнорируется переданный charset.
  23651. </para>
  23652. <para lang="en">
  23653. the charset in the "Content-Type" header line now is ignored
  23654. in proxied subrequests.
  23655. </para>
  23656. </change>

  23657. <change type="bugfix">
  23658. <para lang="ru">
  23659. если после изменения URI в блоке if для запроса не находилась
  23660. новая конфигурация, то правила модуля ngx_http_rewrite_module выполнялись
  23661. снова.
  23662. </para>
  23663. <para lang="en">
  23664. if the URI was changed in the "if" block and request did not found
  23665. new configuration, then the ngx_http_rewrite_module rules ran again.
  23666. </para>
  23667. </change>

  23668. <change type="bugfix">
  23669. <para lang="ru">
  23670. если директива set устанавливала переменную модуля ngx_http_geo_module
  23671. в какой-либо части конфигурации, то эта переменная не была доступна в
  23672. других частях конфигурации и выдавалась ошибка "using uninitialized variable";
  23673. ошибка появилась в 0.2.2.
  23674. </para>
  23675. <para lang="en">
  23676. if the "set" directive set the ngx_http_geo_module variable in some
  23677. configuration part, the this variable was not available in other
  23678. configuration parts and the "using uninitialized variable" error was occurred;
  23679. the bug had appeared in 0.2.2.
  23680. </para>
  23681. </change>

  23682. </changes>


  23683. <changes ver="0.2.5" date="2005-10-04">

  23684. <change type="change">
  23685. <para lang="ru">
  23686. дублирующее значение переменной модуля ngx_http_geo_module теперь
  23687. выдаёт предупреждение и изменяет старое значение.
  23688. </para>
  23689. <para lang="en">
  23690. the duplicate value of the ngx_http_geo_module variable now causes
  23691. the warning and changes old value.
  23692. </para>
  23693. </change>

  23694. <change type="feature">
  23695. <para lang="ru">
  23696. модуль ngx_http_ssi_module поддерживает команду set.
  23697. </para>
  23698. <para lang="en">
  23699. the ngx_http_ssi_module supports the "set" command.
  23700. </para>
  23701. </change>

  23702. <change type="feature">
  23703. <para lang="ru">
  23704. модуль ngx_http_ssi_module поддерживает параметр file в команде include.
  23705. </para>
  23706. <para lang="en">
  23707. the ngx_http_ssi_module supports the "file" parameter in the "include" command.
  23708. </para>
  23709. </change>

  23710. <change type="feature">
  23711. <para lang="ru">
  23712. модуль ngx_http_ssi_module поддерживает подстановку значений переменных
  23713. в выражениях команды if.
  23714. </para>
  23715. <para lang="en">
  23716. the ngx_http_ssi_module supports the variable value substitutions in
  23717. expressions of the "if" command.
  23718. </para>
  23719. </change>

  23720. </changes>


  23721. <changes ver="0.2.4" date="2005-10-03">

  23722. <change type="feature">
  23723. <para lang="ru">
  23724. модуль ngx_http_ssi_module поддерживает выражения
  23725. "$var=text", "$var!=text", "$var=/text/" и "$var!=/text/"
  23726. в команде if.
  23727. </para>
  23728. <para lang="en">
  23729. the ngx_http_ssi_module supports
  23730. "$var=text", "$var!=text", "$var=/text/", and "$var!=/text/" expressions
  23731. in the "if" command.
  23732. </para>
  23733. </change>

  23734. <change type="bugfix">
  23735. <para lang="ru">
  23736. ошибки при проксировании location без слэша в конце;
  23737. ошибка появилась в 0.1.44.
  23738. </para>
  23739. <para lang="en">
  23740. in proxying location without trailing slash;
  23741. the bug had appeared in 0.1.44.
  23742. </para>
  23743. </change>

  23744. <change type="bugfix">
  23745. <para lang="ru">
  23746. при использовании метода rtsig мог произойти segmentation fault;
  23747. ошибка появилась в 0.2.0.
  23748. </para>
  23749. <para lang="en">
  23750. the segmentation fault may occurred if the "rtsig" method was used;
  23751. the bug had appeared in 0.2.0.
  23752. </para>
  23753. </change>

  23754. </changes>


  23755. <changes ver="0.2.3" date="2005-09-30">

  23756. <change type="bugfix">
  23757. <para lang="ru">
  23758. nginx не собирался без параметра --with-debug;
  23759. ошибка появилась в 0.2.2.
  23760. </para>
  23761. <para lang="en">
  23762. nginx could not be built without the --with-debug option;
  23763. the bug had appeared in 0.2.2.
  23764. </para>
  23765. </change>

  23766. </changes>


  23767. <changes ver="0.2.2" date="2005-09-30">

  23768. <change type="feature">
  23769. <para lang="ru">
  23770. команда config errmsg в модуле ngx_http_ssi_module.
  23771. </para>
  23772. <para lang="en">
  23773. the "config errmsg" command of the ngx_http_ssi_module.
  23774. </para>
  23775. </change>

  23776. <change type="change">
  23777. <para lang="ru">
  23778. переменные модуля ngx_http_geo_module можно переопределять директивой set.
  23779. </para>
  23780. <para lang="en">
  23781. the ngx_http_geo_module variables can be overridden by the "set" directive.
  23782. </para>
  23783. </change>

  23784. <change type="feature">
  23785. <para lang="ru">
  23786. директивы ssl_protocols и ssl_prefer_server_ciphers модулей
  23787. ngx_http_ssl_module и ngx_imap_ssl_module.
  23788. </para>
  23789. <para lang="en">
  23790. the "ssl_protocols" and "ssl_prefer_server_ciphers" directives
  23791. of the ngx_http_ssl_module and ngx_imap_ssl_module.
  23792. </para>
  23793. </change>

  23794. <change type="bugfix">
  23795. <para lang="ru">
  23796. ошибка в модуле ngx_http_autoindex_module при показе длинных имён файлов;
  23797. </para>
  23798. <para lang="en">
  23799. the ngx_http_autoindex_module did not show correctly the long file names;
  23800. </para>
  23801. </change>

  23802. <change type="bugfix">
  23803. <para lang="ru">
  23804. модуль ngx_http_autoindex_module теперь не показывает файлы,
  23805. начинающиеся на точку.
  23806. </para>
  23807. <para lang="en">
  23808. the ngx_http_autoindex_module now do not show the files starting by dot.
  23809. </para>
  23810. </change>

  23811. <change type="bugfix">
  23812. <para lang="ru">
  23813. если SSL handshake завершался с ошибкой, то это могло привести также
  23814. к закрытию другого соединения.<br/>
  23815. Спасибо Rob Mueller.
  23816. </para>
  23817. <para lang="en">
  23818. if the SSL handshake failed then another connection may be closed too.<br/>
  23819. Thanks to Rob Mueller.
  23820. </para>
  23821. </change>

  23822. <change type="bugfix">
  23823. <para lang="ru">
  23824. экспортные версии MSIE 5.x не могли соединиться по HTTPS.
  23825. </para>
  23826. <para lang="en">
  23827. the export versions of MSIE 5.x could not connect via HTTPS.
  23828. </para>
  23829. </change>

  23830. </changes>


  23831. <changes ver="0.2.1" date="2005-09-23">

  23832. <change type="bugfix">
  23833. <para lang="ru">
  23834. если все бэкенды, используемые для балансировки нагрузки, оказывались
  23835. в нерабочем состоянии после одной ошибки, то nginx мог зациклится;
  23836. ошибка появилась в 0.2.0.
  23837. </para>
  23838. <para lang="en">
  23839. if all backend using in load-balancing failed after one error, then
  23840. nginx may got caught in an endless loop;
  23841. the bug had appeared in 0.2.0.
  23842. </para>
  23843. </change>

  23844. </changes>


  23845. <changes ver="0.2.0" date="2005-09-23">

  23846. <change>
  23847. <para lang="ru">
  23848. Изменились имена pid-файлов, используемые во время обновления исполняемого
  23849. файла. Ручное переименование теперь не нужно.
  23850. Старый основной процесс добавляет к своему pid-файл суффикс ".oldbin"
  23851. и запускает новый исполняемый файл.
  23852. Новый основной процесс создаёт обычный pid-файл без суффикса ".newbin".
  23853. Если новый основной процесс выходит, то старый процесс переименовывает свой
  23854. pid-файл c суффиксом ".oldbin" в pid-файл без суффикса.
  23855. При обновлении с версии 0.1.х до 0.2.0 нужно учитывать, что оба
  23856. процесса&mdash;старый 0.1.x и новый 0.2.0&mdash;используют pid-файл
  23857. без суффиксов.
  23858. </para>
  23859. <para lang="en">
  23860. The pid-file names used during online upgrade was changed and now is not
  23861. required a manual rename operation.
  23862. The old master process adds the ".oldbin" suffix to its pid-file and
  23863. executes a new binary file.
  23864. The new master process creates usual pid-file without the ".newbin" suffix.
  23865. If the master process exits, then old master process renames back
  23866. its pid-file with the ".oldbin" suffix to the pid-file without suffix.
  23867. </para>
  23868. </change>

  23869. <change type="change">
  23870. <para lang="ru">
  23871. директива worker_connections, новое название директивы connections;
  23872. директива теперь задаёт максимальное число соединений,
  23873. а не максимально возможный номер дескриптора для сокета.
  23874. </para>
  23875. <para lang="en">
  23876. the "worker_connections" directive, new name of the "connections" directive;
  23877. now the directive specifies maximum number of connections,
  23878. but not maximum socket descriptor number.
  23879. </para>
  23880. </change>

  23881. <change type="feature">
  23882. <para lang="ru">
  23883. SSL поддерживает кэширование сессий в пределах одного рабочего процесса.
  23884. </para>
  23885. <para lang="en">
  23886. SSL supports the session cache inside one worker process.
  23887. </para>
  23888. </change>

  23889. <change type="feature">
  23890. <para lang="ru">
  23891. директива satisfy_any.
  23892. </para>
  23893. <para lang="en">
  23894. the "satisfy_any" directive.
  23895. </para>
  23896. </change>

  23897. <change type="change">
  23898. <para lang="ru">
  23899. модули ngx_http_access_module и ngx_http_auth_basic_module не работают
  23900. для подзапросов.
  23901. </para>
  23902. <para lang="en">
  23903. the ngx_http_access_module and ngx_http_auth_basic_module do not run
  23904. for subrequests.
  23905. </para>
  23906. </change>

  23907. <change type="feature">
  23908. <para lang="ru">
  23909. директивы worker_rlimit_nofile и worker_rlimit_sigpending.
  23910. </para>
  23911. <para lang="en">
  23912. the "worker_rlimit_nofile" and "worker_rlimit_sigpending" directives.
  23913. </para>
  23914. </change>

  23915. <change type="bugfix">
  23916. <para lang="ru">
  23917. если все бэкенды, используемые для балансировки нагрузки, оказывались
  23918. в нерабочем состоянии после одной ошибки, то nginx не обращался к ним
  23919. в течение 60 секунд.
  23920. </para>
  23921. <para lang="en">
  23922. if all backend using in load-balancing failed after one error, then
  23923. nginx did not try do connect to them during 60 seconds.
  23924. </para>
  23925. </change>

  23926. <change type="bugfix">
  23927. <para lang="ru">
  23928. в парсинге аргументов IMAP/POP3 команд.<br/>
  23929. Спасибо Rob Mueller.
  23930. </para>
  23931. <para lang="en">
  23932. in IMAP/POP3 command argument parsing.<br/>
  23933. Thanks to Rob Mueller.
  23934. </para>
  23935. </change>

  23936. <change type="bugfix">
  23937. <para lang="ru">
  23938. ошибки при использовании SSL в IMAP/POP3 прокси.
  23939. </para>
  23940. <para lang="en">
  23941. errors while using SSL in IMAP/POP3 proxy.
  23942. </para>
  23943. </change>

  23944. <change type="bugfix">
  23945. <para lang="ru">
  23946. ошибки при использовании SSI и сжатия.
  23947. </para>
  23948. <para lang="en">
  23949. errors while using SSI and gzipping.
  23950. </para>
  23951. </change>

  23952. <change type="bugfix">
  23953. <para lang="ru">
  23954. в ответах 304 не добавлялись строки заголовка ответа "Expires" и
  23955. "Cache-Control".<br/>
  23956. Спасибо Александру Кукушкину.
  23957. </para>
  23958. <para lang="en">
  23959. the "Expires" and "Cache-Control" header lines were omitted
  23960. from the 304 responses.<br/>
  23961. Thanks to Alexandr Kukushkin.
  23962. </para>
  23963. </change>

  23964. </changes>


  23965. <changes ver="0.1.45" date="2005-09-08">

  23966. <change type="change">
  23967. <para lang="ru">
  23968. директива ssl_engine упразднена в модуле ngx_http_ssl_module и
  23969. перенесена на глобальный уровень.
  23970. </para>
  23971. <para lang="en">
  23972. the "ssl_engine" directive was canceled in the ngx_http_ssl_module
  23973. and now is introduced at global level.
  23974. </para>
  23975. </change>

  23976. <change type="bugfix">
  23977. <para lang="ru">
  23978. ответы с подзапросами, включённые с помощью SSI, не передавались
  23979. через SSL соединение.
  23980. </para>
  23981. <para lang="en">
  23982. the responses with SSI subrequests did not transferred via SSL connection.
  23983. </para>
  23984. </change>

  23985. <change>
  23986. <para lang="ru">
  23987. Разные исправления в IMAP/POP3 прокси.
  23988. </para>
  23989. <para lang="en">
  23990. Various bug fixes in the IMAP/POP3 proxy.
  23991. </para>
  23992. </change>

  23993. </changes>


  23994. <changes ver="0.1.44" date="2005-09-06">

  23995. <change type="feature">
  23996. <para lang="ru">
  23997. IMAP/POP3 прокси поддерживает SSL.
  23998. </para>
  23999. <para lang="en">
  24000. the IMAP/POP3 proxy supports SSL.
  24001. </para>
  24002. </change>

  24003. <change type="feature">
  24004. <para lang="ru">
  24005. директива proxy_timeout модуля ngx_imap_proxy_module.
  24006. </para>
  24007. <para lang="en">
  24008. the "proxy_timeout" directive of the ngx_imap_proxy_module.
  24009. </para>
  24010. </change>

  24011. <change type="feature">
  24012. <para lang="ru">
  24013. директива userid_mark.
  24014. </para>
  24015. <para lang="en">
  24016. the "userid_mark" directive.
  24017. </para>
  24018. </change>

  24019. <change type="feature">
  24020. <para lang="ru">
  24021. значение переменной $remote_user определяется независимо от того,
  24022. используется ли авторизация или нет.
  24023. </para>
  24024. <para lang="en">
  24025. the $remote_user variable value is determined independently of
  24026. authorization use.
  24027. </para>
  24028. </change>

  24029. </changes>


  24030. <changes ver="0.1.43" date="2005-08-30">

  24031. <change type="feature">
  24032. <para lang="ru">
  24033. listen(2) backlog в директиве listen можно менять по сигналу -HUP.
  24034. </para>
  24035. <para lang="en">
  24036. the listen(2) backlog in the "listen" directive
  24037. can be changed using the -HUP signal.
  24038. </para>
  24039. </change>

  24040. <change type="feature">
  24041. <para lang="ru">
  24042. скрипт geo2nginx.pl добавлен в contrib.
  24043. </para>
  24044. <para lang="en">
  24045. the geo2nginx.pl script was added to contrib.
  24046. </para>
  24047. </change>

  24048. <change type="change">
  24049. <para lang="ru">
  24050. параметры FastCGI с пустым значениями теперь передаются серверу.
  24051. </para>
  24052. <para lang="en">
  24053. the FastCGI parameters with the empty values now are passed to a server.
  24054. </para>
  24055. </change>

  24056. <!--

  24057. <change type="bugfix">
  24058. <para lang="ru">
  24059. при ошибках в работе с проксированным сервером или FastCGI сервером
  24060. мог произойти segmentation fault;
  24061. в режиме прокси ошибка появилась в 0.1.29.
  24062. </para>
  24063. <para lang="en">
  24064. the segmentation fault may occurred if there were errors while
  24065. working with proxied or FastCGI server;
  24066. in the proxied mode the bug had appeared in 0.1.29.
  24067. </para>
  24068. </change>

  24069. -->

  24070. <change type="bugfix">
  24071. <para lang="ru">
  24072. если в ответе проксированного сервера или FastCGI сервера была строка
  24073. "Cache-Control", то при использовании директивы expires происходил
  24074. segmentation fault или рабочий процесс мог зациклится;
  24075. в режиме прокси ошибка появилась в 0.1.29.
  24076. </para>
  24077. <para lang="en">
  24078. the segmentation fault occurred or the worker process may got caught
  24079. in an endless loop if the proxied or FastCGI server sent the "Cache-Control"
  24080. header line and the "expires" directive was used;
  24081. in the proxied mode the bug had appeared in 0.1.29.
  24082. </para>
  24083. </change>

  24084. </changes>


  24085. <changes ver="0.1.42" date="2005-08-23">

  24086. <change type="bugfix">
  24087. <para lang="ru">
  24088. если URI запроса получался нулевой длины после обработки модулем
  24089. ngx_http_rewrite_module, то в модуле ngx_http_proxy_module происходил
  24090. segmentation fault или bus error.
  24091. </para>
  24092. <para lang="en">
  24093. if the request URI had a zero length after the processing in
  24094. the ngx_http_proxy_module, then the segmentation fault or bus error occurred
  24095. in the ngx_http_proxy_module.
  24096. </para>
  24097. </change>

  24098. <change type="bugfix">
  24099. <para lang="ru">
  24100. директива limit_rate не работала внутри блока if;
  24101. ошибка появилась в 0.1.38.
  24102. </para>
  24103. <para lang="en">
  24104. the "limit_rate" directive did not work inside the "if" block;
  24105. the bug had appeared in 0.1.38.
  24106. </para>
  24107. </change>

  24108. </changes>


  24109. <changes ver="0.1.41" date="2005-07-25">

  24110. <change type="bugfix">
  24111. <para lang="ru">
  24112. если переменная использовалась в файле конфигурации,
  24113. то она не могла использоваться в SSI.
  24114. </para>
  24115. <para lang="en">
  24116. if the variable was used in the configuration file,
  24117. then it can not be used in SSI.
  24118. </para>
  24119. </change>

  24120. </changes>


  24121. <changes ver="0.1.40" date="2005-07-22">

  24122. <change type="bugfix">
  24123. <para lang="ru">
  24124. если клиент слал очень длинную строку заголовка, то в логе не помещалась
  24125. информация, связанная с этим запросом.
  24126. </para>
  24127. <para lang="en">
  24128. if a client sent too long header line, then the request information
  24129. did not logged in the error log.
  24130. </para>
  24131. </change>

  24132. <change type="bugfix">
  24133. <para lang="ru">
  24134. при использовании "X-Accel-Redirect" не передавалась строка "Set-Cookie";
  24135. ошибка появилась в 0.1.39.
  24136. </para>
  24137. <para lang="en">
  24138. the "Set-Cookie" header line was not transferred when the "X-Accel-Redirect"
  24139. was used;
  24140. the bug had appeared in 0.1.39.
  24141. </para>
  24142. </change>

  24143. <change type="bugfix">
  24144. <para lang="ru">
  24145. при использовании "X-Accel-Redirect" не передавалась строка
  24146. "Content-Disposition".
  24147. </para>
  24148. <para lang="en">
  24149. the "Content-Disposition" header line was not transferred when
  24150. the "X-Accel-Redirect" was used.
  24151. </para>
  24152. </change>

  24153. <change type="bugfix">
  24154. <para lang="ru">
  24155. по сигналу SIGQUIT основной процесс не закрывал сокеты, на которых он слушал.
  24156. </para>
  24157. <para lang="en">
  24158. the master process did not close the listen socket on the SIGQUIT signal.
  24159. </para>
  24160. </change>

  24161. <change type="bugfix">
  24162. <para lang="ru">
  24163. после обновления исполняемого файла на лету на Linux и Solaris
  24164. название процесса в команде ps становилось короче.
  24165. </para>
  24166. <para lang="en">
  24167. after on-line upgrade on Linux and Solaris the process name
  24168. became shorter in the "ps" command.
  24169. </para>
  24170. </change>

  24171. </changes>


  24172. <changes ver="0.1.39" date="2005-07-14">

  24173. <change>
  24174. <para lang="ru">
  24175. Изменения в модуле ngx_http_charset_module:
  24176. директива default_charset упразднена;
  24177. директива charset задаёт кодировку ответа;
  24178. директива source_charset задаёт только исходную кодировку.
  24179. </para>
  24180. <para lang="en">
  24181. The changes in the ngx_http_charset_module:
  24182. the "default_charset" directive was canceled;
  24183. the "charset" directive sets the response charset;
  24184. the "source_charset" directive sets the source charset only.
  24185. </para>
  24186. </change>

  24187. <change type="bugfix">
  24188. <para lang="ru">
  24189. при перенаправлении ошибки 401, полученной от бэкенда, не передавалась
  24190. строка заголовка "WWW-Authenticate".
  24191. </para>
  24192. <para lang="en">
  24193. the backend "WWW-Authenticate" header line did not transferred while
  24194. the 401 response code redirecting.
  24195. </para>
  24196. </change>

  24197. <change type="bugfix">
  24198. <para lang="ru">
  24199. модули ngx_http_proxy_module и ngx_http_fastcgi_module могли закрыть
  24200. соединение до того, как что-нибудь было передано клиенту;
  24201. ошибка появилась в 0.1.38.
  24202. </para>
  24203. <para lang="en">
  24204. the ngx_http_proxy_module and ngx_http_fastcgi_module may close
  24205. a connection before anything was transferred to a client;
  24206. the bug had appeared in 0.1.38.
  24207. </para>
  24208. </change>

  24209. <change type="workaround">
  24210. <para lang="ru">
  24211. обработка ошибки инициализации в crypt_r() в Linux glibc.
  24212. </para>
  24213. <para lang="en">
  24214. the Linux glibc crypt_r() initialization bug.
  24215. </para>
  24216. </change>

  24217. <change type="bugfix">
  24218. <para lang="ru">
  24219. модуль ngx_http_ssi_module не поддерживал относительные URI в
  24220. команде include virtual.
  24221. </para>
  24222. <para lang="en">
  24223. the ngx_http_ssi_module did not support the relative URI in
  24224. the "include virtual" command.
  24225. </para>
  24226. </change>

  24227. <change type="bugfix">
  24228. <para lang="ru">
  24229. если в строке заголовка ответа бэкенда была строка "Location",
  24230. которую nginx не должен был изменять, то в ответе передавалось тело 500 ошибки;
  24231. ошибка появилась в 0.1.29.
  24232. </para>
  24233. <para lang="en">
  24234. if the backend response had the "Location" header line and nginx
  24235. should not rewrite this line, then the 500 code response body was transferred;
  24236. the bug had appeared in 0.1.29.
  24237. </para>
  24238. </change>

  24239. <change type="bugfix">
  24240. <para lang="ru">
  24241. некоторые директивы модулей ngx_http_proxy_module и ngx_http_fastcgi_module
  24242. не наследовались с уровня server на уровень location;
  24243. ошибка появилась в 0.1.29.
  24244. </para>
  24245. <para lang="en">
  24246. some directives of the ngx_http_proxy_module and ngx_http_fastcgi_module
  24247. were not inherited from the server to the location level;
  24248. the bug had appeared in 0.1.29.
  24249. </para>
  24250. </change>

  24251. <change type="bugfix">
  24252. <para lang="ru">
  24253. модуль ngx_http_ssl_module не поддерживал цепочки сертификатов.
  24254. </para>
  24255. <para lang="en">
  24256. the ngx_http_ssl_module did not support the certificate chain.
  24257. </para>
  24258. </change>

  24259. <change type="bugfix">
  24260. <para lang="ru">
  24261. ошибка в модуле ngx_http_autoindex_module при показе длинных имён файлов;
  24262. ошибка появилась в 0.1.38.
  24263. </para>
  24264. <para lang="en">
  24265. the ngx_http_autoindex_module did not show correctly the long file names;
  24266. the bug had appeared in 0.1.38.
  24267. </para>
  24268. </change>

  24269. <change>
  24270. <para lang="ru">
  24271. Исправления в IMAP/POP3 прокси при взаимодействии с бэкендом на стадии login.
  24272. </para>
  24273. <para lang="en">
  24274. Bugfixes in IMAP/POP3 proxy in interaction with a backend at the login state.
  24275. </para>
  24276. </change>

  24277. </changes>


  24278. <changes ver="0.1.38" date="2005-07-08">

  24279. <change type="feature">
  24280. <para lang="ru">
  24281. директива limit_rate поддерживается в режиме прокси и FastCGI.
  24282. </para>
  24283. <para lang="en">
  24284. the "limit_rate" directive is supported in proxy and FastCGI mode.
  24285. </para>
  24286. </change>

  24287. <change type="feature">
  24288. <para lang="ru">
  24289. в режиме прокси и FastCGI поддерживается строка заголовка "X-Accel-Limit-Rate"
  24290. в ответе бэкенда.
  24291. </para>
  24292. <para lang="en">
  24293. the "X-Accel-Limit-Rate" response header line is supported in proxy
  24294. and FastCGI mode.
  24295. </para>
  24296. </change>

  24297. <change type="feature">
  24298. <para lang="ru">
  24299. директива break.
  24300. </para>
  24301. <para lang="en">
  24302. the "break" directive.
  24303. </para>
  24304. </change>

  24305. <change type="feature">
  24306. <para lang="ru">
  24307. директива log_not_found.
  24308. </para>
  24309. <para lang="en">
  24310. the "log_not_found" directive.
  24311. </para>
  24312. </change>

  24313. <change type="bugfix">
  24314. <para lang="ru">
  24315. при перенаправлении запроса с помощью строки заголовка "X-Accel-Redirect"
  24316. не изменялся код ответа.
  24317. </para>
  24318. <para lang="en">
  24319. the response status code was not changed when request was redirected
  24320. by the ""X-Accel-Redirect" header line.
  24321. </para>
  24322. </change>

  24323. <change type="bugfix">
  24324. <para lang="ru">
  24325. переменные, установленные директивой set не могли использоваться в SSI.
  24326. </para>
  24327. <para lang="en">
  24328. the variables set by the "set" directive could not be used in SSI.
  24329. </para>
  24330. </change>

  24331. <change type="bugfix">
  24332. <para lang="ru">
  24333. при включении в SSI более одного удалённого подзапроса
  24334. мог произойти segmentation fault.
  24335. </para>
  24336. <para lang="en">
  24337. the segmentation fault may occurred if the SSI page has more than one
  24338. remote subrequest.
  24339. </para>
  24340. </change>

  24341. <change type="bugfix">
  24342. <para lang="ru">
  24343. если статусная строка в ответе бэкенда передавалась в двух пакетах, то
  24344. nginx считал ответ неверным;
  24345. ошибка появилась в 0.1.29.
  24346. </para>
  24347. <para lang="en">
  24348. nginx treated the backend response as invalid if the status line in the
  24349. header was transferred in two packets;
  24350. the bug had appeared in 0.1.29.
  24351. </para>
  24352. </change>

  24353. <change type="feature">
  24354. <para lang="ru">
  24355. директива ssi_types.
  24356. </para>
  24357. <para lang="en">
  24358. the "ssi_types" directive.
  24359. </para>
  24360. </change>

  24361. <change type="feature">
  24362. <para lang="ru">
  24363. директива autoindex_exact_size.
  24364. </para>
  24365. <para lang="en">
  24366. the "autoindex_exact_size" directive.
  24367. </para>
  24368. </change>

  24369. <change type="bugfix">
  24370. <para lang="ru">
  24371. модуль ngx_http_autoindex_module не поддерживал длинные имена файлов в UTF-8.
  24372. </para>
  24373. <para lang="en">
  24374. the ngx_http_autoindex_module did not support the long file names in UTF-8.
  24375. </para>
  24376. </change>

  24377. <change type="feature">
  24378. <para lang="ru">
  24379. IMAP/POP3 прокси.
  24380. </para>
  24381. <para lang="en">
  24382. the IMAP/POP3 proxy.
  24383. </para>
  24384. </change>

  24385. </changes>


  24386. <changes ver="0.1.37" date="2005-06-23">

  24387. <change type="change">
  24388. <para lang="ru">
  24389. в конце файла nginx.pid теперь добавляется "\n".
  24390. </para>
  24391. <para lang="en">
  24392. now the "\n" is added to the end of the "nginx.pid" file.
  24393. </para>
  24394. </change>

  24395. <change type="bugfix">
  24396. <para lang="ru">
  24397. при включении большого количества вставок или нескольких больших вставок
  24398. с помощью SSI ответ мог передаваться не полностью.
  24399. </para>
  24400. <para lang="en">
  24401. the responses may be transferred not completely,
  24402. if many parts or the big parts were included by SSI.
  24403. </para>
  24404. </change>

  24405. <change type="bugfix">
  24406. <para lang="ru">
  24407. если все бэкенды возвращали ответ 404, то при использовании параметра http_404
  24408. в директивах proxy_next_upstream или fastcgi_next_upstream, nginx
  24409. начинал запрашивать все бэкенды снова.
  24410. </para>
  24411. <para lang="en">
  24412. if all backends had returned the 404 response and the "http_404" parameter of
  24413. the "proxy_next_upstream" or "fastcgi_next_upstream" directives was used,
  24414. then nginx started to request all backends again.
  24415. </para>
  24416. </change>

  24417. </changes>


  24418. <changes ver="0.1.36" date="2005-06-15">

  24419. <change type="change">
  24420. <para lang="ru">
  24421. если в заголовке запроса есть дублирующиеся строки "Host", "Connection",
  24422. "Content-Length" и "Authorization", то nginx теперь выдаёт ошибку 400.
  24423. </para>
  24424. <para lang="en">
  24425. if the request header has duplicate the "Host", "Connection", "Content-Length",
  24426. or "Authorization" lines, then nginx now returns the 400 error.
  24427. </para>
  24428. </change>

  24429. <change type="change">
  24430. <para lang="ru">
  24431. директива post_accept_timeout упразднена.
  24432. </para>
  24433. <para lang="en">
  24434. the "post_accept_timeout" directive was canceled.
  24435. </para>
  24436. </change>

  24437. <change type="feature">
  24438. <para lang="ru">
  24439. параметры default, af=, bl=, deferred и bind в директиве listen.
  24440. </para>
  24441. <para lang="en">
  24442. the "default", "af=", "bl=", "deferred", and "bind" parameters
  24443. of the "listen" directive.
  24444. </para>
  24445. </change>

  24446. <change type="feature">
  24447. <para lang="ru">
  24448. поддержка accept фильтров во FreeBSD.
  24449. </para>
  24450. <para lang="en">
  24451. the FreeBSD accept filters support.
  24452. </para>
  24453. </change>

  24454. <change type="feature">
  24455. <para lang="ru">
  24456. поддержка TCP_DEFER_ACCEPT в Linux.
  24457. </para>
  24458. <para lang="en">
  24459. the Linux TCP_DEFER_ACCEPT support.
  24460. </para>
  24461. </change>

  24462. <change type="bugfix">
  24463. <para lang="ru">
  24464. модуль ngx_http_autoindex_module не поддерживал имена файлов в UTF-8.
  24465. </para>
  24466. <para lang="en">
  24467. the ngx_http_autoindex_module did not support the file names in UTF-8.
  24468. </para>
  24469. </change>

  24470. <change type="bugfix">
  24471. <para lang="ru">
  24472. после добавления новый лог-файл ротация этого лога по сигналу -USR1
  24473. выполнялась, только если переконфигурировать nginx два раза по сигналу -HUP.
  24474. </para>
  24475. <para lang="en">
  24476. the new log file can be rotated by the -USR1 signal only if
  24477. the reconfiguration by the -HUP signal was made twice.
  24478. </para>
  24479. </change>

  24480. </changes>


  24481. <changes ver="0.1.35" date="2005-06-07">

  24482. <change type="feature">
  24483. <para lang="ru">
  24484. директива working_directory.
  24485. </para>
  24486. <para lang="en">
  24487. the "working_directory" directive.
  24488. </para>
  24489. </change>

  24490. <change type="feature">
  24491. <para lang="ru">
  24492. директива port_in_redirect.
  24493. </para>
  24494. <para lang="en">
  24495. the "port_in_redirect" directive.
  24496. </para>
  24497. </change>

  24498. <change type="bugfix">
  24499. <para lang="ru">
  24500. если заголовок ответа бэкенда не помещался в один пакет, то
  24501. происходил segmentation fault;
  24502. ошибка появилась в 0.1.29.
  24503. </para>
  24504. <para lang="en">
  24505. the segmentation fault was occurred if the backend response header was in
  24506. several packets;
  24507. the bug had appeared in 0.1.29.
  24508. </para>
  24509. </change>

  24510. <change type="bugfix">
  24511. <para lang="ru">
  24512. если было сконфигурировано более 10 серверов или в сервере не описана
  24513. директива "listen",
  24514. то при запуске мог произойти segmentation fault.
  24515. </para>
  24516. <para lang="en">
  24517. if more than 10 servers were configured or some server did not use the
  24518. "listen" directive, then the segmentation fault was occurred on the start.
  24519. </para>
  24520. </change>

  24521. <change type="bugfix">
  24522. <para lang="ru">
  24523. если ответ не помещался во временный файл,
  24524. то мог произойти segmentation fault.
  24525. </para>
  24526. <para lang="en">
  24527. the segmentation fault might occur if the response was bigger than
  24528. the temporary file.
  24529. </para>
  24530. </change>

  24531. <change type="bugfix">
  24532. <para lang="ru">
  24533. nginx возвращал ошибку 400 на запросы вида
  24534. <nobr>"GET http://www.domain.com/uri HTTP/1.0"</nobr>;
  24535. ошибка появилась в 0.1.28.
  24536. </para>
  24537. <para lang="en">
  24538. nginx returned the 400 response on requests like
  24539. <nobr>"GET http://www.domain.com/uri HTTP/1.0"</nobr>;
  24540. the bug had appeared in 0.1.28.
  24541. </para>
  24542. </change>

  24543. </changes>


  24544. <changes ver="0.1.34" date="2005-05-26">

  24545. <change type="bugfix">
  24546. <para lang="ru">
  24547. при включении больших ответов с помощью SSI рабочий процесс мог зациклиться.
  24548. </para>
  24549. <para lang="en">
  24550. the worker process may got caught in an endless loop if the big response
  24551. part were include by SSI.
  24552. </para>
  24553. </change>

  24554. <change type="bugfix">
  24555. <para lang="ru">
  24556. переменные, устанавливаемые директивой "set", не были доступны в SSI.
  24557. </para>
  24558. <para lang="en">
  24559. the variables set by the "set" directive were not available in SSI.
  24560. </para>
  24561. </change>

  24562. <change type="feature">
  24563. <para lang="ru">
  24564. директива autoindex_localtime.
  24565. </para>
  24566. <para lang="en">
  24567. the "autoindex_localtime" directive.
  24568. </para>
  24569. </change>

  24570. <change type="bugfix">
  24571. <para lang="ru">
  24572. пустое значение в директиве proxy_set_header запрещает передачу заголовка.
  24573. </para>
  24574. <para lang="en">
  24575. the empty value of the "proxy_set_header" directive forbids the client
  24576. request header line passing.
  24577. </para>
  24578. </change>

  24579. </changes>


  24580. <changes ver="0.1.33" date="2005-05-23">

  24581. <change type="bugfix">
  24582. <para lang="ru">
  24583. nginx не собирался с параметром --without-pcre;
  24584. ошибка появилась в 0.1.29.
  24585. </para>
  24586. <para lang="en">
  24587. nginx could not be built with the --without-pcre parameter;
  24588. the bug had appeared in 0.1.29.
  24589. </para>
  24590. </change>

  24591. <change type="bugfix">
  24592. <para lang="ru">
  24593. 3, 5, 7 и 8 директив proxy_set_header на одном уровне вызывали
  24594. bus fault при запуске.
  24595. </para>
  24596. <para lang="en">
  24597. 3, 4, 7, and 8 the "proxy_set_header" directives in one level cause
  24598. the bus fault on start up.
  24599. </para>
  24600. </change>

  24601. <change type="bugfix">
  24602. <para lang="ru">
  24603. в редиректах внутри HTTPS сервера был указан протокол HTTP.
  24604. </para>
  24605. <para lang="en">
  24606. the HTTP protocol was specified in the HTTPS redirects.
  24607. </para>
  24608. </change>

  24609. <change type="bugfix">
  24610. <para lang="ru">
  24611. если директива rewrite использовала выделения внутри директивы if, то
  24612. возвращалась ошибка 500.
  24613. </para>
  24614. <para lang="en">
  24615. if the "rewrite" directive used the captures inside the "if" directive, then
  24616. the 500 error code was returned.
  24617. </para>
  24618. </change>

  24619. </changes>


  24620. <changes ver="0.1.32" date="2005-05-19">

  24621. <change type="bugfix">
  24622. <para lang="ru">
  24623. в редиректах, выдаваемых с помощью директивы rewrite, не передавались аргументы;
  24624. ошибка появилась в 0.1.29.
  24625. </para>
  24626. <para lang="en">
  24627. the arguments were omitted in the redirects, issued by the "rewrite" directive;
  24628. the bug had appeared in 0.1.29.
  24629. </para>
  24630. </change>

  24631. <change type="feature">
  24632. <para lang="ru">
  24633. директива if поддерживает выделения в регулярных выражениях.
  24634. </para>
  24635. <para lang="en">
  24636. the "if" directive supports the captures in regular expressions.
  24637. </para>
  24638. </change>

  24639. <change type="feature">
  24640. <para lang="ru">
  24641. директива set поддерживает переменные и выделения из регулярных выражений.
  24642. </para>
  24643. <para lang="en">
  24644. the "set" directive supports the variables and the captures of regular
  24645. expressions.
  24646. </para>
  24647. </change>

  24648. <change type="feature">
  24649. <para lang="ru">
  24650. в режиме прокси и FastCGI поддерживается строка заголовка "X-Accel-Redirect"
  24651. в ответе бэкенда.
  24652. </para>
  24653. <para lang="en">
  24654. the "X-Accel-Redirect" response header line is supported in proxy and FastCGI
  24655. mode.
  24656. </para>
  24657. </change>

  24658. </changes>


  24659. <changes ver="0.1.31" date="2005-05-16">

  24660. <change type="bugfix">
  24661. <para lang="ru">
  24662. при использовании SSL ответ мог передаваться не до конца.
  24663. </para>
  24664. <para lang="en">
  24665. the response encrypted by SSL may not transferred complete.
  24666. </para>
  24667. </change>

  24668. <change type="bugfix">
  24669. <para lang="ru">
  24670. ошибки при обработке SSI в ответе, полученного от FastCGI-сервера.
  24671. </para>
  24672. <para lang="en">
  24673. errors while processing FastCGI response by SSI.
  24674. </para>
  24675. </change>

  24676. <change type="bugfix">
  24677. <para lang="ru">
  24678. ошибки при использовании SSI и сжатия.
  24679. </para>
  24680. <para lang="en">
  24681. errors while using SSI and gzipping.
  24682. </para>
  24683. </change>

  24684. <change type="bugfix">
  24685. <para lang="ru">
  24686. редирект с кодом 301 передавался без тела ответа;
  24687. ошибка появилась в 0.1.30.
  24688. </para>
  24689. <para lang="en">
  24690. the redirect with the 301 code was transferred without response body;
  24691. the bug had appeared in 0.1.30.
  24692. </para>
  24693. </change>

  24694. </changes>


  24695. <changes ver="0.1.30" date="2005-05-14">

  24696. <change type="bugfix">
  24697. <para lang="ru">
  24698. при использовании SSI рабочий процесс мог зациклиться.
  24699. </para>
  24700. <para lang="en">
  24701. the worker process may got caught in an endless loop if the SSI was used.
  24702. </para>
  24703. </change>

  24704. <change type="bugfix">
  24705. <para lang="ru">
  24706. при использовании SSL ответ мог передаваться не до конца.
  24707. </para>
  24708. <para lang="en">
  24709. the response encrypted by SSL may not transferred complete.
  24710. </para>
  24711. </change>

  24712. <change type="bugfix">
  24713. <para lang="ru">
  24714. если длина части ответа, полученного за один раз от проксируемого или
  24715. FastCGI сервера была равна 500 байт, то nginx возвращал код ответа 500;
  24716. в режиме прокси ошибка появилась только в 0.1.29.
  24717. </para>
  24718. <para lang="en">
  24719. if the length of the response part received at once from proxied
  24720. or FastCGI server was equal to 500, then nginx returns the 500 response code;
  24721. in proxy mode the bug had appeared in 0.1.29 only.
  24722. </para>
  24723. </change>

  24724. <change type="bugfix">
  24725. <para lang="ru">
  24726. nginx не считал неверными директивы с 8-ю или 9-ю параметрами.
  24727. </para>
  24728. <para lang="en">
  24729. nginx did not consider the directives with 8 or 9 parameters as invalid.
  24730. </para>
  24731. </change>

  24732. <change type="feature">
  24733. <para lang="ru">
  24734. директива return может возвращать код ответа 204.
  24735. </para>
  24736. <para lang="en">
  24737. the "return" directive can return the 204 response code.
  24738. </para>
  24739. </change>

  24740. <change type="feature">
  24741. <para lang="ru">
  24742. директива ignore_invalid_headers.
  24743. </para>
  24744. <para lang="en">
  24745. the "ignore_invalid_headers" directive.
  24746. </para>
  24747. </change>

  24748. </changes>


  24749. <changes ver="0.1.29" date="2005-05-12">

  24750. <change type="feature">
  24751. <para lang="ru">
  24752. модуль ngx_http_ssi_module поддерживает команду include virtual.
  24753. </para>
  24754. <para lang="en">
  24755. the ngx_http_ssi_module supports "include virtual" command.
  24756. </para>
  24757. </change>

  24758. <change type="feature">
  24759. <para lang="ru">
  24760. модуль ngx_http_ssi_module поддерживает условную команду вида
  24761. 'if expr="$NAME"' и команды else и endif.
  24762. Допускается только один уровень вложенности.
  24763. </para>
  24764. <para lang="en">
  24765. the ngx_http_ssi_module supports the condition command like
  24766. 'if expr="$NAME"' and "else" and "endif" commands.
  24767. Only one nested level is supported.
  24768. </para>
  24769. </change>

  24770. <change type="feature">
  24771. <para lang="ru">
  24772. модуль ngx_http_ssi_module поддерживает две переменные DATE_LOCAL и DATE_GMT
  24773. и команду config timefmt.
  24774. </para>
  24775. <para lang="en">
  24776. the ngx_http_ssi_module supports the DATE_LOCAL and DATE_GMT variables
  24777. and "config timefmt" command.
  24778. </para>
  24779. </change>

  24780. <change type="feature">
  24781. <para lang="ru">
  24782. директива ssi_ignore_recycled_buffers.
  24783. </para>
  24784. <para lang="en">
  24785. the "ssi_ignore_recycled_buffers" directive.
  24786. </para>
  24787. </change>

  24788. <change type="bugfix">
  24789. <para lang="ru">
  24790. если переменная QUERY_STRING не была определена, то в команде echo
  24791. не ставилось значение по умолчанию.
  24792. </para>
  24793. <para lang="en">
  24794. the "echo" command did not show the default value for the empty QUERY_STRING
  24795. variable.
  24796. </para>
  24797. </change>

  24798. <change type="change">
  24799. <para lang="ru">
  24800. модуль ngx_http_proxy_module полностью переписан.
  24801. </para>
  24802. <para lang="en">
  24803. the ngx_http_proxy_module was rewritten.
  24804. </para>
  24805. </change>

  24806. <change type="feature">
  24807. <para lang="ru">
  24808. директивы proxy_redirect, proxy_pass_request_headers,
  24809. proxy_pass_request_body и proxy_method.
  24810. </para>
  24811. <para lang="en">
  24812. the "proxy_redirect", "proxy_pass_request_headers",
  24813. "proxy_pass_request_body", and "proxy_method" directives.
  24814. </para>
  24815. </change>

  24816. <change type="feature">
  24817. <para lang="ru">
  24818. директива proxy_set_header.
  24819. Директива proxy_x_var упразднена и должна быть заменена директивой
  24820. proxy_set_header.
  24821. </para>
  24822. <para lang="en">
  24823. the "proxy_set_header" directive.
  24824. The "proxy_x_var" was canceled and must be replaced with the proxy_set_header
  24825. directive.
  24826. </para>
  24827. </change>

  24828. <change type="change">
  24829. <para lang="ru">
  24830. директива proxy_preserve_host упразднена и должна быть заменена директивами
  24831. "proxy_set_header Host $host" и "proxy_redirect off"
  24832. или директивой <nobr>"proxy_set_header Host $host:$proxy_port"</nobr>
  24833. и соответствующими ей директивами proxy_redirect.
  24834. </para>
  24835. <para lang="en">
  24836. the "proxy_preserve_host" is canceled and must be replaced with
  24837. the "proxy_set_header Host $host" and the "proxy_redirect off" directives,
  24838. the <nobr>"proxy_set_header Host $host:$proxy_port" directive</nobr>
  24839. and the appropriate proxy_redirect directives.
  24840. </para>
  24841. </change>

  24842. <change type="change">
  24843. <para lang="ru">
  24844. директива proxy_set_x_real_ip упразднена и должна быть заменена директивой
  24845. "proxy_set_header X-Real-IP $remote_addr".
  24846. </para>
  24847. <para lang="en">
  24848. the "proxy_set_x_real_ip" is canceled and must be replaced with
  24849. the "proxy_set_header X-Real-IP $remote_addr" directive.
  24850. </para>
  24851. </change>

  24852. <change type="change">
  24853. <para lang="ru">
  24854. директива proxy_add_x_forwarded_for упразднена и должна быть заменена
  24855. директивой
  24856. <nobr>"proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for".</nobr>
  24857. </para>
  24858. <para lang="en">
  24859. the "proxy_add_x_forwarded_for" is canceled and must be replaced with
  24860. <nobr>the "proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for"</nobr>
  24861. directive.
  24862. </para>
  24863. </change>

  24864. <change type="change">
  24865. <para lang="ru">
  24866. директива proxy_set_x_url упразднена и должна быть заменена директивой
  24867. <nobr>"proxy_set_header X-URL http://$host:$server_port$request_uri".</nobr>
  24868. </para>
  24869. <para lang="en">
  24870. the "proxy_set_x_url" is canceled and must be replaced with
  24871. the "proxy_set_header X-URL http://$host:$server_port$request_uri"
  24872. directive.
  24873. </para>
  24874. </change>

  24875. <change type="feature">
  24876. <para lang="ru">
  24877. директива fastcgi_param.
  24878. </para>
  24879. <para lang="en">
  24880. the "fastcgi_param" directive.
  24881. </para>
  24882. </change>

  24883. <change type="change">
  24884. <para lang="ru">
  24885. директивы fastcgi_root, fastcgi_set_var и fastcgi_params упразднены
  24886. и должны быть замены директивами fastcgi_param.
  24887. </para>
  24888. <para lang="en">
  24889. the "fastcgi_root", "fastcgi_set_var" and "fastcgi_params" directive
  24890. are canceled and must be replaced with the fastcgi_param directives.
  24891. </para>
  24892. </change>

  24893. <change type="feature">
  24894. <para lang="ru">
  24895. директива index может использовать переменные.
  24896. </para>
  24897. <para lang="en">
  24898. the "index" directive can use the variables.
  24899. </para>
  24900. </change>

  24901. <change type="feature">
  24902. <para lang="ru">
  24903. директива index может быть указана на уровне http и server.
  24904. </para>
  24905. <para lang="en">
  24906. the "index" directive can be used at http and server levels.
  24907. </para>
  24908. </change>

  24909. <change type="change">
  24910. <para lang="ru">
  24911. только последний параметр в директиве index может быть абсолютным.
  24912. </para>
  24913. <para lang="en">
  24914. the last index only in the "index" directive can be absolute.
  24915. </para>
  24916. </change>

  24917. <change type="feature">
  24918. <para lang="ru">
  24919. в директиве rewrite могут использоваться переменные.
  24920. </para>
  24921. <para lang="en">
  24922. the "rewrite" directive can use the variables.
  24923. </para>
  24924. </change>

  24925. <change type="feature">
  24926. <para lang="ru">
  24927. директива internal.
  24928. </para>
  24929. <para lang="en">
  24930. the "internal" directive.
  24931. </para>
  24932. </change>

  24933. <change type="feature">
  24934. <para lang="ru">
  24935. переменные CONTENT_LENGTH, CONTENT_TYPE, REMOTE_PORT, SERVER_ADDR,
  24936. SERVER_PORT, SERVER_PROTOCOL, DOCUMENT_ROOT, SERVER_NAME,
  24937. REQUEST_METHOD, REQUEST_URI и REMOTE_USER.
  24938. </para>
  24939. <para lang="en">
  24940. the CONTENT_LENGTH, CONTENT_TYPE, REMOTE_PORT, SERVER_ADDR,
  24941. SERVER_PORT, SERVER_PROTOCOL, DOCUMENT_ROOT, SERVER_NAME,
  24942. REQUEST_METHOD, REQUEST_URI, and REMOTE_USER variables.
  24943. </para>
  24944. </change>

  24945. <change type="change">
  24946. <para lang="ru">
  24947. nginx теперь передаёт неверные строки в заголовках запроса клиента и
  24948. ответа бэкенда.
  24949. </para>
  24950. <para lang="en">
  24951. nginx now passes the invalid lines in a client request headers
  24952. or a backend response header.
  24953. </para>
  24954. </change>

  24955. <change type="bugfix">
  24956. <para lang="ru">
  24957. если бэкенд долго не передавал ответ и send_timeout был меньше, чем
  24958. proxy_read_timeout, то клиенту возвращался ответ 408.
  24959. </para>
  24960. <para lang="en">
  24961. if the backend did not transfer response for a long time and
  24962. the "send_timeout" was less than "proxy_read_timeout", then nginx
  24963. returned the 408 response.
  24964. </para>
  24965. </change>

  24966. <change type="bugfix">
  24967. <para lang="ru">
  24968. если бэкенд передавал неверную строку в заголовке ответа, то происходил
  24969. segmentation fault;
  24970. ошибка появилась в 0.1.26.
  24971. </para>
  24972. <para lang="en">
  24973. the segmentation fault was occurred if the backend sent an invalid line
  24974. in response header;
  24975. the bug had appeared in 0.1.26.
  24976. </para>
  24977. </change>

  24978. <change type="bugfix">
  24979. <para lang="ru">
  24980. при использовании отказоустойчивой конфигурации в FastCGI мог
  24981. происходить segmentation fault.
  24982. </para>
  24983. <para lang="en">
  24984. the segmentation fault may occurred in FastCGI fault tolerance configuration.
  24985. </para>
  24986. </change>

  24987. <change type="bugfix">
  24988. <para lang="ru">
  24989. директива expires не удаляла уже установленные строки заголовка
  24990. "Expires" и "Cache-Control".
  24991. </para>
  24992. <para lang="en">
  24993. the "expires" directive did not remove the previous "Expires" and
  24994. "Cache-Control" headers.
  24995. </para>
  24996. </change>

  24997. <change type="bugfix">
  24998. <para lang="ru">
  24999. nginx не учитывал завершающую точку в строке заголовка запроса "Host".
  25000. </para>
  25001. <para lang="en">
  25002. nginx did not take into account trailing dot in "Host" header line.
  25003. </para>
  25004. </change>

  25005. <change type="bugfix">
  25006. <para lang="ru">
  25007. модуль ngx_http_auth_module не работал на Linux.
  25008. </para>
  25009. <para lang="en">
  25010. the ngx_http_auth_module did not work under Linux.
  25011. </para>
  25012. </change>

  25013. <change type="bugfix">
  25014. <para lang="ru">
  25015. директива rewrite неверно работала, если в запросе присутствовали аргументы.
  25016. </para>
  25017. <para lang="en">
  25018. the rewrite directive worked incorrectly, if the arguments were in a request.
  25019. </para>
  25020. </change>

  25021. <change type="bugfix">
  25022. <para lang="ru">
  25023. nginx не собирался на MacOS X.
  25024. </para>
  25025. <para lang="en">
  25026. nginx could not be built on MacOS X.
  25027. </para>
  25028. </change>

  25029. </changes>


  25030. <changes ver="0.1.28" date="2005-04-08">

  25031. <change type="bugfix">
  25032. <para lang="ru">
  25033. при проксировании больших файлов nginx сильно нагружал процессор.
  25034. </para>
  25035. <para lang="en">
  25036. nginx hogs CPU while proxying the huge files.
  25037. </para>
  25038. </change>

  25039. <change type="bugfix">
  25040. <para lang="ru">
  25041. nginx не собирался gcc 4.0 на Linux.
  25042. </para>
  25043. <para lang="en">
  25044. nginx could not be built by gcc 4.0 on Linux.
  25045. </para>
  25046. </change>

  25047. </changes>


  25048. <changes ver="0.1.27" date="2005-03-28">

  25049. <change type="feature">
  25050. <para lang="ru">
  25051. параметр blocked в директиве valid_referers.
  25052. </para>
  25053. <para lang="en">
  25054. the "blocked" parameter of the "valid_referers" directive.
  25055. </para>
  25056. </change>

  25057. <change type="change">
  25058. <para lang="ru">
  25059. ошибки обработки заголовка запроса теперь записываются на уровне
  25060. info, в лог также записывается имя сервера и строки заголовка
  25061. запроса "Host" и "Referer".
  25062. </para>
  25063. <para lang="en">
  25064. the errors while handling the request header now logged at "info" level.
  25065. The server name and the "Host" and "Referer" header lines also logged.
  25066. </para>
  25067. </change>

  25068. <change type="change">
  25069. <para lang="ru">
  25070. при записи ошибок в лог записывается также строка заголовка запроса "Host".
  25071. </para>
  25072. <para lang="en">
  25073. the "Host" header line is also logged in error log.
  25074. </para>
  25075. </change>

  25076. <change type="feature">
  25077. <para lang="ru">
  25078. директива proxy_pass_unparsed_uri.
  25079. Специальная обработка символов "://" в URI, введённая в версии 0.1.11,
  25080. теперь упразднена.
  25081. </para>
  25082. <para lang="en">
  25083. the proxy_pass_unparsed_uri directive.
  25084. The special handling of the "://" symbols in URI, appeared in 0.1.11 version,
  25085. now is canceled.
  25086. </para>
  25087. </change>

  25088. <change type="bugfix">
  25089. <para lang="ru">
  25090. nginx не собирался на FreeBSD и Linux, если был указан параметр конфигурации
  25091. --without-ngx_http_auth_basic_module.
  25092. </para>
  25093. <para lang="en">
  25094. nginx could not be built on FreeBSD and Linux, if the
  25095. --without-ngx_http_auth_basic_module configuration parameter was used.
  25096. </para>
  25097. </change>

  25098. </changes>


  25099. <changes ver="0.1.26" date="2005-03-22">

  25100. <change type="change">
  25101. <para lang="ru">
  25102. неверные строки заголовка, переданные клиентом, теперь игнорируется и
  25103. записываются в error_log на уровне info.
  25104. </para>
  25105. <para lang="en">
  25106. the invalid client header lines are now ignored and logged at the info level.
  25107. </para>
  25108. </change>

  25109. <change type="change">
  25110. <para lang="ru">
  25111. при записи ошибок в лог записывается также имя сервера, при обращении
  25112. к которому произошла ошибка.
  25113. </para>
  25114. <para lang="en">
  25115. the server name is also logged in error log.
  25116. </para>
  25117. </change>

  25118. <change type="feature">
  25119. <para lang="ru">
  25120. модуль ngx_http_auth_basic_module и директивы auth_basic и
  25121. auth_basic_user_file.
  25122. </para>
  25123. <para lang="en">
  25124. the ngx_http_auth_basic_module module and the auth_basic and
  25125. auth_basic_user_file directives.
  25126. </para>
  25127. </change>

  25128. </changes>


  25129. <changes ver="0.1.25" date="2005-03-19">

  25130. <change type="bugfix">
  25131. <para lang="ru">
  25132. nginx не работал на Linux parisc.
  25133. </para>
  25134. <para lang="en">
  25135. nginx did run on Linux parisc.
  25136. </para>
  25137. </change>

  25138. <change type="feature">
  25139. <para lang="ru">
  25140. nginx теперь не запускается под FreeBSD, если значение
  25141. sysctl kern.ipc.somaxconn слишком большое.
  25142. </para>
  25143. <para lang="en">
  25144. nginx now does not start under FreeBSD if the sysctl kern.ipc.somaxconn
  25145. value is too big.
  25146. </para>
  25147. </change>

  25148. <change type="bugfix">
  25149. <para lang="ru">
  25150. если модуль ngx_http_index_module делал внутреннее перенаправление запроса
  25151. в модули ngx_http_proxy_module или ngx_http_fastcgi_module, то файл индекса
  25152. не закрывался после обслуживания запроса.
  25153. </para>
  25154. <para lang="en">
  25155. if a request was internally redirected by the ngx_http_index_module
  25156. module to the ngx_http_proxy_module or ngx_http_fastcgi_module modules,
  25157. then the index file was not closed after request completion.
  25158. </para>
  25159. </change>

  25160. <change type="feature">
  25161. <para lang="ru">
  25162. директива proxy_pass может использоваться в location, заданных регулярным
  25163. выражением.
  25164. </para>
  25165. <para lang="en">
  25166. the "proxy_pass" can be used in location with regular expression.
  25167. </para>
  25168. </change>

  25169. <change type="feature">
  25170. <para lang="ru">
  25171. модуль ngx_http_rewrite_filter_module поддерживает условия вида
  25172. "if ($HTTP_USER_AGENT ~ MSIE)".
  25173. </para>
  25174. <para lang="en">
  25175. the ngx_http_rewrite_filter_module module supports the condition like
  25176. "if ($HTTP_USER_AGENT ~ MSIE)".
  25177. </para>
  25178. </change>

  25179. <change type="bugfix">
  25180. <para lang="ru">
  25181. nginx очень медленно запускался при большом количестве адресов и
  25182. использовании текстовых значений в директиве geo.
  25183. </para>
  25184. <para lang="en">
  25185. nginx started too slow if the large number of addresses and text values
  25186. were used in the "geo" directive.
  25187. </para>
  25188. </change>

  25189. <change type="change">
  25190. <para lang="ru">
  25191. имя переменной в директиве geo нужно указывать, как $name.
  25192. Прежний вариант без "$" пока работает, но вскоре будет убран.
  25193. </para>
  25194. <para lang="en">
  25195. a variable name must be declared as "$name" in the "geo" directive.
  25196. The previous variant without "$" is still supported, but will be removed soon.
  25197. </para>
  25198. </change>

  25199. <change type="feature">
  25200. <para lang="ru">
  25201. параметр лога "%{VARIABLE}v".
  25202. </para>
  25203. <para lang="en">
  25204. the "%{VARIABLE}v" logging parameter.
  25205. </para>
  25206. </change>

  25207. <change type="feature">
  25208. <para lang="ru">
  25209. директива "set $name value".
  25210. </para>
  25211. <para lang="en">
  25212. the "set $name value" directive.
  25213. </para>
  25214. </change>

  25215. <change type="bugfix">
  25216. <para lang="ru">
  25217. совместимость с gcc 4.0.
  25218. </para>
  25219. <para lang="en">
  25220. gcc 4.0 compatibility.
  25221. </para>
  25222. </change>

  25223. <change type="feature">
  25224. <para lang="ru">
  25225. параметр автоконфигурации --with-openssl-opt=OPTIONS.
  25226. </para>
  25227. <para lang="en">
  25228. the --with-openssl-opt=OPTIONS autoconfiguration directive.
  25229. </para>
  25230. </change>

  25231. </changes>


  25232. <changes ver="0.1.24" date="2005-03-04">

  25233. <change type="feature">
  25234. <para lang="ru">
  25235. модуль ngx_http_ssi_filter_module поддерживает переменные
  25236. QUERY_STRING и DOCUMENT_URI.
  25237. </para>
  25238. <para lang="en">
  25239. the ngx_http_ssi_filter_module supports the QUERY_STRING and DOCUMENT_URI
  25240. variables.
  25241. </para>
  25242. </change>

  25243. <change type="bugfix">
  25244. <para lang="ru">
  25245. модуль ngx_http_autoindex_module мог выдавать ответ 404
  25246. на существующий каталог, если этот каталог был указан как alias.
  25247. </para>
  25248. <para lang="en">
  25249. the ngx_http_autoindex_module may some times return the 404 response
  25250. for existent directory, if this directory was used in "alias" directive.
  25251. </para>
  25252. </change>

  25253. <change type="bugfix">
  25254. <para lang="ru">
  25255. модуль ngx_http_ssi_filter_module неправильно работал при больших
  25256. ответах.
  25257. </para>
  25258. <para lang="en">
  25259. the ngx_http_ssi_filter_module ran incorrectly for large responses.
  25260. </para>
  25261. </change>

  25262. <change type="bugfix">
  25263. <para lang="ru">
  25264. отсутствие строки заголовка "Referer" всегда считалось правильным referrer'ом.
  25265. </para>
  25266. <para lang="en">
  25267. the lack of the "Referer" header line was always accounted as valid referrer.
  25268. </para>
  25269. </change>

  25270. </changes>


  25271. <changes ver="0.1.23" date="2005-03-01">

  25272. <change type="feature">
  25273. <para lang="ru">
  25274. модуль ngx_http_ssi_filter_module и
  25275. директивы ssi, ssi_silent_errors и ssi_min_file_chunk.
  25276. Поддерживаются команды 'echo var="HTTP_..." default=""' и
  25277. 'echo var="REMOTE_ADDR"'.
  25278. </para>
  25279. <para lang="en">
  25280. the ngx_http_ssi_filter_module and
  25281. the ssi, ssi_silent_errors, and ssi_min_file_chunk directives.
  25282. The 'echo var="HTTP_..." default=""' and 'echo var="REMOTE_ADDR"' commands
  25283. are supported.
  25284. </para>
  25285. </change>

  25286. <change type="feature">
  25287. <para lang="ru">
  25288. параметр лога %request_time.
  25289. </para>
  25290. <para lang="en">
  25291. the %request_time log parameter.
  25292. </para>
  25293. </change>

  25294. <change type="feature">
  25295. <para lang="ru">
  25296. если запрос пришёл без строки заголовка "Host", то директива
  25297. proxy_preserve_host устанавливает в качестве этого заголовка первое имя
  25298. сервера из директивы server_name.
  25299. </para>
  25300. <para lang="en">
  25301. if the request has no the "Host" header line, then the "proxy_preserve_host"
  25302. directive set this header line to the first server name of the "server_name"
  25303. directive.
  25304. </para>
  25305. </change>

  25306. <change type="bugfix">
  25307. <para lang="ru">
  25308. nginx не собирался на платформах, отличных от i386, amd64, sparc и ppc;
  25309. ошибка появилась в 0.1.22.
  25310. </para>
  25311. <para lang="en">
  25312. nginx could not be built on platforms different from i386, amd64, sparc,
  25313. and ppc;
  25314. the bug had appeared in 0.1.22.
  25315. </para>
  25316. </change>

  25317. <change type="bugfix">
  25318. <para lang="ru">
  25319. модуль ngx_http_autoindex_module теперь показывает информацию не о
  25320. символическом линке, а о файле или каталоге, на который он указывает.
  25321. </para>
  25322. <para lang="en">
  25323. the ngx_http_autoindex_module now shows the information not about the symlink,
  25324. but about file or directory it points to.
  25325. </para>
  25326. </change>

  25327. <change type="bugfix">
  25328. <para lang="ru">
  25329. если клиенту ничего не передавалось, то параметр %apache_length
  25330. записывал в лог отрицательную длину заголовка ответа.
  25331. </para>
  25332. <para lang="en">
  25333. the %apache_length parameter logged the negative length
  25334. of the response header if the no response was transferred to a client.
  25335. </para>
  25336. </change>

  25337. </changes>


  25338. <changes ver="0.1.22" date="2005-02-22">

  25339. <change type="bugfix">
  25340. <para lang="ru">
  25341. модуль ngx_http_stub_status_module показывал неверную статистику
  25342. для обработанных соединений, если использовалось проксирование
  25343. или FastCGI-сервер.
  25344. </para>
  25345. <para lang="en">
  25346. the ngx_http_stub_status_module showed incorrect handled connections
  25347. statistics if the proxying or FastCGI server were used.
  25348. </para>
  25349. </change>

  25350. <change type="bugfix">
  25351. <para lang="ru">
  25352. на Linux и Solaris установочные пути были неверно заключены в кавычки;
  25353. ошибка появилась в 0.1.21.
  25354. </para>
  25355. <para lang="en">
  25356. the installation paths were incorrectly quoted on Linux and Solaris;
  25357. the bug had appeared in 0.1.21.
  25358. </para>
  25359. </change>

  25360. </changes>


  25361. <changes ver="0.1.21" date="2005-02-22">

  25362. <change type="bugfix">
  25363. <para lang="ru">
  25364. модуль ngx_http_stub_status_module показывал неверную статистику
  25365. при использовании метода rtsig или при использовании нескольких
  25366. рабочих процессов на SMP машине.
  25367. </para>
  25368. <para lang="en">
  25369. the ngx_http_stub_status_module showed incorrect statistics
  25370. if "rtsig" method was used or if several worker process ran on SMP.
  25371. </para>
  25372. </change>

  25373. <change type="bugfix">
  25374. <para lang="ru">
  25375. nginx не собирался компилятором icc под Линуксом или
  25376. если библиотека zlib-1.2.x собиралась из исходных текстов.
  25377. </para>
  25378. <para lang="en">
  25379. nginx could not be built by the icc compiler on Linux or
  25380. if the zlib-1.2.x library was building from sources.
  25381. </para>
  25382. </change>

  25383. <change type="bugfix">
  25384. <para lang="ru">
  25385. nginx не собирался под NetBSD 2.0.
  25386. </para>
  25387. <para lang="en">
  25388. nginx could not be built on NetBSD 2.0.
  25389. </para>
  25390. </change>

  25391. </changes>


  25392. <changes ver="0.1.20" date="2005-02-17">

  25393. <change type="feature">
  25394. <para lang="ru">
  25395. новые параметры script_filename и remote_port в директиве fastcgi_params.
  25396. </para>
  25397. <para lang="en">
  25398. the new "script_filename" and "remote_port" parameters
  25399. of the fastcgi_params directive.
  25400. </para>
  25401. </change>

  25402. <change type="bugfix">
  25403. <para lang="ru">
  25404. неправильно обрабатывался поток stderr от FastCGI-сервера.
  25405. </para>
  25406. <para lang="en">
  25407. the FastCGI stderr stream was handled incorrectly.
  25408. </para>
  25409. </change>

  25410. </changes>


  25411. <changes ver="0.1.19" date="2005-02-16">

  25412. <change type="bugfix">
  25413. <para lang="ru">
  25414. если в запросе есть нуль, то для локальных запросов теперь возвращается
  25415. ошибка 404.
  25416. </para>
  25417. <para lang="en">
  25418. now, if request contains the zero, then the 404 error is returned
  25419. for the local requests.
  25420. </para>
  25421. </change>

  25422. <change type="bugfix">
  25423. <para lang="ru">
  25424. nginx не собирался под NetBSD 2.0.
  25425. </para>
  25426. <para lang="en">
  25427. nginx could not be built on NetBSD 2.0.
  25428. </para>
  25429. </change>

  25430. <change type="bugfix">
  25431. <para lang="ru">
  25432. во время чтения тела запроса клиента в SSL соединении мог произойти таймаут.
  25433. </para>
  25434. <para lang="en">
  25435. the timeout may occur while reading of the client request body
  25436. via SSL connections.
  25437. </para>
  25438. </change>

  25439. </changes>


  25440. <changes ver="0.1.18" date="2005-02-09">

  25441. <change type="workaround">
  25442. <para lang="ru">
  25443. для совместимости с Solaris 10 в директивах devpoll_events и devpoll_changes
  25444. значения по умолчанию уменьшены с 512 до 32.
  25445. </para>
  25446. <para lang="en">
  25447. the default values of the devpoll_events and the devpoll_changes directives
  25448. changed from 512 to 32 to be compatible with Solaris 10.
  25449. </para>
  25450. </change>

  25451. <change type="bugfix">
  25452. <para lang="ru">
  25453. директивы proxy_set_x_var и fastcgi_set_var не наследовались.
  25454. </para>
  25455. <para lang="en">
  25456. the proxy_set_x_var and fastcgi_set_var directives were not inherited.
  25457. </para>
  25458. </change>

  25459. <change type="bugfix">
  25460. <para lang="ru">
  25461. в директиве rewrite, возвращающей редирект, аргументы присоединялись
  25462. к URI через символ "&amp;" вместо "?".
  25463. </para>
  25464. <para lang="en">
  25465. in a redirect rewrite directive arguments were concatenated with URI
  25466. by an "&amp;" rather than a "?".
  25467. </para>
  25468. </change>

  25469. <change type="bugfix">
  25470. <para lang="ru">
  25471. строки для модуля ngx_http_geo_module без символа ";" во включённом файле
  25472. игнорировались.
  25473. </para>
  25474. <para lang="en">
  25475. the lines without trailing ";" in the file being included
  25476. by the ngx_http_geo_module were silently ignored.
  25477. </para>
  25478. </change>

  25479. <change type="feature">
  25480. <para lang="ru">
  25481. модуль ngx_http_stub_status_module.
  25482. </para>
  25483. <para lang="en">
  25484. the ngx_http_stub_status_module.
  25485. </para>
  25486. </change>

  25487. <change type="bugfix">
  25488. <para lang="ru">
  25489. неизвестный формат лог-файла в директиве access_log вызывал segmentation fault.
  25490. </para>
  25491. <para lang="en">
  25492. the unknown log format in the access_log directive caused
  25493. the segmentation fault.
  25494. </para>
  25495. </change>

  25496. <change type="feature">
  25497. <para lang="ru">
  25498. новый параметр document_root в директиве fastcgi_params.
  25499. </para>
  25500. <para lang="en">
  25501. the new "document_root" parameter of the fastcgi_params directive.
  25502. </para>
  25503. </change>

  25504. <change type="feature">
  25505. <para lang="ru">
  25506. директива fastcgi_redirect_errors.
  25507. </para>
  25508. <para lang="en">
  25509. the fastcgi_redirect_errors directive.
  25510. </para>
  25511. </change>

  25512. <change type="feature">
  25513. <para lang="ru">
  25514. новый модификатор break в директиве rewrite позволяет прекратить
  25515. цикл rewrite/location и устанавливает текущую конфигурацию для запроса.
  25516. </para>
  25517. <para lang="en">
  25518. the new "break" modifier of the "rewrite" directive allows to stop
  25519. the rewrite/location cycle and sets the current configuration to the request.
  25520. </para>
  25521. </change>

  25522. </changes>


  25523. <changes ver="0.1.17" date="2005-02-03">

  25524. <change type="change">
  25525. <para lang="ru">
  25526. модуль ngx_http_rewrite_module полностью переписан.
  25527. Теперь можно делать редиректы, возвращать коды ошибок
  25528. и проверять переменные и рефереры.
  25529. Эти директивы можно использовать внутри location.
  25530. Директива redirect упразднена.
  25531. </para>
  25532. <para lang="en">
  25533. the ngx_http_rewrite_module was rewritten from the scratch.
  25534. Now it is possible to redirect, to return the error codes,
  25535. to check the variables and referrers. The directives can be used
  25536. inside locations.
  25537. The redirect directive was canceled.
  25538. </para>
  25539. </change>

  25540. <change type="feature">
  25541. <para lang="ru">
  25542. модуль ngx_http_geo_module.
  25543. </para>
  25544. <para lang="en">
  25545. the ngx_http_geo_module.
  25546. </para>
  25547. </change>

  25548. <change type="feature">
  25549. <para lang="ru">
  25550. директивы proxy_set_x_var и fastcgi_set_var.
  25551. </para>
  25552. <para lang="en">
  25553. the proxy_set_x_var and fastcgi_set_var directives.
  25554. </para>
  25555. </change>

  25556. <change type="bugfix">
  25557. <para lang="ru">
  25558. конфигурация location с модификатором "=" могла использоваться
  25559. в другом location.
  25560. </para>
  25561. <para lang="en">
  25562. the location configuration with "=" modifier may be used in another
  25563. location.
  25564. </para>
  25565. </change>

  25566. <change type="bugfix">
  25567. <para lang="ru">
  25568. правильный тип ответа выставлялся только для запросов, у которых в расширении
  25569. были только маленькие буквы.
  25570. </para>
  25571. <para lang="en">
  25572. the correct content type was set only for requests that use small caps letters
  25573. in extension.
  25574. </para>
  25575. </change>

  25576. <change type="bugfix">
  25577. <para lang="ru">
  25578. если для location установлен proxy_pass или fastcgi_pass, и доступ
  25579. к нему запрещался, а ошибка перенаправлялась на статическую страницу,
  25580. то происходил segmentation fault.
  25581. </para>
  25582. <para lang="en">
  25583. if the proxy_pass or fastcgi_pass directives were set in the location,
  25584. and access was denied, and the error was redirected to a static page,
  25585. then the segmentation fault occurred.
  25586. </para>
  25587. </change>

  25588. <change type="bugfix">
  25589. <para lang="ru">
  25590. если в проксированном ответе в заголовке "Location" передавался
  25591. относительный URL, то к нему добавлялось имя хоста и слэш;
  25592. ошибка появилась в 0.1.14.
  25593. </para>
  25594. <para lang="en">
  25595. if in a proxied "Location" header was a relative URL,
  25596. then a host name and a slash were added to them;
  25597. the bug had appeared in 0.1.14.
  25598. </para>
  25599. </change>

  25600. <change type="bugfix">
  25601. <para lang="ru">
  25602. на Linux в лог не записывался текст системной ошибки.
  25603. </para>
  25604. <para lang="en">
  25605. the system error message was not logged on Linux.
  25606. </para>
  25607. </change>

  25608. </changes>


  25609. <changes ver="0.1.16" date="2005-01-25">

  25610. <change type="bugfix">
  25611. <para lang="ru">
  25612. если ответ передавался chunk'ами, то при запросе HEAD выдавался
  25613. завершающий chunk.
  25614. </para>
  25615. <para lang="en">
  25616. if the response were transferred by chunks, then on the HEAD request
  25617. the final chunk was issued.
  25618. </para>
  25619. </change>

  25620. <change type="bugfix">
  25621. <para lang="ru">
  25622. заголовок "Connection: keep-alive" выдавался, даже если директива
  25623. keepalive_timeout запрещала использование keep-alive.
  25624. </para>
  25625. <para lang="en">
  25626. the "Connection: keep-alive" header were issued, even if the
  25627. keepalive_timeout directive forbade the keep-alive use.
  25628. </para>
  25629. </change>

  25630. <change type="bugfix">
  25631. <para lang="ru">
  25632. ошибки в модуле ngx_http_fastcgi_module вызывали segmentation fault.
  25633. </para>
  25634. <para lang="en">
  25635. the errors in the ngx_http_fastcgi_module caused the segmentation faults.
  25636. </para>
  25637. </change>

  25638. <change type="bugfix">
  25639. <para lang="ru">
  25640. при использовании SSL сжатый ответ мог передаваться не до конца.
  25641. </para>
  25642. <para lang="en">
  25643. the compressed response encrypted by SSL may not transferred complete.
  25644. </para>
  25645. </change>

  25646. <change type="bugfix">
  25647. <para lang="ru">
  25648. опции TCP_NODELAY, TCP_NOPUSH и TCP_CORK, специфичные для TCP сокетов,
  25649. не используются для unix domain сокетов.
  25650. </para>
  25651. <para lang="en">
  25652. the TCP-specific TCP_NODELAY, TCP_NOPUSH, and TCP_CORK options,
  25653. are not used for the unix domain sockets.
  25654. </para>
  25655. </change>

  25656. <change type="feature">
  25657. <para lang="ru">
  25658. директива rewrite поддерживает перезаписывание аргументов.
  25659. </para>
  25660. <para lang="en">
  25661. the rewrite directive supports the arguments rewriting.
  25662. </para>
  25663. </change>

  25664. <change type="bugfix">
  25665. <para lang="ru">
  25666. на запрос POST с заголовком "Content-Length: 0" возвращался ответ 400;
  25667. ошибка появилась в 0.1.14.
  25668. </para>
  25669. <para lang="en">
  25670. the response code 400 was returned for the POST request with the
  25671. "Content-Length: 0" header;
  25672. the bug had appeared in 0.1.14.
  25673. </para>
  25674. </change>

  25675. </changes>


  25676. <changes ver="0.1.15" date="2005-01-19">

  25677. <change type="bugfix">
  25678. <para lang="ru">
  25679. ошибка соединения с FastCGI-сервером вызывала segmentation fault.
  25680. </para>
  25681. <para lang="en">
  25682. the error while the connecting to the FastCGI server caused
  25683. segmentation fault.
  25684. </para>
  25685. </change>

  25686. <change type="bugfix">
  25687. <para lang="ru">
  25688. корректная обработка регулярного выражения, в котором число
  25689. выделенных частей не совпадает с числом подстановок.
  25690. </para>
  25691. <para lang="en">
  25692. the correct handling of the regular expression, that
  25693. has different number of the captures and substitutions.
  25694. </para>
  25695. </change>

  25696. <change type="feature">
  25697. <para lang="ru">
  25698. location, который передаётся FastCGI-серверу, может быть задан
  25699. с помощью регулярного выражения.
  25700. </para>
  25701. <para lang="en">
  25702. the location, that is passed to the FastCGI server, can be
  25703. regular expression.
  25704. </para>
  25705. </change>

  25706. <change type="bugfix">
  25707. <para lang="ru">
  25708. параметр FastCGI REQUEST_URI теперь передаётся вместе с аргументами
  25709. и в том виде, в котором был получен от клиента.
  25710. </para>
  25711. <para lang="en">
  25712. the FastCGI's parameter REQUEST_URI is now passed with the arguments
  25713. and in the original state.
  25714. </para>
  25715. </change>

  25716. <change type="bugfix">
  25717. <para lang="ru">
  25718. для использования регулярных выражений в location нужно было
  25719. собирать nginx вместе с ngx_http_rewrite_module.
  25720. </para>
  25721. <para lang="en">
  25722. the ngx_http_rewrite_module module was required to be built to use
  25723. the regular expressions in locations.
  25724. </para>
  25725. </change>

  25726. <change type="bugfix">
  25727. <para lang="ru">
  25728. если бэкенд слушал на 80-ом порту, то при использовании директивы
  25729. <nobr>"proxy_preserve_host  on"</nobr> в заголовке "Host" указывался
  25730. также порт 80;
  25731. ошибка появилась в 0.1.14.
  25732. </para>
  25733. <para lang="en">
  25734. the directive <nobr>"proxy_preserve_host  on"</nobr> adds port 80
  25735. to the "Host" headers, if upstream listen on port 80;
  25736. the bug had appeared in 0.1.14.
  25737. </para>
  25738. </change>

  25739. <change type="bugfix">
  25740. <para lang="ru">
  25741. если задать одинаковые пути в параметрах автоконфигурации
  25742. --http-client-body-temp-path=PATH и --http-proxy-temp-path=PATH
  25743. или --http-client-body-temp-path=PATH и --http-fastcgi-temp-path=PATH,
  25744. то происходил segmentation fault.
  25745. </para>
  25746. <para lang="en">
  25747. the same paths in autoconfiguration parameters
  25748. --http-client-body-temp-path=PATH and --http-proxy-temp-path=PATH,
  25749. or --http-client-body-temp-path=PATH and --http-fastcgi-temp-path=PATH
  25750. caused segmentation fault.
  25751. </para>
  25752. </change>

  25753. </changes>


  25754. <changes ver="0.1.14" date="2005-01-18">

  25755. <change type="feature">
  25756. <para lang="ru">
  25757. параметры автоконфигурации
  25758. --http-client-body-temp-path=PATH,
  25759. --http-proxy-temp-path=PATH
  25760. и --http-fastcgi-temp-path=PATH
  25761. </para>
  25762. <para lang="en">
  25763. the autoconfiguration directives:
  25764. --http-client-body-temp-path=PATH,
  25765. --http-proxy-temp-path=PATH,
  25766. and --http-fastcgi-temp-path=PATH
  25767. </para>
  25768. </change>

  25769. <change type="change">
  25770. <para lang="ru">
  25771. имя каталога с временными файлами, содержащие тело запроса клиента,
  25772. задаётся директивой client_body_temp_path,
  25773. по умолчанию &lt;prefix&gt;/client_body_temp.
  25774. </para>
  25775. <para lang="en">
  25776. the directory name for the temporary files with the client request body
  25777. is specified by directive client_body_temp_path,
  25778. by default it is &lt;prefix&gt;/client_body_temp.
  25779. </para>
  25780. </change>

  25781. <change type="feature">
  25782. <para lang="ru">
  25783. модуль ngx_http_fastcgi_module и директивы
  25784. fastcgi_pass,
  25785. fastcgi_root,
  25786. fastcgi_index,
  25787. fastcgi_params,
  25788. fastcgi_connect_timeout,
  25789. fastcgi_send_timeout,
  25790. fastcgi_read_timeout,
  25791. fastcgi_send_lowat,
  25792. fastcgi_header_buffer_size,
  25793. fastcgi_buffers,
  25794. fastcgi_busy_buffers_size,
  25795. fastcgi_temp_path,
  25796. fastcgi_max_temp_file_size,
  25797. fastcgi_temp_file_write_size,
  25798. fastcgi_next_upstream
  25799. и fastcgi_x_powered_by.

  25800. </para>
  25801. <para lang="en">
  25802. the ngx_http_fastcgi_module and the directives:
  25803. fastcgi_pass,
  25804. fastcgi_root,
  25805. fastcgi_index,
  25806. fastcgi_params,
  25807. fastcgi_connect_timeout,
  25808. fastcgi_send_timeout,
  25809. fastcgi_read_timeout,
  25810. fastcgi_send_lowat,
  25811. fastcgi_header_buffer_size,
  25812. fastcgi_buffers,
  25813. fastcgi_busy_buffers_size,
  25814. fastcgi_temp_path,
  25815. fastcgi_max_temp_file_size,
  25816. fastcgi_temp_file_write_size,
  25817. fastcgi_next_upstream,
  25818. and fastcgi_x_powered_by.
  25819. </para>
  25820. </change>

  25821. <change type="bugfix">
  25822. <para lang="ru">
  25823. ошибка "[alert] zero size buf";
  25824. ошибка появилась в 0.1.3.
  25825. </para>
  25826. <para lang="en">
  25827. the "[alert] zero size buf" error;
  25828. the bug had appeared in 0.1.3.
  25829. </para>
  25830. </change>

  25831. <change type="change">
  25832. <para lang="ru">
  25833. в директиве proxy_pass нужно обязательно указывать URI после имени хоста.
  25834. </para>
  25835. <para lang="en">
  25836. the URI must be specified after the host name in the proxy_pass directive.
  25837. </para>
  25838. </change>

  25839. <change type="change">
  25840. <para lang="ru">
  25841. если в URI встречался символ %3F, то он считался началом строки аргументов.
  25842. </para>
  25843. <para lang="en">
  25844. the %3F symbol in the URI was considered as the argument string start.
  25845. </para>
  25846. </change>

  25847. <change type="feature">
  25848. <para lang="ru">
  25849. поддержка unix domain сокетов в модуле ngx_http_proxy_module.
  25850. </para>
  25851. <para lang="en">
  25852. the unix domain sockets support in the ngx_http_proxy_module.
  25853. </para>
  25854. </change>

  25855. <change type="feature">
  25856. <para lang="ru">
  25857. директивы ssl_engine и ssl_ciphers.<br/>
  25858. Спасибо Сергею Скворцову за SSL-акселератор.
  25859. </para>
  25860. <para lang="en">
  25861. the ssl_engine and ssl_ciphers directives.<br/>
  25862. Thanks to Sergey Skvortsov for SSL-accelerator.
  25863. </para>
  25864. </change>

  25865. </changes>


  25866. <changes ver="0.1.13" date="2004-12-21">

  25867. <change type="feature">
  25868. <para lang="ru">
  25869. директивы server_names_hash и server_names_hash_threshold.
  25870. </para>
  25871. <para lang="en">
  25872. the server_names_hash and server_names_hash_threshold directives.
  25873. </para>
  25874. </change>

  25875. <change type="bugfix">
  25876. <para lang="ru">
  25877. имена *.domain.tld в директиве server_name не работали.
  25878. </para>
  25879. <para lang="en">
  25880. the *.domain.tld names in the "server_name" directive did not work.
  25881. </para>
  25882. </change>

  25883. <change type="bugfix">
  25884. <para lang="ru">
  25885. параметр лога %request_length записывал неверную длину.
  25886. </para>
  25887. <para lang="en">
  25888. the %request_length log parameter logged the incorrect length.
  25889. </para>
  25890. </change>

  25891. </changes>


  25892. <changes ver="0.1.12" date="2004-12-06">

  25893. <change type="feature">
  25894. <para lang="ru">
  25895. параметр лога %request_length.
  25896. </para>
  25897. <para lang="en">
  25898. the %request_length log parameter.
  25899. </para>
  25900. </change>

  25901. <change type="bugfix">
  25902. <para lang="ru">
  25903. при использовании /dev/poll, select и poll на платформах, где возможны
  25904. ложные срабатывания указанных методов, могли быть длительные задержки
  25905. при обработке запроса по keep-alive соединению.
  25906. Наблюдалось по крайней мере на Solaris с использованием /dev/poll.
  25907. </para>
  25908. <para lang="en">
  25909. when using the /dev/poll, select and poll on the platforms, where
  25910. these methods may do the false reports, there may be the long delay when
  25911. the request was passed via the keep-alive connection.
  25912. It may be at least on Solaris when using the /dev/poll.
  25913. </para>
  25914. </change>

  25915. <change type="bugfix">
  25916. <para lang="ru">
  25917. директива send_lowat игнорируется на Linux, так как Linux не поддерживает
  25918. опцию SO_SNDLOWAT.
  25919. </para>
  25920. <para lang="en">
  25921. the send_lowat directive is ignored on Linux because Linux does not support
  25922. the SO_SNDLOWAT option.
  25923. </para>
  25924. </change>

  25925. </changes>


  25926. <changes ver="0.1.11" date="2004-12-02">

  25927. <change type="feature">
  25928. <para lang="ru">
  25929. директива worker_priority.
  25930. </para>
  25931. <para lang="en">
  25932. the worker_priority directive.
  25933. </para>
  25934. </change>

  25935. <change type="change">
  25936. <para lang="ru">
  25937. под FreeBSD директивы tcp_nopush и tcp_nodelay вместе влияют на передачу
  25938. ответа.
  25939. </para>
  25940. <para lang="en">
  25941. both tcp_nopush and tcp_nodelay directives affect the transferred response.
  25942. </para>
  25943. </change>

  25944. <change type="bugfix">
  25945. <para lang="ru">
  25946. nginx не вызывал initgroups().<br/>
  25947. Спасибо Андрею Ситникову и Андрею Нигматулину.
  25948. </para>
  25949. <para lang="en">
  25950. nginx did not call initgroups().<br/>
  25951. Thanks to Andrew Sitnikov and Andrei Nigmatulin.
  25952. </para>
  25953. </change>

  25954. <change type="change">
  25955. <para lang="ru">
  25956. ngx_http_auto_index_module теперь выдаёт размер файлов в байтах.
  25957. </para>
  25958. <para lang="en">
  25959. now the ngx_http_autoindex_module shows the file size in the bytes.
  25960. </para>
  25961. </change>

  25962. <change type="bugfix">
  25963. <para lang="ru">
  25964. ngx_http_auto_index_module возвращал ошибку 500, если в каталоге есть
  25965. битый symlink.
  25966. </para>
  25967. <para lang="en">
  25968. the ngx_http_autoindex_module returned the 500 error if the broken symlink
  25969. was in a directory.
  25970. </para>
  25971. </change>

  25972. <change type="bugfix">
  25973. <para lang="ru">
  25974. файлы больше 4G не передавались с использованием sendfile.
  25975. </para>
  25976. <para lang="en">
  25977. the files bigger than 4G could not be transferred using sendfile.
  25978. </para>
  25979. </change>

  25980. <change type="bugfix">
  25981. <para lang="ru">
  25982. если бэкенд резолвился в несколько адресов и при ожидании от него ответа
  25983. происходила ошибка, то процесс зацикливался.
  25984. </para>
  25985. <para lang="en">
  25986. if the backend was resolved to several backends and there was an error while
  25987. the response waiting then process may got caught in an endless loop.
  25988. </para>
  25989. </change>

  25990. <change type="bugfix">
  25991. <para lang="ru">
  25992. при использовании метода /dev/poll рабочий процесс мог завершиться
  25993. с сообщением "unknown cycle".
  25994. </para>
  25995. <para lang="en">
  25996. the worker process may exit with the "unknown cycle" message when the /dev/poll
  25997. method was used.
  25998. </para>
  25999. </change>

  26000. <change type="bugfix">
  26001. <para lang="ru">
  26002. ошибки "close() channel failed".
  26003. </para>
  26004. <para lang="en">
  26005. "close() channel failed" errors.
  26006. </para>
  26007. </change>

  26008. <change type="bugfix">
  26009. <para lang="ru">
  26010. автоматическое определение групп nobody и nogroup.
  26011. </para>
  26012. <para lang="en">
  26013. the autodetection of the "nobody" and "nogroup" groups.
  26014. </para>
  26015. </change>

  26016. <change type="bugfix">
  26017. <para lang="ru">
  26018. директива send_lowat не работала на Linux.
  26019. </para>
  26020. <para lang="en">
  26021. the send_lowat directive did not work on Linux.
  26022. </para>
  26023. </change>

  26024. <change type="bugfix">
  26025. <para lang="ru">
  26026. если в конфигурации не было раздела events, то происходил segmentation fault.
  26027. </para>
  26028. <para lang="en">
  26029. the segmentation fault occurred if there was no events section
  26030. in configuration.
  26031. </para>
  26032. </change>

  26033. <change type="bugfix">
  26034. <para lang="ru">
  26035. nginx не собирался под OpenBSD.
  26036. </para>
  26037. <para lang="en">
  26038. nginx could not be built on OpenBSD.
  26039. </para>
  26040. </change>

  26041. <change type="bugfix">
  26042. <para lang="ru">
  26043. двойные слэшы в "://" в URI превращались в ":/".
  26044. </para>
  26045. <para lang="en">
  26046. the double slashes in "://" in the URI were converted to ":/".
  26047. </para>
  26048. </change>

  26049. </changes>


  26050. <changes ver="0.1.10" date="2004-11-26">

  26051. <change type="bugfix">
  26052. <para lang="ru">
  26053. если в запросе без аргументов есть "//", "/./", "/../" или "%XX",
  26054. то терялся последний символ в строке запроса;
  26055. ошибка появилась в 0.1.9.
  26056. </para>
  26057. <para lang="en">
  26058. if the request without arguments contains "//", "/./", "/../" or "%XX"
  26059. then the last character in the request line was lost;
  26060. the bug had appeared in 0.1.9.
  26061. </para>
  26062. </change>

  26063. <change type="bugfix">
  26064. <para lang="ru">
  26065. исправление в версии 0.1.9 для файлов больше 2G на Linux не работало.
  26066. </para>
  26067. <para lang="en">
  26068. the fix in 0.1.9 for the files bigger than 2G on Linux did not work.
  26069. </para>
  26070. </change>

  26071. </changes>


  26072. <changes ver="0.1.9" date="2004-11-25">

  26073. <change type="bugfix">
  26074. <para lang="ru">
  26075. если в запросе есть "//", "/./", "/../" или "%XX", то проксируемый
  26076. запрос передавался без аргументов.
  26077. </para>
  26078. <para lang="en">
  26079. the proxied request was sent without arguments if the request contains
  26080. "//", "/./", "/../" or "%XX".
  26081. </para>
  26082. </change>

  26083. <change type="bugfix">
  26084. <para lang="ru">
  26085. при сжатии больших ответов иногда они передавались не полностью.
  26086. </para>
  26087. <para lang="en">
  26088. the large compressed responses may be transferred not completely.
  26089. </para>
  26090. </change>

  26091. <change type="bugfix">
  26092. <para lang="ru">
  26093. не передавались файлы больше 2G на Linux, неподдерживающем sendfile64().
  26094. </para>
  26095. <para lang="en">
  26096. the files bigger than 2G was not transferred on Linux that does not support
  26097. sendfile64().
  26098. </para>
  26099. </change>

  26100. <change type="bugfix">
  26101. <para lang="ru">
  26102. на Linux при конфигурации сборки нужно было обязательно использовать
  26103. параметр --with-poll_module;
  26104. ошибка появилась в 0.1.8.
  26105. </para>
  26106. <para lang="en">
  26107. while the build configuration on Linux the --with-poll_module parameter
  26108. was required;
  26109. the bug had appeared in 0.1.8.
  26110. </para>
  26111. </change>

  26112. </changes>


  26113. <changes ver="0.1.8" date="2004-11-20">

  26114. <change type="bugfix">
  26115. <para lang="ru">
  26116. ошибка в модуле ngx_http_autoindex_module при показе длинных имён файлов.
  26117. </para>
  26118. <para lang="en">
  26119. in the ngx_http_autoindex_module if the long file names were in the listing.
  26120. </para>
  26121. </change>

  26122. <change type="feature">
  26123. <para lang="ru">
  26124. модификатор "^~" в директиве location.
  26125. </para>
  26126. <para lang="en">
  26127. the "^~" modifier in the location directive.
  26128. </para>
  26129. </change>

  26130. <change type="feature">
  26131. <para lang="ru">
  26132. директива proxy_max_temp_file_size.
  26133. </para>
  26134. <para lang="en">
  26135. the proxy_max_temp_file_size directive.
  26136. </para>
  26137. </change>

  26138. </changes>


  26139. <changes ver="0.1.7" date="2004-11-12">

  26140. <change type="bugfix">
  26141. <para lang="ru">
  26142. при использовании sendfile, если передаваемый файл менялся, то мог
  26143. произойти segmentation fault на FreeBSD;
  26144. ошибка появилась в 0.1.5.
  26145. </para>
  26146. <para lang="en">
  26147. on FreeBSD the segmentation fault may occur if the size of the transferred
  26148. file was changed;
  26149. the bug had appeared in 0.1.5.
  26150. </para>
  26151. </change>

  26152. </changes>


  26153. <changes ver="0.1.6" date="2004-11-11">

  26154. <change type="bugfix">
  26155. <para lang="ru">
  26156. при некоторых комбинациях директив location c регулярными выражениями
  26157. использовалась конфигурация не из того location.
  26158. </para>
  26159. <para lang="en">
  26160. some location directive combinations with the regular expressions caused
  26161. the wrong configuration choose.
  26162. </para>
  26163. </change>

  26164. </changes>


  26165. <changes ver="0.1.5" date="2004-11-11">

  26166. <change type="bugfix">
  26167. <para lang="ru">
  26168. на Solaris и Linux могло быть очень много сообщений "recvmsg() returned
  26169. not enough data".
  26170. </para>
  26171. <para lang="en">
  26172. on Solaris and Linux there may be too many "recvmsg() returned not enough data"
  26173. alerts.
  26174. </para>
  26175. </change>

  26176. <change type="bugfix">
  26177. <para lang="ru">
  26178. в режиме прокси без использования sendfile на Solaris возникала
  26179. ошибка "writev() failed <nobr>(22: Invalid argument)".</nobr>
  26180. На других платформах, не поддерживающих sendfile, процесс зацикливался.
  26181. </para>
  26182. <para lang="en">
  26183. there were the "writev() failed <nobr>(22: Invalid argument)"</nobr> errors on
  26184. Solaris in proxy mode without sendfile. On other platforms that do not
  26185. support sendfile at all the process got caught in an endless loop.
  26186. </para>
  26187. </change>

  26188. <change type="bugfix">
  26189. <para lang="ru">
  26190. при использовании sendfile в режиме прокси на Solaris возникал
  26191. segmentation fault.
  26192. </para>
  26193. <para lang="en">
  26194. segmentation fault on Solaris in proxy mode and using sendfile.
  26195. </para>
  26196. </change>

  26197. <change type="bugfix">
  26198. <para lang="ru">
  26199. segmentation fault на Solaris.
  26200. </para>
  26201. <para lang="en">
  26202. segmentation fault on Solaris.
  26203. </para>
  26204. </change>

  26205. <change type="bugfix">
  26206. <para lang="ru">
  26207. обновление исполняемого файла на лету не работало на Linux.
  26208. </para>
  26209. <para lang="en">
  26210. on-line upgrade did not work on Linux.
  26211. </para>
  26212. </change>

  26213. <change type="bugfix">
  26214. <para lang="ru">
  26215. в списке файлов, выдаваемом модулем ngx_http_autoindex_module,
  26216. не перекодировались пробелы, кавычки и знаки процента.
  26217. </para>
  26218. <para lang="en">
  26219. the ngx_http_autoindex_module module did not escape the spaces,
  26220. the quotes, and the percent signs in the directory listing.
  26221. </para>
  26222. </change>

  26223. <change type="change">
  26224. <para lang="ru">
  26225. уменьшение операций копирования.
  26226. </para>
  26227. <para lang="en">
  26228. the decrease of the copy operations.
  26229. </para>
  26230. </change>

  26231. <change type="feature">
  26232. <para lang="ru">
  26233. директива userid_p3p.
  26234. </para>
  26235. <para lang="en">
  26236. the userid_p3p directive.
  26237. </para>
  26238. </change>

  26239. </changes>


  26240. <changes ver="0.1.4" date="2004-10-26">

  26241. <change type="bugfix">
  26242. <para lang="ru">
  26243. ошибка в модуле ngx_http_autoindex_module.
  26244. </para>
  26245. <para lang="en">
  26246. in the ngx_http_autoindex_module.
  26247. </para>
  26248. </change>

  26249. </changes>


  26250. <changes ver="0.1.3" date="2004-10-25">

  26251. <change type="feature">
  26252. <para lang="ru">
  26253. модуль ngx_http_autoindex_module и директива autoindex.
  26254. </para>
  26255. <para lang="en">
  26256. the ngx_http_autoindex_module and the autoindex directive.
  26257. </para>
  26258. </change>

  26259. <change type="feature">
  26260. <para lang="ru">
  26261. директива proxy_set_x_url.
  26262. </para>
  26263. <para lang="en">
  26264. the proxy_set_x_url directive.
  26265. </para>
  26266. </change>

  26267. <change type="bugfix">
  26268. <para lang="ru">
  26269. модуль проксировании мог привести к зацикливанию, если не использовался
  26270. sendfile.
  26271. </para>
  26272. <para lang="en">
  26273. proxy module may get caught in an endless loop when sendfile is not used.
  26274. </para>
  26275. </change>

  26276. </changes>


  26277. <changes ver="0.1.2" date="2004-10-21">

  26278. <change type="feature">
  26279. <para lang="ru">
  26280. параметры --user=USER, --group=GROUP и --with-ld-opt=OPTIONS в configure.
  26281. </para>
  26282. <para lang="en">
  26283. the --user=USER, --group=GROUP, and --with-ld-opt=OPTIONS options in configure.
  26284. </para>
  26285. </change>

  26286. <change type="feature">
  26287. <para lang="ru">
  26288. директива server_name поддерживает *.domain.tld.
  26289. </para>
  26290. <para lang="en">
  26291. the server_name directive supports *.domain.tld.
  26292. </para>
  26293. </change>

  26294. <change type="bugfix">
  26295. <para lang="ru">
  26296. улучшена переносимость на неизвестные платформы.
  26297. </para>
  26298. <para lang="en">
  26299. the portability improvements.
  26300. </para>
  26301. </change>

  26302. <change type="bugfix">
  26303. <para lang="ru">
  26304. нельзя переконфигурировать nginx, если конфигурационный файл указан
  26305. в командной строке;
  26306. ошибка появилась в 0.1.1.
  26307. </para>
  26308. <para lang="en">
  26309. if configuration file was set in command line, the reconfiguration
  26310. was impossible;
  26311. the bug had appeared in 0.1.1.
  26312. </para>
  26313. </change>

  26314. <change type="bugfix">
  26315. <para lang="ru">
  26316. модуль проксировании мог привести к зацикливанию, если не использовался
  26317. sendfile.
  26318. </para>
  26319. <para lang="en">
  26320. proxy module may get caught in an endless loop when sendfile is not used.
  26321. </para>
  26322. </change>

  26323. <change type="bugfix">
  26324. <para lang="ru">
  26325. при использовании sendfile текст ответа не перекодировался
  26326. согласно директивам модуля charset;
  26327. ошибка появилась в 0.1.1.
  26328. </para>
  26329. <para lang="en">
  26330. with sendfile the response was not recoded according to the charset
  26331. module directives;
  26332. the bug had appeared in 0.1.1.
  26333. </para>
  26334. </change>

  26335. <change type="bugfix">
  26336. <para lang="ru">
  26337. очень редкая ошибка при обработке kqueue.
  26338. </para>
  26339. <para lang="en">
  26340. very seldom bug in the kqueue processing.
  26341. </para>
  26342. </change>

  26343. <change type="bugfix">
  26344. <para lang="ru">
  26345. модуль сжатия сжимал уже сжатые ответы, полученные при проксировании.
  26346. </para>
  26347. <para lang="en">
  26348. the gzip module compressed the proxied responses that was already compressed.
  26349. </para>
  26350. </change>

  26351. </changes>


  26352. <changes ver="0.1.1" date="2004-10-11">

  26353. <change type="feature">
  26354. <para lang="ru">
  26355. директива gzip_types.
  26356. </para>
  26357. <para lang="en">
  26358. the gzip_types directive.
  26359. </para>
  26360. </change>

  26361. <change type="feature">
  26362. <para lang="ru">
  26363. директива tcp_nodelay.
  26364. </para>
  26365. <para lang="en">
  26366. the tcp_nodelay directive.
  26367. </para>
  26368. </change>

  26369. <change type="feature">
  26370. <para lang="ru">
  26371. директива send_lowat работает не только на платформах, поддерживающих
  26372. kqueue NOTE_LOWAT, но и на всех, поддерживающих SO_SNDLOWAT.
  26373. </para>
  26374. <para lang="en">
  26375. the send_lowat directive is working not only on OSes that support
  26376. kqueue NOTE_LOWAT, but also on OSes that support SO_SNDLOWAT.
  26377. </para>
  26378. </change>

  26379. <change type="feature">
  26380. <para lang="ru">
  26381. эмуляция setproctitle() для Linux и Solaris.
  26382. </para>
  26383. <para lang="en">
  26384. the setproctitle() emulation for Linux and Solaris.
  26385. </para>
  26386. </change>

  26387. <change type="bugfix">
  26388. <para lang="ru">
  26389. ошибка при переписывании заголовка "Location" при проксировании.
  26390. </para>
  26391. <para lang="en">
  26392. the "Location" header rewrite bug fixed while the proxying.
  26393. </para>
  26394. </change>

  26395. <change type="bugfix">
  26396. <para lang="ru">
  26397. ошибка в модуле ngx_http_chunked_module, приводившая к зацикливанию.
  26398. </para>
  26399. <para lang="en">
  26400. the ngx_http_chunked_module module may get caught in an endless loop.
  26401. </para>
  26402. </change>

  26403. <change type="bugfix">
  26404. <para lang="ru">
  26405. ошибки в модуле /dev/poll.
  26406. </para>
  26407. <para lang="en">
  26408. the /dev/poll module bugs fixed.
  26409. </para>
  26410. </change>

  26411. <change type="bugfix">
  26412. <para lang="ru">
  26413. при проксировании и использовании временных файлов ответы портились.
  26414. </para>
  26415. <para lang="en">
  26416. the responses were corrupted when the temporary files were used
  26417. while the proxying.
  26418. </para>
  26419. </change>

  26420. <change type="bugfix">
  26421. <para lang="ru">
  26422. бэкенду передавались запросы с неперекодированными символами.
  26423. </para>
  26424. <para lang="en">
  26425. the unescaped requests were passed to the backend.
  26426. </para>
  26427. </change>

  26428. <change type="bugfix">
  26429. <para lang="ru">
  26430. на Linux 2.4 при конфигурации сборки нужно было обязательно использовать
  26431. параметр --with-poll_module.
  26432. </para>
  26433. <para lang="en">
  26434. while the build configuration on Linux 2.4 the --with-poll_module parameter
  26435. was required.
  26436. </para>
  26437. </change>

  26438. </changes>


  26439. <changes ver="0.1.0" date="2004-10-04">

  26440. <change>
  26441. <para lang="ru">
  26442. Первая публично доступная версия.
  26443. </para>
  26444. <para lang="en">
  26445. The first public version.
  26446. </para>
  26447. </change>

  26448. </changes>


  26449. </change_log>