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 nginxsintaxis 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.
No siempre se trata de nitpicking. El archivo de configuración puede ser generado por un software de terceros. El cual podría estar provisto de una plantilla y variables para ser interpoladas. El software no puede estar seguro de qué pueden contener las variables, por lo que idealmente debería saber cómo citar cualquier cadena.
x-yuri
5
Se requieren comillas para los valores que contienen espacios y / o algunos otros caracteres especiales; de lo contrario nginx, no los reconocerá. En su ejemplo actual, las citas no hacen ninguna diferencia, pero de todos modos, citar valores es una buena práctica / regla general
¿Cuáles son la lista de caracteres especiales? ¿Existe documentación sobre esto y cómo escapar de ellos? He visto tanto comillas simples como dobles en las mismas líneas ...
Se requieren comillas para los valores que contienen espacios y / o algunos otros caracteres especiales; de lo contrario
nginx
, no los reconocerá. En su ejemplo actual, las citas no hacen ninguna diferencia, pero de todos modos, citar valores es una buena práctica / regla generalfuente