ПРОЕКТЫ 


  АРХИВ 


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: allow/deny and return



On 21.10.2013 21:37, Maxim Dounin wrote:

Ошибки работы try_files в location с alias ведь можно исправить?

С тем же успехом можно исправить if. О чём и разговор: подход
"давайте вместо того, чтобы исправлять старое, сделаем новое"
приводит к увеличению проблем.

следуя такой логике - любая новая feature приводит к увеличению проблем.
например, добавили ngx_http_spdy_module - и появились НОВЫЕ проблемы.

Именно так.  И поэтому подход "давайте вместо того, чтобы
исправлять старое, сделаем новое" - не работает.

откуда взялось это жесткое противопоставление двух процессов -
"давайте ВМЕСТО ТОГО, чтобы исправлять старое, сделаем новое"?

в файле http://nginx.org/en/CHANGES почти в каждом выпуске
есть и Bugfix: и Feature: записи - одно другому не мешает.

если исправлять старое методом "disable non-rewrite directives
inside if completely" - это тоже приведет к увеличению проблем.

это можно делать только в том случае если такая feature будет
в состоянии deprecated долгое время и при наличии альтернатив.

а чтобы эти альтернативы были - их надо сначала добавить в nginx,
"сделать новое" и только потом уже можно "disable ... completely"

Извините, я устал разжёвывать раз за разом одно и то же, поэтому
воздержусь от продолжения данной дискуссии.

On 16.10.2013 20:33, Maxim Dounin wrote:

> Игорь тут уже как-то попробовал решать проблемы модуля rewrite с
> помощью добавления директивы try_files.  Стало только хуже, т.к.
> старые проблемы никуда не делись, а новых добавилось - в
> количестве.

On 17.10.2013 2:18, Maxim Dounin wrote:

> Речь, впрочем, не об этом.  Речь о том, что try_files, который
> делался как попытка "решить" проблемы if'а, вытеснив его из
> конфигов, ни разу его не вытеснил.  Наоборот, к существовавшим
> ранее проблемам - добавились новые, в том числе - связанные с
> работой try_files со всё тем же if'ом.

On 17.10.2013 17:09, Maxim Dounin wrote:

> Повторяю: добавление try_files не решило проблем с if'ом.  В
> результате как раз с проблемами if'а - ничего не было сделано, а
> вместо этого усилия были потрачены на try_files и борьбу с его
> проблемами.  Если бы вместо добавления try_files соответствующие
> усилия были потрачены именно на _решение_ проблем - было бы лучше.
>
> И это общая проблема всех подобных попыток "уменьшить количество
> случаев" вместо реального решения проблемы.  Решать проблему всё
> равно рано или поздно придётся, и откладывание этого решения -
> лишь ухудшает ситуацию.

On 18.10.2013 16:50, Maxim Dounin wrote:

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

"ни разу его не вытеснил" и вместе с тем "практически исчезли"

вместо того, чтобы писать в конфиге:

 error_page 456 = @fallback;
 if (!-f $request_filename) {
        return 456;
    }

можно написать гораздо проще:

try_files $uri @fallback;

поэтому совсем не удивительно, что конфигурации с "error_page"
практически исчезли, и try_files вытеснил здесь if из конфигов

кроме того, что вместо 4-х строчек конфига надо писать только одну,
есть и дополнительный плюс - try_files корректно работает с access.

или "ни разу его не вытеснил" - это про конфигурации

 if (!-f $request_filename) {
        fastcgi_pass ...;
    }

?

на такие конфигурации nginx -t говорит что "test is successful"
и не ругается, что такая фича deprecated, потому и не вытеснил.

а не ругается наверное потому, что пока что не исправлены
ошибки в работе try_files внутри location`ов с alias`ами.

самый простой путь решения проблем с if:

1. добиться безглючной работы директивы try_files во всех случаях
2. сделать warning о deprecated non-rewrite directives inside if
3. в next major версии disable non-rewrite directives inside if

самый сложный путь решения проблем с if:

устранить все глюки в работе директивы if со всеми директивами nginx
и со всеми возможными их комбинациями: несколько if в location и т.п.

какие-либо другие варианты "решения проблем с if" существуют?

--
Best regards,
 Gena

_______________________________________________
nginx-ru mailing list
nginx-ru@xxxxxxxxx
http://mailman.nginx.org/mailman/listinfo/nginx-ru


 




Copyright © Lexa Software, 1996-2009.