啟用CDN後網站取得使用者真實IP:Cloudflare CDN真實IP位址(Nginx,Apache)

近期在其云否維護客戶的網站時,客戶要求屏蔽國外IP的訪問,因為從日誌來看攻擊的IP大部分都是來自國外,並且自己的目標用戶為國內,所以只允許國內的IP訪問網站可阻止絕大多數的CC和DDoS攻擊。實際測試後,發現效果還是不錯,攻擊想再次攻擊成本增加了不少。

不過,隨後發現了一個問題,就是使用了Cloudflare CDN後,網站取得到的IP位址都是Cloudflare的CDN節點的,不能得到真實使用者的IP位址,防禦效果大大折扣。還好Cloudflare已經為我們想到這一點了,將訪客的 IP 位址包含在  X-Forwarded-For 標頭和 CF-Connecting-IP 標頭。

有了 X-Forwarded-For 標頭,如果是Nginx可以使用ngx_http_realip_module模組,如果是Apache,則可以使用mod_remoteip模組來取得使用者的真實IP。本篇文章就來分享如何編譯和啟用ngx_http_realip_module模組和mod_remoteip模組來取得使用者的真實IP位址。

自建CDN加速-Nginx反向綁定,快取加速,自動更新快取和取得真實IP

雖然現在部落格放在阿里雲香港CN2 VPS主機上,電信由於走的是CN2線路,所以訪問速度會比較快(不過也收到過電信的朋友回饋說有訪問慢的(⊙﹏⊙))。而聯通、行動用戶訪問起來會比較慢了,尤其是晚高峰期不少朋友說根本無法打開。

而從官方的公告來看,阿里雲香港CN2 VPS也確實遭遇過聯通線路或電信線路節點出現問題,導致整個機房存取狀況。當然,阿里雲自然會把「鍋子」甩給營運商。之前也一段時間聯通用戶訪問阿里雲香港VPS就是繞道日本或其它地方。

當初從Kdatacenter韓國VPS搬家到阿里雲香港VPS,一是覺得阿里雲香港VPS確實便宜,吸引力夠大;二是CN2線路感覺可能會不錯,至少比美國線路會快不少。現在看來,除了電信用戶訪問會順暢些,其它的運營商的用戶會時不時地出點問題。

為了解決這個問題,自然想到的就是為網站做CDN加速。國內的VPS沒有BA號自然不能使用,於是找到韓國VPS利用Nginx反向-代-理的方法,將移動、聯通用戶的訪問請求轉到CDN伺服器上,這樣可以最大限度地加快網站訪問速度。

訂閱@標題