1. Nginx給客戶返回的是自身ip嗎
一般情況下,Nginx 會將自己的 IP 地址作為伺服器的地址返回給客戶端。這是因為客戶端通過域名或者IP地址訪問Nginx伺服器時,Nginx會接收到客戶端的請求,然後將請求轉發派緩段到後端伺服器進行處理,並將後端伺服器處理後的響應返回給客戶端。在這個塵譽過程中,客戶端無法直接訪問後端伺服器,而是通過Nginx伺服器哪桐進行轉發。因此,Nginx會將自己的IP地址作為伺服器的地址返回給客戶端。
當然,如果您在Nginx配置中指定了proxy_set_header指令,可以修改返回給客戶端的伺服器地址。例如,您可以使用以下指令將伺服器地址設置為指定的IP地址:
```
proxy_set_header Host your_server_ip;
```
這樣,Nginx就會將your_server_ip作為伺服器的地址返回給客戶端。
2. nginx默認文件下載地址
Windows系統下載安裝Nginx以及host文件的介紹
1. Nginx的簡單介紹
Nginx功能豐富,可作為HTTP伺服器,也可作為反向代理伺服器,郵件(IMAP/POP3)代理伺服器。Nginx佔用內存少,並發能力強。
1.1 Nginx的安裝
Nginx下載地址:http://nginx.org/en/download.html
這里選擇了Windows的1.19.4版本
下載完成後解壓壓縮包
接下來測試一下是否能正常運行
雙擊nginx.exe打開或者根目錄輸入cmd打開輸入命令,會發現有個窗口閃一下
1.啟動命令 start nginx
2.重啟命令 nginx -s reload (啟動過才能輸入重啟命令)
3.停止命令 nginx -s stop
1
2
3
1
2
3
nginx啟動後,會多出兩個進程,其中占內存大的為主進程,主要為用戶提供反向代理服務;其中占內存小的為守護進程,是為了主進程意外關閉的。所以在關閉Nginx時需要先結束守護進程才能關閉主進程。
測試是否能正常使用
瀏覽器輸入localhost會出現歡迎界面表示成功。
1.2 Nginx配置文件說明
Nginx伺服器的基礎配置和默認配置都在這里–>打開conf文件夾下的nginx.conf文件
下面簡單說明一下配置文件
########### 每個指令必須有分號結束。##################
user administrator administrators; #配置用戶或者組,默認為nobody nobody。#worker_processes 2; #允許生成的進程數,默認為1
#pid /nginx/pid/nginx.pid; #指定nginx進程運行文件存放地址
error_log log/error.log debug; #制定日誌路徑,級別。這個設置可以放入全局塊,http塊,server塊,級別以此為:debug|info|notice|warn|error|crit|alert|emerg
events {
accept_mutex on; #設置網路連接序列化,防止驚群現象發生,默認為on
multi_accept on; #設置一個進程是否同時接受多個網路連接,默認為off
#use epoll; #事件驅動模型,select|poll|kqueue|epoll|resig|/dev/poll|eventport
worker_connections 1024; #最大連接數,默認為512
}
http {
include mime.types; #文件擴展名與文件類型映射表
default_type application/octet-stream; #默認文件類型,默認為text/plain
#access_log off; #取消服務日誌
log_format myFormat '$remote_addr–$remote_user [$time_local] $request $status $body_bytes_sent $http_referer $http_user_agent $http_x_forwarded_for'; #自定義格式
access_log log/access.log myFormat; #combined為日誌格式的默認值
sendfile on; #允許sendfile方式傳輸文件,默認為off,可以在http塊,server塊,location塊。
sendfile_max_chunk 100k; #每個進程每次調用傳輸數量不能大於設定的值,默認為0,即不設上限。
keepalive_timeout 65; #連接超時時間,默認為75s,可以在http,server,location塊。
upstream mysvr {
server 127.0.0.1:7878;
server 192.168.10.121:3333 backup; #熱備
}
error_page 404 https://www..com; #錯誤頁
server {
keepalive_requests 120; #單連接請求上限次數。
listen 4545; #監聽埠
server_name 127.0.0.1; #監聽地址
location ~*^.+$ { #請求的url過濾,正則匹配,~為區分大小寫,~*為不區分大小寫。
#root path; #根目錄
#index vv.txt; #設置默認頁
proxy_pass http://mysvr; #請求轉向mysvr 定義的伺服器列表
deny 127.0.0.1; #拒絕的ip
allow 172.18.5.54; #允許的ip
}
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
http{}塊下可以包含多個server{}塊,一個反向代理就是一個server
server {
#監聽的埠號
listen 80;
#監聽的域名
server_name localhost;
#進行反向代理配置
location / {
#root關鍵字:代表磁碟地址
root html; #默認為跟目錄下的html文件夾
#index關鍵字:默認的歡迎界面
index index.html index.htm;
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
1
2
3
4
5
6
7
8
9
10
11
12
13
14
1.3 自己配置並測試
接下來自己寫一個配置圖片的代理伺服器測試一下
首先在F盤創建一個文件夾img,其中保存一張圖片 hello.png
在http{}塊下配置圖片的代理伺服器
server {
listen 8080;
server_name 127.0.0.1;
location / {
root F:img;
}
}
1
2
3
4
5
6
7
1
2
3
4
5
6
7
之後瀏覽器輸入http://127.0.0.1:8080/hello.png 就可以顯示這張圖片。
2. hosts文件的簡單介紹
hosts文件是操作系統為了方便開發,在本地形成的域名與IP的映射文件,該文件只對本機有效。
位置:C:\Windows\System32\drivers\etc\hosts
示例:
#IP 域名 的映射關系,表示在瀏覽器輸入hello.word.com就相當於輸入例如127.0.0.1
127.0.0.1 hello.word.com
#可以配置多條映射
127.0.0.1 www.img.com
1
2
3
4
1
2
3
4
3. hosts文件和Nginx的配合使用實現域名的代理
3.1 如果想要通過http://hello.world.com域名訪問localhost:8080的伺服器
編輯hosts文件
127.0.0.1 hello.world.com
1
1
編輯nginx.conf配置文件
server {
listen 8080;
server_name hello.world.com;
location / {
root F:img;
}
}
1
2
3
4
5
6
7
1
2
3
4
5
6
7
瀏覽器輸入hello.world.com:8080/hello.png測試
3.2 如果想要通過http://hello.world.com域名訪問真實伺服器地址http://localhost:8090
編輯hosts文件
127.0.0.1 hello.world.com
1
1
編輯nginx.conf配置文件
server {
listen 80;
server_name hello.world.com;
location / {
#代理真實的伺服器地址
proxy_pass http://localhost:8090;
}
}
1
2
3
4
5
6
7
8
1
2
3
4
5
6
7
8
啟動提前寫好的埠號為8090的項目,啟動Nginx
瀏覽器輸入http://hello.world.com/,以為80埠可以省略,所以這里相當於http://hello.world.com:80/地址取訪問真實的http://localhost:8090地址
打開CSDN APP,看更多技術內容
配置Nginx反向代理時配置hosts文件不起作用
原因:設備上的 hosts 出問題,電腦無法正常解析 解決方法:在網上找一個可用的hosts文件進行替換 hosts文件在/private/etc/hosts路徑中,輸入sudo vi /private/etc/hosts修改文件,將配置信息添加進去即可。 ...
繼續訪問
運維:nginx常用命令與問題解決(windows版)+ 安裝stream模塊
cmd 進入Nginx解壓目錄 執行以下命令 驗證配置是否正確: nginx -t 查看Nginx的版本號: nginx -V 啟動Nginx: start nginx 快速停止或關閉Nginx: nginx -s stop 正常停止或關閉 Nginx:nginx -s quit 配置文件修改重裝載命令: nginx -s reload 測試nginx配置文件是否正確 nginx -t -c /nginx-1.20.1/conf/nginx.conf 測試nginx配置文件是否正確(簡寫) n
繼續訪問
最新發布 Windows中Nginx下載、安裝、配置
Nginx (engine x) 是一個高性能的HTTP和反向代理伺服器,也是一個IMAP/POP3/SMTP伺服器。Nginx是由伊戈爾·賽索耶夫為俄羅斯訪問量第二的Rambler.ru 站點(俄文:Рамблер)開發的.它也是一種輕量級的Web伺服器,可以作為獨立的伺服器部署網站(類似Tomcat)。它高性能和低消耗內存的結構受到很多大公司青睞,如淘寶網站架設。先下載直接去官網nginx.org分別有linux和Windows兩個版本。
繼續訪問
nginx-windows系統下的安裝及使用
目錄 一、Nginx簡介 二、安裝部署 三、優化配置 一、Nginx簡介 Nginx (engine x) 是一個高性能的HTTP和反向代理伺服器,也是一個IMAP/POP3/SMTP伺服器。Nginx是由伊戈爾·賽索耶夫為俄羅斯訪問量第二的Rambler.ru 站點(俄文:Рамблер)開發的. 它也是一種輕量級的Web伺服器,可以作為獨立的伺服器部署網站(類似Tomcat)。...
繼續訪問
利用hosts文件修改域名映射實現Nignx反向代理
windos下查看dns地址 ipconfig -all 域名解析的原理 域名解析是首先會在本機的localhost中查找域名解析規則,如果沒有會通過本地配置的域名伺服器地址進行域名解析。 下面我們通過配置localhost進行域名訪問。 第一步:路徑:C:\Windows\System32\drivers\etc ...
繼續訪問
windows下載安裝Nginx
安裝步驟 1、下載Nginx 下載地址:http://nginx.org/en/download.html (Nginx官網); 2、下載之後,解壓到指定的目錄,就可以看到以下的目錄 3、控制台(CMD)切換到Nginx目錄下,輸入start nginx ,然後在瀏覽器頁面輸入localhost,出現如下界面則表示安裝成功。默認監聽80埠號。 4、nginx命令介紹 (1)start nginx 開啟nginx服務 (2)nginx.exe -s stop 關閉nginx服務,快速停止nginx,
繼續訪問
【Nginx】Nginx在Windows、Linux環境下的下載安裝詳細步驟
文章目錄Nginx下載安裝Nginx-windows安裝下載安裝啟動Nginx-Linux安裝下載准備安裝啟動 Nginx下載安裝 Nginx跨平台,在windows、Linux都可以安裝 Nginx-windows安裝 下載 官網下載:nginx: download 下載穩定版,不要下載測試版 安裝 下載得到zip壓縮包,解壓、解壓到任何地方都行, 解壓後的目錄: conf 配置文件,我們常用的就是conf中的配置文件 contrib 存放工具組件文件 docs 存放文檔 documents
繼續訪問
nginx和hosts配置
nginx.conf(nginx/conf/nginx.conf) server { listen 80; //網路路徑 server_name image.jt.com; location / { //本地路徑 root D:/images; } } hosts(C:/Windows/System32/drivers/etc/hosts) //圖片伺服器配置 127.0.0.1 image.jt.com //前端伺服器配置 127.0.0.1 www.
繼續訪問
本地host,nginx配置
本地host, 路徑: c/windows/system32/drivers/etc/host ip 域名 127.0.0.1 image.jt.com 127.0.0.1 manage.jt.com 127.0.0.1 web.jt.com 配置文件 根目錄/coof/nginx.conf http{ server { # 埠 listten:80; # 域名 server_name www..com; #文件位置 localhost / { #根目
繼續訪問
nginx config配置中內置變數host的坑
我們在配置nginx的配置時,一般是這樣的。舉例: server { listen 80; server_name mirrors.maqian.work; location / { proxy_pass http://mirrors.aliyun.com; proxy_redirect off; proxy_set_header Host $proxy_host; proxy_set_header X-Rea
繼續訪問
Windows下載安裝Nginx
一、介紹 Nginx是一個高性能的HTTP和反向代理伺服器,也是一個IMAP/POP3/SMTP代理伺服器。 Nginx是一款輕量級的Web伺服器/反向代理伺服器以及電子郵件代理伺服器,並在一個BSD-like協議下發行。由俄羅斯的程序設計師lgor Sysoev所開發,供俄國大型的入口網站及搜索引擎Rambler使用。其特點是佔有內存少,並發能力強,事實上nginx的並發能力確實在同類型的網頁伺服器中表現較好。 Nginx相較於Apache\lighttpd具有佔有內存少,穩定性高等
繼續訪問
host文件在哪裡_3:基本配置文件詳解
上文中,我們已經順利的完成了Nginx的安裝,從本文開始我們真正的進入到Nginx的配置和使用。我們通過rpm命令可以查看Nginx安裝之後文件都放在了哪裡(rpm 是linux的rpm包管理工具),命令如下:rpm -ql nginx我們可以看到,Nginx的主要配置都在/etc/nginx這個目錄下,usr/share是我們的服務目錄,前面的文章提到,Nginx是模塊化的設計,在配置這塊這個特...
繼續訪問
Nginx下載與安裝-Win系統
Nginx入門: 1、在Windows系統下,下載、安裝、啟動Nginx
繼續訪問
Windows安裝nginx並配置埠轉發
Windows安裝nginx;nginx配置埠轉發
繼續訪問
Nginx_關於Ngxin和hosts
瀏覽器訪問的URL會根據兩種方式去進行域名解析: 1、hosts 2、DNS 如果本地配置了hosts就不會去訪問DNS了 舉例: 訪問jisumall.com這個域名,會先到hosts中去地址解析,hosts中有配置的話,那麼根據hosts中的配置進行解析。 hosts配置文件 我們這里hosts文件有配置,所以這個域名訪問的地址會被轉發到本地的127.0.0.1(默認80埠)。(如果hosts沒有配置,那麼就會到網上的DNS伺服器上面找域名)。 由於本地開啟了nginx,本地的80埠被nginx接
繼續訪問
熱門推薦 nginx配置:server_name的作用
nginx的server_name最新詳解
繼續訪問
Windows 11下安裝 nginx
Windows 安裝 nginx!!!
繼續訪問
nginx快速開始
windows環境下使用nginx 1、下載 http://nginx.org/en/download.html 下載穩定版本,以nginx/Windows-1.12.2為例,直接下載 nginx-1.12.2.zip 2、解壓 下載後解壓,目錄如下: 3、啟動nginx 有很多種方法啟動nginx (1)直接雙擊nginx.exe,雙擊後一個黑色的彈窗一閃而過 (2)打開cmd...
繼續訪問
Windows系統下載安裝Nginx
下載 下載地址:http://nginx.org/en/download.html 本次下載的是1.18版本 下載後是一個壓縮包。 安裝 將壓縮包解壓即可。 啟動 第一種:雙擊nginx.exe,小黑框一閃而過。 第二種:打開cmd命令窗口,切換到nginx解壓目錄下,輸入命令 nginx.exe 或者 start nginx ,回車即可 ...
繼續訪問
本地host文件和nginx映射的關系
假設客戶端A--------》瀏覽器url請求域名--------》域名被host解析對應的IP--------》到對應IP的伺服器--------》先被nginx反向代理攔截--------》找到nginx上一樣域名(nginx.conf配置文件中server里的server_name)--------》對應的反向映射地址(nginx.conf配置文件中同左server里的proxy_pass ...
繼續訪問
nginx
windows
3. nginx做反向代理負載均衡 java怎麼獲取後端伺服器獲取用戶IP
在location里增加以下配置
#後端的Web伺服器可以通過X-Forwarded-For獲取用戶真實IP
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
4. nginx 反向代理和後端伺服器獲取真實 ip
nginx 反向代理是什麼?
為了提高吞吐量,有些伺服器是專門跑程序用的,有些伺服器是跑靜態資源的。
你可能訪問一個網頁,裡面有圖片,而這個圖片並不是你訪問的這個網頁的伺服器,也叫前端伺服器,而是你的圖片請求被 Nginx 轉發到了一台後端伺服器,由後端伺服器提供給前端伺服器再返回到客戶端的。
我這台 nginx 的配置非常細致,有 nginx.conf ,在這個配置中包含了兩個文件夾,一個是 sites-available ,一個是 sites-enabled , nginx.cof 一般用來做整個 nginx 的配置。
域名配置段在 sites-avaliable 下,然後建立一個軟連接到 sites-enabled 下去。
反向代理就寫在域名配置段里,客戶端通過訪問伺服器,伺服器將請求分配按照 server 段里的則正匹配,將請求按照 fastcgi 發送到 php-fpm 通過分配再到我們的程序。
反向代理一樣,也需要通過正則來捕捉到用戶的請求。(2018-12-9,現在流行的做法是將靜態資源全部壓縮打包,丟到cdn上去,伺服器基本只做埠轉發,https配置,日誌,負載均衡,等很多很多功能)
server 段里多加以上這一條,前端的反向代理的工作就完成了。
(當然要開啟反向代理在 nginx.conf 里)以上捕捉到圖片格式結尾的就將這種請求轉發到伺服器地址,後端伺服器只要監聽這個埠將 root 指向資源目錄就行了。
當這一切做完後會發現,後端伺服器獲取到的並不是用戶的 ip 地址而是前端伺服器的 ip (通過 nginx 的訪問日誌),這是正常的。
因為本來就是前段請求的,但是可以通過 proxy_set_header 段將用戶的真實ip帶到後端伺服器去,而後端伺服器需要接收傳過來的這個參數。
日誌的格式默認情況下是不接收這種參數的,日誌格式在 nginx.conf 裡面定義,默認沒有定義,自己加上去就可以了。
這就是日誌的格式,可以自己添加和修改,上面主要描述的是定義一個格式這個格式的名字為main。
這個格式里包含了哪些東西順序是怎樣的,定義訪問成功的日誌的路徑,使用main格式來進行寫入。
改完後,前端伺服器 nginx -s reload ,後端伺服器 nginx -s reopen 。
反向代理就是這樣。有反向代理,當然也有正向代理了,也很簡單。
原文鏈接: nginx反向代理和後端伺服器獲取真實ip-伺服器
5. 不容錯過的Nginx配置詳解,一文帶你搞懂Nginx
Nginx是一個高性能的HTTP和反向代理伺服器,特點是佔用內存少,並發能力強,事實上Nginx的並發能力確實在同類型的網頁伺服器中表現好。Nginx專為性能優化而開發,性能是其最重要的考量,實現上非常注重效率,能經受高負載的考驗,有報告表明能支持高達50000個並發連接數。
需要客戶自己在瀏覽器配置代理伺服器地址。
例如:在大陸訪問www.google.com,我們需要一個代理伺服器,我們通過代理伺服器去訪問谷歌,這個過程就是正向代理。
反向代理,客戶端對代理是無感知的,因為客戶端不需要任何配置就可以訪問,我們只需要將請求發送到反向代理伺服器,由反向代理伺服器去選擇目標伺服器獲取數據後,在返回給客戶端,此時反向代理伺服器和目標伺服器對外就是一個伺服器,暴露的是代理伺服器地址,隱藏了真實伺服器IP地址。
單個伺服器解決不了,我們增加伺服器的數量,然後將請求分發到各個伺服器上,將原先請求集中到單個伺服器上的情況改為將請求分發到多個伺服器上,將負載分發到不同的伺服器,也就是我們說的負載均衡。
為了加快網站的解析速度,可以把動態頁面和靜態頁面由不同的伺服器來解析,加快解析速度。降低原來單個伺服器的壓力。
進入到下面的目錄,然後使用命令
配置文件所在位置:/usr/local/nginx/conf/nginx.conf
由全局塊+events塊+http塊組成
從配置文件開始到events之間的內容,主要會設置一些影響Nginx伺服器整體運行的配置指令,主要包括配置運行Nginx伺服器的用戶(組)、允許生成的worker process數,進程pid存放路徑、日誌存放路徑和類型以及配置文件的引入等。
events塊設計的指令主要影響Nginx伺服器與用戶的網路連接,常用的設置包括是否開啟對多work process下的網路連接進行序列化,是否允許同時接收多個網路連接,選取哪種事件驅動模型來處理連接請求,每個work process可以同時支持的最大連接數等。下面的例子表示每個work process支持的最大連接數為1024。這部分配置對Nginx的性能影響較大,在實際中應該靈活配置。
Nginx伺服器配置中最頻繁的部分,代理、緩存和日誌定義等絕大多數功能和第三方模塊的配置都在這里,http塊又包括http全局塊和server塊。
http全局塊配置的指令包括文件引入、MIME-TYPE定義、日誌自定義、連接超時時間、單鏈接請求數上限等。
這塊和虛擬主機有密切關系,虛擬主機從用戶角度看,和一台獨立的硬體主機是完全一樣的,該技術的產生是為了節省互聯網伺服器硬體成本。
每個http塊可以包括多個server塊,而每個server塊就相當於一個虛擬主機。
每個server塊也可以分為全局server塊,以及可以同時包含多個location塊。
最常見的配置時本虛擬主機的監聽配置和本虛擬主機的名稱或IP配置。
一個server塊可以配置多個location塊。
這塊的主要作用是基於Nginx伺服器接收到的請求字元串(例如server_name/uri-string),對虛擬主機名稱(也可以是IP別名)之外的字元串(例如前面的/uri-string)進行匹配,對特定的請求進行處理。地址定向、數據緩存和應答控制等功能,還有許多第三方模塊的配置也在這里進行。
訪問http://ip,訪問到的是Tomcat的主頁面http://ip:8080。
Nginx+JDK8+Tomcat
訪問:http://192.168.71.167/,看到的是Tomcat的首頁。
根據訪問的路徑跳轉到不同的伺服器中去。
訪問http://ip:9001/e 直接跳到http://127.0.0.1:8080/e
訪問http://ip:9001/vod 直接跳到http://127.0.0.1:9090/vod
Nginx+JDK8+配置兩個Tomcat,Tomcat的配置不再講述。
訪問http://192.168.71.167:9001/e/a.html跳到了http://127.0.0.1:8080/e/a.html頁面。
訪問http://192.168.71.167:9001/vod/a.html跳到了http://127.0.0.1:9090/vod/a.html頁面。
假如Nginx代理伺服器Server的配置為:192.168.71.167:9001,跳到:127.0.0.1:8080,訪問者的IP為:192.168.71.200:20604。
通過訪問http://192.168.71.167/e/a.html,實現負載均衡的效果,平均分攤到8080和8081埠中。
Nginx+JDK8+2台Tomcat,一台8080,一台8081。
訪問:http://192.168.71.167/e/a.html,8080和8081交替訪問。
1 輪詢(默認)
每個請求按時間順序逐一分配到不同的後端伺服器,如果後端伺服器down掉,能自動剔除。
2 weight
weight代表權重,默認為1,權重越高被分配的客戶端越多。
指定輪詢幾率,weight和訪問比率成正比,用於後端伺服器性能不均的情況。
3 ip_hash
每個請求按訪問IP的hash結果分配,這樣每個訪客固定訪問一個後端伺服器,可以解決session的問題,示例如下:
4 fair(第三方)
按後端伺服器的響應時間來分配請求,響應時間短的優先分配。
訪問圖片:http://192.168.71.167/image/1.jpg
訪問頁面:http://192.168.71.167/www/a.html
訪問目錄:http://192.168.71.167/image/(因為設置了autoindex on;)
兩台機器,每台機器都裝有keepalived+Nginx+Tomcat。
主備keepalived伺服器中只有master一台機器會出現VIP地址,否則會出現腦裂問題。
【提示】腳本要加+x的執行許可權:chmod +x chk_nginx.sh
在Nginx里把虛擬IP配置進去即可。
一個Nginx是由一個master進程和多個worker進程組成的。
客戶端發送請求到Master,然後給worker,再由這些work爭搶處理這個請求。
1 可以使用nginx -s reload進行熱部署方式;
2 每個worker是獨立的進程,如果有其中的一個worker出現了問題,其他worker獨立的繼續進行爭搶,實現請求的過程,不會造成服務的中斷;
Nginx和Redis類似,都採用了io多路復用機制。每個worker進程都可以把CPU發揮到極致,一般來說worker數和伺服器的CPU數相等是最為適宜的。
發送請求:訪問靜態資源佔用2個連接,反向代理佔用4個連接。
【溫馨提示】
6. nginx做反向代理負載均衡 Java怎麼獲取後端伺服器獲取用戶IP
/**
*獲取訪問者IP地址
*<p>在一般情況下使用Request.getRemoteAddr()即可,但是經過nginx等反向代理軟體後,這個方法會失效。</p>
*<p>本方法先從Header中獲取X-Real-IP,如果不存在再從X-Forwarded-For獲得第一個IP(用,分割)。</p>
*<p>如果還不存在則調用Request.getRemoteAddr()。</p>
*@paramrequest
*@return
*/
publicstaticStringgetIp(HttpServletRequestrequest){
Stringip=request.getHeader("X-Real-IP");
if(ValidateUtil.isNotEmpty(ip)&&!"unknown".equalsIgnoreCase(ip)){
returnip;
}
ip=request.getHeader("X-Forwarded-For");
if(ValidateUtil.isNotEmpty(ip)&&!"unknown".equalsIgnoreCase(ip)){
intindex=ip.indexOf(",");
if(index!=-1){
returnip.substring(0,index);
}else{
returnip;
}
}else{
returnrequest.getRemoteAddr();
}
}