O módulo rewrite
do Nginx (no qual as variáveis e a diretiva set
pertencem) é bastante não-intuitivo e frágil. Mas, na verdade,
set $some_var $sent_http_content_type;
não tem sentido, pois a diretiva set
é executada no início da solicitação e não há variáveis $sent_http_*
disponíveis no momento.
O que você poderia fazer (se realmente quiser usar $sent_http_*
variables de alguma forma) é usar a diretiva map
.
map $sent_http_content_type $some_var {
default $sent_http_content_type;
}
...
server {
...
add_header "X-Debug" $sent_http_content_type;
add_header "X-Debug2" $some_var;
}
EDIT: Seu problema poderia ser resolvido com mais map
s, mas seria muito mais fácil se você pudesse usar o módulo Lua.
Veja como isso pode ser feito com map
s: (bastante ilegível e insustentável)
map $sent_http_access_control_allow_origin $__proto {
default "NONE";
"~^(?<_>https?):" "$_";
}
map $sent_http_access_control_allow_origin $__host {
default "";
"~^https?://(?<_>[^/]+)" "$_";
}
map "http://$__proto.$__host.proxy.mydomain.com" $new_cors {
default "";
"~^http://NONE" "";
"~^(?<_>.+)$" "$_";
}