nginxtra 1.0.15.0 → 1.2.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (147) hide show
  1. data/VERSION +1 -1
  2. data/bin/nginxtra +1 -1
  3. data/lib/nginxtra/action.rb +10 -0
  4. data/lib/nginxtra/actions/compile.rb +16 -2
  5. data/lib/nginxtra/actions/start.rb +18 -2
  6. data/lib/nginxtra/actions/status.rb +1 -10
  7. data/lib/nginxtra/actions/stop.rb +18 -0
  8. data/lib/nginxtra/cli.rb +12 -3
  9. data/lib/nginxtra/config.rb +10 -0
  10. data/src/nginx/CHANGES +311 -90
  11. data/src/nginx/CHANGES.ru +315 -88
  12. data/src/nginx/auto/lib/pcre/conf +22 -5
  13. data/src/nginx/auto/lib/pcre/make +1 -1
  14. data/src/nginx/auto/modules +14 -3
  15. data/src/nginx/auto/options +17 -3
  16. data/src/nginx/auto/os/freebsd +8 -0
  17. data/src/nginx/auto/os/linux +5 -4
  18. data/src/nginx/auto/os/solaris +2 -1
  19. data/src/nginx/auto/sources +10 -2
  20. data/src/nginx/auto/summary +2 -0
  21. data/src/nginx/auto/types/sizeof +2 -1
  22. data/src/nginx/auto/types/typedef +1 -1
  23. data/src/nginx/auto/types/uintptr_t +7 -4
  24. data/src/nginx/auto/unix +82 -21
  25. data/src/nginx/conf/fastcgi.conf +1 -0
  26. data/src/nginx/conf/fastcgi_params +1 -0
  27. data/src/nginx/conf/scgi_params +1 -0
  28. data/src/nginx/conf/uwsgi_params +1 -0
  29. data/src/nginx/man/nginx.8 +49 -49
  30. data/src/nginx/src/core/nginx.c +10 -12
  31. data/src/nginx/src/core/nginx.h +2 -2
  32. data/src/nginx/src/core/ngx_buf.c +9 -7
  33. data/src/nginx/src/core/ngx_buf.h +2 -2
  34. data/src/nginx/src/core/ngx_conf_file.c +4 -11
  35. data/src/nginx/src/core/ngx_conf_file.h +1 -1
  36. data/src/nginx/src/core/ngx_connection.c +52 -1
  37. data/src/nginx/src/core/ngx_connection.h +6 -0
  38. data/src/nginx/src/core/ngx_core.h +5 -0
  39. data/src/nginx/src/core/ngx_cycle.c +1 -1
  40. data/src/nginx/src/core/ngx_cycle.h +2 -2
  41. data/src/nginx/src/core/ngx_file.c +1 -1
  42. data/src/nginx/src/core/ngx_inet.c +11 -8
  43. data/src/nginx/src/core/ngx_murmurhash.h +1 -1
  44. data/src/nginx/src/core/ngx_open_file_cache.c +343 -38
  45. data/src/nginx/src/core/ngx_open_file_cache.h +10 -0
  46. data/src/nginx/src/core/ngx_output_chain.c +2 -1
  47. data/src/nginx/src/core/ngx_parse.h +0 -3
  48. data/src/nginx/src/core/ngx_rbtree.c +1 -2
  49. data/src/nginx/src/core/ngx_regex.c +263 -5
  50. data/src/nginx/src/core/ngx_regex.h +6 -2
  51. data/src/nginx/src/core/ngx_resolver.c +88 -21
  52. data/src/nginx/src/core/ngx_resolver.h +7 -8
  53. data/src/nginx/src/core/ngx_shmtx.c +69 -44
  54. data/src/nginx/src/core/ngx_shmtx.h +12 -1
  55. data/src/nginx/src/core/ngx_slab.c +3 -3
  56. data/src/nginx/src/core/ngx_slab.h +1 -1
  57. data/src/nginx/src/core/ngx_string.c +19 -16
  58. data/src/nginx/src/core/ngx_times.c +2 -2
  59. data/src/nginx/src/event/modules/ngx_epoll_module.c +2 -2
  60. data/src/nginx/src/event/modules/ngx_eventport_module.c +1 -1
  61. data/src/nginx/src/event/modules/ngx_kqueue_module.c +1 -1
  62. data/src/nginx/src/event/ngx_event.c +25 -17
  63. data/src/nginx/src/event/ngx_event_openssl.c +3 -1
  64. data/src/nginx/src/event/ngx_event_pipe.c +108 -85
  65. data/src/nginx/src/event/ngx_event_pipe.h +1 -2
  66. data/src/nginx/src/event/ngx_event_timer.c +2 -3
  67. data/src/nginx/src/http/modules/ngx_http_access_module.c +9 -4
  68. data/src/nginx/src/http/modules/ngx_http_browser_module.c +5 -3
  69. data/src/nginx/src/http/modules/ngx_http_chunked_filter_module.c +1 -1
  70. data/src/nginx/src/http/modules/ngx_http_degradation_module.c +1 -1
  71. data/src/nginx/src/http/modules/ngx_http_fastcgi_module.c +144 -22
  72. data/src/nginx/src/http/modules/ngx_http_flv_module.c +8 -0
  73. data/src/nginx/src/http/modules/ngx_http_geo_module.c +3 -3
  74. data/src/nginx/src/http/modules/ngx_http_gzip_filter_module.c +20 -6
  75. data/src/nginx/src/http/modules/ngx_http_gzip_static_module.c +8 -0
  76. data/src/nginx/src/http/modules/ngx_http_headers_filter_module.c +23 -27
  77. data/src/nginx/src/http/modules/ngx_http_image_filter_module.c +1 -3
  78. data/src/nginx/src/http/modules/ngx_http_index_module.c +24 -0
  79. data/src/nginx/src/http/modules/ngx_http_limit_conn_module.c +747 -0
  80. data/src/nginx/src/http/modules/ngx_http_limit_req_module.c +289 -133
  81. data/src/nginx/src/http/modules/ngx_http_log_module.c +34 -6
  82. data/src/nginx/src/http/modules/ngx_http_memcached_module.c +19 -3
  83. data/src/nginx/src/http/modules/ngx_http_mp4_module.c +8 -0
  84. data/src/nginx/src/http/modules/ngx_http_proxy_module.c +1446 -239
  85. data/src/nginx/src/http/modules/ngx_http_realip_module.c +4 -10
  86. data/src/nginx/src/http/modules/ngx_http_scgi_module.c +90 -21
  87. data/src/nginx/src/http/modules/ngx_http_split_clients_module.c +8 -11
  88. data/src/nginx/src/http/modules/ngx_http_ssi_filter_module.c +16 -6
  89. data/src/nginx/src/http/modules/ngx_http_static_module.c +8 -0
  90. data/src/nginx/src/http/modules/ngx_http_upstream_ip_hash_module.c +2 -2
  91. data/src/nginx/src/http/modules/ngx_http_upstream_keepalive_module.c +570 -0
  92. data/src/nginx/src/http/modules/ngx_http_userid_filter_module.c +1 -5
  93. data/src/nginx/src/http/modules/ngx_http_uwsgi_module.c +77 -26
  94. data/src/nginx/src/http/modules/ngx_http_xslt_filter_module.c +171 -37
  95. data/src/nginx/src/http/modules/perl/nginx.pm +2 -1
  96. data/src/nginx/src/http/modules/perl/nginx.xs +4 -0
  97. data/src/nginx/src/http/ngx_http.c +8 -1
  98. data/src/nginx/src/http/ngx_http.h +1 -0
  99. data/src/nginx/src/http/ngx_http_busy_lock.c +2 -2
  100. data/src/nginx/src/http/ngx_http_cache.h +12 -1
  101. data/src/nginx/src/http/ngx_http_copy_filter_module.c +4 -3
  102. data/src/nginx/src/http/ngx_http_core_module.c +303 -37
  103. data/src/nginx/src/http/ngx_http_core_module.h +15 -0
  104. data/src/nginx/src/http/ngx_http_file_cache.c +226 -52
  105. data/src/nginx/src/http/ngx_http_parse.c +69 -3
  106. data/src/nginx/src/http/ngx_http_postpone_filter_module.c +4 -4
  107. data/src/nginx/src/http/ngx_http_request.c +61 -27
  108. data/src/nginx/src/http/ngx_http_request.h +3 -3
  109. data/src/nginx/src/http/ngx_http_request_body.c +1 -1
  110. data/src/nginx/src/http/ngx_http_script.c +6 -0
  111. data/src/nginx/src/http/ngx_http_upstream.c +200 -47
  112. data/src/nginx/src/http/ngx_http_upstream.h +20 -1
  113. data/src/nginx/src/http/ngx_http_upstream_round_robin.c +22 -6
  114. data/src/nginx/src/http/ngx_http_upstream_round_robin.h +1 -0
  115. data/src/nginx/src/http/ngx_http_variables.c +123 -4
  116. data/src/nginx/src/mail/ngx_mail.c +13 -0
  117. data/src/nginx/src/mail/ngx_mail.h +12 -0
  118. data/src/nginx/src/mail/ngx_mail_core_module.c +100 -15
  119. data/src/nginx/src/os/unix/ngx_daemon.c +2 -1
  120. data/src/nginx/src/os/unix/ngx_darwin.h +3 -0
  121. data/src/nginx/src/os/unix/ngx_darwin_config.h +1 -0
  122. data/src/nginx/src/os/unix/ngx_darwin_init.c +30 -0
  123. data/src/nginx/src/os/unix/ngx_darwin_sendfile_chain.c +11 -5
  124. data/src/nginx/src/os/unix/ngx_errno.h +5 -0
  125. data/src/nginx/src/os/unix/ngx_files.h +50 -1
  126. data/src/nginx/src/os/unix/ngx_freebsd.h +2 -1
  127. data/src/nginx/src/os/unix/ngx_freebsd_config.h +2 -0
  128. data/src/nginx/src/os/unix/ngx_freebsd_init.c +4 -3
  129. data/src/nginx/src/os/unix/ngx_freebsd_rfork_thread.c +2 -2
  130. data/src/nginx/src/os/unix/ngx_freebsd_sendfile_chain.c +12 -6
  131. data/src/nginx/src/os/unix/ngx_gcc_atomic_sparc64.h +1 -1
  132. data/src/nginx/src/os/unix/ngx_linux_config.h +1 -0
  133. data/src/nginx/src/os/unix/ngx_linux_sendfile_chain.c +6 -4
  134. data/src/nginx/src/os/unix/ngx_os.h +0 -1
  135. data/src/nginx/src/os/unix/ngx_posix_config.h +3 -0
  136. data/src/nginx/src/os/unix/ngx_process.c +50 -11
  137. data/src/nginx/src/os/unix/ngx_process.h +1 -0
  138. data/src/nginx/src/os/unix/ngx_process_cycle.c +6 -15
  139. data/src/nginx/src/os/unix/ngx_readv_chain.c +8 -0
  140. data/src/nginx/src/os/unix/ngx_setaffinity.c +69 -0
  141. data/src/nginx/src/os/unix/ngx_setaffinity.h +23 -0
  142. data/src/nginx/src/os/unix/ngx_setproctitle.c +1 -1
  143. data/src/nginx/src/os/unix/ngx_solaris_config.h +2 -0
  144. data/src/nginx/src/os/unix/ngx_solaris_sendfilev_chain.c +11 -3
  145. data/src/nginx/src/os/unix/ngx_writev_chain.c +7 -3
  146. metadata +7 -4
  147. data/src/nginx/src/http/modules/ngx_http_limit_zone_module.c +0 -553
data/src/nginx/CHANGES.ru CHANGED
@@ -1,5 +1,17 @@
1
1
 
2
- Изменения в nginx 1.0.15 12.04.2012
2
+ Изменения в nginx 1.2.0 23.04.2012
3
+
4
+ *) Исправление: в рабочем процессе мог произойти segmentation fault,
5
+ если использовалась директива try_files; ошибка появилась в 1.1.19.
6
+
7
+ *) Исправление: ответ мог быть передан не полностью, если использовалось
8
+ больше IOV_MAX буферов.
9
+
10
+ *) Исправление: в работе параметра crop директивы image_filter.
11
+ Спасибо Maxim Bublis.
12
+
13
+
14
+ Изменения в nginx 1.1.19 12.04.2012
3
15
 
4
16
  *) Безопасность: при обработке специально созданного mp4 файла модулем
5
17
  ngx_http_mp4_module могли перезаписываться области памяти рабочего
@@ -7,17 +19,64 @@
7
19
  (CVE-2012-2089).
8
20
  Спасибо Matthew Daley.
9
21
 
22
+ *) Исправление: nginx/Windows мог завершаться аварийно.
23
+ Спасибо Vincent Lee.
24
+
25
+ *) Исправление: nginx нагружал процессор, если все серверы в upstream'е
26
+ были помечены флагом backup.
27
+
28
+ *) Исправление: директивы allow и deny могли наследоваться некорректно,
29
+ если в них использовались IPv6 адреса.
30
+
31
+ *) Исправление: директивы modern_browser и ancient_browser могли
32
+ наследоваться некорректно.
33
+
34
+ *) Исправление: таймауты могли работать некорректно на Solaris/SPARC.
35
+
10
36
  *) Исправление: в модуле ngx_http_mp4_module.
11
37
 
12
38
 
13
- Изменения в nginx 1.0.14 15.03.2012
39
+ Изменения в nginx 1.1.18 28.03.2012
40
+
41
+ *) Изменение: теперь keepalive соединения не запрещены для Safari по
42
+ умолчанию.
43
+
44
+ *) Добавление: переменная $connection_requests.
45
+
46
+ *) Добавление: переменные $tcpinfo_rtt, $tcpinfo_rttvar,
47
+ $tcpinfo_snd_cwnd и $tcpinfo_rcv_space.
48
+
49
+ *) Добавление: директива worker_cpu_affinity теперь работает на FreeBSD.
50
+
51
+ *) Добавление: директивы xslt_param и xslt_string_param.
52
+ Спасибо Samuel Behan.
53
+
54
+ *) Исправление: в configure.
55
+ Спасибо Piotr Sikora.
56
+
57
+ *) Исправление: в модуле ngx_http_xslt_filter_module.
58
+
59
+ *) Исправление: nginx не собирался на Debian GNU/Hurd.
60
+
61
+
62
+ Изменения в nginx 1.1.17 15.03.2012
14
63
 
15
64
  *) Безопасность: содержимое ранее освобождённой памяти могло быть
16
65
  отправлено клиенту, если бэкенд возвращал специально созданный ответ.
17
66
  Спасибо Matthew Daley.
18
67
 
68
+ *) Исправление: при использовании встроенного перла из SSI.
69
+ Спасибо Matthew Daley.
70
+
71
+ *) Исправление: в модуле ngx_http_uwsgi_module.
72
+
73
+
74
+ Изменения в nginx 1.1.16 29.02.2012
19
75
 
20
- Изменения в nginx 1.0.13 05.03.2012
76
+ *) Изменение: ограничение на количество одновременных подзапросов
77
+ поднято до 200.
78
+
79
+ *) Добавление: параметр from в директиве disable_symlinks.
21
80
 
22
81
  *) Добавление: директивы return и error_page теперь могут использоваться
23
82
  для возврата перенаправлений с кодом 307.
@@ -27,74 +86,114 @@
27
86
  задана директива error_log.
28
87
  Спасибо Роману Арутюняну.
29
88
 
89
+ *) Исправление: в рабочем процессе мог произойти segmentation fault,
90
+ если использовались директивы "proxy_http_version 1.1" или
91
+ "fastcgi_keep_conn on".
92
+
30
93
  *) Исправление: утечек памяти.
31
94
  Спасибо Lanshun Zhou.
32
95
 
96
+ *) Исправление: в директиве disable_symlinks.
97
+
98
+ *) Исправление: при использовании ZFS размер кэша на диске мог считаться
99
+ некорректно; ошибка появилась в 1.0.1.
100
+
101
+ *) Исправление: nginx не собирался компилятором icc 12.1.
102
+
103
+ *) Исправление: nginx не собирался gcc на Solaris; ошибка появилась в
104
+ 1.1.15.
105
+
106
+
107
+ Изменения в nginx 1.1.15 15.02.2012
108
+
109
+ *) Добавление: директива disable_symlinks.
110
+
111
+ *) Добавление: директивы proxy_cookie_domain и proxy_cookie_path.
112
+
33
113
  *) Исправление: nginx мог некорректно сообщать об ошибке "upstream
34
114
  prematurely closed connection" вместо "upstream sent too big header".
35
115
  Спасибо Feibo Li.
36
116
 
37
- *) Исправление: при использовании ZFS размер кэша на диске мог считаться
38
- некорректно; ошибка появилась в 1.0.1.
117
+ *) Исправление: nginx не собирался с модулем ngx_http_perl_module, если
118
+ использовался параметр --with-openssl.
39
119
 
40
120
  *) Исправление: количество внутренних перенаправлений в именованные
41
121
  location'ы не ограничивалось.
42
122
 
123
+ *) Исправление: вызов $r->flush() несколько раз подряд мог приводить к
124
+ ошибкам в модуле ngx_http_gzip_filter_module.
125
+
43
126
  *) Исправление: при использовании директивы proxy_store с
44
127
  SSI-подзапросами временные файлы могли не удаляться.
45
128
 
46
129
  *) Исправление: в некоторых случаях некэшируемые переменные (такие, как
47
130
  $args) возвращали старое пустое закэшированное значение.
48
131
 
49
- *) Исправление: директивы proxy_redirect могли наследоваться
50
- некорректно.
132
+ *) Исправление: в рабочем процессе мог произойти segmentation fault,
133
+ если одновременно создавалось слишком много SSI-подзапросов; ошибка
134
+ появилась в 0.7.25.
51
135
 
52
- *) Исправление: nginx не собирался с модулем ngx_http_perl_module, если
53
- использовался параметр --with-openssl.
54
136
 
55
- *) Исправление: nginx не собирался компилятором icc 12.1.
137
+ Изменения в nginx 1.1.14 30.01.2012
56
138
 
139
+ *) Добавление: теперь можно указать несколько ограничений limit_req
140
+ одновременно.
57
141
 
58
- Изменения в nginx 1.0.12 06.02.2012
142
+ *) Исправление: в обработке ошибок при соединении с бэкендом.
143
+ Спасибо Piotr Sikora.
59
144
 
60
- *) Добавление: параметры TLSv1.1 и TLSv1.2 в директиве ssl_protocols.
145
+ *) Исправление: в обработке ошибок при использовании AIO на FreeBSD.
61
146
 
62
- *) Добавление: SSI команда if поддерживает выделения в регулярных
63
- выражениях.
147
+ *) Исправление: в инициализации библиотеки OpenSSL.
64
148
 
65
- *) Исправление: SSI команда if не работала внутри команды block.
149
+ *) Исправление: директивы proxy_redirect могли наследоваться
150
+ некорректно.
66
151
 
67
- *) Исправление: в обработке ошибок при использовании AIO на FreeBSD.
152
+ *) Исправление: утечки памяти при переконфигурации, если использовалась
153
+ директива pcre_jit.
68
154
 
69
- *) Исправление: в инициализации библиотеки OpenSSL.
70
155
 
71
- *) Исправление: директива worker_cpu_affinity могла не работать.
156
+ Изменения в nginx 1.1.13 16.01.2012
72
157
 
73
- *) Исправление: директивы limit_conn_log_level и limit_req_log_level
74
- могли не работать.
158
+ *) Добавление: параметры TLSv1.1 и TLSv1.2 в директиве ssl_protocols.
75
159
 
76
- *) Исправление: директива read_ahead могла не работать при использовании
77
- совместно с try_files и open_file_cache.
160
+ *) Исправление: параметры директивы limit_req наследовались некорректно;
161
+ ошибка появилась в 1.1.12.
162
+
163
+ *) Исправление: директива proxy_redirect некорректно обрабатывала
164
+ заголовок Refresh при использовании регулярных выражений.
78
165
 
79
166
  *) Исправление: директива proxy_cache_use_stale с параметром error не
80
167
  возвращала ответ из кэша, если все бэкенды были признаны
81
168
  неработающими.
82
169
 
83
- *) Исправление: если в параметре inactive директивы proxy_cache_path
84
- было указано малое время, в рабочем процессе мог произойти
85
- segmentation fault.
170
+ *) Исправление: директива worker_cpu_affinity могла не работать.
86
171
 
87
- *) Исправление: ответы из кэша могли зависать.
172
+ *) Исправление: nginx не собирался на Solaris; ошибка появилась в
173
+ 1.1.12.
88
174
 
89
- *) Исправление: в обработке ошибок при соединении с бэкендом.
90
- Спасибо Piotr Sikora.
175
+ *) Исправление: в модуле ngx_http_mp4_module.
91
176
 
92
- *) Исправление: в методе epoll.
93
- Спасибо Yichun Zhang.
94
177
 
95
- *) Исправление: переменная $sent_http_cache_control могла содержать
96
- неверное значение при использовании директивы expires.
97
- Спасибо Yichun Zhang.
178
+ Изменения в nginx 1.1.12 26.12.2011
179
+
180
+ *) Изменение: после перенаправления запроса с помощью директивы
181
+ error_page директива proxy_pass без URI теперь использует изменённый
182
+ URI.
183
+ Спасибо Lanshun Zhou.
184
+
185
+ *) Добавление: директивы proxy/fastcgi/scgi/uwsgi_cache_lock,
186
+ proxy/fastcgi/scgi/uwsgi_cache_lock_timeout.
187
+
188
+ *) Добавление: директива pcre_jit.
189
+
190
+ *) Добавление: SSI команда if поддерживает выделения в регулярных
191
+ выражениях.
192
+
193
+ *) Исправление: SSI команда if не работала внутри команды block.
194
+
195
+ *) Исправление: директивы limit_conn_log_level и limit_req_log_level
196
+ могли не работать.
98
197
 
99
198
  *) Исправление: директива limit_rate не позволяла передавать на полной
100
199
  скорости, даже если был указан очень большой лимит.
@@ -102,52 +201,116 @@
102
201
  *) Исправление: директива sendfile_max_chunk не работала, если
103
202
  использовалась директива limit_rate.
104
203
 
105
- *) Исправление: nginx не собирался на Solaris; ошибка появилась в
106
- 1.0.11.
204
+ *) Исправление: если в директиве proxy_pass использовались переменные и
205
+ не был указан URI, всегда использовался URI исходного запроса.
206
+
207
+ *) Исправление: после перенаправления запроса с помощью директивы
208
+ try_files директива proxy_pass без URI могла использовать URI
209
+ исходного запроса.
210
+ Спасибо Lanshun Zhou.
107
211
 
108
212
  *) Исправление: в модуле ngx_http_scgi_module.
109
213
 
110
214
  *) Исправление: в модуле ngx_http_mp4_module.
111
215
 
216
+ *) Исправление: nginx не собирался на Solaris; ошибка появилась в 1.1.9.
217
+
218
+
219
+ Изменения в nginx 1.1.11 12.12.2011
220
+
221
+ *) Добавление: параметр so_keepalive в директиве listen.
222
+ Спасибо Всеволоду Стахову.
223
+
224
+ *) Добавление: параметр if_not_empty в директивах
225
+ fastcgi/scgi/uwsgi_param.
226
+
227
+ *) Добавление: переменная $https.
228
+
229
+ *) Добавление: директива proxy_redirect поддерживает переменные в первом
230
+ параметре.
231
+
232
+ *) Добавление: директива proxy_redirect поддерживает регулярные
233
+ выражения.
234
+
235
+ *) Исправление: переменная $sent_http_cache_control могла содержать
236
+ неверное значение при использовании директивы expires.
237
+ Спасибо Yichun Zhang.
238
+
239
+ *) Исправление: директива read_ahead могла не работать при использовании
240
+ совместно с try_files и open_file_cache.
241
+
242
+ *) Исправление: если в параметре inactive директивы proxy_cache_path
243
+ было указано малое время, в рабочем процессе мог произойти
244
+ segmentation fault.
245
+
246
+ *) Исправление: ответы из кэша могли зависать.
247
+
248
+
249
+ Изменения в nginx 1.1.10 30.11.2011
250
+
251
+ *) Исправление: при использовании AIO на Linux в рабочем процессе
252
+ происходил segmentation fault; ошибка появилась в 1.1.9.
253
+
112
254
 
113
- Изменения в nginx 1.0.11 15.12.2011
255
+ Изменения в nginx 1.1.9 28.11.2011
114
256
 
115
257
  *) Изменение: теперь двойные кавычки экранируется при выводе
116
258
  SSI-командой echo.
117
259
  Спасибо Зауру Абасмирзоеву.
118
260
 
119
- *) Добавление: директива image_filter_sharpen.
261
+ *) Добавление: параметр valid в директиве resolver. По умолчанию теперь
262
+ используется TTL, возвращённый DNS-сервером.
263
+ Спасибо Кириллу Коринскому.
264
+
265
+ *) Исправление: nginx мог перестать отвечать, если рабочий процесс
266
+ завершался аварийно.
120
267
 
121
268
  *) Исправление: в рабочем процессе мог произойти segmentation fault,
122
- если использовалось SNI; ошибка появилась в 1.0.9.
269
+ если использовалось SNI; ошибка появилась в 1.1.2.
270
+
271
+ *) Исправление: в директиве keepalive_disable; ошибка появилась в 1.1.8.
272
+ Спасибо Александру Усову.
123
273
 
124
274
  *) Исправление: сигнал SIGWINCH переставал работать после первого
125
- обновления исполняемого файла; ошибка появилась в 1.0.9.
275
+ обновления исполняемого файла; ошибка появилась в 1.1.1.
126
276
 
127
- *) Исправление: строки "If-Modified-Since", "If-Range" и им подобные в
128
- заголовке запроса клиента могли передаваться бэкенду при кэшировании;
129
- или не передаваться при выключенном кэшировании, если кэширование
130
- было включено в другой части конфигурации.
277
+ *) Исправление: теперь ответы бэкендов, длина которых не соответствует
278
+ заголовку Content-Length, не кэширутся.
131
279
 
132
280
  *) Исправление: в директиве scgi_param при использовании составных
133
281
  параметров.
134
282
 
135
- *) Исправление: директивы add_header и expires не работали для ответов с
136
- кодом 206, если запрос проксировался.
137
-
138
- *) Исправление: в директиве "expires @time".
283
+ *) Исправление: в методе epoll.
284
+ Спасибо Yichun Zhang.
139
285
 
140
286
  *) Исправление: в модуле ngx_http_flv_module.
141
287
  Спасибо Piotr Sikora.
142
288
 
143
289
  *) Исправление: в модуле ngx_http_mp4_module.
144
290
 
291
+ *) Исправление: теперь nginx понимает IPv6-адреса в строке запроса и в
292
+ заголовке Host.
293
+
294
+ *) Исправление: директивы add_header и expires не работали для ответов с
295
+ кодом 206, если запрос проксировался.
296
+
145
297
  *) Исправление: nginx не собирался на FreeBSD 10.
146
298
 
147
299
  *) Исправление: nginx не собирался на AIX.
148
300
 
149
301
 
150
- Изменения в nginx 1.0.10 15.11.2011
302
+ Изменения в nginx 1.1.8 14.11.2011
303
+
304
+ *) Изменение: модуль ngx_http_limit_zone_module переименован в
305
+ ngx_http_limit_conn_module.
306
+
307
+ *) Изменение: директива limit_zone заменена директивой limit_conn_zone с
308
+ новым синтаксисом.
309
+
310
+ *) Добавление: поддержка ограничения по нескольким limit_conn на одном
311
+ уровне.
312
+
313
+ *) Добавление: директива image_filter_sharpen.
151
314
 
152
315
  *) Исправление: в рабочем процессе мог произойти segmentation fault,
153
316
  если resolver получил большой DNS-ответ.
@@ -156,33 +319,54 @@
156
319
  *) Исправление: в вычислении ключа для кэширования, если использовалась
157
320
  внутренняя реализация MD5; ошибка появилась в 1.0.4.
158
321
 
322
+ *) Исправление: строки "If-Modified-Since", "If-Range" и им подобные в
323
+ заголовке запроса клиента могли передаваться бэкенду при кэшировании;
324
+ или не передаваться при выключенном кэшировании, если кэширование
325
+ было включено в другой части конфигурации.
326
+
159
327
  *) Исправление: модуль ngx_http_mp4_module выдавал неверную строку
160
328
  "Content-Length" в заголовке ответа, использовался аргумент start.
161
329
  Спасибо Piotr Sikora.
162
330
 
163
331
 
164
- Изменения в nginx 1.0.9 01.11.2011
332
+ Изменения в nginx 1.1.7 31.10.2011
333
+
334
+ *) Добавление: поддержка нескольких DNS серверов в директиве "resolver".
335
+ Спасибо Кириллу Коринскому.
336
+
337
+ *) Исправление: на старте или во время переконфигурации происходил
338
+ segmentation fault, если директива ssl использовалась на уровне http
339
+ и не был указан ssl_certificate.
340
+
341
+ *) Исправление: уменьшено потребление памяти при проксировании больших
342
+ файлов, если они буферизировались на диск.
343
+
344
+ *) Исправление: в рабочем процессе мог произойти segmentation fault,
345
+ если использовалась директива "proxy_http_version 1.1".
346
+
347
+ *) Исправление: в директиве "expires @time".
348
+
349
+
350
+ Изменения в nginx 1.1.6 17.10.2011
351
+
352
+ *) Изменение во внутреннем API: теперь при внутреннем редиректе в
353
+ именованный location контексты модулей очищаются.
354
+ По запросу Yichun Zhang.
355
+
356
+ *) Изменение: теперь если сервер, описанный в блоке upstream, был
357
+ признан неработающим, то после истечения fail_timeout на него будет
358
+ отправлен только один запрос; сервер будет считаться работающим, если
359
+ успешно ответит на этот запрос.
165
360
 
166
361
  *) Изменение: теперь символы 0x7F-0xFF в access_log записываются в виде
167
362
  \xXX.
168
363
 
169
- *) Изменение: SIGWINCH сигнал теперь работает только в режиме демона.
170
-
171
364
  *) Добавление: директивы "proxy/fastcgi/scgi/uwsgi_ignore_headers"
172
365
  теперь поддерживают значения X-Accel-Limit-Rate, X-Accel-Buffering и
173
366
  X-Accel-Charset.
174
367
 
175
368
  *) Добавление: уменьшение потребления памяти при использовании SSL.
176
369
 
177
- *) Добавление: теперь на NetBSD поддерживаются accept фильтры.
178
-
179
- *) Добавление: директивы uwsgi_buffering и scgi_buffering.
180
- Спасибо Peter Smit.
181
-
182
- *) Исправление: на старте или во время переконфигурации происходил
183
- segmentation fault, если директива ssl использовалась на уровне http
184
- и не был указан ssl_certificate.
185
-
186
370
  *) Исправление: некоторые UTF-8 символы обрабатывались неправильно.
187
371
  Спасибо Алексею Куцу.
188
372
 
@@ -201,10 +385,19 @@
201
385
  *) Исправление: модуль ngx_http_mp4_module не поддерживал перемотку на
202
386
  32-битных платформах.
203
387
 
388
+
389
+ Изменения в nginx 1.1.5 05.10.2011
390
+
391
+ *) Добавление: директивы uwsgi_buffering и scgi_buffering.
392
+ Спасибо Peter Smit.
393
+
204
394
  *) Исправление: при использовании proxy_cache_bypass могли быть
205
395
  закэшированы некэшируемые ответы.
206
396
  Спасибо John Ferlito.
207
397
 
398
+ *) Исправление: в модуле ngx_http_proxy_module при работе с бэкендами по
399
+ HTTP/1.1.
400
+
208
401
  *) Исправление: закэшированные ответы с пустым телом возвращались
209
402
  некорректно; ошибка появилась в 0.8.31.
210
403
 
@@ -213,26 +406,17 @@
213
406
 
214
407
  *) Исправление: в директиве return.
215
408
 
216
- *) Исправление: директивы ssl_verify_client, ssl_verify_depth и
217
- ssl_prefer_server_cipher могли работать некорректно, если
218
- использовался SNI.
219
-
220
-
221
- Изменения в nginx 1.0.8 01.10.2011
409
+ *) Исправление: при использовании директивы "ssl_session_cache builtin"
410
+ происходил segmentation fault; ошибка появилась в 1.1.1.
222
411
 
223
- *) Исправление: nginx не собирался с модулем ngx_http_mp4_module и без
224
- параметра --with-debug.
225
412
 
413
+ Изменения в nginx 1.1.4 20.09.2011
226
414
 
227
- Изменения в nginx 1.0.7 30.09.2011
228
-
229
- *) Изменение: теперь, если суммарный размер всех диапазонов больше
230
- размера исходного ответа, то nginx возвращает только исходный ответ,
231
- не обрабатывая диапазоны.
415
+ *) Добавление: модуль ngx_http_upstream_keepalive.
232
416
 
233
- *) Добавление: директива max_ranges.
417
+ *) Добавление: директива proxy_http_version.
234
418
 
235
- *) Добавление: модуль ngx_http_mp4_module.
419
+ *) Добавление: директива fastcgi_keep_conn.
236
420
 
237
421
  *) Добавление: директива worker_aio_requests.
238
422
 
@@ -242,17 +426,58 @@
242
426
  *) Исправление: в обработке ошибок при работе с Linux AIO.
243
427
  Спасибо Hagai Avrahami.
244
428
 
429
+ *) Исправление: уменьшено потребление памяти для долгоживущих запросов.
430
+
431
+ *) Исправление: модуль ngx_http_mp4_module не поддерживал 64-битный
432
+ MP4-атом co64.
433
+
434
+
435
+ Изменения в nginx 1.1.3 14.09.2011
436
+
437
+ *) Добавление: модуль ngx_http_mp4_module.
438
+
245
439
  *) Исправление: в Linux AIO, используемым совместно с open_file_cache.
246
440
 
247
441
  *) Исправление: open_file_cache не обновлял информацию о файле, если
248
442
  файл был изменён не атомарно.
249
443
 
250
- *) Исправление: уменьшено потребление памяти для долгоживущих запросов.
444
+ *) Исправление: nginx не собирался на MacOSX 10.7.
445
+
446
+
447
+ Изменения в nginx 1.1.2 05.09.2011
448
+
449
+ *) Изменение: теперь, если суммарный размер всех диапазонов больше
450
+ размера исходного ответа, то nginx возвращает только исходный ответ,
451
+ не обрабатывая диапазоны.
452
+
453
+ *) Добавление: директива max_ranges.
454
+
455
+ *) Исправление: директивы ssl_verify_client, ssl_verify_depth и
456
+ ssl_prefer_server_cipher могли работать некорректно, если
457
+ использовался SNI.
251
458
 
252
459
  *) Исправление: в директивах proxy/fastcgi/scgi/
253
460
  uwsgi_ignore_client_abort.
254
461
 
255
- *) Исправление: nginx не собирался на MacOSX 10.7.
462
+
463
+ Изменения в nginx 1.1.1 22.08.2011
464
+
465
+ *) Изменение: теперь загрузчик кэша за каждую итерацию либо обрабатывает
466
+ число файлов, указанное в параметре load_files, либо работает не
467
+ дольше времени, указанного в параметре loader_threshold.
468
+
469
+ *) Изменение: SIGWINCH сигнал теперь работает только в режиме демона.
470
+
471
+ *) Добавление: теперь разделяемые зоны и кэши используют семафоры POSIX
472
+ на Solaris.
473
+ Спасибо Денису Иванову.
474
+
475
+ *) Добавление: теперь на NetBSD поддерживаются accept фильтры.
476
+
477
+ *) Исправление: nginx не собирался на Linux 3.0.
478
+
479
+ *) Исправление: в некоторых случаях nginx не использовал сжатие; ошибка
480
+ появилась в 1.1.0.
256
481
 
257
482
  *) Исправление: обработка тела запроса могла быть неверной, если клиент
258
483
  использовал pipelining.
@@ -272,11 +497,18 @@
272
497
  *) Исправление: при использовании большого количества backup-серверов в
273
498
  рабочем процессе мог произойти segmentation fault.
274
499
 
500
+ *) Исправление: при использовании директив fastcgi/scgi/uwsgi_param со
501
+ значениями, начинающимися со строки "HTTP_", в рабочем процессе мог
502
+ произойти segmentation fault; ошибка появилась в 0.8.40.
503
+
275
504
 
276
- Изменения в nginx 1.0.6 29.08.2011
505
+ Изменения в nginx 1.1.0 01.08.2011
277
506
 
278
507
  *) Добавление: уменьшение времени работы загрузчика кэша.
279
508
 
509
+ *) Добавление: параметры loader_files, loader_sleep и loader_threshold
510
+ директив proxy/fastcgi/scgi/uwsgi_cache_path.
511
+
280
512
  *) Добавление: уменьшение времени загрузки конфигураций с большим
281
513
  количеством HTTPS серверов.
282
514
 
@@ -284,32 +516,27 @@
284
516
  Спасибо Adrian Kotelba.
285
517
 
286
518
  *) Добавление: директива lingering_close.
287
-
288
- *) Добавление: теперь разделяемые зоны и кэши используют семафоры POSIX
289
- на Solaris.
290
- Спасибо Денису Иванову.
291
-
292
- *) Исправление: nginx не собирался на Linux 3.0.
293
-
294
- *) Исправление: при использовании директив fastcgi/scgi/uwsgi_param со
295
- значениями, начинающимися со строки "HTTP_", в рабочем процессе мог
296
- произойти segmentation fault; ошибка появилась в 0.8.40.
519
+ Спасибо Максиму Дунину.
297
520
 
298
521
  *) Исправление: закрытия соединения для pipelined-запросов.
522
+ Спасибо Максиму Дунину.
299
523
 
300
524
  *) Исправление: nginx не запрещал сжатие при получении значения
301
525
  "gzip;q=0" в строке "Accept-Encoding" в заголовке запроса клиента.
302
526
 
303
527
  *) Исправление: таймаута при небуферизированном проксировании.
528
+ Спасибо Максиму Дунину.
304
529
 
305
530
  *) Исправление: утечки памяти при использовании переменных в директиве
306
531
  proxy_pass при работе с бэкендом по HTTPS.
532
+ Спасибо Максиму Дунину.
307
533
 
308
534
  *) Исправление: в проверке параметра директивы proxy_pass, заданного
309
535
  переменными.
310
536
  Спасибо Lanshun Zhou.
311
537
 
312
538
  *) Исправление: SSL не работал на QNX.
539
+ Спасибо Максиму Дунину.
313
540
 
314
541
  *) Исправление: SSL модули не собирались gcc 4.6 без параметра
315
542
  --with-debug.