Route by request method
    Gena Makhomed 
    gmm на csdoc.com
       
    Пн Фев  8 22:48:55 UTC 2021
    
    
  
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?
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