我有一台 NGINX Web 服务器,上面托管着许多小型网站。每个网站都有一个唯一的域名(有或没有子域名)、一个 HTML 文件和一个 PHP 文件,并且具有相同的配置。每个网站唯一的区别是:
- 域名 -
example.com
- 一些简单的 HTML -
<title>Example Site</title>
- 服务器上的文件路径 -
/usr/share/nginx/example.com/html
到目前为止,我已经为每个站点添加了一个服务器块文件,并且效果很好。但是,这个过程很繁琐,而且我正在复制粘贴大量样板配置。我在服务器上拥有越来越多的站点,而这个过程并不像我希望的那样可扩展。由于一切都如此相似,我希望能够定义一次配置,而不必再担心它。
有没有一种简洁的方法可以配置多个站点以从单独的子文件夹提供服务?例如,我会指向 Nginx /usr/share/nginx/
,它会example.com
根据example.com
HTTP 请求中的域自动选择子文件夹。
答案1
你想要的是地图模块http://nginx.org/en/docs/http/ngx_http_map_module.html
它就是为满足这样的要求而设计的
答案2
将您的通用配置放在一个文件中并使用包括从一个站点特定的配置。这将减少所需的配置。
这不完全是您所要求的,但它会让事情变得更容易一些。