Всем спасибо! А нет ли чего-то среднего: передать запрос с помощью rewrite (это выглядит чище использования фиктивного статуса, хотя явный goto был бы еще чище) в именованный @location вместо internal (тогда переменная request_filename будет содержать правильное значение)?
вт, 9 февр. 2021 г. в 11:20, Илья Шипицин <chipits...@gmail.com>: > > можно на limit_except разрешить только GET. остальное попадет в запрет и > навешать на него кастомную страницу ошибки > > вт, 9 февр. 2021 г. в 13:17, Oleg A. Mamontov <o...@mamontov.net>: >> >> On Tue, Feb 09, 2021 at 12:48:55AM +0200, Gena Makhomed wrote: >> >On 08.02.2021 23:24, Oleg A. Mamontov wrote: >> > >> >>"Традиционный" подход - сделать по требуемому условию rewrite, уводящий >> >>обработку запроса в другой location. Обратите внимание - trailing slash >> >>в proxy_pass в данном случае имеет значение. >> >>--- >> >>location / { >> >> if ($request_method != 'GET') { >> >> rewrite ^/(.*) /proxy/$1 last; >> >> } >> >> root /data; >> >>} >> >>location /proxy/ { >> >> internal; >> >> proxy_pass http://127.0.0.1:8080/; >> >>} >> > >> >Возможно переход в именованный location с помощью директив >> >"error_page 418 = @location; return 418;" будет лучше >> >с точки зрения читабельности, чем rewrite директивы, >> >делающие конфиг nginx похожим на конфиг sendmail? >> >> Я не вижу аналогии с sendmail.cf равно как и не вижу, чем подход >> с error_page лучше для решения поставленной задачи. >> >> Что вижу: нецелевое использование директивы / фиктивного статуса, >> появление лишней строки в конфиге и необходимость включать >> recursive_error_pages при использовании реальной обработки последующих >> ошибок проксирования. >> >> Но согласен - так делать тоже можно, TMTOWTDI >> >> >location / { >> > if ($request_method != 'GET') { >> > error_page 418 = @proxy; >> > return 418; >> > } >> > root /data; >> >} >> >location @proxy { >> > proxy_pass http://127.0.0.1:8080; >> >} >> > >> >По-сути вот этот набор из двух директив: >> >"error_page 418 = @location; return 418;" >> >означает простое действие "goto @location;" >> > >> >-- >> >Best regards, >> > Gena >> > >> >_______________________________________________ >> >nginx-ru mailing list >> >nginx-ru@nginx.org >> >http://mailman.nginx.org/mailman/listinfo/nginx-ru >> >> -- >> Cheers, >> Oleg A. Mamontov >> >> mailto: o...@mamontov.net >> >> skype: lonerr11 >> cell: +7 (903) 798-1352 >> _______________________________________________ >> nginx-ru mailing list >> nginx-ru@nginx.org >> http://mailman.nginx.org/mailman/listinfo/nginx-ru > > _______________________________________________ > nginx-ru mailing list > nginx-ru@nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru -- WBR, Eugene Prokopiev _______________________________________________ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru