ПРОЕКТЫ 


  АРХИВ 


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]

Re: "include" directive is not allowed here


  • To: nginx-ru@xxxxxxxxx
  • Subject: Re: "include" directive is not allowed here
  • From: Roman Hlynovskiy <roman.hlynovskiy@xxxxxxxxx>
  • Date: Sun, 25 Jan 2009 23:52:29 +0600
  • Dkim-signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:received:in-reply-to:references :date:message-id:subject:from:to:content-type :content-transfer-encoding; bh=baqk8Rtxi/lbnRMR/RlMu8qcxcvxYTfKNA+7yNxcMeE=; b=NHTbLkJ2FUogKNPmPYq2NXSG80/AMBIGj2YEfVpOC4h8OiMwaLdCMqur5caYFfaUuL oHNFpQyciqcbbWJfjmBvQTpehDBh1wGnMt94gikiw9Z0ZLcKnNzNP3UKF3RvQzwwDQJ0 Mfm9sLyIl3fEGn7I4pxxRq2mBxwj26yPEiTNk=
  • Domainkey-signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :content-type:content-transfer-encoding; b=b3oA4o2G62fFPgkHncj/T+pynuO/cD8LXfpJxeKQNNpJQghKnWqTXWeQABoUbIpBch ffm5SxzlwiKKPn/Xbb/fhnAR2feQaRtJrxErWLBwna4T/CNi6s5IlJaEYw7vIn1lSpZA dqgQmSKt/JqX9nflEA5480cNKUJNRecFFQkG8=
  • In-reply-to: <91c9771b0901250930j382d24e2n11e26d32185c5cca@xxxxxxxxxxxxxx>
  • References: <afa4ab8a0901250920w146d5ccal875f0e3a9626cc9c@xxxxxxxxxxxxxx> <91c9771b0901250930j382d24e2n11e26d32185c5cca@xxxxxxxxxxxxxx>

гм, спасибо. логично. у меня почему-то была полная увереннсть что
proxy_set_header работает в рамках location.

25.01.09, Борис Долгов<boris@xxxxxxxxxxx> написал(а):
> Попробуйте вынести inсlude на уровень server или http - все равно же файл
> один для всех proxy_pass'ов?
>
> 25 января 2009 г. 20:20 пользователь Roman Hlynovskiy
> <roman.hlynovskiy@xxxxxxxxx> написал:
>
>
> > Добрый день,
> >
> > в данный момент существует вот такой конфиг который вполне успешно
> > обрабатывает запросы к хосту и если есть какие-то несуществующие
> > файлы, либо страшные редиректы через mod_rewrite на бэкенде, то nginx
> > их ему скармливает.
> >
> > server {
> >  server_name www.xxx.kz xxx.kz;
> >  listen a.b.c.d:80;
> >
> >  log_not_found off;
> >  access_log /usr/local/apache/domlogs/xxx.kz common
> buffer=32k;
> >  access_log /usr/local/apache/domlogs/xxx.kz-bytes_log
> bytes_log buffer=4k;
> >  error_log /var/log/nginx/error.log warn;
> >
> >  location ~*
> \.(gif|jpg|jpeg|png|bmp|ico|wmv|avi|mpg|mpeg|mp4|htm|html|js|css|swf|rar|zip|mp3)$
> > {
> >    root /home/fotoland/public_html;
> >    error_page 404 = @apache;
> >  }
> >
> >  location ~ /\.ht {
> >    deny all;
> >  }
> >
> >  location / {
> >    proxy_pass http://localserver/;
> >    include /etc/nginx/proxy_pass.conf;
> >    proxy_redirect  http://www.xxx.kz:88 http://www.xxx.kz;
> >    proxy_redirect  http://xxx.kz:88 http://xxx.kz;
> >  }
> >
> >  location @apache {
> >    proxy_pass http://localserver;
> >    include /etc/nginx/proxy_pass.conf;
> >    proxy_redirect  http://www.xxx.kz:88 http://www.xxx.kz;
> >    proxy_redirect  http://xxx.kz:88 http://xxx.kz;
> >  }
> >
> > }
> >
> > в поисках того чего-бы тут еще оптимизировать конфиг был переписан вот
> > к такому виду:
> >
> > server {
> >  server_name www.xxx.kz xxx.kz;
> >  listen a.b.c.d:80;
> >
> >  log_not_found off;
> >  access_log /usr/local/apache/domlogs/xxx.kz common
> buffer=32k;
> >  access_log /usr/local/apache/domlogs/xxx.kz-bytes_log
> bytes_log buffer=4k;
> >  error_log /var/log/nginx/error.log warn;
> >
> >  location ~*
> \.(gif|jpg|jpeg|png|bmp|ico|wmv|avi|mpg|mpeg|mp4|htm|html|js|css|swf|rar|zip|mp3)$
> > {
> >    if (!-f $request_filename) {
> >     break;
> >     proxy_pass http://localserver;
> >     include /etc/nginx/proxy_pass.conf;
> >     proxy_redirect  http://www.xxx.kz:88 http://www.xxx.kz;
> >     proxy_redirect  http://xxx.kz:88 http://xxx.kz;
> >    }
> >    root /home/fotoland/public_html;
> >  }
> >
> >  location ~ /\.ht {
> >    deny all;
> >  }
> >
> >  location / {
> >    proxy_pass http://localserver/;
> >    include /etc/nginx/proxy_pass.conf;
> >    proxy_redirect  http://www.xxx.kz:88 http://www.xxx.kz;
> >    proxy_redirect  http://xxx.kz:88 http://xxx.kz;
> >  }
> >
> > }
> >
> > моя логика была такой - если самому проверять есть-ли файл или нет и
> > если нет сразу отдавать запрос бэкенду, то это будет немножечко
> > быстрее чем если ждать когда процесс-обработчик nginx-а сам это
> > проверит, отдаст 404, потом отловить этот 404 и отдать все это
> > бэкенду.
> >
> > но тут столкнулся с тем, что nginx не хочет в этом if-е обрабатывать
> > этот include. сам include содержит набор стандартным директив для
> > проксирования на бэкенд с именами хедеров и проч. атрибутами модуля
> > proxy.
> >
> > у меня есть 2 вопроса:
> > 1) прав-ли я в своей логике, что такая схема будет отрабатывать чуть
> быстрее
> > 2) если прав как nginx заставить делать то что хочу?
> >
> > --
> > ...WBR, Roman Hlynovskiy
> >
>
>
>
> --
> С уважением, Борис Долгов.
> icq 77556665
> e-mail boris@xxxxxxxxxxx
>


-- 
...WBR, Roman Hlynovskiy


 




Copyright © Lexa Software, 1996-2009.