前言#
在使用 CDN 時,Nginx 中的日誌會全是 CDN 的節點 IP,很不方便我們 Debug 之類的
為了解決這個問題,我們可以在 Nginx 的配置文件中自定義 Log Format 來實現在日誌中顯示訪客的真實 IP
開始#
首先你要確定自己的 CDN 在響應頭中哪一項包含了使用者的真 IP
具體請參考上一篇文章
然後我們打開 Nginx 的主配置文件,找到 http {} 這一塊
找一個你喜歡的地方插入這一串內容
log_format main '$http_cf_connecting_ip / $remote_addr - [$time_local] "$request" $status $body_bytes_sent "$http_referer" "$http_user_agent"';
在這一串代碼中,main 表示自定義格式的名稱,http_cf_connecting_ip 換成你自己的 CDN 帶有使用者真 IP 的 header,要帶 http_,然後往後的 Log 會以以下格式輸出
使用者 IP / 節點 IP - [訪問時間] "請求方式及目錄" 響應代碼 發送出去的數據包字節大小 來源 Url 使用者 UA
然後找到站點配置的 http {} 這一塊
找到你之前的 access_log
參數,在分號的前面加上 main
之後該站點的日誌都會以你自定義的格式輸出
結語#
這樣問題就解決了,如果你覺得我寫的文章對你有幫助,
歡迎點個讚,適當打賞,評論區留言你的看法喵~
此文由 Mix Space 同步更新至 xLog
原始鏈接為 https://blog.nekorua.com/posts/maintain/16.html