【问题标题】:Name based virtual host?基于名称的虚拟主机?
【发布时间】:2014-08-07 05:09:26
【问题描述】:

我有一个使用 Apache2 的新站点。查看我的服务器日志,我发现有越来越多的其他域名(全部由 GoDaddy 托管)神秘地指向我服务器的 IP 地址。我不知道这有什么害处,但我看不出有什么理由让这种情况持续下去。从我所做的谷歌搜索中,我收集到阻止这种情况的方法是设置一个基于名称的虚拟主机并拒绝其他域名指向我的内容的任何尝试。但是,我完全不确定如何设置相关条目。查看我的 /etc/apache2/apache2.conf 文件中的评论,我觉得我应该按照

NameVirtualHost mysite.com:80
<VirtualHost mysite.com:80>
ServerName mysite.com
ServerAlias:www.mysite.com
ErrorLog:/var/log/mysite.error.log
CustomLog:/var/log/mysite.access.log
</VirtualHost>

这可能是正确的,也可能不是正确的,但我从来没有在野外修改过 apache 配置文件,而且我完全不清楚这会阻止 anothercrappysite.com 指向我的 IP 地址并显示我的内容。

如果有人能告诉我我是如何在这里做事的,我将不胜感激。

附注- 从我所见,我似乎没有 httpd.conf 文件。只是 apache2.conf。

也许还有另一种方法可以做到这一点,即编写一个专门将所有不包含 mysite.com 或 www.mysite.com 的请求重定向到默认 404 页面的 htaccess 规则?

【问题讨论】:

  • 这看起来或多或少对我来说是正确的。要进行测试,请手动连接到您的服务器(例如,使用“telnet”)并简单地发送一个 HTTP 请求,其中您指定一个“主机”标头而不是“mysite.com”或“www.mysite.com”,并确认它提供了一个404.跨度>
  • 谢谢。这并没有什么坏处,但它根本无法阻止 anothercrappysite.com 显示我的内容。我重新启动了 apache,它报告我修改的 conf 文件没有问题。
  • 您是否尝试过我建议的测试程序?仅仅因为配置加载成功并不意味着它正在做你期望的事情。在进行此类更改后,实际测试它们是否已被应用非常重要。此外,为了清楚起见,没有什么可以阻止其他网站(除了法律)侵犯您的 IP 并显示您的内容......这样做只是确保您的服务器仅提供使用 URL 中预期域访问的内容(但是,例如,如果您不使用 X-Frame-Options,他们仍然可以
  • 是的,我按照您的建议进行了远程登录,并且还通过我服务器上的 Lynx 浏览了带有恶意域名的站点。不,我无法阻止其他网站指向我的 IP - 我明白这一点。我担心的是,我在 Google 眼中看起来很糟糕,因为这些域包含垃圾链接。
  • 尝试将标识目录、文件等的配置放在 中,并从 部分之外删除它们中的任何一个。允许/拒绝指令也可能感兴趣:httpd.apache.org/docs/2.2/howto/access.html

标签: apache .htaccess httpd.conf


【解决方案1】:

为了任何来这里寻求解决类似问题的人的利益,这里是做什么

<VirtualHost ip_address:80>
ServerAdmin admin@...
DocumentRoot /var/www/html/
ServerName mysite.com
ServerAlias www.mysite.com
ErrorLog /var/log/mysite.error.log
CustomLog /var/log/mysite.access.log combined
RewriteEngine On
RewriteCond  %{HTTP_HOST}  !^(www.mysite|mysite).com$ [NC]
RewriteRule ^ [F]
</VirtualHost>

不言而喻,你应该

  • 输入服务器的 IP 地址
  • 使用您网站的域名
  • 确保 mod_rewrite 已启用

您可以通过一个简单的 PHP 脚本查看启用了哪些模块

<?php
print_r(apache_get_modules());
?>

如果 mod_rewrite 不在该列表中,您通常可以通过简单地复制它来获得它

/etc/apache2/mods-available to
/etc/apache2/modes-enabled

然后重启 Apache

service apache2 restart

【讨论】:

    猜你喜欢
    • 2013-12-13
    • 1970-01-01
    • 2015-07-10
    • 1970-01-01
    • 2014-06-11
    • 1970-01-01
    • 2016-04-24
    • 1970-01-01
    • 2014-09-23
    相关资源
    最近更新 更多