1. 程式人生 > >Nginx負載均衡後Resin4獲取真實IP地址

Nginx負載均衡後Resin4獲取真實IP地址

 

Resin在加了Nginx負載均衡後Resin訪問日誌中得到的ip為Nginx的ip,不是客戶端的真實ip,需要修改resin的配置檔案cluster-default.xml(resin 4):

1. 修改配置Nginx
  在Nginx配置新增一個新的Header,用來儲存$remote_add,然後再Resin獲取記錄這個值。
Nginx:


server {
    listen 80;
    server_name www.xxxxx.com;
    location / {
        proxy_pass http://IP:81/;
        proxy_set_header X-Real-IP $remote_addr;
        }
}

 
   新增一個為X-Real-IP值為真實IP的header 資訊。
2. Resin配置
     Resin配置檔案cluster-default.xml中找到 <access-log> , 替換為如下資訊:

 <access-log path="log/access.log"
                 format='"%{X-Real-IP}i" %l %u %t "%r" %s %b "%{Referer}i" "%{User-Agent}i"'
                 rollover-period="1W"/>


3. 重啟nginx和Resin服務,access.log 日誌中,就可以看到真實的客戶端IP了。

這裡面參考了,官方文件 http://www.caucho.com/resin-4.0/admin/logging.xtp 裡面的 format patterns 設定。