location ~ \.php$ { }
因此,我使用 Nginx 和 php-fpm 为不同域上的多个站点提供服务。由于每个块中的块重复,配置文件变得非常大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
每个实例都会发生变化。我该如何避免所有这些重复?
答案1
您将常见的内容移至另一个文件并将include
其移出。
答案2
创建一个目录,并将/etc/nginx/package-configs/
常见的 php 内容放入文件中/etc/nginx/package-configs/php.conf
。
要使用该文件,请在您的 php 位置输入include /etc/nginx/package-configs/php.conf
。
答案3
对于更通用的答案,您还可以使用模板:
# 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
}