ПРОЕКТЫ 


  АРХИВ 


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


  • To: nginx-ru@xxxxxxxxx
  • Subject: Задачка по nginx
  • From: "Userolog" <nginx-forum@xxxxxxxx>
  • Date: Fri, 08 Jul 2011 09:24:26 -0400
  • Dkim-signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=mickey.jlkhosting.com; s=x; h=Date:Sender:From:Message-ID:Content-Transfer-Encoding:Content-Type:Subject:To; bh=gX3yZSolFKx3HHK71BSdv7gVRy3wDpxMh/PuHFu/0Vo=; b=ClFbXi5lZsSaVHLlyiVVdNagygx9ek88bn17IsYSpMpO7Ja0I/WMmDuSXKYN+RPuW2N0QVVAmZ5J3xyikhM2gkM6mZJ6LYHgpMpdxrr9zPwJGXT7a7c9UebXHm9VrFBO;

Программисты тут задачку задали. Есть
движок, шаблоны html лежат в
/var/www/system/data/www/system.com/templates/

и их несколько и с разными именами,
типа

/templates/odin/
/templates/dva/

и так далее.

И у всех этих шаблонов есть шапка -
header.jpg, которая отдаётся из папок
/var/www/system/data/www/system.com/templates/имяшаблона/header.jpg

Движок позволяет редактировать шапку
сайта, но загружает в каталог
/var/www/cache/data/www/имясайта/templates/имяшаблона/

Где имя сайта - любой домен
(мультисайтовый движок).

Таким образом, нужно организовать
отдачу nginx так, чтобы если шапка
существует в
/var/www/cache/data/www/имясайта/templates/имяшаблона/,
то берётся оттуда. Если нет, то ищется в
/var/www/system/data/www/system.com/templates/.

Вопрос: как реализовать?

Конфиг nginx 

server {
listen 127.0.0.1:80;
server_name system.com www.system.com;
rewrite ^(/manager/.*)$ https://$host$1 permanent;
error_page 404 = @fallback;

#files cache
location / {
root /var/www/cache/data/www/$host_without_www;
try_files $uri @backend;
}
#end for cache folder
location /templates/
{
root /var/www/;
try_files /cache/data/www/$host/templates$uri
/system/data/www/$host/templates$uri @dummy;
}
location @dummy { return 444; }

location ~* ^/(webstat/|awstats|webmail/|myadmin/|manimg/) {
proxy_pass http://127.0.0.1:8080;
proxy_redirect http://system.com:8080/ /;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Real-IP $remote_addr;
}
set $host_without_www $host;
if ($host ~* www\.(.*)) {
set $host_without_www $1;
}
location ~ ^/$ {
rewrite .* /index.html;
}

location @backend {
proxy_pass http://127.0.0.1:8080;
proxy_redirect http://system.com:8080/ /;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Real-IP $remote_addr;
}


location ~*
^.+\.(jpg|jpeg|gif|png|svg|js|css|mp3|ogg|mpe?g|avi|zip|gz|bz2?|rar)$ {
root /var/www/system/data/www/system.com;
access_log /var/www/httpd-logs/system.com.access.log;

location ~ /files {
root /var/www/cache/data/www/$host_without_www;
}

}

location @fallback {
proxy_pass http://127.0.0.1:8080;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Real-IP $remote_addr;
}
} 


Версия 0.7.67

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


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


 




Copyright © Lexa Software, 1996-2009.