Nginx – 扩展variables内的variables(string)

一个“有趣”的问题,而不是在生产中无法克服的东西,但是我一直在试图find一种方法来扩展其他variables的variables。 例如:在下面的代码块中,我在auth_request的后面设置了一个上游variables。

我的auth_request uwsgi应用程序将尝试多个身份validation方法,根据API的可用性,如果没有当前会话,将redirect到多个login应用程序之一。 特定的login应用程序URL在auth尝试后作为forward_to头被返回,然后nginx将302那个URL。

我想在这个头文件中提供nginxvariables,比如$scheme://$host$uri并且让它们用redirect来扩展,但是在这个例子中,redirect是指向文本stringhttps://example.com/login?referrer=$scheme://$host$uri

而不是扩展到https://example.com/login?referrer=https://example.com/page

那么,你有什么想法或想法如何实现呢?

 # Authenticate requests. auth_request /auth/; auth_request_set $forward_to $upstream_http_forward_to; # forward_to set to https://example.com/login?referrer=$scheme://$host$uri string error_page 401 =302 $forward_to; # Hope variables expand # Authentication handler. location /auth/ { uwsgi_pass unix:/tmp/auth.sock; include uwsgi_params; uwsgi_param SCRIPT_NAME /auth; } 

干杯!