我发现(通过查看 mod_pagespeed 缓存条目)一个我以前从未听说过的完全随机域正在解析到我的网站。
如果我访问这个域,我的网站就会加载。该域的 DNS 指向我服务器的 IP。
现在在我的 vhost 配置中我有 *:80,我猜这是我出错的地方。
我立即将其更改为 example.com:80,其中 example.com 是我的域。假设这意味着服务器只会响应和满足对我的域名的请求,而不是端口 80 上的任何请求。
我原来的 vhost 配置;
<VirtualHost *:80>
DocumentRoot "/var/www/example.com"
<Directory "/var/www/example.com">
Order allow,deny
Allow from all
Allowoverride all
</Directory>
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)
我新尝试的配置;
Listen 80
ServerName example.com
<VirtualHost example.com:80>
DocumentRoot "/var/www/example.com"
<Directory "/var/www/example.com">
Order allow,deny
Allow from all
Allowoverride all
</Directory>
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)
当我尝试使用新配置重新启动 apache 时,出现以下错误:
* Restarting web server apache2 [Fri Mar 28 08:55:47.821904 2014] [core:error] [pid 5555] (EAI 2)Name or service not known: AH00549: Failed to …Run Code Online (Sandbox Code Playgroud) 这是一个奇怪的要求。出于某种原因,拥有者safeandbuy.com将他们的域指向了我的 IP 地址。这是一个问题的原因是我有各种各样的爬虫试图用那个域名爬取我的网站。
我能做些什么吗?
可能的重复:
对于将域名指向我的 ip 的人,我能做些什么吗?
我现在正在运行具有自己的静态 IP 的专用服务器一段时间。几周前,我注意到浏览日志时出现了一些域,我想知道为什么。在使用该域后,我注意到它是一个完整的 DNS-A 主机名,指向我的 IP。
有人会这样做的原因是什么?有什么我应该担心或记住的吗?
实际上 - 我不介意,即使我更喜欢在没有任何主机名的情况下运行服务器(仅限 IP)。
是否有适用于通过 SNI 或 HTTP Host 标头发送错误主机名(或根本没有)的客户端的 HTTP 状态代码?
一个较旧的问题首先解决了此类请求如何以及为何发生,以及如何在 Apache 中从技术上处理它们。然而,它没有解决响应状态代码的选择问题。
过去,我实现了一个 HTTP 代理,它会发送状态代码 502 和一个 html 页面,解释为什么会产生错误消息。我使用 502 的理由是期望我看到它主要是由于配置错误,这意味着代理找不到合适的后端。实际上,仅仅看到完全虚假的主机名的频率要高得多。
是否有另一个状态代码更合适,更清楚地向客户端发出信号,表明此 IP 地址上的服务器无法识别通过 SNI 和/或主机标头发送的值?
ip ×2
apache-2.2 ×1
hostname ×1
http ×1
http-headers ×1
https ×1
linux ×1
security ×1
sni ×1
ubuntu ×1
virtualhost ×1