egg.js 獲取客戶端真實ip

前言:在使用egg.js的時候,一般會開node服務,然後使用nginx代理我們egg.js的接口,因此產生了egg.js獲取的ip地址並不是客戶端真實ip,而是拿到的是nginx 的地址。故需要兩點:

  1. 配置egg.js
  2. 配置nginx

1.配置egg.js

路徑 config/config.default.js

# 注意,開啓此模式後,應用就默認自己處於反向代理之後,
# 會支持通過解析約定的請求頭來獲取用戶真實的 IP,協議和域名。
# 如果你的服務未部署在反向代理之後,請不要開啓此配置,以防被惡意用戶僞造請求 IP 等信息。
config.proxy = true;

2. 配置nginx

location / {
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Real-Port $remote_port;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
	proxy_pass http://127.0.0.1:81;
}

在代理前加上如上三條即可。詳解請參考,鳴謝!!!

3. 獲取ip

獲取ip就就簡單了

this.ctx.request.ip

獲取ip並完成存儲ip請,傳送門

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章