从Nginx中的主文件继承值?

时间:2012-10-18 20:24:34

标签: php nginx webserver

目前,我需要提出

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

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

有没有办法将它放在“主”中,以便所有网站都不会有同一指令的重复副本?

1 个答案:

答案 0 :(得分: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;
}

它实际上并没有太多地缩短serverblock中的代码(因为包含的位只有1行)。但它仍然产生的优势是你现在可以在一个地方更改你的php设置(比如你将你的fastcgi处理程序移动到另一个端口或ip)