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" "";
"~^(?<_>.+)$" "$_";
}