Nginx – configuration多个站点的帮助

我已经将我的网站分成不同的configuration文件,以保持更有条理。 这也使我能够取出单独的configuration文件,并使网站不可用。

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

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; } } 

我的问题是,我必须重复每个网站的位置块吗? 或者我可以添加一个新的服务器块,将匹配的一切? 如果这是可能的,它会冲突我的configuration文件,匹配所有未映射到网站的域? 这个configuration文件如下所示:

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

或者,我是否全部错了? 虽然不是这个问题的主要目的,但如果有人可以告诉我在我的configuration中的任何重大错误,这将是伟大的。

谢谢。

如果你想保持每个主机单独的configuration文件,但是每个主机之间有一些相同的configuration部分,那么你可能要使用include

在每个站点文件的server块中:

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

并让该文件包含location块。