Nginx-ru mailing list archive (nginx-ru@sysoev.ru)
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Помогите решить проблему
- To: nginx-ru@xxxxxxxxx
- Subject: Помогите решить проблему
- From: "straj" <nginx-forum@xxxxxxxx>
- Date: Wed, 31 Mar 2010 12:34:50 -0400
- Dkim-signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=mickey.jlkhosting.com; s=x; h=Sender:From:Message-ID:Content-Transfer-Encoding:Content-Type:Subject:To:Date; bh=qoMXrOklbejzZBU/hNDi/gro6OZ0sOYHcywxQRz/mZE=; b=AchekzYnsEeu/GsbRzNtEPJXRZGc7EP+4i3YsEM5LQj86FHGbhECLYsYiyC6gn6+t5CukrpCgirpnHnl1utOfTRtPmUg+n7el9OEgKOIUILhba6OATKcwPlIPdOBRBt7;
Здравствуйте эксперты и автор(ы) nginx'a.
Сейчас хостюсь у никхоста, поставил nginx как frontend перед апачем.
Статику отдаю соответсвенно nginx'ом. Но хочется еще больше снизить нагрузку!
Решил сделать кеш из старниц, которые редко меняются, например так выглядит
обращение к форуму
location ~* ^/forum/.+\.html$ {
if (-f /home/site/site.ru/docs/cache/nginx$document_uri) {
root /home/site/site.ru/docs/cache/nginx;
break;
}
rewrite ^/forum/([0-9]+)\.html$ /forum/index.php?id=$1&nginx=1 last;
}
данная связка уже работает... в принципе жалоб нет...
Но хочется еще большего, решил закешировать главную, делаю так:
location = / {
if (-f /home/site/site.ru/docs/cache/nginx/index.html) {
root /home/site/site.ru/docs/cache/nginx/index.html; #<<<<<
break;
}
rewrite ^/$ /index.php?id=1&nginx=1 last;
}
Ну и соответственно не получается :)
выдает ошибку 404...смотрю в логи там говорится что не может найти файл
/home/site/site.ru/docs/cache/nginx/index.html/index.html
я так понял надо значит убрать из рута /index.html убираю.... после чего
открывает только по редиректу даже если файл создан....
ммм... думаю...возможно если он ругается на рут может и из проверки убрать
/index.html .... убираю , при этом ничего не меняется также проход только через
редирект....
Смотрел в документации nginx'a там есть еще директива index ... ставлю ее после
рута...ошибка типа такая директива не поддерживается... значит мой nginx не
содержит его (нет модуля соответсвуещего)
Вопрос(ы):
1. Возможно ли без директивы index в данном случае?
2. Если нет, возможно ли без перекомпиляции самого nginx'a добавить index?
Да кстати пока писал подумал о принудительном редиректе на index.html, типа
такого:
# Home 1
location = / {
if (-f /home/site/site.ru/docs/cache/nginx$document_uri) {
rewrite ^(.+)$ /index.html last;
break;
}
rewrite ^(.+)$ /index.php?id=1 last;
}
# Home 2
location = /index.html {
root /home/site/site.ru/docs/cache/nginx;
}
Но ожидаемого эффекта НЕТ... все идет через редирект апачу...
Пожалуйста помогите разобраться!
Posted at Nginx Forum: http://forum.nginx.org/read.php?21,69889,69889#msg-69889
_______________________________________________
nginx-ru mailing list
nginx-ru@xxxxxxxxx
http://nginx.org/mailman/listinfo/nginx-ru
|