Welcome! Log In Create A New Profile

Advanced

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

March 31, 2010 12:34PM
Здравствуйте эксперты и автор(ы) nginx'a.

Сейчас хостюсь у никхоста, поставил nginx как frontend перед апачем.
Статику отдаю соответсвенно nginx'ом. Но хочется еще больше снизить нагрузку!

Решил сделать кеш из старниц, которые редко меняются, например так выглядит обращение к форуму

[code]
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;
}
[/code]


данная связка уже работает... в принципе жалоб нет...

Но хочется еще большего, решил закешировать главную, делаю так:

[code]
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;
}
[/code]

Ну и соответственно не получается :)

выдает ошибку 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, типа такого:

[code]
# 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;
}
[/code]

Но ожидаемого эффекта НЕТ... все идет через редирект апачу...

Пожалуйста помогите разобраться!
Subject Author Posted

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

straj March 31, 2010 12:34PM

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

hg_04 April 01, 2010 06:03AM

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

Igor Sysoev April 01, 2010 06:08AM

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

straj April 01, 2010 12:27PM



Sorry, only registered users may post in this forum.

Click here to login

Online Users

Guests: 82
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