On 18.10.2013 16:50, Maxim Dounin wrote:

Отдельно печалит, что в результате конфигурации с error_page 404
@fallback - практически исчезли, хотя аналог на try_files -
гарантированно хуже.

server {

 server_name www.example.com;

 root /home/www/example.com/static.www/;

 location / {
   error_page 404 = @php;
   log_not_found off;
 }

 location @php {
   fastcgi_param SCRIPT_FILENAME /home/www/example.com/engine/index.php;
   include /etc/nginx/fastcgi_params;
   fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock;
 }
}

www.example.com - это динамика, и $uri для 99.999% запросов к этому
домену оканчиваются символом '/', например: /support/ или /about/

В каталоге static.www лежит всего несколько файлов, которые должны
быть на домене www.example.com - favicon.ico, robots.txt, sitemap.xml, googlexxxxxxxxxxxxxxxxxx.html и yandex_xxxxxxxxxxxxxxxxxxxx.html,
а вся остальная статика для сайта www.example.com раздается
с отдельного домена example.com

Модуль ngx_http_index_module в nginx - сейчас неотключаемый.
В результате, в 100% случаев модуль ngx_http_index_module тратит
ресурсы сервера впустую, пытясь открыть заведомо не существующие
индексные файлы.

Каким способом будет более правильно отключить модуль
ngx_http_index_module ? сделать workaround
через регулярное выражение:

 location / {
   location ~ /$ {
     return 404;
   }
   error_page 404 = @php;
 }

Или путем патча, который добавляет возможность полного отключения
этого модуля через указание в конфиге директивы "index off;" ?

http {
  index off;
  ...
  server {
    ...
    location / {
     error_page 404 = @php;
    }
  }
}

- тогда сразу возвращается 404 для всех uri, оканчивающихся слэшом ('/')
без попыток что-либо искать ни диске и без необходимости применять
регулярные выражения для каждого клиентского запроса к сайту.

--
Best regards,
 Gena

_______________________________________________
nginx-ru mailing list
[email protected]
http://mailman.nginx.org/mailman/listinfo/nginx-ru

Ответить