1

目前,我需要把

location ~ \.php$
{
    fastcgi_pass 127.0.0.1:9000;
}

在我需要运行 PHP 文件的每个站点中。

有没有办法把它放在“主人”中,这样​​所有网站都不会有相同指令的重复副本?

4

1 回答 1

1

是的,像这样:

include /etc/nginx/master.conf; 

有关更多详细信息,请参阅http://nginx.org/en/docs/ngx_core_module.html#include

换句话说,你有:

server {
  servername a;
  location ~ \.php$ { fastcgi_pass 127.0.0.1:9000;}

  #rest of server a config
}

server {
  servername b;
  location ~ \.php$ { fastcgi_pass 127.0.0.1:9000;}

  #rest of server b config
}

你现在有:

server {
  servername a;
  include /etc/nginx/php-master.conf;

  #rest of server a config
}

server{
  servername b;
  include /etc/nginx/php-master.conf;

  #rest of server b config
}

和一个单独的文件 /etc/ningx/php-master.conf 作为内容

location ~ \.php$ { 
  fastcgi_pass 127.0.0.1:9000;
}

它实际上并没有大大缩短服务器块中的代码(因为包含的位只是 1 行)。但它仍然产生的优势是您现在可以在 1 个位置更改您的 php 设置(假设您将您的 fastcgi 处理程序移动到不同的端口或 ip)

于 2012-10-18T20:52:18.057 回答