Nginx-ru mailing list archive (nginx-ru@sysoev.ru)
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
"include" directive is not allowed here
- To: nginx-ru@xxxxxxxxx
- Subject: "include" directive is not allowed here
- From: Roman Hlynovskiy <roman.hlynovskiy@xxxxxxxxx>
- Date: Sun, 25 Jan 2009 23:20:20 +0600
- Dkim-signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:received:date:message-id:subject :from:to:content-type:content-transfer-encoding; bh=KVHcxh3iZ1wdMocM597MKP1QbZpiQaR2tfPhs3QGPPA=; b=Ja6tLkBMtjpQdCW1rTUNvDBGiAn0DhOY2vJ/lWsswiKLfcyKX/npOEIdtNyEwTiLbR 43aeUFSyOxSYoVnm50FGgtqZypvEI9dZu8wpyOqzdy1CynDfg3FZP/HG5LGWTH5qvQa+ LVUiM+2auGvJTm23rCX0yPaeACgFebYv9KYy4=
- Domainkey-signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:date:message-id:subject:from:to:content-type :content-transfer-encoding; b=teql+5mcHv4SBYu7XoJmHC36AjNzGyxMmJm2NQU9bDMnp6SzS6iHqDGKrlkVhsJ7S9 5ph9DA1y8Kewgc6aLUZfASCWthYEhmzRJFHcdfXjVYfQm4r7NzxpMTrKOGFmOOfAzHcn SurHIDL5aNJQlaK9c99UpNBisoYjgXkL5Rn8Q=
Добрый день,
в данный момент существует вот такой конфиг который вполне успешно
обрабатывает запросы к хосту и если есть какие-то несуществующие
файлы, либо страшные редиректы через 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
|