国产精品久久久久久亚洲影视,性爱视频一区二区,亚州综合图片,欧美成人午夜免费视在线看片

意見箱
恒創(chuàng)運(yùn)營部門將仔細(xì)參閱您的意見和建議,必要時(shí)將通過預(yù)留郵箱與您保持聯(lián)絡(luò)。感謝您的支持!
意見/建議
提交建議

CDN如何獲取原始的ip c#

來源:佚名 編輯:佚名
2024-04-26 12:57:13
CDN在啟著兩個(gè)特點(diǎn):一是分步式的節(jié)點(diǎn),起到負(fù)載均衡、協(xié)調(diào)跨運(yùn)營商跨地域訪問的作用;二是節(jié)點(diǎn)上的緩存,這無疑可以減少源服務(wù)器的負(fù)載,節(jié)省帶寬。   正是由于CDN如上兩個(gè)特點(diǎn),也給網(wǎng)站的管理人員帶來了不少麻煩: 1. 靜態(tài)文件版本管理 CDN的緩存是用戶一般不可控的,且靜態(tài)資源(如:js、css、圖片等)的緩存時(shí)間非常長,雖然CDN提供商一般都會(huì)提供刷新緩存的方法,這種方法在少量更新時(shí)可以接受,但如果更新文件過多(如一次升級(jí)),則會(huì)非常麻煩??梢允褂?ldquo;靜態(tài)資源(JS、CSS、圖片)版本控制”說的,對靜態(tài)資源進(jìn)行管理,這樣每次升級(jí)時(shí)即省事又省心。 2. 啟用HTTP壓縮 HTTP壓縮是網(wǎng)頁優(yōu)化幾大方法中見效最大的一個(gè),啟用CDN后,HTTP壓縮的配置會(huì)比較麻煩。在做完成通常的啟用壓縮方法后,還要啟用壓縮對HTTP1.0、代理的支持,在IIS下配置如下: cscript adsutil.vbs set W3SVC/Filters/Compression/Parameters/HcNoCompressionForHttp10 false cscript adsutil.vbs set W3SVC/Filters/Compression/Parameters/HcNoCompressionForProxies false 做完上述配置后,通知CDN提供商,開通HTTP壓縮功能即可。 而我用的網(wǎng)宿CDN還有其特殊要求,他要求在響應(yīng)里增加一個(gè)HTTP Header: Vary: Accept-Encoding。只有有這個(gè)頭部的文件,才會(huì)接受壓縮。這個(gè)Header可以簡單地在IIS的站點(diǎn)屬性里添加。 3. 獲取客戶端真實(shí)IP 由于訪客不是直接訪問源服務(wù)器,跟源服務(wù)打交道的都是CDN的節(jié)點(diǎn)機(jī)器,所以在源服務(wù)器抓取到的IP都是節(jié)點(diǎn)IP。這對按ip來統(tǒng)計(jì)的瀏覽量、網(wǎng)站統(tǒng)計(jì)等模塊的影響會(huì)比較大。一般來說,CDN節(jié)點(diǎn)會(huì)以某種方式將源客戶端的IP傳遞給源服務(wù)器,就拿我用的網(wǎng)宿CDN來說,它是將源IP添加到了一個(gè)叫“Cdn-Src-Ip”的Http Header里,以C#語言為例,獲得客戶端真實(shí)IP的方式如下: //網(wǎng)宿的cdn是 String srcIp = Request.Headers["Cdn-Src-Ip"]; if(srcIp == null) { srcIp = Request.UserHostAddress; } //藍(lán)汛的是 HttpContext.Current.Request.ServerVariables["HTTP_CLIENT_IP"]; 以上內(nèi)容,根據(jù)不同的CDN提供商可能會(huì)有所不同,操作前最好咨詢自己的CDN提供商

  1. public static string GetUserIp
  2. {
  3. get
  4. {
  5. string userIP = "未獲取用戶IP";
  6. try
  7. {
  8. if (HttpContext.Current == null
  9. || HttpContext.Current.Request == null
  10. || HttpContext.Current.Request.ServerVariables == null)
  11. return "";
  12. string CustomerIP = "";
  13. //CDN加速后取到的IP
  14. CustomerIP = HttpContext.Current.Request.Headers["Cdn-Src-Ip"];
  15. if (!string.IsNullOrEmpty(CustomerIP))
  16. {
  17. return CustomerIP;
  18. }
  19. CustomerIP = HttpContext.Current.Request.ServerVariables["HTTP_X_FORWARDED_FOR"];
  20. if (!String.IsNullOrEmpty(CustomerIP))
  21. return CustomerIP;
  22. if (HttpContext.Current.Request.ServerVariables["HTTP_VIA"] != null)
  23. {
  24. CustomerIP = HttpContext.Current.Request.ServerVariables["HTTP_X_FORWARDED_FOR"];
  25. if (CustomerIP == null)
  26. 本網(wǎng)站發(fā)布或轉(zhuǎn)載的文章均來自網(wǎng)絡(luò),其原創(chuàng)性以及文中表達(dá)的觀點(diǎn)和判斷不代表本網(wǎng)站。
上一篇: Centos 如何安裝英文版寶塔面板 下一篇: 解決寶塔面板無法訪問文件夾的妙招輕松搞定