Nginx - 配置指向同一根的域和多个子域

Nginx - 配置指向同一根的域和多个子域

我希望以这样的方式配置我的网站:

  • 公司.fr
  • collaborator1.company.fr
  • collaborator2.company.fr
  • ...

该域和相关子域指向同一个目录根。

我将使用 Symfony,显示的内容将取决于请求的域或子域。

为了实现这个目标,我想知道是否可以有一个配置文件:

server {
    server_name company.fr collaborator1.company.fr collaborator2.company.fr;
    root /var/www/project/public;

    location / {
        # try to serve file directly, fallback to index.php
        try_files $uri /index.php$is_args$args;
    }

    location ~ ^/index\.php(/|$) {
        fastcgi_pass unix:/var/run/php/php7.1-fpm.sock;
        fastcgi_split_path_info ^(.+\.php)(/.*)$;
        include fastcgi_params;
    }

    location ~ \.php$ {
        return 404;
    }

    error_log /var/log/nginx/project_error.log;
    access_log /var/log/nginx/project_access.log;
}

或者如果我需要将其拆分成server具有类似配置的多个块。

答案1

如果您计划频繁添加子域名,您可以考虑使用server_name包含所有可能子域名的。这样,您无需更改 nginx 配置即可添加子域名。

server_name *.company.fr;

这包括所有子域,但不包括company.fr

server_name .company.fr;

其中包括所有子域名,以及包括company.fr。使用此项可以为来自此的整个域中的任何名称提供服务server

答案2

我也会这么做,这是正确的。

server_name company.fr collaborator1.company.fr collaborator2.company.fr;

相关内容