Windows 終端伺服器上基於使用者的 HTTP 主機到 IP 重定向
我剛剛使用 IE9 設置了一個 Windows 2008 R2 終端伺服器,它旨在用於測試。不幸的是,web-bods 告訴我他們的機器上都有一個本地 apache,並且他們都編輯了他們的 hosts 文件,其中有很多指向 127.0.0.1(環回)的條目。
這在他們自己的機器上執行良好,可以將他們指向他們自己的 apache,以查看他們在 Windows XP 機器上開發的結果。
當然,當他們登錄到終端伺服器時,他們將無法訪問這些,主機文件是基於機器的,並且多個使用者可以同時在終端伺服器上。
我一直在想一種方法,當使用者 A 登錄到終端伺服器時,會載入他們獨有的一組規則(在他們可以編輯的文件或位置),並且當他們輸入 test.site1.com 時將其指向他們電腦的 IP 192.168.1.1 和使用者 B 類型 test.site1.com 它將指向使用者 B 的電腦 IP 192.168.1.2,這是同時兩個使用者同時登錄到終端伺服器(假設192.168.1.10)。
理想情況下,希望避免對他們的本地 apache 進行太多更改(除了確保他們監聽他們的實際 LAN IP 而不僅僅是 127.0.0.1 當然)。
Hosts 文件超出了我的判斷範圍……是否有一個聰明的代理程序可以做到這一點?我可以在終端伺服器上安裝一個接受基於使用者的配置文件的軟體嗎?或者如下建議的 DNS,好主意,唯一的問題是為各自的使用者提供相同主機名的不同 IP。
使用者 A 的 test.site1.com 192.168.1.1 使用者 B 的 test.site1.com 192.168.1.1
這是在使用者 A 和使用者 B 都登錄到同一終端伺服器時。
原來我需要一個反向代理,我手頭有一個 TMG 伺服器,所以我創建了幾個規則:
網站發布規則 HTTP 設置一個內部 Web 偵聽器在內部介面上偵聽,HTTP Auth 使用摘要和集成。操作 Allow From Anywhere To localhost(只是一個佔位符)電腦名稱或 IP 地址(如果內部站點名稱不同或不可解析,則需要):勾選“轉發原始主機頭而不是實際主機頭(在內部站點名稱欄位中指定) )公共名稱(輸入該Web Dev機器上的所有測試域名)路徑/ *將根據您的需要進行或自定義身份驗證委派:無委託,但客戶端可以直接驗證使用者創建使用者,指定Windows使用者帳戶那台機器的Web Dev。
複製粘貼,更改使用者,並將IP地址更正為Web Dev機器的IP。
然後,在終端伺服器上,編輯主機文件並將所有這些測試域指向 TMG 伺服器的 IP 地址。確保所有這些 URL 也在 IE 的本地安全組中,以便它通過登錄。
終端伺服器上的使用者 A 在http://local.website-prototype.net中鍵入,終端伺服器轉到 TMG,通過他們的登錄,TMG 查找規則以找到域使用者的匹配規則,然後將它們重定向到他們自己的機器的 IP 用於他們的 URL。終端伺服器上的使用者 B 鍵入http://local.website-prototype.net或其他內容,同樣的事情發生,TMG 為使用者 B 挑選規則並指向使用者 B 的機器/IP。
很好用,唯一的缺點是當 Web 開發人員想要添加另一個 URL 時,需要將其添加到終端伺服器主機文件中,並添加到 TMG 中的使用者特定規則中。
我可以授予他們對 hosts 文件的編輯權限……他們非常精明,遺憾的是無法授予他們對 TMG 框的完全權限……除非我們為他們設置單獨的 TMG。
或者,我需要看看在其他東西中創建相同的配置,魷魚?理想情況下,可以讓我拆分配置,以便 Web 開發人員可以編輯自己的小部分。
將名稱解析為 IP 地址的聰明代理程序?為什麼是的,它被稱為 DNS 伺服器。在內部設置一個(想必你已經有一個),添加相關的 A 記錄,瞧!
編輯
這是一個想法,儘管可能比您希望的更複雜:使用 W2K8R2 RDS 的遠端桌面 IP 虛擬化功能與 BIND DNS 的“視圖”功能(我認為在這種情況下為匹配客戶端)來“呈現”根據他們的 RDS 會話 VIP,為每個開發人員提供不同的 A 記錄。請注意,我沒有使用遠端桌面 IP 虛擬化功能,而且我一生中從未見過 BIND DNS 伺服器,但我認為這對你有用。
http://www.oreillynet.com/pub/a/oreilly/networking/news/views_0501.html