目前,我需要把
location ~ \.php$
{
fastcgi_pass 127.0.0.1:9000;
}
在我需要运行 PHP 文件的每个站点中。
有没有办法把它放在“主人”中,这样所有网站都不会有相同指令的重复副本?
是的,像这样:
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)