使用Nginx作為反向代理時,Tomcat的日誌記錄的客戶端IP就不在是真實的客戶端IP,而是Nginx代理的IP。要解決這個問題可以在Nginx配置一個新的Header源碼天空
,用來存儲$remote_add,然後再Tomcat獲取記錄這個值。
㈡ nginx 日誌格式的$http_x_forwarded_for 無法紀錄訪問ip,得到的一條小扛'-',這是為什麼呢,求解答
直接訪問後端伺服器,或者反向代理前端伺服器沒有設置這個值,必須要設置才有值,否則就是"-"。
試試在前端nginx配置server{}塊中加入:
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
㈢ 腳本統計nginx日誌訪問IP次數最多的前10名
awk '{c[$1]++}END{for(i in c) print i,c[i]}' | sort -k2 -nr | head
忘了日誌中ip的位置了.具體位置你可以自己更改一下.沒有測試,不確定是否正確
㈣ nginx access日誌ip是根據什麼記錄的
IP為訪問者的IP
這個IP不一定是訪問者真實IP,如果訪問者使用了代理,則這個IP可能為代理IP
如果使用了CDN,那麼IP也可能是某個CDN節點的IP
㈤ 如何實現nginx代理的節點訪問日誌記錄客戶的ip而不是代理的ip
非透明代理在轉發請求的時候,會將上游IP記錄在http的header中
一般叫做x-forwarded-for
記錄日誌時,可以將這個頭部的信息寫在日誌中
透明代理本身就是透明的,不會留下原始IP地址,故無法記錄
㈥ linux如何查詢nginx訪問最多的ip
通過web的訪問日誌查詢統計下條數
㈦ nginx日誌,統計不同ip的訪問,按訪問量排列,用一條linux命令怎麼寫
cataccess.log|egrep-o"([0-9]{1,3}.){3}[0-9]{1,3}"|sort-nr|uniq-c|sort-nr
㈧ 用戶訪問經過cdn,怎麼才能在nginx的日誌中 要拿到用戶ip
第一、修改Nginx.conf文件
/usr/local/nginx/conf/
一般是在這個目錄中有一個nginx.conf文件,我們需要添加http中下面腳本:
log_format access '$http_x_forwarded_for - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" ';
設置日誌格式,如果不想理解什麼意思的,直接加入就是了,我測試是沒有問題。
第二、修改當前站點格式日誌
/usr/local/nginx/conf/vhost/
檢查當前站點的配置文件上面目錄,然後修改
access_log /www/wwwlogs/itbulu.com_nginx.log access;
紅色部分是我們需要修改/添加的。
第三、重啟Nginx
service nginx reload
重啟Nginx,如果看到都是Success,就表示nginx配置沒有問題。
總結,這里我們很多朋友可能不會用同樣的Nginx環境,但是大概意思都差不多,我們針對性修改就可以。這樣,我們在使用CDN加速的同時,網站日誌中也可以看到真實的IP訪問記錄。
㈨ 統計並排序nginx日誌里的某個域名哪個ip訪問最多
catXXXXXX.log|awk'{print$1}'|sort|uniq-c|sort-k1,1nr
㈩ nginx訪問日誌求解 最後面的IP是什麼
查詢現有的NGinx Log_format 格式 。其中
代理伺服器會在 X-Forwarded-For 頭追加自己的ip , 它們用逗號分隔 ,一般第一個會是真實iP ,其他都是代理節點的 iP