用nginx做反向代理時 通過設置讓后台真實服務器日志記錄客戶端的IP


  當我們用nginx做反向代理時,通常后端真實服務器記錄的訪問IP其實都是nginx的IP, 當我們要分析訪問日志的時候一般只能通過查看nginx的日志, 但是當網站並發量比較大的時候,每次訪問都要將記錄到nginx的日志中,這樣會加大nginx的壓力, 所以我們可以關閉nginx的訪問日志, 然后通過設置讓后端真實服務器來記錄客戶端的IP. 

 

配置如下: 

  1. 通過修改nginx的配置文件,使其將發送到后台服務器的請求頭部修改添加客戶端的IP , 並定義一個值.

[root@jenkins ~]# vim /etc/nginx/conf.d/linuxfan.conf
#在代理的location中添加
proxy_set_header X-Real-IP $remote_addr;
add_header X-Via $server_addr;    #在客戶端的響應報文頭部添加X-Via參數,其值為代理服務器的IP
[root@jenkins ~]# systemctl restart nginx

  

  2. 修改后端真實服務器的日志格式,以httpd為例

[root@zabbix ~]# vim /etc/httpd/conf/httpd.conf
LogFormat "%{X-Real-IP}i %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
[root@zabbix ~]# systemctl restart httpd

  

  3. 查看日志是否配置成功

  192.168.0.12就是客戶端的IP,設置成功


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM