ПРОЕКТЫ 


  АРХИВ 


Apache-Talk @lexa.ru 

Inet-Admins @info.east.ru 

Filmscanners @halftone.co.uk 

Security-alerts @yandex-team.ru 

nginx-ru @sysoev.ru 


  СТАТЬИ 


  ПЕРСОНАЛЬНОЕ 


  ПРОГРАММЫ 



ПИШИТЕ
ПИСЬМА












     АРХИВ :: nginx-ru
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


 




Copyright © Lexa Software, 1996-2009.