0

我想要类似的东西:

"http://www.anyhostname.com" ==> "http://192.168.0.1"

即我想将除“192.168.0.1”以外的任何请求重定向到“http://192.168.0.1”

我使用 Lighttpd 作为我的网络服务器,使用 dnsmasq 作为我的 DNS 服务器。

4

2 回答 2

0

我想知道您是否正在做透明代理——如果是这样,可能有更好的机制来完成您想做的事情,而不是按照您的目标进行概述。

但如果你想继续走这条路,我认为你可以使用 lighttpd 的mod_evhost工具来轻松使用默认站点配置:

一般示例:

server.document-root = "/home/user/sites/default/site"   
evhost.path-pattern  = "/home/user/sites/%0/site/" 

如果example.org被请求并 /home/user/sites/example.org/site/找到,则该路径将成为 docroot。

如果example.net请求但不存在名为的目录 /home/user/sites/example.net/site/ ,则保留 docroot /home/user/sites/default/site

如果您有要处理的特定主机名,您可以将它们添加到/etc/hosts您的dnsmasq服务器上。如果您有几百个要处理的主机/域,这将起作用,但如果您想处理所有内容,那么 dnsmasq 可能不是正确的工具。

我知道无论 DNS 问题如何,PowerDNS 的 PipeBackend都可以轻松给出相同的答案;这样,您可以轻松拦截请求并专门处理部分或全部请求。这样,您可以回答192.168.0.1每个请求、某些请求或您可以编程的任何内容

于 2011-03-23T09:58:07.303 回答
0

好的,我解决了这个问题。在这里发布解决方案,希望它对未来的人有所帮助......

我通过修改 lighttpd.conf 文件解决了这个问题。我在 lighttpd.conf 文件中添加了以下内容:

$HTTP["host"] !~ "mydesiredhostname\.com" {
        url.redirect = (
                                "" => "http://192.168.0.1/"
                        )
}

谢谢大家的时间。干杯!

于 2011-03-23T12:16:37.947 回答