我正在尝试使用免费的 DynDNS 服务和子域在家中设置网络服务器。我已经成功使用 DynDNS 托管了一个网站,但现在我想设置子域,以便我可以使用 DynDNS 域在我的个人网络服务器上托管多个网站。
例如,假设我已经在 DynDNS myname.homelinux.net 注册。我将能够在以下域上托管网站:
myname.homelinux.net
test.myname.homelinux.net
test2.myname.homelinux.net
...
当我注册 DynDNS 域名(例如 myname.homelinux.net)时,我是否需要在 DynDNS Web 门户上执行任何操作以将任何子域路由到我的站点,或者这是我在 Web 服务器的 Apache 配置中可以完全控制的操作?我的配置(如下)中是否存在导致此操作无法正常工作的问题?
我的配置:
在文件 /etc/apache2/sites-available/test.conf 中
<VirtualHost *:80>
DocumentRoot /var/www/sub/test
ServerName test.myname.homelinux.net
#ServerPath /test/
#RewriteEngine On
#RewriteRule ^(/test/.*) /www/test$1
ErrorLog /var/log/apache2/error.test.log
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn
CustomLog /var/log/apache2/access.test.log combined
</VirtualHost>
我使用 Apache 的默认配置来托管主 mysite.homelinux.net 站点。/etc/apache2/sites-available/default
(这很好用)
<VirtualHost *:80>
ServerAdmin webmaster@localhost
DocumentRoot /var/www
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /var/www/>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
</Directory>
ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
<Directory "/usr/lib/cgi-bin">
AllowOverride None
Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
Order allow,deny
Allow from all
</Directory>
ErrorLog /var/log/apache2/error.log
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn
CustomLog /var/log/apache2/access.log combined
Alias /doc/ "/usr/share/doc/"
<Directory "/usr/share/doc/">
Options Indexes MultiViews FollowSymLinks
AllowOverride None
Order deny,allow
Deny from all
Allow from 127.0.0.0/255.0.0.0 ::1/128
</Directory>
目前,当我浏览到http://test.mysite.homelinux.net/,我收到“未找到服务器”错误。
您可以假设我已经运行“a2ensite test.conf”命令,并且在每次更改配置时重新加载 Apache 解析配置。
任何帮助都非常感谢。谢谢,乔
答案1
当我注册 DynDNS 域名(例如 myname.homelinux.net)时,我是否需要在 DynDNS Web 门户上执行任何操作以将任何子域路由到我的站点,或者这是我在 Web 服务器的 Apache 配置中可以完全控制的操作?
据我所知,您的 Apache 配置看起来正常。我估计您的问题是 DNS 无法解析测试.mysite.homelinux.net。
您可以通过在计算机的 HOSTS 文件中为该主机名设置正确的 IP 地址来进行测试。在 Windows 中,C:\WINDOWS\system32\drivers\etc\HOSTS;在 Linux 或其他 Unixen 中/etc/hosts这样,您的测试计算机就会知道该主机名要使用什么地址,并允许您测试您的 Apache 配置。
据我所知,DynDNS 不将子域名作为其免费动态 DNS 服务的一部分。他们确实支持子域名作为其自定义 DNS 服务。此外,根据这个问题, 这动态 DNS Pro 服务还提供通配符和子域名。有关 DynDNS 配置的更多问题,请直接发送至DynDNSCommunity Stack Exchange 网站。