Welcome! Log In Create A New Profile

Advanced

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

April 01, 2010 06:08AM
On Wed, Mar 31, 2010 at 12:34:50PM -0400, straj wrote:

> Здравствуйте эксперты и автор(ы) 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;
> }
>
>
> Но ожидаемого эффекта НЕТ... все идет через редирект апачу...
>
> Пожалуйста помогите разобраться!

Не нужно использовать if... нужно использовать try_files...
http://sysoev.ru/nginx/docs/http/ngx_http_core_module.html#try_files


--
Игорь Сысоев
http://sysoev.ru

_______________________________________________
nginx-ru mailing list
nginx-ru@nginx.org
http://nginx.org/mailman/listinfo/nginx-ru
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: 306
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