Route by request method
Oleg A. Mamontov
oleg на mamontov.net
Вт Фев 9 08:17:12 UTC 2021
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 at nginx.org
>http://mailman.nginx.org/mailman/listinfo/nginx-ru
--
Cheers,
Oleg A. Mamontov
mailto: oleg at mamontov.net
skype: lonerr11
cell: +7 (903) 798-1352
Подробная информация о списке рассылки nginx-ru