When do you have to use quotes in the configuration?
Solution 1:
The exact answer is "never". You can either quote or \
-escape some special characters like " " or ";" in strings (characters that would make the meaning of a statement ambiguous), so
add_header X-MyHeader "Test String;";
would work like
add_header X-MyHeader Test\ String\;;
In reality: Just use quotes :)
Edit: As some people love to nitpick: The not necessarily complete list of characters that can make a statement ambiguous is according to my understanding of the nginx
config syntax:
<space> " ' { } ; $ \
and it might be necessary to escape $
and \
even in quoted strings to avoid variable expansion.
Unfortunately, I can't find a complete and authoritative list of such characters in the docs.
Solution 2:
Quotes are required for values which are containing space(s) and/or some other special characters, otherwise nginx
will not recognize them. In your current example quotes make no difference, but anyway quoting values is a good practice/rule of thumb