nginx前端代理tomcat取真實客戶端IP

nginx前端代理tomcat取真實客戶端IP
2011年12月14日??nginx??暫無評論? 被圍觀 3,000 次+

??????? 使用Nginx作為反向代理時,Tomcat的日志記錄的客戶端IP就不在是真實的客戶端IP,而是Nginx代理的IP。要解決這個問題可以在Nginx配置一個新的Header,用來存儲$remote_add,然后再Tomcat獲取記錄這個值。

1.Nginx新增配置:

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

可以參見:http://wiki.nginx.org/NginxHttpProxyModule

其實就是新增了一個名為X-Real-IP值為真實客戶端IP的頭信息。

?

2.修改tomcat日志配置:(<host></host>中間)

<Valve className="org.apache.catalina.valves.AccessLogValve"? directory="logs"? prefix="tomcat_access_log." suffix=".txt"? pattern="%a %r %t %{X-Real_IP}i" resolveHosts="false"/> 

可以參見:http://www.docjar.org/docs/api/org/apache/catalina/valves/AccessLogValve.html

沒有Nginx這一層的時候直接用%a就可以獲得客戶端IP,現在我們得用%{X-Real-IP}i 來獲得真實的IP了。

nginx+(1…n)tomcat集群部署時,后端tomcat需要取得用戶的IP,這時通過 request.getRemoteAddr()取得的始終是127.0.0.1.


由于用戶請求經過nginx,ngigx轉發了請求到tomcat后,tomcat取得的始終是nginx的Ip,如果需要取得真實用戶IP,只需要在ngix上做些配置。


location / 下設置
? proxy_set_header X-Real-IP $remote_addr;
? proxy_set_header Host $host;
?


測試配置:./sbin/nginx -t -c conf/nginx.conf ?正確后重啟nginx.


Java代碼修改如下


out.println("X-Real-IP : " + request.getHeader("X-Real-IP") + "<br>");?


其中X-Real-IP即用戶真實IP

楊航收集技術資料,分享給大家




本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/388279.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/388279.shtml
英文地址,請注明出處:http://en.pswp.cn/news/388279.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

kubeadm安裝kubernetes 1.13.2多master高可用集群

1. 簡介 Kubernetes v1.13版本發布后&#xff0c;kubeadm才正式進入GA&#xff0c;可以生產使用,用kubeadm部署kubernetes集群也是以后的發展趨勢。目前Kubernetes的對應鏡像倉庫&#xff0c;在國內阿里云也有了鏡像站點&#xff0c;使用kubeadm部署Kubernetes集群變得簡單并且…

通才與專家_那么您準備聘請數據科學家了嗎? 通才還是專家?

通才與專家Throughout my 10-year career, I have seen people often spend their time and energy in passionate debates about what data science can deliver, and what data scientists do or do not do. I submit that these are the wrong questions to focus on when y…

ubuntu opengl 安裝

安裝相應的庫&#xff1a; sudo apt-get install build-essential libgl1-mesa-dev sudo apt-get install freeglut3-dev sudo apt-get install libglew-dev libsdl2-dev libsdl2-image-dev libglm-dev libfreetype6-dev 實例&#xff1a; #include "GL/glut.h" void…

分享一病毒源代碼,破壞MBR,危險!!僅供學習參考,勿運行(vc++2010已編譯通過)

我在編譯的時候&#xff0c;殺毒軟件提示病毒并將其攔截&#xff0c;所以會導致編譯不成功。 1>D:\c工程\windows\windows\MBR病毒.cpp : fatal error C1083: 無法打開編譯器中間文件:“C:\Users\lenovo\AppData\Local\Temp\_CL_953b34fein”: Permission denied 1> 1>…

HTTP請求錯誤400、401、402、403、404、405、406、407、412、414、500、501、502解析

【轉載】本文來自 chenxinchongcn 的CSDN 博客 &#xff0c;全文地址請點擊&#xff1a;https://blog.csdn.net/chenxinchongcn/article/details/54945998?utm_sourcecopy HTTP 錯誤 400 400 請求出錯 由于語法格式有誤&#xff0c;服務器無法理解此請求。不作修改&#xff0…

數據科學家 數據工程師_數據科學家實際上賺了多少錢?

數據科學家 數據工程師目錄 (Table of Contents) Introduction 介紹 Junior Data Scientist 初級數據科學家 Mid-Level Data Scientist 中級數據科學家 Senior Data Scientist 資深數據科學家 Additional Compensation 額外補償 Summary 摘要 介紹 (Introduction) The lucrativ…

Spring Cloud構建微服務架構-Hystrix監控面板

在Spring Cloud中構建一個Hystrix Dashboard非常簡單&#xff0c;只需要下面四步&#xff1a;愿意了解源碼的朋友直接求求交流分享技術 一零三八七七四六二六 創建一個標準的Spring Boot工程&#xff0c;命名為&#xff1a;hystrix-dashboard。 編輯pom.xml&#xff0c;具體依賴…

Google 地圖 API 參考

楊航收集技術資料&#xff0c;分享給大家 Google 地圖 API 參考 Google 地圖 API 現在與 Google AJAX API 載入器集成&#xff0c;后者創建了一個公共命名空間&#xff0c;以便載入和使用多個 Google AJAX API。該框架可讓您將可選 google.maps.* 命名空間用于當前在 Google …

spotify歌曲下載_使用Spotify數據預測哪些“ Novidades da semana”歌曲會成為熱門歌曲

spotify歌曲下載TL; DR (TL;DR) Spotify is my favorite digital music service and I’m very passionate about the potential to extract meaningful insights from data. Therefore, I decided to do this article to consolidate my knowledge of some classification mod…

Hook技術之Hook Activity

一、Hook技術概述 Hook技術的核心實際上是動態分析技術&#xff0c;動態分析是指在程序運行時對程序進行調試的技術。眾所周知&#xff0c;Android系統的代碼和回調是按照一定的順序執行的&#xff0c;這里舉一個簡單的例子&#xff0c;如圖所示。 對象A調用類對象B&#xff0c…

(第三周)周報

此作業要求https://edu.cnblogs.com/campus/nenu/2018fall/homework/2143 1.本周PSP 總計&#xff1a;1422 min 2.本周進度條 (1)代碼累積折線圖 (2)博文字數累積折線圖 4.PSP餅狀圖 轉載于:https://www.cnblogs.com/gongylx/p/9761852.html

功能測試代碼python_如何使您的Python代碼更具功能性

功能測試代碼pythonFunctional programming has been getting more and more popular in recent years. Not only is it perfectly suited for tasks like data analysis and machine learning. It’s also a powerful way to make code easier to test and maintain.近年來&am…

layou split 屬性

layou split&#xff1a;true - 顯示側分欄 轉載于:https://www.cnblogs.com/jasonlai2016/p/9764450.html

BZOJ4503:兩個串(bitset)

Description 兔子們在玩兩個串的游戲。給定兩個字符串S和T&#xff0c;兔子們想知道T在S中出現了幾次&#xff0c;分別在哪些位置出現。注意T中可能有“?”字符&#xff0c;這個字符可以匹配任何字符。Input 兩行兩個字符串&#xff0c;分別代表S和TOutput 第一行一個正整數k&…

C#Word轉Html的類

C#Word轉Html的類/**//******************************************************************** created: 2007/11/02 created: 2:11:2007 23:13 filename: D:C#程序練習WordToChmWordToHtml.cs file path: D:C#程序練習WordToChm file bas…

分庫分表的幾種常見形式以及可能遇到的難題

前言 在談論數據庫架構和數據庫優化的時候&#xff0c;我們經常會聽到“分庫分表”、“分片”、“Sharding”…這樣的關鍵詞。讓人感到高興的是&#xff0c;這些朋友所服務的公司業務量正在&#xff08;或者即將面臨&#xff09;高速增長&#xff0c;技術方面也面臨著一些挑戰。…

iOS 鑰匙串的基本使用

級別&#xff1a; ★☆☆☆☆ 標簽&#xff1a;「鑰匙串」「keychain」「iOS」 作者&#xff1a; WYW 審校&#xff1a; QiShare團隊 前言 &#xff1a; 項目中有時會需要存儲敏感信息&#xff08;如密碼、密鑰等&#xff09;&#xff0c;蘋果官方提供了一種存儲機制--鑰匙串&a…

線性回歸和將線擬合到數據

Linear Regression is the Supervised Machine Learning Algorithm that predicts continuous value outputs. In Linear Regression we generally follow three steps to predict the output.線性回歸是一種監督機器學習算法&#xff0c;可預測連續值輸出。 在線性回歸中&…

Spring Boot MyBatis配置多種數據庫

mybatis-config.xml是支持配置多種數據庫的&#xff0c;本文將介紹在Spring Boot中使用配置類來配置。 1. 配置application.yml # mybatis配置 mybatis:check-config-location: falsetype-aliases-package: ${base.package}.modelconfiguration:map-underscore-to-camel-case: …

小米盒子4 拆解圖解_我希望當我開始學習R時會得到的盒子圖解指南

小米盒子4 拆解圖解Customizing a graph to transform it into a beautiful figure in R isn’t alchemy. Nonetheless, it took me a lot of time (and frustration) to figure out how to make these plots informative and publication-quality. Rather than hoarding this …