Страница ошибки после работы memcached

Дмитрий Горбенко dgorbenko at agenstvo.com
Wed May 27 17:07:04 MSD 2009


Добрый день, Игорь.

Версия nginx 0.7.59
Вот вырезка из конфига:

         server {
                 listen          80;

                 location ~ .php$ {

                         fastcgi_pass   127.0.0.1:9000;
                         fastcgi_index  index.php;

                         fastcgi_param  SCRIPT_FILENAME  
/site/www/htdocs$fastcgi_script_name;
                         fastcgi_param  QUERY_STRING     $query_string;
                         fastcgi_param  REQUEST_METHOD   $request_method;
                         fastcgi_param  CONTENT_TYPE     $content_type;
                         fastcgi_param  CONTENT_LENGTH   $content_length;
                 }

                 location / {
                         limit_req   zone=backend_limit  burst=5;

                         if ( $args = "" ) {
                                 set                     
$memcached_key   "$uri";
                                 memcached_pass          127.0.0.1:11211;
                                 error_page              404 502 503 504 
= @backend;
                                 add_header              "Content-Type" 
"text/html; charset=UTF-8";
                                 add_header              "Cache-Control" 
"max-age=15";
                         }

                         proxy_pass              http://backend_site;
                         proxy_set_header        X-Real-IP  $remote_addr;
                         proxy_set_header        HOST  $http_host;
                         proxy_buffers           8  32k;


                         proxy_cache_key 
"$scheme://$host$uri$is_args$args:";
                         proxy_cache one;
                         proxy_cache_min_uses 1;
                         proxy_cache_valid 200 30s;
                         proxy_cache_use_stale error timeout http_500 
http_502 http_503;
                 }

                 location @backend {
                         proxy_pass              http://backend_site;
                         proxy_set_header        X-Real-IP  $remote_addr;
                         proxy_set_header        HOST  $http_host;
                         proxy_buffers           8  32k;


                         proxy_cache_key 
"$scheme://$host$uri$is_args$args:";
                         proxy_cache one;
                         proxy_cache_min_uses 1;
                         proxy_cache_valid 200 30s;
                         proxy_cache_use_stale error timeout http_500 
http_502 http_503;
                 }

                 access_log      /var/log/nginx/site.access_log main;
                 error_log       /var/log/nginx/site.error_log warn;
         }

Подскажите пожалуйста, как можно организовать конфиг так, чтобы nginx 
сперва ишел к memcached, далее если у него нет контента, уходил на 
backend_site, и далее если от бекенда приходит код ответа 50*, то 
отображать спец. заготовленную страницу (то есть, использовать директиву 
error_page 404 502 503 504 = @backend;).

Проблема в том, что у нас как раз не получается создать такой конфиг - 
мешает memcached.

С уважением,
Дмитрий.





More information about the nginx-ru mailing list