我如何在多个Nginx服务器块中重新使用PHPconfiguration指令?

所以我有Nginx和PHP-FPM服务于不同领域的多个网站。 由于在每个server { }块中重复的location ~ \.php$ { }块,configuration文件变得非常大:

 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它。

创build一个如/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 }