July 08, 2011 09:24AM
Программисты тут задачку задали. Есть движок, шаблоны 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
Subject Author Posted

Задачка по nginx

Userolog July 08, 2011 09:24AM

Re: Задачка по nginx

stitrace July 08, 2011 09:31AM

Re: Задачка по nginx

Userolog July 08, 2011 09:53AM

Re: Задачка по nginx

stitrace July 08, 2011 10:17AM

Re: Задачка по nginx

stitrace July 08, 2011 10:33AM

Re: Задачка по nginx

Userolog July 08, 2011 10:40AM

Re: Задачка по nginx

stitrace July 11, 2011 09:02AM

Re: Задачка по nginx

Игорь Вавржин July 11, 2011 09:02AM

Re: Задачка по nginx

Sergey Shepelev July 11, 2011 09:02AM

Re: Задачка по nginx

Sergey Shepelev July 11, 2011 09:02AM

Re: Задачка по nginx

Валентин Бартенев July 11, 2011 09:02AM



Sorry, only registered users may post in this forum.

Click here to login

Online Users

Guests: 260
Record Number of Users: 8 on April 13, 2023
Record Number of Guests: 421 on December 02, 2018
Powered by nginx      Powered by FreeBSD      PHP Powered      Powered by MariaDB      ipv6 ready