http cache & OpenSSL

Igor Sysoev is at rambler-co.ru
Tue Jun 16 11:49:22 MSD 2009


On Tue, Jun 16, 2009 at 11:26:05AM +0400, Pavel Khusainov wrote:

> Конфигурю nginx-0.8.2
> 
> #./configure --with-pcre=./pcre-7.9/ --with-zlib=./zlib-1.2.3/ 
> --with-openssl=../openssl-0.9.8k/

> ./configure: error: the HTTP cache module requires md5 functions
> from OpenSSL library.  You can either disable the module by using
> --without-http_cache option, or install the OpenSSL library into the 
> system,
> or build the OpenSSL library statically from the source with nginx by 
> using
> --with-openssl=<path> option.
> 
> Ставим эту опцию
> #./configure --without-http_cache --with-pcre=./pcre-7.9/ 
> --with-zlib=./zlib-1.2.3/ --with-openssl=../openssl-0.9.8k/
> ./configure: error: invalid option "--without-http_cache"
> 
> В ./configure --help увидел, что --without-http_cache пишется через 
> дифис

Спасибо, поправлю.

Что касается сборки OpenSSL из исходников для кэша, то это сработает только
если ещё указан --with-http_ssl_module. Мне кажется, собирать эту огромную
библиотеку только ради md5 не стоит. Надо как-то подправить сообщение,
например,

or build the OpenSSL library statically from the source with nginx by 
using --with-http_ssl_module --with-openssl=<path> options.

Можно взять отдельную библиотеку, когда-то вырезаную из OpenSSL,
когда она ещё называлась SSLeay-0.8.2b:
http://sysoev.ru/nginx/libmd5-0.8.2b.tar.gz

--with-md5=../libmd5-0.8.2b

> #./configure --without-http-cache --with-pcre=./pcre-7.9/ 
> --with-zlib=./zlib-1.2.3/ --with-openssl=../openssl-0.9.8k/
> всё нормально сконфигурировалось
> делаю make, начинает собираться и
> gcc -c -O -pipe  -O -W -Wall -Wpointer-arith -Wno-unused-parameter 
> -Wunused-function -Wunused-variable -Wunused-value -Werror -g  -I 
> src/core -I src/event -I src/event/modules -I src/os/unix -I ./pcre-7.9/ 
> -I ./zlib-1.2.3/ -I objs -I src/http -I src/http/modules \
>        -o objs/src/http/ngx_http_upstream.o \
>        src/http/ngx_http_upstream.c
> src/http/ngx_http_upstream.c: In function 
> `ngx_http_upstream_hide_headers_hash':
> src/http/ngx_http_upstream.c:4089: structure has no member named `cache'
> src/http/ngx_http_upstream.c:4089: structure has no member named `cache'
> make[1]: *** [objs/src/http/ngx_http_upstream.o] Ошибка 1
> make[1]: Выход из каталог `/var/ftp/incoming/nginx-0.8.2'
> make: *** [build] Ошибка 2
> 
> Залез src/http/ngx_http_upstream.c
> изменил до этого
> #if (NGX_HTTP_CACHE)
>       if (conf->hide_headers_hash.buckets
>            && ((conf->cache == NULL) == (prev->cache == NULL)))
>        {
>            return NGX_OK;
>        }
> #endif
> 
> такая же весчь была и в src/http/modules/ngx_http_proxy_module.c:2346
> после этого всё скомпилировалось.

Нет, это неверный патч.

> Однако, как скомпилировать со включеным file cache

Патч прилагается.


-- 
Игорь Сысоев
http://sysoev.ru
-------------- next part --------------
Index: src/http/ngx_http_upstream.c
===================================================================
--- src/http/ngx_http_upstream.c	(revision 2267)
+++ src/http/ngx_http_upstream.c	(working copy)
@@ -4086,7 +4086,10 @@
         conf->hide_headers_hash = prev->hide_headers_hash;
 
         if (conf->hide_headers_hash.buckets
-            && ((conf->cache == NULL) == (prev->cache == NULL)))
+#if (NGX_HTTP_CACHE)
+            && ((conf->cache == NULL) == (prev->cache == NULL))
+#endif
+           )
         {
             return NGX_OK;
         }
Index: src/http/modules/ngx_http_proxy_module.c
===================================================================
--- src/http/modules/ngx_http_proxy_module.c	(revision 2267)
+++ src/http/modules/ngx_http_proxy_module.c	(working copy)
@@ -2343,7 +2343,10 @@
     }
 
     if (conf->headers_set_hash.buckets
-        && ((conf->upstream.cache == NULL) == (prev->upstream.cache == NULL)))
+#if (NGX_HTTP_CACHE)
+        && ((conf->upstream.cache == NULL) == (prev->upstream.cache == NULL))
+#endif
+       )
     {
         return NGX_OK;
     }


More information about the nginx-ru mailing list