所以我有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 }