您可以拥有带有子子域的 DNS 记录吗?
例如:www.blog.domain_name.com?
子子通配符域怎么样?同时支持*.domain_name.com?
例如:*.blog.domain_name.com?
在由包含通配符条目的 DNS 链接的 Apache2 服务器上,例如 *.example.com,在任何 VirtualHosts 中未定义为 ServerNames 的子域指向第一个定义的 VirtualHost,在我的示例中,这是 000-default。
我的问题:
如何获得未使用的子域(未在任何虚拟主机中使用的子域)以向请求客户端返回 404 错误?这也必须最好在服务器日志中显示为 404。
我研究了以下可能性:
这种方法的问题是,当有人以 this.company.sucks.example.com 链接到您的网站时,客户端将看到您的主页,或者在我的情况下,如果我不重定向,则会看到 000-default。感谢迈克指出这一点。(“吮吸”等的正则表达式绝对不是一种选择)
Apache 有点不喜欢这个,每次重新加载时都会发出警告。除了警告之外,一切似乎都很好。这似乎是一个黑客。对任何人来说,这似乎是一个问题(无论多么小)?
这令人困惑,并使以下内容变得过于复杂:例如,您为每个用户使用一个子域(显然,这是使用通配符 DNS 的一个重要原因),并且用户可以在 username.example 中查看彼此的配置文件。 com。这个解决方案让用户感到困惑,完全不是我想要做的。
我理想的解决方案会让用户知道在他输入的 url 上没有任何东西可以查看。最好带有 404 和输入地址的错误日志条目(不是其他地址)。
任何帮助将不胜感激!
wildcard subdomain virtualhost http-status-code-404 apache-2.2
我有一个 ASP.NET MVC 应用程序,它为我的用户提供通配符域来个性化他们的登录 URL。
我想在 Windows Azure 上托管它。但是是否可以保留通配符域?
我已经找到了一篇博客文章,展示了如何使用 CNAME 别名执行此操作,但这似乎不适用于通配符子域。
还有其他方法吗?最好是不需要对服务器的每个请求都进行重定向?
另外,根域 (mydomain.com) 怎么样?
谢谢,
阿德里安
我在 stackoverflow 上问过这个问题,但得到的意见很少:https : //stackoverflow.com/questions/2284917/route-web-requests-to-different-servers-based-on-subdomain
或许更适合这个人群。再次为方便起见:
我有一个平台,用户可以在其中使用子域创建新网站。将有数千个,例如 abc.mydomain.com, def.mydomain.com 。希望如果我们成功了数十万。
我需要能够将这些域路由到不同的 IP 以指向特定的应用程序服务器。我现在在数据库中有这个映射。
这里有哪些最佳实践和推荐技术?
我看到几个选项:
谢谢。
Update2:我已经设置了指向 HAProxy Web 服务器的外部通配符 DNS,该服务器的工作是将请求路由到后端服务器。映射存储在我们的内部 PowerDNS 服务器中。现在的问题是如何让 HAProxy 服务器(或其他)使用内部 DNS 的值而不是一些配置文件或访问列表?——
更新:根据下面的一些建议,似乎反向代理服务器是要走的路。由于我将重新平衡域-> 服务器映射,这些需要立即工作,DNS 解决方案上的 TTL 可能是一个问题。考虑到此域-> IP 数据存储在数据库中,我需要使用它来提高性能吗?
这不是一个真正的编程问题,它更多地是关于我可以在视觉上改变的设置。
我已经购买了一个域,想知道如何使其工作,以便将 .example.com 之前的所有内容(除了我已经设置的内容(如 pop.example.com))转发到 www.example。 com(或 *.example.com)。
所以像这样的东西:
转到相应的 URL,但是:
是 www.example.com 的别名。
在 DNS 配置中添加规则的选项是:
或者也许最好用 .htaccess 来做到这一点?如果是这样,我应该如何配置它?
对你的快速问题,当我输入地址时test.mysite.net,首先我连接到我的 ISP DNS,如果没有找到 .NET DNS,而不是 mysite DNS,然后呢?
我的意思是,我知道这test.mysite.net可能位于不同的 IP 地址,但是如果我想在那里运行虚拟服务器怎么办?我获得了与 mysite.net 相同的 IP ,如果它们具有相同的 IP 地址,服务器如何知道我是要访问test.mysite还是mysite直接访问?
我的问题与How to point a subdomain to local server with dynamic IP 相同。不同之处在于我确实有来自 ISP 的静态 IP,我认为我不需要使用 DynDNS,对吗?那我可以用什么代替呢?
我的目标是将每个子域指向不同的 Web 服务器,如下所示:
mydomain.com --> 192.168.1.100(主 Web 服务器)
sub1.mydomain.com --> 192.168.1.101(Web 服务器 1)
sub2.mydomain.com - -> 192.168.1.102(网络服务器 2)
我曾尝试按照此处的说明使用 Apache 的代理模块,但未成功。当我通过浏览器访问 sub1.mydomain.com 时,它总是导致 mydomain.com。
我可以通过这种方法做到这一点吗?如果没有,请告诉我另一种方式。
我使用 Ubuntu 服务器 12.04
[已解决]
解决方案
A记录指向公网IP:
1@public.ip 2www
public.ip
CNAME记录指向子域:
1 sub1 mydomain.com
2 sub2 mydomain.com
添加sub1和sub2到/etc/apache2/sites-available
子1:
<VirtualHost *:80>
ServerName sub1.mydomain.com
<Proxy *>
Order deny,allow …Run Code Online (Sandbox Code Playgroud) 导致我尝试取消此过程的具体查询是:
assets.example.com如果父域example.com已经被解析,DNS 查找子域(例如 )是否会更快?
以我(幼稚)的理解,将域名转换为 IP 地址的基本过程非常简单。十三根服务器,谁知道如何解决像顶级域的地址com和net,有效很难在网络硬件编码。在查找 的情况下example.com,我们的本地 DNS 服务器(可能是我们的路由器)会查询这些根服务器中的其中一台以查找相关域,并被称为 的顶级名称服务器com。然后它会询问此名称服务器是否知道如何解析example. 如果是,我们就完成了,如果不是,我们就被转介到另一台服务器上。这个过程中的一些服务器可能正在缓存,所以我们的本地路由器现在可以临时知道在哪里寻找com和example。
尽管如此,我还是不太明白。
com我们所指的TLD 名称服务器不知道如何解析example,那么说这就是行尾是否正确:example.com无法解析?维基百科解释说,一些 DNS 服务器将缓存与递归查询实现相结合,这使它们能够提供缓存命中并可靠地解决缓存未命中。我不明白这些服务器是如何被查询的,或者解析算法是如何(甚至广泛地)工作的。com例如,所有权威名称服务器都是精确镜像,还是解析器必须依次尝试每个?
回顾我最初的问题,假设 A 记录都在同一个名称服务器上,我可能会非常投机性地选择“否”。我将非常感谢任何可以减少我的无知的人!
我明白,在“webmail.chemistry.iit.edu”的方向上,“chemistry”是一个子域,“webmail”是主机名。那么,根据 Google 的文档,为什么在“mail.google.com”中,“mail”是一个子域?将主机名放在域的左侧不是强制性的吗?
我想用 Nginx 做一些事情。假设我有几个用户和一个子域,每个用户在/home/dev/sites/USER_ID. 我想USER_ID.dev.example.com指向那个目录。
我试过制作一个 vhost 文件如下:
server {
listen 80;
server_name ~^(?<site_id>)$.dev.example.com;
root /home/dev/sites/$site_id;
index index.php;
location / {
try_files $uri $uri/ /index.php?$uri&$args;
}
location ~ \.php$ {
try_files $uri =404;
include /etc/nginx/fastcgi_params;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
}
Run Code Online (Sandbox Code Playgroud)
但是,所有发生的事情是它显示了我的 PhpMyAdmin 安装(显然另一个虚拟主机指向它)。有人能告诉我我做错了什么吗?我有一种感觉,它只是糟糕的 Regex,但我不确定。
subdomain ×10
apache-2.2 ×2
virtualhost ×2
wildcard ×2
.htaccess ×1
azure ×1
cname-record ×1
domain ×1
hostname ×1
nameserver ×1
networking ×1
nginx ×1
regex ×1
resolve ×1
routing ×1
ubuntu-12.04 ×1