如何在多个 Nginx 服务器块中重用 PHP 配置指令?

Bar*_*fen 3 nginx php-fpm

所以我有 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;
    }
}
Run Code Online (Sandbox Code Playgroud)

我无法将这些块移到另一个文件中并将其包含在内,因为root每个实例都会发生变化。我怎样才能避免所有这些重复?

Mic*_*ton 6

您将常见的东西移到另一个文件中include

  • 没有人说过要放入“root”。这不是所有配置块都通用的! (3认同)
  • 天啊,你也是对的。他们可以进入主服务器 {} 块......抱歉,老实说,我通常不是那么愚蠢 (2认同)