我希望以这样的方式配置我的网站:
- 公司.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;