从本地服务器发布网站到网上时遇到问题

从本地服务器发布网站到网上时遇到问题

我办公室的 Linux 服务器 Centos 7 上有一个网站主机,我想将该网站发布到互联网上,我有一个域名(training.gbc-engineers.com)并将 A 记录指向我的发布 WAN IP 地址,我已经在防火墙上配置为为此 Linux 服务器打开所有端口。但在我的本地网络中,这个网站有另一个名字是 moodle.gbcvn2.local(本地域),现在当我尝试输入 training.gbc-engineers.com 时,它总是直接指向 moodle.gbcvn2.local 并且无法从外部访问网站,即使我使用 WAN IP 仍然直接指向此地址。已经从 4G(本地网络外)尝试过,另一个网络...仍然是同样的问题。

我有 2 个虚拟主机文件

文件 1:

<VirtualHost *:80>

        ServerAdmin [email protected]
        ServerName moodle.gbcvn2.local
        DocumentRoot /var/www/moodle

        ErrorLog "/var/log/httpd/moodle.error.log"
        CustomLog "/var/log/httpd/moodle.log" combined

        <Directory> /var/www/moodle>
                AllowOverride None
                Require all granted
        </Directory>

</VirtualHost>

文件 2:

<VirtualHost *:80 >

        ServerAdmin [email protected]
        ServerName training.gbc-engineers.com
        DocumentRoot /var/www/moodle

        ErrorLog "/var/log/httpd/moodle.error.log"
        CustomLog "/var/log/httpd/moodle.log" combined

        <Directory> /var/www/moodle>
                AllowOverride None
                Require all granted
        </Directory>

</VirtualHost>

即使我删除了文件 1,它仍然不起作用。我的本地域名是 gbcvn2.local,gbc-engineers.com 是从提供商处购买的

答案1

Moodle 仅支持托管在每次只配置一个域。域必须config.php按照您找到的方式进行配置,并且 Web 应用程序本身会始终将您的浏览器重定向到它认为正确的域。

域名也必须在数据库中更新,因为 Moodle 页面中的链接使用完整的 URL(包含旧域名)——请参阅Moodle 迁移文章,特别是关于数据库更新,获取有关如何执行此操作的说明。


如果服务器有私有地址,但你的第二个域指向路由器的 WAN 地址,通常只能连接到 WAN 地址从外面的 LAN。这是由于 NAT 在同一个子网内的工作方式(或者说无法工作)决定的。

为了避免这种情况,您需要一个“拆分 DNS”系统,其中同一个域解析为 LAN 内部/外部的不同地址,或者您的路由器需要“NAT 发夹”/“NAT 环回”功能。

相关内容