Terse NGINXconfiguration许多几乎相同的站点

我有一个NGINXnetworking服务器,我主持了许多小型网站。 每个网站都有一个唯一的域名(有或没有子域),一个HTML文件和一个PHP文件,并具有相同的configuration。 每个网站的唯一区别是:

  1. 域名 – example.com
  2. 一些简单的HTML – <title>Example Site</title>
  3. 服务器上的文件path – /usr/share/nginx/example.com/html

到目前为止,我一直在为每个网站添加一个服务器块文件,这一直很好。 但是,这个过程是乏味的,我复制了大量的样板configuration。 我在服务器上获取的网站越来越多,这个过程也不像我想的那样具有可扩展性。 由于一切都如此相似,我希望能够定义一次configuration,而不必再担心它。

有没有一种简单的方法来configuration多个网站,从不同的子文件夹提供服务? EG我将把Nginx指向/usr/share/nginx/ ,它将自动根据HTTP请求中的example.com域selectexample.com子文件夹。

你想要的是地图模块http://nginx.org/en/docs/http/ngx_http_map_module.html

它是为这样的要求而devise的

把你的通用configuration放在一个文件中,并使用来自特定站点configuration的include 。 这将减less所需的configuration。

这不是你所问的,但它会让事情变得更简单。