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