Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Настройка nginx на отдачу существующей статики. 
V
    Опции темы
Хоббит
Дата 24.11.2008, 18:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1263
Регистрация: 6.11.2005

Репутация: нет
Всего: 1



Надо поставить nginx фронтэндом к апачу, чтобы он отдавал статику. Но файл статический может не существовать, тогда запроса надо передать пхп скрипту, который этот файл создаст и вернет.

Когда был 1 апач, это делалось с помошью rewrite_mod, проверялось, если файл есть, то его возращал апач сразу, если нет, то редирект на скрипт.
Есть ли такие возможности в nginx.
PM MAIL   Вверх
Хоббит
Дата 24.11.2008, 19:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1263
Регистрация: 6.11.2005

Репутация: нет
Всего: 1



В nginx есть http_rewrite_module, но мне надо сделать следующее.

RewriteCond $1 !^cached
RewriteCond %{DOCUMENT_ROOT}/image/cached/$1 !-f
RewriteRule ^image/(.*)$ ./dynimage.php

RewriteCond $1 !^cached
RewriteRule ^image/(.*)$ ./image/cached/$1

Поясню. Если запрашивается картинка /image, и файла в папке /image/cached/остальной_путь нет и разумется после image идет не cached, то отправить на скрипт dynimage.php.
PM MAIL   Вверх
Хоббит
Дата 25.11.2008, 19:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1263
Регистрация: 6.11.2005

Репутация: нет
Всего: 1



Справился так. В определении server {...}

root /var/www/path_to_root

// Если в uri есть image то вырезаем путь к картинке (все что после image)
if ($request_uri ~* "image/(.*)$") {
  set $image_path $1;
}

// Если картинка существует, то отдаем ее
if (-f $document_root/image/cached/$image_path) {
  rewrite ^(.+)$ /image/cached/$image_path break;
}

// Иначе запрос идет к апачу.
location / {
  proxy_pass http://apache_host:8080
}


Но что то мне этот способ корявым кажется.
Во первых правильно ли отдавать картинку с помощью rewrite
И можно ли это записать в 1 условие а не в 2.
PM MAIL   Вверх
Хоббит
Дата 26.11.2008, 19:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1263
Регистрация: 6.11.2005

Репутация: нет
Всего: 1



Объединить 2 условия в одно нельзя. Необходимо делать, как я написал. Нашел ответ в рассылке по nginx.

Это сообщение отредактировал(а) Хоббит - 26.11.2008, 19:23
PM MAIL   Вверх
rapaman
Дата 10.12.2008, 20:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 15
Регистрация: 23.1.2008
Где: Украина, Россия

Репутация: нет
Всего: нет



Это можно собрать и в один location.
PM MAIL WWW ICQ Skype Jabber AOL YIM MSN   Вверх
Хоббит
Дата 11.12.2008, 13:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1263
Регистрация: 6.11.2005

Репутация: нет
Всего: 1



Пример бы привел.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Администрирование Web серверов и Web служб | Следующая тема »


 




[ Время генерации скрипта: 0.0563 ]   [ Использовано запросов: 20 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.