La respuesta exacta es "nunca". Puede citar o \
escapar algunos caracteres especiales como "" o ";" en cadenas (caracteres que harían ambiguo el significado de una declaración), entonces
add_header X-MyHeader "Test String;";
funcionaría como
add_header X-MyHeader Test\ String\;;
En realidad: solo use comillas :)
Editar: como a algunas personas les encanta criticar: la lista no necesariamente completa de caracteres que puede hacer que una declaración sea ambigua es según mi comprensión de la nginx
sintaxis de configuración:
<space> " ' { } ; $ \
y podría ser necesario escapar $
e \
incluso en cadenas citadas para evitar la expansión variable.
Desafortunadamente, no puedo encontrar una lista completa y autorizada de tales personajes en los documentos.