<div dir="ltr">можно на limit_except разрешить только GET. остальное попадет в запрет и навешать на него кастомную страницу ошибки<br></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">вт, 9 февр. 2021 г. в 13:17, Oleg A. Mamontov <<a href="mailto:oleg@mamontov.net">oleg@mamontov.net</a>>:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">On Tue, Feb 09, 2021 at 12:48:55AM +0200, Gena Makhomed wrote:<br>
>On 08.02.2021 23:24, Oleg A. Mamontov wrote:<br>
><br>
>>"Традиционный" подход - сделать по требуемому условию rewrite, уводящий<br>
>>обработку запроса в другой location. Обратите внимание - trailing slash<br>
>>в proxy_pass в данном случае имеет значение.<br>
>>---<br>
>>location / {<br>
>>     if ($request_method != 'GET') {<br>
>>         rewrite ^/(.*) /proxy/$1 last;<br>
>>     }<br>
>>     root /data;<br>
>>}<br>
>>location /proxy/ {<br>
>>     internal;<br>
>>     proxy_pass <a href="http://127.0.0.1:8080/" rel="noreferrer" target="_blank">http://127.0.0.1:8080/</a>;<br>
>>}<br>
><br>
>Возможно переход в именованный location с помощью директив<br>
>"error_page 418 = @location; return 418;" будет лучше<br>
>с точки зрения читабельности, чем rewrite директивы,<br>
>делающие конфиг nginx похожим на конфиг sendmail?<br>
<br>
Я не вижу аналогии с <a href="http://sendmail.cf" rel="noreferrer" target="_blank">sendmail.cf</a> равно как и не вижу, чем подход<br>
с error_page лучше для решения поставленной задачи.<br>
<br>
Что вижу: нецелевое использование директивы / фиктивного статуса,<br>
появление лишней строки в конфиге и необходимость включать<br>
recursive_error_pages при использовании реальной обработки последующих<br>
ошибок проксирования.<br>
<br>
Но согласен - так делать тоже можно, TMTOWTDI<br>
<br>
>location / {<br>
>    if ($request_method != 'GET') {<br>
>        error_page 418 = @proxy;<br>
>        return 418;<br>
>    }<br>
>    root /data;<br>
>}<br>
>location @proxy {<br>
>    proxy_pass <a href="http://127.0.0.1:8080" rel="noreferrer" target="_blank">http://127.0.0.1:8080</a>;<br>
>}<br>
><br>
>По-сути вот этот набор из двух директив:<br>
>"error_page 418 = @location; return 418;"<br>
>означает простое действие "goto @location;"<br>
><br>
>-- <br>
>Best regards,<br>
> Gena<br>
><br>
>_______________________________________________<br>
>nginx-ru mailing list<br>
><a href="mailto:nginx-ru@nginx.org" target="_blank">nginx-ru@nginx.org</a><br>
><a href="http://mailman.nginx.org/mailman/listinfo/nginx-ru" rel="noreferrer" target="_blank">http://mailman.nginx.org/mailman/listinfo/nginx-ru</a><br>
<br>
-- <br>
Cheers,<br>
Oleg A. Mamontov<br>
<br>
mailto: <a href="mailto:oleg@mamontov.net" target="_blank">oleg@mamontov.net</a><br>
<br>
skype:  lonerr11<br>
cell:   +7 (903) 798-1352<br>
_______________________________________________<br>
nginx-ru mailing list<br>
<a href="mailto:nginx-ru@nginx.org" target="_blank">nginx-ru@nginx.org</a><br>
<a href="http://mailman.nginx.org/mailman/listinfo/nginx-ru" rel="noreferrer" target="_blank">http://mailman.nginx.org/mailman/listinfo/nginx-ru</a></blockquote></div>