Итак, у меня есть Nginx и php-fpm, обслуживающие несколько сайтов в разных доменах. Файл конфигурации становится очень большим из-за повторения location ~ \.php$ { }
блоки в каждом server { }
блок:
server {
listen 80;
server_name firstsite.com;
root /var/www/firstsite;
location ~ \.php$ {
root /var/www/firstsite;
try_files $uri =404;
fastcgi_pass 127.0.0.1:9001;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
server {
listen 80;
server_name secondsite.com;
root /var/www/secondsite;
location ~ \.php$ {
root /var/www/secondsite;
try_files $uri =404;
fastcgi_pass 127.0.0.1:9001;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
Я не могу переместить блоки в другой файл и включить его, так как root
меняется в каждом случае. Как мне избежать такого повторения?
Вы перемещаете обычные вещи в другой файл и include
Это.
Создайте каталог, например /etc/nginx/package-configs/
и поместите общий php в файл /etc/nginx/package-configs/php.conf
.
Чтобы использовать файл, в папке php поместите include /etc/nginx/package-configs/php.conf
.
Для более общего ответа вы также можете использовать шаблон:
# conf.d/sites.conf
server {
set $sitename brazzers.com
include conf.d/site.template;
}
server {
set $sitename playboy.com
include conf.d/site.template;
}
# site.template
location / {
root /var/www/$sitename;
# etc etc etc
}