我在为大量虚拟主机提供服务时遇到问题,我想知道是否有更有效的做事方式。
我目前正在使用 Location 指令为来自不同部门的大量项目提供服务,总共来自 19 个部门的 300 多个项目。除了提供文件的目录之外,每个 Location 指令的结构都是相同的。我目前拥有的是一个看起来像这样的大文件:
<VirtualHost *>
ServerName www.myserver.com
<Location /departmentA/project1>
AuthType Basic
AuthName "By Invitation Only"
AuthUserFile /usr/local/departmentA/project1/passwords
Require valid-user
</Location>
<Location /departmentA/project2>
AuthType Basic
AuthName "By Invitation Only"
AuthUserFile /usr/local/departmentA/project2/passwords
Require valid-user
</Location>
<Location /departmentB/project1>
AuthType Basic
AuthName "By Invitation Only"
AuthUserFile /usr/local/departmentA/project1/passwords
Require valid-user
</Location>
</VirtualHost>
如您所见,除了路径之外,所有这些结构都是相同的。我想要的当然是我可以为部门和项目名称使用变量并只维护一个 Location 指令。我认为这对服务器和内存的影响也较小。
<VirtualHost *>
ServerName www.myserver.com
<Location /$1/$2>
AuthType Basic
AuthName "By Invitation Only"
AuthUserFile /usr/local/$1/$2/passwords
Require valid-user
</Location>
</VirtualHost>