Nginx-ru mailing list archive (nginx-ru@sysoev.ru)
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: nginx-0.7.9
On Wed, Aug 13, 2008 at 01:56:07PM +0700, Denis F. Latypoff wrote:
> Hello Igor,
>
> Wednesday, August 13, 2008, 1:30:17 PM, you wrote:
>
> > On Wed, Aug 13, 2008 at 12:52:33PM +0700, Denis F. Latypoff wrote:
>
> >> Hello Igor,
> >>
> >> Tuesday, August 12, 2008, 10:40:34 PM, you wrote:
> >>
> >> > Изменения в nginx 0.7.9
> >> > 12.08.2008
> >>
> >> > *) Добавление: теперь директивы gzip_types, ssi_types и
> >> > sub_filter_types используют хэш.
> >>
> >> http {
> >> gzip on;
> >> gzip_proxied any;
> >> gzip_min_length 0;
> >> gzip_types text/css
> >> text/xml
> >> text/plain
> >> application/xml
> >> application/x-javascript;
> >>
> >> server {
> >>
> >> listen 192.168.12.10:80;
> >> server_name megaservername.ru;
> >>
> >> # location / {
> >> # root /path/to/root;
> >> # }
> >> }
> >> }
> >>
> >> Делаем запрос на статику '/file.js'. Если location не найден, то
> >> вываливается корка:
> >>
> >> #0 0x0804c0bf in ngx_hash_find (hash=0x80b91a8, key=3571849281,
> >> name=0x80c21f0 "application/x-javascript", len=24)
> >> at src/core/ngx_hash.c:21
> >> 21 elt = hash->buckets[key % hash->size];
>
> > Патч.
>
> Вылечило.
Предыдущий патч плохой. Прилагается новый.
> Еще одна корка (бесконечная рекурсия, бектрейс огромный):
>
> error_page 500 /errors/500.html;
> error_page 502 /errors/502.html;
> error_page 404 /errors/404.html;
>
> location /errors/ {
> internal;
> root /path/to/root;
> }
>
> Папки /path/to/root/errors не существует.
> По идее должно возвращаться 500?
Буду смотреть.
--
Игорь Сысоев
http://sysoev.ru
Index: src/http/ngx_http.c
===================================================================
--- src/http/ngx_http.c (revision 1491)
+++ src/http/ngx_http.c (working copy)
@@ -1768,8 +1768,31 @@
if (keys == NULL) {
+ if (prev_types_hash->buckets) {
+
+ *types_hash = *prev_types_hash;
+
+ return NGX_CONF_OK;
+ }
+
if (prev_keys) {
+
+ hash.hash = prev_types_hash;
+ hash.key = NULL;
+ hash.max_size = 2048;
+ hash.bucket_size = 64;
+ hash.name = "test_types_hash";
+ hash.pool = cf->pool;
+ hash.temp_pool = NULL;
+
+ if (ngx_hash_init(&hash, prev_keys->elts, prev_keys->nelts)
+ != NGX_OK)
+ {
+ return NGX_CONF_ERROR;
+ }
+
*types_hash = *prev_types_hash;
+
return NGX_CONF_OK;
}
|