Route by request method

Илья Шипицин chipitsine на gmail.com
Вт Фев 9 08:20:28 UTC 2021


можно на limit_except разрешить только GET. остальное попадет в запрет и
навешать на него кастомную страницу ошибки

вт, 9 февр. 2021 г. в 13:17, Oleg A. Mamontov <oleg на 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: oleg на 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
----------- следущая часть -----------
Вложение в формате HTML было извлечено…
URL: <http://mailman.nginx.org/pipermail/nginx-ru/attachments/20210209/0b85f4e8/attachment-0001.htm>


Подробная информация о списке рассылки nginx-ru