On Mon, Feb 08, 2021 at 07:15:43PM +0300, Eugene Prokopiev wrote:
Здравствуйте!
Требуется по GET /data.txt отдавать самый файл как есть, а по
POST/PUT/DELETE /data.txt передавать запрос в какой-то бакенд через
proxy_pass - по идее не самый редкий кейс, но никакого пример
нагуглить не могу. Попробовал сделать так:
location / {
if ($request_method = 'GET') {
root /data;
}
proxy_pass http://127.0.0.1:8080;
}
Но в if ничего не попадает. Я что-то делаю не неправильно? Или это
вообще принято делать иначе?
"Традиционный" подход - сделать по требуемому условию 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/;
}
---
--
WBR,
Eugene Prokopiev
_______________________________________________
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru
--
Cheers,
Oleg A. Mamontov
_______________________________________________
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru