Welcome! Log In Create A New Profile

Advanced

Re: Как сделать auth request при SSI?

Maxim Dounin
May 23, 2017 09:00AM
Hello!

On Mon, May 22, 2017 at 08:23:27PM -0400, BorisK2 wrote:

> Maxim Dounin Wrote:
> -------------------------------------------------------
> > Если хочется какие-то ssi-фрагменты показывать в зависимости от
> > результата auth_request, то следует использовать auth_request для
> > основного запроса, и вернуть положительный результат, параллельно
> > установив дополнительную переменную через auth_request_set. После
> > чего проверять переменную с помощью, например, SSI-команды "if".
>
> Спасибо за совет!
> Не получается установить переменную: auth_request_set $x_allow_test2
> $upstream_http_x_allow_test2;
> Она всегда пустая. auth_request_set $server $upstream_http_server; тоже
> пустая.
>
> Нашел аналогичный вопрос
> https://forum.nginx.org/read.php?2,233582,233586#msg-233586 , но так и не
> понял, как исправить Mistake #1.
>
> Конфиг:
> ssi on;
>
> location = /test1.html {
> auth_request /test_auth;
> auth_request_set $x_allow_test2 $upstream_http_x_allow_test2;
> }
>
> location = /test2.html {
> }
>
> location = /test_auth {
> add_header X-Allow-Test2 1;
> return 200;
> }
>
>
> test1.html:
> test1
> <!--# if expr="$x_allow_test2 = 1" -->
> <!--# include file="/test2.html" -->
> <!--# endif -->

Вы пытаетесь использовать переменную $upstream_http_x_allow_test2.
Однако переменные $upstream_http_* отражают заголовки, полученные
от бекенда при проксировании (http://nginx.org/r/$upstream_http_/ru).
У вас же проксирование не используется, и переменная ожидаемо
пустая.

Если речь идёт о том, чтобы поставить переменную в рамках
подзапроса непосредственно из конфига nginx'а, то вместо
auth_request_set просто сделайте set, как-то так:

location = /test_auth {
set $x_allow_test2 1;
return 200;
}

Пространство переменных у запросов и подзапроса - общее, так что
установленная в подзапросе переменная будет доступна в основном
запросе. Директива auth_request_set нужна тогда, когда речь идёт
про специальные переменные, такие как $upstream_http_*, которые
могут иметь различные значения в зависимости от того, где именно к
ним обращаются.

--
Maxim Dounin
http://nginx.org/
_______________________________________________
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru
Subject Author Posted

Как сделать auth_request при SSI?

BorisK2 May 22, 2017 07:38AM

Re: Как сделать auth request при SSI?

Maxim Dounin May 22, 2017 08:52AM

Re: Как сделать auth request при SSI?

Maxim Dounin May 22, 2017 08:56AM

Re: Как сделать auth request при SSI?

BorisK2 May 22, 2017 08:35PM

Re: Как сделать auth request при SSI?

Maxim Dounin May 23, 2017 08:38AM

Re: Как сделать auth request при SSI?

BorisK2 May 22, 2017 08:23PM

Re: Как сделать auth request при SSI?

Maxim Dounin May 23, 2017 09:00AM

Re: Как сделать auth request при SSI?

BorisK2 May 23, 2017 06:10PM

Re: Как сделать auth request при SSI?

BorisK2 May 23, 2017 06:44PM



Sorry, only registered users may post in this forum.

Click here to login

Online Users

Guests: 72
Record Number of Users: 6 on February 13, 2018
Record Number of Guests: 421 on December 02, 2018
Powered by nginx      Powered by FreeBSD      PHP Powered      Powered by MariaDB      ipv6 ready