带有子域名的 Apache2 服务器配置

带有子域名的 Apache2 服务器配置

我有一个简单的 httpd.conf,它正在运行

<VirtualHost *>
    AddDefaultCharset UTF-8

    DocumentRoot "/opt/rt4/share/html"
    <Location />
        Order allow,deny
        Allow from all

        SetHandler modperl
        PerlResponseHandler Plack::Handler::Apache2
        PerlSetVar psgi_app /opt/rt4/sbin/rt-server
    </Location>
    <Perl>
        use Plack::Handler::Apache2;
        Plack::Handler::Apache2->preload("/opt/rt4/sbin/rt-server");
    </Perl>
</VirtualHost>

当我连接到 MyDomain.dynamicDNSServer.TLD 时,我可以正常加载我的 RT。

但由于我希望它是 rt.MyDomain.dynamicDNSServer.TLD,因此我将其设置为完全相同的值,只是我让它

<VirtualHost rt.MyDomain.dynamicDNSServer.TLD>

现在,当我重新启动 Apache2 时,它显示“没有与主机名关联的地址:无法解析主机名 rt.MyDomain.dynamicDNSServer.TLD——忽略!”

我该怎么做?我无法在主机中为其分配静态 IP,因为每当我的路由器获取新 IP 时,它就会更改。

答案1

首先,确保你有一个特定子域名 dyndns 条目通配符 dyndns 条目为您的 ip。这意味着除此之外,MyDomain.dynamicDNSServer.TLD还必须*.MyDomain.dynamicDNSServer.TLD至少rt.MyDomain.dynamicDNSServer.TLD解析到您的动态 ip。如果您没有上述任何一项,则无法使用子域特定的 apache 配置。

在 Apache 中,子域名是通过ServerName而不是使用<VirtualHost>指令来指定的(请参阅文档了解更多信息)。

以下内容适用于您的子域名:

<VirtualHost *>
    ServerName rt.MyDomain.dynamicDNSServer.TLD
    AddDefaultCharset UTF-8
    DocumentRoot "/opt/rt4/share/html"
    ...
</VirtualHost>

相关内容