Nginx-ru mailing list archive (nginx-ru@sysoev.ru)
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
try_files
- To: nginx-ru@xxxxxxxxx
- Subject: try_files
- From: Phil Kulin <schors@xxxxxxxxx>
- Date: Mon, 30 Jul 2012 01:49:15 +0400
- Dkim-signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:date:message-id:subject:from:to:content-type :content-transfer-encoding; bh=7mmJgeJazeeKEF2JcJ4tdrLHfwNJCaLo7dkYgxrwupI=; b=bZTfROYFAfxxFvzqRIf6px/dfW4syI/rRAMEitP+6jfkHXsa5NxrbWD07ZfdP2wwpo /aMDWWBTx4s1YRrnFbUtDr1NJDXtDUDvtvRd6uswS5kdkcqmDcroyL4upOhQ6Bl5kDiN MayP3ICIE9rIo5XCuDWEgBa94DhtiZtG04XzH37g5P2n06+o+IeEuyM+sL89sunvh3zC dlGpUK4C+4ZoRLWkOIcbmMhJqdabq2SmxDjl9AooWkKpCA1WKZbNpuPh0mAshDeMUTrb pigvDtJ66HNUIs5X8bgv6WPcn4jUmg2JmmRsrrm1GBkvkXKfNvxnCYD2YLHFUzXtdFXI k5Bw==
Добрый вечер.
Я себе сегодня голову сломал. Есть вот такой конфиг (nginx 1.2.1):
>========begin========
server {
include listen.conf; # там просто listen
server_name 1.cms.cz8.ru;
access_log off;
root /home/cms/www/site1/public_html;
index index.php;
location / {
disable_symlinks if_not_owner
from=/home/cms/www/site1/public_html;
charset utf-8;
source_charset utf-8;
log_not_found off;
try_files $uri $uri/ @apache;
access_log /home/cms/www/site1/logs/nginx-access.log;
}
location = /favicon.ico {
log_not_found off;
access_log /home/cms/www/site1/logs/nginx-access.log;
}
location = /robots.txt {
allow all;
log_not_found off;
access_log /home/cms/www/site1/logs/nginx-access.log;
}
location ~ /\. {
deny all;
log_not_found off;
access_log off;
}
location ~* /(?:uploads|files)/.*\.php$ {
deny all;
log_not_found off;
access_log off;
}
location ~* \.(js|css|png|jpg|jpeg|gif|ico)$ {
disable_symlinks if_not_owner
from=/home/cms/www/site1/public_html;
charset utf-8;
source_charset utf-8;
expires 24h;
log_not_found off;
access_log /home/cms/www/site1/logs/nginx-access.log;
}
location ~ \.php$ {
try_files $uri =404;
proxy_pass http://127.0.0.1:13315;
}
location @apache {
proxy_pass http://127.0.0.1:13315;
}
}
>=================end==============
Загвоздка собственно в первом location / с try_files
Судя по всему, доходя до проверки $uri/ nginx проверяет на самом деле
<root>/$uri/<индекс>
Причём, в этом случае он не отдаёт при наличии там index.php его в
голом виде, а пересматривает location и идёт уже в правило location ~
\.php$ указывая новый $uri с присутствующим там index.php (посмотрел
phpinfo() что ему приходит)
Ещё забавная вещь, при смене индекса:
index index.html
он тут же начинает ругаться 403-ей ошибкой (!)
Это я пытался WordPress настроить. Т.е. ни одна из конфигураций с
документации nginx.org, wiki.nginx.org, и самих CMS для
Joomla/Wordpress не будут работать при замене fastcgi на proxy (у меня
бэкендом apache).
Но вопрос собственно в том, что я реально поведения не понимаю, не
могу формализовать, а главное - зачем он это делает?
--
Non nobis Domine non nobis sed Nomini Tuo da gloriam
Phil Kulin
_______________________________________________
nginx-ru mailing list
nginx-ru@xxxxxxxxx
http://mailman.nginx.org/mailman/listinfo/nginx-ru
|