1. 程式人生 > >apache 日誌中記錄代理IP以及真實客戶端IP

apache 日誌中記錄代理IP以及真實客戶端IP

說明:我用的是nginx反向代理,實際上就是在logformat中新增%{X-FORWARDED-FOR}i,下面為實驗過程

一、下面是我的nginx反向代理的配置檔案內容

nginx主配置主配置檔案

[root@nginx-server conf]# cat nginx.conf
worker_processes  1;
events {
    worker_connections  1024;
}
http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    keepalive_timeout  65
; upstream lb_server { server 192.168.17.10; server 192.168.17.11; } include extra/lbserver.conf; }

lbserver配置檔案

[[email protected] conf]# cat extra/lbserver.conf 
server {
    location / {
        proxy_pass http://lb_server;
        proxy_set_header Host      $host;
        proxy_set
_header X-Forwarded-For $remote_addr; } }

二、修改前

沒有修改訪問日誌格式前的apache配置檔案

<IfModule log_config_module>
    LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
    LogFormat "%h %l %u %t \"%r\" %>s %b" common
    <IfModule logio_module>
      LogFormat "%h
%l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %I %O"
combinedio </IfModule> CustomLog "logs/access_log" common </IfModule>

發現不能記錄訪問者的ip

[[email protected] ~]# tail -f /application/apache/logs/www-access_log 
192.168.17.13 - - [04/Dec/2016:13:40:29 +0800] "GET / HTTP/1.0" 200 35
192.168.17.13 - - [04/Dec/2016:13:40:31 +0800] "GET / HTTP/1.0" 200 35
192.168.17.13 - - [04/Dec/2016:13:40:34 +0800] "GET / HTTP/1.0" 200 35
  2.168.17.13 - - [04/Dec/2016:13:40:36 +0800] "GET / HTTP/1.0" 200 35
192.168.17.13 - - [04/Dec/2016:13:40:38 +0800] "GET / HTTP/1.0" 200 35
192.168.17.13 - - [04/Dec/2016:13:56:23 +0800] "GET / HTTP/1.0" 200 35
192.168.17.13 - - [04/Dec/2016:13:56:25 +0800] "GET / HTTP/1.0" 200 35
192.168.17.13 - - [04/Dec/2016:13:56:27 +0800] "GET / HTTP/1.0" 200 35
192.168.17.13 - - [04/Dec/2016:13:56:29 +0800] "GET / HTTP/1.0" 200 35
192.168.17.13 - - [04/Dec/2016:13:56:31 +0800] "GET / HTTP/1.0" 200 35

三、修改後

修改過訪問日誌格式後的apache配置檔案

<IfModule log_config_module>
    LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
    LogFormat "%h %l %u %t \"%r\" %>s %b %{X-FORWARDED-FOR}i" common
    <IfModule logio_module>
      LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %I %O" combinedio
    </IfModule>
    CustomLog "logs/access_log" common
</IfModule>

修改後再次訪問測試

[[email protected] ~]# > /application/apache/logs/www-access_log        
[[email protected] ~]# tail -f /application/apache/logs/www-access_log 
192.168.17.13 - - [04/Dec/2016:14:04:49 +0800] "GET / HTTP/1.0" 200 35 192.168.17.199
192.168.17.13 - - [04/Dec/2016:14:04:51 +0800] "GET / HTTP/1.0" 200 35 192.168.17.199
192.168.17.13 - - [04/Dec/2016:14:04:53 +0800] "GET / HTTP/1.0" 200 35 192.168.17.199
192.168.17.13 - - [04/Dec/2016:14:04:55 +0800] "GET / HTTP/1.0" 200 35 192.168.17.199
192.168.17.13 - - [04/Dec/2016:14:04:57 +0800] "GET / HTTP/1.0" 200 35 192.168.17.199
192.168.17.13 - - [04/Dec/2016:14:04:59 +0800] "GET / HTTP/1.0" 200 35 192.168.17.199
192.168.17.13 - - [04/Dec/2016:14:05:01 +0800] "GET / HTTP/1.0" 200 35 192.168.17.199
192.168.17.13 - - [04/Dec/2016:14:05:03 +0800] "GET / HTTP/1.0" 200 35 192.168.17.199
192.168.17.13 - - [04/Dec/2016:14:05:05 +0800] "GET / HTTP/1.0" 200 35 192.168.17.199

附錄:我在客戶機上的測試指令碼

[root@myblog ~]# for n in `seq 20`;do curl www.amsilence.com;sleep 1;done;

注意:如果你在虛擬主機上面引用什麼日誌格式,就需要修改對應日誌格式上的引數,不能改到別的日誌格式上面

相關推薦

apache 日誌記錄代理IP以及真實客戶IP

說明:我用的是nginx反向代理,實際上就是在logformat中新增%{X-FORWARDED-FOR}i,下面為實驗過程 一、下面是我的nginx反向代理的配置檔案內容 nginx主配置主配置檔案 [root@nginx-server conf]#

Nginx在多層代理下獲取真實客戶IP地址

最近在研究nginx中如何獲取真實客戶端IP的方法。眾所周知,在編譯Nginx時,可通過新增http_realip_module模組來獲取真實客戶端IP地址。何為真實IP地址呢?請看下圖,既獲取到的真實客戶端IP是101,既不是正向代理服的104,也不是反向代理的105。

代理的 Nginx 限制真實客戶IP訪問問題

一、背景–當前問題 1、正常情況,nginx 限制ip訪問方式: # nginx http\server 塊中配置 allow 192.168.6.0/16; # allow all; deny 1.2.3.4/32; # deny all;

ABP vNext 審計日誌獲取真實客戶IP

![](https://img2020.cnblogs.com/blog/2193154/202101/2193154-20210111101509581-9075912.png) ## 背景 在使用ABP vNext時,當需要記錄審計日誌時,我們按照[https://docs.abp.io/zh-Hans/

伺服器獲取真實客戶 IP

0x01 先查個問題 測試環境微信支付通道提示網路環境未能通過安全驗證,請稍後再試,出現這種情況一般首要 想到可能是雙方網路互動中微信方驗參與我們出現不一致,翻了下手冊確定是這類問題開始排查環節 可能獲取真實IP方式錯誤 getenv('HTTP_CLIENT_IP') g

代理http請求獲取客戶IP

外界流傳的JAVA/PHP伺服器端獲取客戶端IP都是這麼取的: 虛擬碼: 1)ip = request.getHeader("X-FORWARDED-FOR ") 2)如果該值為空或陣列長度為0或等於"unknown",那麼: ip = request.getHeader("

【ASP介面開發】獲取訪問URL的真實客戶IP地址

目前專案中需要獲取到訪問介面的客戶端的真實IP,暫時用此做一個簡單的認證。在網上搜了個還算靠譜的,特做下記錄: public strIP if strIP="" then strIP="" '如果沒有定義 strIP 全域性變數則定義它 function getIP()

在上遊服務器日誌記錄訪問IP

nginx 代理在nginx代理服務器的/etc/nginx/conf.d/中建立nginx-2.conf的子配置文件,內容如下: 第一行和 // 後為解釋內容 編輯完成之後測試代碼: nginx -t 顯示成功重啟nginx服務 在Apache上遊服務器中修改http主配置文件(/etc/httpd/

php獲取nginx代理後的,客戶真實IP

一般來說,PHP獲取IP用的是$_SERVER[‘REMOTE_ADDR’],但是經過代理後,這個方式獲取到的是代理伺服器的ip,不符合要求!如果需要獲取真實IP該做什麼呢? 1.修改nginx配置:p

Nginx 日誌記錄cookie

nginx因開發要求,在Nginx日誌中需要記錄Cookie信息,以便開發查詢系統發生了什麽,我的日誌是以json格式顯示,需要在nginx.conf文件中添加如下信息:1,#vim nginx.confhttp { include mime.types; default_type

nginx反向代理web服務器記錄客戶ip地址

spa gin nginx反向代理 lan form https 記錄 客戶端訪問 use nginx在做反向代理的時候,後端的nginx web服務器log中記錄的地址都是反向代理服務器的地址,無法查看客戶端訪問的真實ip。 在反向代理服務器的nginx.conf配置文件

JAVA經過nginx反向代理獲取客戶ip並獲取相關坐標等信息

IT urn 輸出 代理 nginx 高德 AD color javascrip 關於搜狐新浪ip庫查詢接口的使用 直接輸出訪客ip及所在城市: <script src="http://pv.sohu.com/cityjson?ie=utf-8" >&l

Apache日誌記錄訪問靜態檔案,訪問日誌切割,靜態元素過期時間設定

Apache配置不記錄訪問靜態檔案的日誌 網站大多元素為靜態檔案,如圖片、css、js等,這些元素可以不用記錄 vhost原始配置 <VirtualHost *:80> ServerAdmin [email protected]

請求方報超時,服務日誌記錄的時間卻少有超時

請求方報超時的比例大概有4% 他們設定的超時時間是500ms 但是我們統計日誌,服務時間超過500ms的日誌很少 原因是什麼呢?   超時原因分析: 1、請求內容太長 根據請求方超時日誌, 大多數query的長度都是1w以上,這些query我手動請求,響應時

讀取系統"安全"日誌的失敗登入嘗試 + 新增攻擊者IP到防火牆策略

Private Sub btnRead_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bt

在v$session表記錄客戶IP

我們在查詢v$session表時,只能看到客戶端的機器名,而無法看到客戶機的IP地址。要想檢視IP地址可以建立一個數據庫級別的觸發器,在成功使用者登陸資料庫後將客戶的IP地址寫入v$session的client_info欄位中。 按如下方法建立這個觸發器(trigger):

c#獲取伺服器IP客戶IP以及Request.ServerVariables詳細說明

客戶端ip: Request.ServerVariables.Get(“Remote_Addr”).ToString(); 客戶端主機名: Request.ServerVariables.Get(“Remote_Host”).ToString();

使用python找出nginx訪問日誌訪問次數最多的10個ip排序生成網頁

#encoding=utf-8 # 找到日誌中的top 10,日誌格式如下 #txt = '''100.116.167.9 - - [22/Oct/2017:03:55:53 +0800] "HEAD /check HTTP/1.0" 200 0 "-" "-" "-" ut = 0.001''' #n

nginx做反向代理時,配置其讓tomcat的日誌獲取客戶ip

在nginx的配置檔案nginx.conf中配置,加上proxy_set_header X-real-IP $remote_addr。 server { listen 80; server_nam

通過nginx反向代理,Tomcat獲取真實客戶IP而非伺服器IP

通過nginx反向代理,就獲取不到真實ip,是獲取的nginx的ip,要得到真實的IP要進行配置Nginx的配置檔案: nginx.conf proxy_set_header   X-Real-IP $remote_addr; 例如: ##################