中文久久,精品伦精品一区二区三区视频,美国AV一区二区三区,国产免费小视频

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

CDN如何獲取原始的ip c#

來(lái)源:佚名 編輯:佚名
2024-04-26 12:57:13
CDN在啟著兩個(gè)特點(diǎn):一是分步式的節(jié)點(diǎn),起到負(fù)載均衡、協(xié)調(diào)跨運(yùn)營(yíng)商跨地域訪問(wèn)的作用;二是節(jié)點(diǎn)上的緩存,這無(wú)疑可以減少源服務(wù)器的負(fù)載,節(jié)省帶寬。   正是由于CDN如上兩個(gè)特點(diǎn),也給網(wǎng)站的管理人員帶來(lái)了不少麻煩: 1. 靜態(tài)文件版本管理 CDN的緩存是用戶一般不可控的,且靜態(tài)資源(如:js、css、圖片等)的緩存時(shí)間非常長(zhǎng),雖然CDN提供商一般都會(huì)提供刷新緩存的方法,這種方法在少量更新時(shí)可以接受,但如果更新文件過(guò)多(如一次升級(jí)),則會(huì)非常麻煩??梢允褂?ldquo;靜態(tài)資源(JS、CSS、圖片)版本控制”說(shuō)的,對(duì)靜態(tài)資源進(jìn)行管理,這樣每次升級(jí)時(shí)即省事又省心。 2. 啟用HTTP壓縮 HTTP壓縮是網(wǎng)頁(yè)優(yōu)化幾大方法中見(jiàn)效最大的一個(gè),啟用CDN后,HTTP壓縮的配置會(huì)比較麻煩。在做完成通常的啟用壓縮方法后,還要啟用壓縮對(duì)HTTP1.0、代理的支持,在IIS下配置如下: cscript adsutil.vbs set W3SVC/Filters/Compression/Parameters/HcNoCompressionForHttp10 false cscript adsutil.vbs set W3SVC/Filters/Compression/Parameters/HcNoCompressionForProxies false 做完上述配置后,通知CDN提供商,開(kāi)通HTTP壓縮功能即可。 而我用的網(wǎng)宿CDN還有其特殊要求,他要求在響應(yīng)里增加一個(gè)HTTP Header: Vary: Accept-Encoding。只有有這個(gè)頭部的文件,才會(huì)接受壓縮。這個(gè)Header可以簡(jiǎn)單地在IIS的站點(diǎn)屬性里添加。 3. 獲取客戶端真實(shí)IP 由于訪客不是直接訪問(wèn)源服務(wù)器,跟源服務(wù)打交道的都是CDN的節(jié)點(diǎn)機(jī)器,所以在源服務(wù)器抓取到的IP都是節(jié)點(diǎn)IP。這對(duì)按ip來(lái)統(tǒng)計(jì)的瀏覽量、網(wǎng)站統(tǒng)計(jì)等模塊的影響會(huì)比較大。一般來(lái)說(shuō),CDN節(jié)點(diǎn)會(huì)以某種方式將源客戶端的IP傳遞給源服務(wù)器,就拿我用的網(wǎng)宿CDN來(lái)說(shuō),它是將源IP添加到了一個(gè)叫“Cdn-Src-Ip”的Http Header里,以C#語(yǔ)言為例,獲得客戶端真實(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)載的文章均來(lái)自網(wǎng)絡(luò),其原創(chuàng)性以及文中表達(dá)的觀點(diǎn)和判斷不代表本網(wǎng)站。
上一篇: Centos 如何安裝英文版寶塔面板 下一篇: 解決寶塔面板無(wú)法訪問(wèn)文件夾的妙招輕松搞定