使本機 Apache2 安裝具有可在網路內存取的多個虛擬主機

使本機 Apache2 安裝具有可在網路內存取的多個虛擬主機

我的開發機器(Debian 10)上運行著本機 apache2 和 mariaDB 伺服器。我正在使用虛擬主機,因此我可以同時擁有多個可用網站。我透過以下步驟來實現我的目標:

1)建立並編輯網站的conf檔案。sudo nano /etc/apache2/sites-available/website.conf

2)在文件中填寫以下內容:

<VirtualHost *:80>
    ServerAdmin [email protected]
    ServerName website.local
    ServerAlias www.website.local
    DocumentRoot /var/www/website/public_html/
    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

3)sudo a2ensite website.conf

4)sudo systemctl reload apache2

5) 編輯主機檔案。sudo nano /etc/hosts,新增行:127.0.0.1 website.local

此時它起作用了。當我訪問時,http://website.local我將被重定向到新製作的本地網站。

當其他電腦存取我電腦的 IP 位址時(假設是:10.0.0.100它們會存取我的/var/www/html/index.html檔案。我不知道為什麼會這樣,因為我從未設定過它。但它確實如此。

我的願望:10.0.0.100在我的網路內的電腦上開啟一個頁面,我可以在其中(手動)放置一個重定向到我擁有的本地網站的清單。例如:

<ul>
    <li><a href="http://website1.10.0.0.100/">Website1</a></li>
    <li><a href="http://website2.10.0.0.100/">Website2</a></li>
    <li><a href="http://website3.10.0.0.100/">Website3</a></li>
</ul>

我想指出正確的方向,因為我目前不知道如何實現這一目標。

答案1

website.local您想要做的事情可以透過將相應的名稱(又稱)註冊到您的網路 DNS 來實現。

像這樣的名稱website1.10.0.0.100是您自己無法實現的,因為它以字串 ( website1) 開頭,任何客戶端都會將其視為 FQDN。因此,任何用戶端都會嘗試找出.100頂級網域上的權威 DNS 伺服器......正如您可能猜到的那樣,該 TLD 不存在。

在不修改 DNS 的情況下在電腦上實現 3 個不同網站的最簡單方法是:

  • 您的電腦上有 3 個不同的 IP 位址(使用ifconfig eth0 add 10.0.0.101ifconfig eth0 add 10.0.0.102等...)

  • 在 Apache 上實作基於 IP 的虛擬主機。

  • 有一個看起來像這樣的首頁:

<ul>
         <li><a href="http://10.0.0.100/">Website1</a></li>
         <li><a href="http://10.0.0.101/">Website2</a></li>
         <li><a href="http://10.0.0.102/">Website3</a></li>
</ul>

另一種(更複雜)的實作方式是:

  1. 在您的電腦上實作您自己的 DNS 伺服器,以便在.bibicomputerTLD 等方面具有權威性。

  2. 在您的bibicomputerDNS 區域中,使website1.bibicomputerwebsite2.bibicomputer等...指向您的 IP 位址。

  3. 請您的同事將您的 IP 位址新增至他們的 DNS 清單中(在 linux 下/etc/resolv.conf:)。

但我敢打賭,你們公司的 IT 人員不會喜歡這個解決方案。

相關內容