Nginx - 多个站点的配置帮助

Nginx - 多个站点的配置帮助

我将我的网站拆分成不同的配置文件,以保持井然有序。这也允许我取出单个配置文件并使网站不可用。

我每个站点的配置文件如下所示:

server {
    listen 80;
    server_name site1.domain.co.uk;

    root /var/www/php/site1;

    location / {
        index index.html index.php;
        try_files $uri $uri/ /index.php;
    }

    location ~ \.php$ {
        try_files $uri /index.php;
        fastcgi_pass        php;
        include             fastcgi_params;
        fastcgi_param       PATH_INFO $fastcgi_script_name;
            fastcgi_param       SCRIPT_FILENAME $document_root$fastcgi_script_name;
    }

    location  /common {
        alias  /var/www/common;
    }
}

我的问题是,我是否必须为每个站点重复位置块?或者我可以添加一个与所有内容匹配的新服务器块吗?如果可以的话,这会与匹配所有未映射到站点的域的配置文件冲突吗?此配置文件如下所示:

server {
    listen 80 default_server;
    server_name _;
    return 404;
}

或者,我的做法完全错了?虽然这不是这个问题的主要目的,但如果有人能告诉我我的配置中有什么重大错误,那就太好了。

谢谢。

答案1

如果您想要为每个主机保留单独的配置文件,但每个主机之间的某些配置部分相同,那么您可能需要使用include

server每个站点的文件块中:

include /path/to/common-configs.conf;

..并让该文件包含这些location块。

相关内容