Назад | Перейти на главную страницу

Расположение вышестоящего Nginx блокируется в конфигах сайта

У меня есть несколько веб-сайтов в серверной среде Ubuntu 16.04-Nginx, и каждый файл конфигурации Nginx включает этот набор блоков местоположения:

location ~*  \.(jpg|jpeg|png|gif|ico|css|js|ttf|woff|pdf)$ {
    expires 365d;
}
location / {
    index index.php index.html index.htm fastcgi_index;
    try_files $uri $uri =404 $uri/ /index.php?$args;
}
location ~ \.php$ {
    fastcgi_pass unix:/var/run/php/php*-fpm.sock;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    include fastcgi_params;
}

Этот набор одинаков во всех конфигах, и это приводит к избыточность. Я пытался поместить его в серверный блок в глобальном /etc/nginx/nginx.conf и перезапустил сервер, но сервер упал.

Как можно вверх по течению этот набор из /etc/nginx/nginx.conf, в серверный блок каждого сайта conf?

Я предполагаю, что ваш вопрос заключается в том, как вы можете исправить проблемы с избыточностью, поправьте меня, если я ошибаюсь. И если вы намерены переместить блок местоположения в nginx.conf, я боюсь, что это невозможно. Однако, если у вас одинаковая конфигурация для нескольких виртуальных серверов, вы можете использовать директиву include на каждом виртуальном сервере. Вот пример:

server{
    ...
    include /etc/nginx/common.d/location_common.conf;
    ...
}

И скопируйте вашу конфигурацию в путь. Я надеюсь, что это поможет вам. Спасибо