需求:有一台伺服器需要在ltm上面對映乙個位址,並且控制僅訪問其某乙個目錄,不能訪問其他目錄。
環境:ltm以旁路方式部署,配置vip時必須使用snat。
分析一:
由於只有一台伺服器,所以簡單分析就是針對該vip的訪問直接跳轉到該伺服器的這個頁面url,並且可以不用呼叫pool。
所以配置如下:
virtual url_80_vs
rule rd2url_irule
}測試一:
配置完成後在外網本機(12.1.1.1)進行測試,發現始終訪問不到該url。從ie上看出已經進行了跳轉,但是在伺服器上tcpdump發現竟然是源位址竟然是12.1.1.1,而不是ltm的snat後的位址。也就是說ltm根本就沒有執行snat動作,而是直接進行跳轉。如此分析後,修改了一下irule如下:
rule rd2url_irule
}如此進行測試依然不能進行訪問。而後得出結論:ltm在進行http的跳轉如果不呼叫pool的話是不會進行snat動作的。
分析二:
於是換乙個思路進行分析:
要讓該vip呼叫pool,從而執行snat動作。而只允許訪問某乙個url頁面,那irule寫成這樣即可了:
rule rd2url_irule }}
並且在virtual上新增相應的pool。
測試二:
然後進行測試,發現訪問是正常了,其他需求的都能滿足了,但是其中的卻顯示不出來,全是x。這點需要諮詢廠商。
分析三:
在irule中很少使用not的,所以我再換乙個irule試試:
rule rd2url_irule
elseif }}
virtual的配置不變。
測試三:
這下完全正常了,訪問控制的需求也滿足了,也能正常顯示。但是完全是根據該url不是test.php打頭來編制的,也就是說有其他的基於test.php的url需要放通別人訪問的話就又要新增reject的rule了。
總結:1,ltm在進行http的跳轉如果不呼叫pool的話是不會進行snat動作的;
2,在irule中使用not進行判斷時,顯示不出來;這點需要諮詢技術達人;
3,在明確需求後,分析問題應該多元化,不能拘泥於一種思路。
乙個url完整的訪問過程
乙個url完整的訪問過程 iii.資源路徑 question 554991 如果網路位址不是ip位址通過dns網域名稱解析將該系統解析成ip位址 a 開啟瀏覽器,輸入乙個網域名稱 電腦會發出乙個dns請求到本地的伺服器,本地dns服務一般都是你的 網路接入服務商提供,b 查詢www.163.com ...
乙個Restful Api的訪問控制方法
分類 演算法研究 最近在做的兩個專案,都需要使用restful api,介面的安全性和訪問控制便成為乙個問題,看了一下別家的api訪問控制辦法。1 api請求 url 的後面加上乙個accesstoken 2 http頭裡面加乙個欄位accesstoken 1 為每個應用頒發乙個賬號 user 和密...
訪問URL時傳入另乙個URL作為引數
原文 這種情況下,d 4 這個引數會被當做是訪問 login.html 時的引數,而不是 device.html 的引數。解決辦法 對url 引數內容進行加碼,如下 後端獲取的時候再使用 unescape 進行解碼,就能拿到完整的路徑及引數了 but,對於已經發布版本的專案來說,不能修改後端 咋整?...