Помогите решить проблему

straj nginx-forum на nginx.us
Ср Мар 31 20:34:50 MSD 2010


Здравствуйте эксперты и автор(ы) 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