ПРОЕКТЫ 


  АРХИВ 


Apache-Talk @lexa.ru 

Inet-Admins @info.east.ru 

Filmscanners @halftone.co.uk 

Security-alerts @yandex-team.ru 

nginx-ru @sysoev.ru 


  СТАТЬИ 


  ПЕРСОНАЛЬНОЕ 


  ПРОГРАММЫ 



ПИШИТЕ
ПИСЬМА












     АРХИВ :: nginx-ru
Nginx-ru mailing list archive (nginx-ru@sysoev.ru)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

nginx+ssi+redis lua странное поведение


  • To: nginx-ru@xxxxxxxxx
  • Subject: nginx+ssi+redis lua странное поведение
  • From: "InventOR" <nginx-forum@xxxxxxxx>
  • Date: Thu, 31 Jan 2013 05:08:10 -0500
  • Dkim-signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=tigger.jlkhosting.com; s=x; h=Date:Sender:From:Message-ID:Content-Transfer-Encoding:Content-Type:Subject:To; bh=j6AmFrUpcoUcWvl5D97iEulsHYYR3mTqgudDt/8WKAY=; b=ZTMzC9xcuMLYE85+kbTj3goloFO+OwaqmZuBSCAD4WFI03C3ee9dlmmcTfOIhf9FbtQch5lvmrP44s3O7YH6/oKWCL5SEsIxQfug/bG6lmTlLdqKUkRUXu8onSJWCqD3;

в конфиге хоста стоит:
ssi on;

сделан локейшн:
[code]            location / {
                index index.php;
                try_files $uri $uri/ /index.php?$args;
            }

            location ~ ^/system/templates/(?<template>.*)$ {
#               internal;
#                add_header Content-Type text/html;

                content_by_lua '
                    local redis = require "resty.redis"
                    local red = redis:new()
                    red:set_timeout(1000) -- 1 sec
                    -- or connect to a unix domain socket file listened
                    -- by a redis server:
                    --     local ok, err =
red:connect("unix:/path/to/redis.sock")
                    local ok, err = red:connect("127.0.0.1", 6379)
                    if not ok then
                        ngx.say("failed to connect: ", err);
                        return;
                    end

                    local res, err = red:get("system:templates:" ..
ngx.var.template);
                    if not res then
                        ngx.say("failed to get template: " ..
ngx.var.template)
                        return
                    end
                    if res == ngx.null then
                        ngx.say("template not found." .. ngx.var.template)
                        return
                    end
                    ngx.say(res);
                ';
            }
[/code]

кладем файл redis-test.html в корень сайта
[code]<!--# include virtual="/system/templates/header.tpl" -->
<h1>Тестируем nginx + redis + ssi</h1>

<div>
<!--# include virtual="/system/templates/news.tpl" -->
</div>

<!--# include virtual="/system/templates/footer.tpl" -->
[/code]

в redis в ключах system:templates:header.tpl , news.tpl. footer.tpl  -
прописан текст.

если вручную идти в локейшны /system/... - выводится нужный текст. через ssi
- всё гораздо интересней. вставляется случайный кусок 3 раза. обычно это
бывает footer.tpl.

может я что-то не так делаю? подскажите гуру.

Posted at Nginx Forum: 
http://forum.nginx.org/read.php?21,235767,235767#msg-235767

_______________________________________________
nginx-ru mailing list
nginx-ru@xxxxxxxxx
http://mailman.nginx.org/mailman/listinfo/nginx-ru


 




Copyright © Lexa Software, 1996-2009.