Khu*_*lam 1 virtualhost apache2
我目前正在研究 Apache 虚拟主机,但对它们的配置有些困惑。
我在sites-available文件夹中创建了一个虚拟主机文件,并a2ensite example.com.conf 以 root 身份使用命令启用了相应的站点。我注意到这样做时会在sites-enabled文件夹中创建一个符号链接。
为了更彻底地理解这种行为,我通过将example.com.conf文件直接保存到sites-enabled. 重新启动 Apache 后,我惊讶地发现虚拟主机继续正常工作。
如果我example.com.conf只将文件sites-enabled存储在sites-available.
这个文件夹结构是关于可管理性的。虽然将所有模块和虚拟主机配置添加到单个httpd.conf. 因此,例如在 Debian 中,已使用通配符包含将配置分隔为多个文件:
# Include generic snippets of statements
IncludeOptional conf-enabled/*.conf
# Include the virtual host configurations:
IncludeOptional sites-enabled/*.conf
Run Code Online (Sandbox Code Playgroud)
这使得所有匹配的路径sites-enabled/*.conf都被添加到配置中,对于 Apache HTTPd,它是文本文件还是符号链接都无关紧要。从这个角度来看,文件中是否包含<VirtualHost>块或只是其他一些 Apache 配置都无关紧要。也完全有可能example.com.conf拥有配置example.net等的文件。
非常规配置将面临的问题与缺乏可管理性有关:
您将无法使用a2ensite/启用或禁用虚拟主机a2dissite。
# a2dissite example.com
ERROR: Site example.com does not exist!
Run Code Online (Sandbox Code Playgroud)
官方文档(手册页)变得毫无用处。
您无法轻松地暂时禁用该站点。例如,一个包罗万象的虚拟主机可以很容易地创建一个维护中页面,当站点被禁用更新时显示。
管理同一服务器的其他人可能曾经使用ln -s和rm代替这些官方命令。在尝试暂时禁用该站点时,他们可能会意外删除它。
没有人知道你没有遵循正常的做法。几个月后你也会忘记它。那时你会问一个关于 Serverfault 的新问题,关于为什么遵循文档或教程不再适用于你的设置。
| 归档时间: |
|
| 查看次数: |
87 次 |
| 最近记录: |