
我在辦公室的 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 個虛擬主機文件
文件一:
<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 位址從外面區域網路的。這是由於 NAT 在同一子網內工作(或更確切地說,不能工作)的方式造成的。
為了避免這種情況,您需要一個「分割 DNS」系統,其中相同網域解析為 LAN 內部/外部的不同位址,或者您的路由器需要「NAT 髮夾」/「NAT 環回」功能。