我的開發機器(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.101
、ifconfig 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>
另一種(更複雜)的實作方式是:
在您的電腦上實作您自己的 DNS 伺服器,以便在
.bibicomputer
TLD 等方面具有權威性。在您的
bibicomputer
DNS 區域中,使website1.bibicomputer
、website2.bibicomputer
等...指向您的 IP 位址。請您的同事將您的 IP 位址新增至他們的 DNS 清單中(在 linux 下
/etc/resolv.conf
:)。
但我敢打賭,你們公司的 IT 人員不會喜歡這個解決方案。