Я использовал nginx x-accel-redirect в качестве интерфейса аутентификации для внешнего ресурса.Nginx x-accel redirect named location uri
В моем питона коде я бы сделать следующее:
/getresource/
def view(self, req, resp):
name = get_name(req.user.id) # authenticates request.
resp.set_header('X-Accel-Redirect', '/resource/%s/' %name)
Это доведет метод HTTP, а до Nginx 1.10. Поскольку nginx 1.10 все переадресации x-accel перенаправляются как методы GET.
Из этой нити: https://forum.nginx.org/read.php?2,271372,271380#msg-271380
Я понимаю, что правильный способ направить метод HTTP является использование имени местоположения. Я не могу найти документацию о том, как это сделать. Я попробовал следующее:
def view(self, req, resp):
name = get_name(req.user.id)
resp.set_header('X-Accel-Redirect', '@resource')
но перенаправляет на "@Resource /".
Я хотел был бы перенаправить на "@resource/name".
я и задал этот вопрос на Nginx форумах: https://forum.nginx.org/read.php?2,271448
, но никакого ответа пока нет.
Edit:
Ваши конфиги для Nginx
location /getresource {
proxy_pass http://127.0.0.1:8000;
}
location /resource {
internal;
proxy_pass http://127.0.0.1:8888;
}
location @resource {
internal;
proxy_pass http://127.0.0.1:8888;
}
Можете ли вы разместить конфигурацию nginx в части/getresource/and/resource/locations? –