TFS應用層服務器獲取F5用戶的真實IP地址(高可用性)


當用戶數量達到一定級別(例如2千)以上,為保證TFS系統的持續服務,最大程度減少因系統宕機對研發團隊的影響,系統管理員一般會考慮應用層和數據庫層的高可用性方案。

在應用層的高可用性方案中,目前比較常見的是采用F5 (www.f5.com)設備,將TFS的多個節點服務器納入統一調配方案中,在多節點之間協調請求資源,實現負載均衡分配;同時,當任一節點服務器出現故障時,F5系統會自動將終端用戶的http請求轉發給其他應用層服務器。

在F5環境中部署TFS系統時,按照F5系統的默認配置,F5轉發給TFS系統的http數據包中的源IP地址為F5服務器的地址,而不是最終用戶的真實IP地址,在IIS的日志中,你會看到所有的源IP地址為F5的地址,如下圖:

image

Figure 1 – IIS Logs

這種配置,對於需要排查問題的時候,給系統管理員帶來了極大的不便,系統管理員無法跟蹤到用戶的真實IP地址。

通過查閱F5資料https://devcentral.f5.com/articles/x-forwarded-for-log-filter-for-windows-servers,發現可以通過配置X-Forwarded-For的日志過濾,在http數據包中增加字段信息,記錄終端用戶的原始(真實)IP信息。

我們這里不記錄如何在F5服務器端的配置X-Forwarded-For字段,只記錄如何在TFS的應用層服務器上IIS日志中增加X-Forwarded-For字段。

在IIS中增加對應字段,首先要確保的IIS版本在8.5或更新的版本,支持增強的日志Enhanced Logging for IIS 8.5,https://www.iis.net/learn/get-started/whats-new-in-iis-85/enhanced-logging-for-iis85)功能,否則你還需要二外的配置(例如下載F5的ISAPI過濾器,http://devcentral.f5.com/downloads/codeshare/F5XForwardedFor.zip)。

下面已圖示的方式介紹IIS中增加F5中傳入的額外字段:

1. 已管理員身份打開IIS管理器

2. 在左側窗口中選擇Team Foundation Server站點,右側窗口中選擇日志按鈕

image

3. 在日志頁面中,選擇“選擇字段…”按鈕,在彈出的窗口中點擊“添加字段”,輸入在F5中新增的字段“X-FORWARDED-FOR”,並保存設置。

image

4. IIS會在系統中新建一個以“_x”結尾的同名日志文件,文件中記錄下了F5中傳入的用戶源IP地址

image

通過上面的設置,我們在IIS的日志文件中可以獲得終端用戶的真實IP,這對跟蹤數據請求的來源和分析問題原因有非常大的幫助。

【常見問題】

1. 修改IIS配置以后,可能導致瀏覽器訪問出現500錯誤,此時重啟TFS Job Agent服務即可

2. 在TFS2013上可能出現用戶權限錯位的現象,即A用戶登錄成了B用戶,需要清除服務器緩存,或者升級TFS系統到2015或2017.

--

http://www.cnblogs.com/danzhang/  ALM MVP 張洪君

-


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM