You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将Apache虚拟主机与DNS服务器关联,使test3.fr可正常访问?

解决test3.fr域名无法访问的问题

看起来你已经搞定了Apache虚拟主机的基础配置,也能通过IP+端口访问站点,核心问题出在域名解析关联和端口映射/监听这两块,下面一步步来排查解决:

1. 先确认DNS记录是否正确配置

这是浏览器找不到站点的最常见原因:

  • 登录你的自建DNS服务器,添加test3.fr的A记录(如果是IPv6就加AAAA记录),指向你的服务器IP(内网测试用内网IP,公网访问用公网IP)。同时别忘了添加www.test3.fr的CNAME记录指向test3.fr。
  • 用命令验证解析是否生效:
    nslookup test3.fr
    # 或者用dig看更详细信息
    dig test3.fr
    
    确认返回的IP和你的服务器IP一致。另外要注意:浏览器所在的客户端机器必须把DNS服务器设置为你的自建DNS,不然会用默认公共DNS,肯定找不到这个自定义域名。

2. 确保Apache监听了对应的端口

你的test3站点用了50002(HTTP)和50502(HTTPS),得确认Apache已经开启了这两个端口的监听:

  • 打开Apache的端口配置文件/etc/apache2/ports.conf,检查是否有以下两行:
    Listen 50002
    Listen 50502
    
    如果没有,添加进去,然后重启Apache生效:
    sudo systemctl restart apache2
    

3. 解决端口访问的痛点(关键!)

浏览器访问https://test3.fr时,默认会用443端口,但你的test3 SSL虚拟主机在50502端口,这就导致请求发到了主站的443端口,自然找不到test3站点。有两个解决方案:

方案一:用基于域名的虚拟主机(推荐,无需加端口访问)

把test3的虚拟主机改到默认的80/443端口,让Apache根据请求的域名自动分发:

  • 修改你的VirtualHost配置:
    # HTTP 80端口,自动跳转HTTPS
    <VirtualHost *:80>
        DocumentRoot "/var/www/test3"
        ServerName test3.fr
        ServerAlias www.test3.fr
        Redirect permanent / https://test3.fr/
        <Directory "/var/www/test3">
            Options FollowSymLinks
            AllowOverride all
            Require all granted
        </Directory>
        ErrorLog /var/log/apache2/error.test3.fr.log
        CustomLog /var/log/apache2/access.test3.fr.log combined
    </VirtualHost>
    
    # HTTPS 443端口
    <VirtualHost *:443>
        DocumentRoot "/var/www/test3"
        ServerName test3.fr
        ServerAlias www.test3.fr
        <Directory "/var/www/test3">
            Options FollowSymLinks
            AllowOverride all
            Require all granted
        </Directory>
        SSLEngine on
        SSLCertificateFile /etc/apache2/ssl/apache.crt
        SSLCertificateKeyFile /etc/apache2/ssl/apache.key
        ErrorLog /var/log/apache2/error.test3.fr.log
        CustomLog /var/log/apache2/access.test3.fr.log combined
    </VirtualHost>
    
  • 同时确保你的主站les-tatates.cm的VirtualHost也是*:443和*:80,并且ServerName正确设置为les-tatates.cm,这样Apache会根据请求的域名区分两个站点。
  • 重启Apache后,直接访问https://test3.fr就能正常打开了。

方案二:保留自定义端口(需加端口访问)

如果必须用50502端口,那访问时需要明确加上端口:https://test3.fr:50502。同时要确保:

  • 服务器防火墙允许50502端口的入站流量(比如用ufw的话:sudo ufw allow 50502/tcp)
  • 公网访问的话,确认运营商没有屏蔽这个端口

4. 验证虚拟主机配置有效性

用Apache自带的命令检查配置是否正确加载:

apache2ctl -S

这个命令会列出所有已加载的虚拟主机,确认test3.fr对应的端口和配置都正确显示。如果有错误,会提示具体的配置问题。

5. 清除缓存避免干扰

  • 浏览器强制刷新(Ctrl+Shift+R),清除DNS缓存和页面缓存
  • 客户端机器刷新DNS缓存:
    • Windows:ipconfig /flushdns
    • Linux:systemd-resolve --flush-caches
    • Mac:sudo dscacheutil -flushcache; sudo killall -HUP mDNSResponder

完成以上步骤后,test3.fr应该就能正常访问了。


内容的提问来源于stack exchange,提问作者K.J Fogang Fokoa

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.29 07:45:02