<div dir="ltr">>>И возьмём упомянутые 400 location. Вы хотите задать десяток proxy_set_header на уровне server и дополнить в некоторых location - тут слияние выглядит привлекательным. Сейчас приходиться копировать все опции в те location. В случае добавления новых - просматривать весь конфиг и добавлять в нескольких местах. Будет слияние - не нужно копировать. А если теперь в некоторых location нужно будет оставить всего несколько опций proxy_set_header и другие с уровня server в них убрать? Они переопределяются пустой строкой, но каждый раз когда на уровне server нужно добавить ещё один заголовок, то опять же придётся смотреть и добавлять переопределения. Уровень сложности поддержки не меньше, но возможность сказать "сделай именно вот так и никак не иначе" отсутствует из-за длинных цепочек слияний.<div><br></div><div>Всё зависит от того на сколько разрознена конфигурация в локейшенах. Если каждый из локейшенов определяет для себя сугубо строгие параметры, то о вынесении на уровень сервера и речи быть не может.</div><div><br></div><div>Наследование (мердж) избавляет от копирования всего этого, и в частности, если исходить из конкретного случая c fastcgi_param практика показывает необходимости обобщения и вынесения, в отдельных случаях это переопределение какого-то из параметров.</div><div><br></div><div>разве не красиво выглядит когда так ?</div><div><br></div><div>server {</div><div><br></div><div>    .........</div><div>    .........</div><div><br></div><div>    include fastcgi_params;</div><div><br></div><div>    location /info {</div><div>         fastcgi_param SCRIPT_FILENAME /www/info.php;</div><div>         fastcgi_pass <a href="http://127.0.0.1:9000">127.0.0.1:9000</a>;</div><div>    }</div><div><br></div><div>   location /info2 {</div><div>         try_files $uri =404;</div><div>         fastcgi_pass <a href="http://127.0.0.1:9000">127.0.0.1:9000</a>;</div><div>    }</div><div>}</div><div><br></div><div><br></div></div>