Конфигурация сервера 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>