Я видел людей использовать чрезмерные цитаты:
add_header 'Access-Control-Allow-Origin' '*';
Я видел людей не используйте кавычки:
add_header Access-Control-Allow-Origin *;
Насколько я знаю, оба работают нормально, так когда же вы на самом деле иметь использовать кавычки?
Точный ответ - «никогда». Вы можете процитировать или \
-экранировать некоторые специальные символы, такие как "" или ";" в строках (символы, которые сделали бы значение утверждения неоднозначным), поэтому
add_header X-MyHeader "Test String;";
будет работать как
add_header X-MyHeader Test\ String\;;
На самом деле: просто используйте кавычки :)
Изменить: как некоторые люди любят придираться: необязательно полный список персонажей, которые могут сделать заявление неоднозначным, соответствует моему пониманию nginx
синтаксис конфигурации:
<space> " ' { } ; $ \
и может быть необходимо бежать $
и \
даже в строках в кавычках, чтобы избежать расширения переменных.
К сожалению, я не могу найти в документации полный и достоверный список таких персонажей.
Кавычки требуются для значений, содержащих пробелы и / или некоторые другие специальные символы, в противном случае nginx
не узнает их. В вашем текущем примере кавычки не имеют значения, но в любом случае цитирование значений - хорошая практика / практическое правило
Один фрагмент из документации для "если":
Если регулярное выражение включает «}» или «;» символов, все выражения следует заключать в одинарные или двойные кавычки.
Также есть упоминание о экранирование значений источника (совпадение слева) на карте:
Если исходное значение совпадает с одним из названий специальных параметров, описанных ниже, перед ним должен стоять символ «\» ...
- дефолт стоимость ...
- имена хостов ...
- включают файл ...
- летучий