我有一台带有 apache2 的服务器,该服务器与我的 FritzBox 相连,它在 80 和 443 上进行端口转发,并且可以通过外部网络访问<MYFRITZ>.myfritz.net
。
<MYFRITZ>.myfritz.net
如果我在浏览器中使用以下配置,我可以访问一个简单的 html :
<VirtualHost *:80>
ServerName MYFRITZ.myfritz.net
DocumentRoot /var/www/404
<Directory /var/www/404/>
Options -Indexes +FollowSymLinks +MultiViews
AllowOverride All
Require all granted
</Directory>
ErrorLog ${APACHE_LOG_DIR}/404-error.log
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn
CustomLog ${APACHE_LOG_DIR}/404-access.log combined
</VirtualHost>
我尝试使用另一个 vhost 通过子域访问另一个 html,并使用以下配置:
<VirtualHost *:80>
ServerName test.MYFRITZ.myfritz.net
DocumentRoot /var/www/404b
<Directory /var/www/404b/>
Options -Indexes +FollowSymLinks +MultiViews
AllowOverride All
Require all granted
</Directory>
ErrorLog ${APACHE_LOG_DIR}/404b-error.log
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel debug
CustomLog ${APACHE_LOG_DIR}/404b-access.log combined
</VirtualHost>
但进入test.MYFRITZ.myfritz.net
我的浏览器后,结果却是“无法访问此站点,test.MYFRITZ.myfritz.net 的 DNS 地址无法找到。正在诊断问题。DNS_PROBE_POSSIBLE”。
/var/www/404
和都/var/www/404b/
存在(404b
只是 的副本404
)。我以为使用ServerName
可以定义子域?
答案1
Fritz!Box 支持两种类型的端口转发,常规端口转发和所谓的“MyFritz-Shares”。根据我的经验,只有 MyFritz-Shares 才会hostname.MYFRITZ.myfritz.net
自动创建格式的 DNS 记录。对于常规端口转发,您需要自行设置第三方 DynDNS 服务。
确保您的端口转发是 MyFritz-Share。
由于 myfritz.net 由 AVM 控制,并且您无法设置任何您喜欢的子域记录,因此您需要使用 Fritz!Box 提供的内容或设置另一个域,例如指向您的 myfritz 地址的 CNAME 记录。
答案2
test.MYFRITZ.myfritz.net’s DNS address could not be found
是一个清晰的诊断,可以告诉您问题所在:您的 DNS 中没有 A 记录定义test.MYFRITZ.myfritz.net
。添加该记录,或为其添加指向 MYFRITZ 的 CNAME,这样就没问题了。