![Nginx - 多个站点的配置帮助](https://linux22.com/image/602951/Nginx%20-%20%E5%A4%9A%E4%B8%AA%E7%AB%99%E7%82%B9%E7%9A%84%E9%85%8D%E7%BD%AE%E5%B8%AE%E5%8A%A9.png)
我将我的网站拆分成不同的配置文件,以保持井然有序。这也允许我取出单个配置文件并使网站不可用。
我每个站点的配置文件如下所示:
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
块。