如何從本地網路中的一台電腦為多個域提供服務
我在本地網路中為我的 django 項目提供服務時遇到問題。每個項目在 hosts 文件中都需要一個唯一的域名。在我的本地網路中,其他電腦無法看到這些項目。
我的電腦在網路中的IP是192.168.2.2 我電腦上的hosts文件如下:
127.0.0.101 myProject1.local 127.0.0.102 myProject2.local 127.0.0.103 myProject3.local
我想我必須這樣做,但它不起作用。
192.168.2.101 myProject1.local 192.168.2.102 myProject2.local 192.168.2.103 myProject3.local
最後,我找到了解決方案。您必須在本地網路中設置 DNS 伺服器,如果您有任何 Server Edition OS 電腦,則可以輕鬆配置其 DNS 伺服器並將其指向您項目的 IP。但是當網路中沒有伺服器電腦(例如:家庭網路)時,問題將是找到一個 DNS 伺服器來承擔責任。
我將在 Windows 7 或其他任何東西上配置 Apache 以使用 WSGI 處理 Django 項目…
我的本地 IP 是192.168.2.2,我在路由器設置中將它與我的 MAC-ADDRESS 綁定。
**注意:**一定要讓你的IP不可更改,否則會使你的DNS伺服器和本地網路不穩定。
配置 Apache 以服務多個域:
第一步是配置 Apache 以執行項目:
下面將在 www.myproject1.local 上為 myProject1 提供服務,在www.myproject2.local上為myProject2提供服務
NameVirtualHost *:80 <VirtualHost *:80> ServerName www.myProject1.local ServerAlias myProject1.local *.myProject1.local ServerAdmin my-email@gmail.com DocumentRoot "C:/path/to/myProject1/" </VirtualHost> <VirtualHost *:80> ServerName www.myProject2.local ServerAlias myProject2.local *.myProject2.local ServerAdmin my-email@gmail.com DocumentRoot "C:/another/path/to/myProject2/" </VirtualHost> ...
欲了解更多資訊,請訪問:
$$ Apache Name-based Virtual Host Support $$ 2. 使用 WSGI 啟動 Django 項目:
如果你想為一個 PHP 項目服務,但要配置 WSGI,你必須做一些如下的改變。我將 project1 視為 django 項目
<VirtualHost *:80> ServerName www.myProject1.local ServerAlias myProject1.local *.myProject1.local ServerAdmin my-email@gmail.com #WSGIDaemonProcess myProject1 processes=2 threads=15 display-name=%{GROUP} #WSGIProcessGroup myProject1 WSGIScriptAlias / "C:/path/to/myProject1/myproject1.wsgi" </VirtualHost> ...
一定要載入:
$$ mod_wsgi.so $$ 註釋行WSGIDaemonProcess和WSGIProcessGroup是執行更好的 WSGI 服務的選項,更多資訊請訪問:
$$ mod_wsgi Wiki Pages $$ 3. 安裝 DNS 伺服器
現在你必須配置你的 dns 伺服器。就我而言,我的電腦上沒有安裝 dns 伺服器,所以第一步是找到合適的 dns 伺服器來完成這項工作。
我用
$$ MaraDNS $$,並像下面這樣配置它: 文件
ipv4_bind_addresses = "192.168.2.2" timestamp_type = 2 random_seed_file = "secret.txt" hide_disclaimer = "YES" csv2 = {} csv2["myproject1.local."] = "db.default.txt" csv2["myproject2.local."] = "db.default.txt" upstream_servers = {} upstream_servers["."] = "yyy.yyy.yyy.yyy, zzz.zzz.zzz.zzz"
和下面的db.default.txt文件
% 192.168.2.2 ~ www.% 192.168.2.2 ~
有關 maraDNS 的更多資訊,請訪問MaraDNS 網站
- 啟動 DNS 伺服器:
通過以下方式啟動 maraDNS 伺服器
maradns -f mararc
- 路由器設置:
您可以通過將主 DNS 伺服器設置為指向本地網路中每台電腦的 192.168.2.2 來訪問您的域。但您也可以將路由器 DHCP 伺服器設置為使用您的 IP 作為預設 DNS 伺服器。它只需要訪問路由器網路管理。
所以在那裡輸入你的IP作為DNS伺服器,工作就完成了。
- 享受技巧:
現在您可以在本地網路中將您的項目作為偽造域提供服務,而無需使用 :port-number 或 IP 地址。只需在任何本地網路電腦或 WiFi 設備的地址欄中輸入myproject1.local即可獲得正確的結果。
:)