我在Ubuntu上使用apache托管的烧瓶应用程序发生了一些奇怪的事情。我有一个虚拟主机设置与我的烧瓶应用程序导入到它。我的虚拟主机是/etc/apache2/sites available/已经启用了。文件如下:
<VirtualHost *:80>
ServerName domain1.com
WSGIDaemonProcess app user=flask group=www-data threads=5 home=/var/www/app
WSGIScriptAlias / /var/www/app/app.wsgi
<Directory /var/www/app>
WSGIProcessGroup app
WSGIApplicationGroup %{GLOBAL}
WSGIScriptReloading On
Order deny,allow
Allow from all
</Directory>
</VirtualHost>当我使用domain1.com访问它时,我的应用程序工作得非常好。但是,如果具有指向domain1.com的CNAME记录的domain2.com,则可以在访问domain2.com时查看目录和文件。类似地,当我将ServerName更改为domain2.com时,目录清单可以从domain1.com中看到。
有人建议我编辑httpd.conf文件并删除索引条目,或者将其更改为-Indexes以关闭目录浏览,但是文件是空的。我希望应用程序只从ServerName中指定的域工作,而不是从指向它的任何其他域名中工作。请给我建议。
发布于 2014-01-06 03:14:06
给出的建议是正确的,但我相信在Ubuntu上,默认的虚拟主机位于/etc/apache2/apache2.conf或/etc/apache2/sites available/ default中。因为这两个域都解析为同一个ip,所以domain2获得了默认的Apache配置,因为它没有自己的虚拟主机。
您还可以通过将domain1的文档根移动到不同的位置来防止这一点,但是在任何情况下关闭索引都是个好主意。
发布于 2014-01-06 03:37:58
对于第二个域名,因为Apache找不到匹配的VirtualHost,所以它将返回到在解析配置时使用它找到的第一个VirtualHost定义。
要在稍微不同的背景下解释这一点,请参见:
阅读“回退到默认VirtualHost定义”一节。
如果希望阻止所有其他域名,则将默认的VirtualHost更改为:
<VirtualHost _default_:*>
Deny from all
</VirtualHost>https://stackoverflow.com/questions/20942183
复制相似问题