A resposta exata é "nunca". Você pode citar ou \retirar alguns caracteres especiais como "" ou ";" em strings (caracteres que tornariam o significado de uma declaração ambígua), então
add_header X-MyHeader "Test String;";
funcionaria como
add_header X-MyHeader Test\ String\;;
Na realidade: basta usar aspas :)
Edit: Como algumas pessoas gostam de nitpick: A lista não necessariamente completa de caracteres que podem tornar uma declaração ambígua está de acordo com o meu entendimento da nginxsintaxe de configuração:
<space> " ' { } ; $ \
e pode ser necessário escapar $e\ até em cadeias citadas para evitar expansão variável.
Infelizmente, não consigo encontrar uma lista completa e autorizada desses caracteres nos documentos.
Nem sempre é uma questão de nitpicking. O arquivo de configuração pode ser gerado por um software de terceiros. Que pode ser fornecido com um modelo e variáveis a serem interpoladas. O software não pode ter certeza do que as variáveis podem conter; portanto, idealmente, ele deve saber como citar qualquer string.
x-yuri
5
As cotações são necessárias para valores que contêm espaço (s) e / ou alguns outros caracteres especiais; caso contrário nginx, não os reconhecerão. No seu exemplo atual, as aspas não fazem diferença, mas de qualquer maneira citar valores é uma boa prática / regra de ouro
As cotações são necessárias para valores que contêm espaço (s) e / ou alguns outros caracteres especiais; caso contrário
nginx
, não os reconhecerão. No seu exemplo atual, as aspas não fazem diferença, mas de qualquer maneira citar valores é uma boa prática / regra de ourofonte