如何基于http代理解決Java固定ip問題
背景:對接第三方接口,第三方為安全考慮,需要固定ip設(shè)置白名單。公司對外使用動態(tài)ip。
辦法:
1. 購買一臺ip固定的服務(wù)器,比如云虛擬服務(wù)器。搭建http代理服務(wù)器,比如prioxy。
2.安裝Privoxy代理軟件
yum install -y epel-release privoxy
編輯 /etc/privoxy/config 文件
修改綁定地址,搜索 listen-address ,修改需要綁定的IP
listen-address 0.0.0.0:8118
設(shè)置enable-remote-toggle 為 1
enable-remote-toggle 1
重啟服務(wù)
service privoxy restart
查看服務(wù)狀態(tài)
[root@localhost ~]# service privoxy status
Redirecting to /bin/systemctl status privoxy.service
● privoxy.service - Privoxy Web Proxy With Advanced Filtering Capabilities
Loaded: loaded (/usr/lib/systemd/system/privoxy.service; disabled; vendor preset: disabled)
Active: active (running) since Wed 2020-03-04 17:38:26 CST; 5s ago
Process: 23138 ExecStart=/usr/sbin/privoxy --pidfile /run/privoxy.pid --user privoxy /etc/privoxy/config (code=exited, status=0/SUCCESS)
Main PID: 23139 (privoxy)
Memory: 872.0K
CGroup: /system.slice/privoxy.service
└─23139 /usr/sbin/privoxy --pidfile /run/privoxy.pid --user privox...
Mar 04 17:38:25 localhost.localdomain systemd[1]: Starting Privoxy Web Proxy ...
Mar 04 17:38:26 localhost.localdomain systemd[1]: Started Privoxy Web Proxy W...
Hint: Some lines were ellipsized, use -l to show in full.
[root@localhost ~]# netstat -anop | grep 8118
tcp 0 0 0.0.0.0:8118 0.0.0.0:* LISTEN 23139/privoxy off (0.00/0/0)
tcp 0 0 172.16.1.120:8311 172.16.1.123:28118 ESTABLISHED 15519/nginx: worker off (0.00/0/0)
3.HttpClient 設(shè)置代理
HttpPost httpPost = new HttpPost(url);
//設(shè)置代理IP,設(shè)置連接超時時間 、 設(shè)置 請求讀取數(shù)據(jù)的超時時間 、 設(shè)置從connect Manager獲取Connection超時時間、
HttpHost proxy = new HttpHost("172.16.1.120",8118);
RequestConfig requestConfig = RequestConfig.custom()
.setProxy(proxy)
.setConnectTimeout(10000)
.setSocketTimeout(10000)
.setConnectionRequestTimeout(3000)
.build();
httpPost.setConfig(requestConfig);
如果是無法修改的jar,本地如何調(diào)試?
找到目標源代碼,在項目代碼目錄下新建一個和目標代碼一樣的package,并新建同名類文件,拷貝目標類代碼至新文件,然后進行對應(yīng)代理的設(shè)置。
原理是代碼只加載一次,誰最優(yōu)先加載誰,從而實現(xiàn)代碼覆蓋。
注意:本地開發(fā)調(diào)試完畢后,請刪除這個覆蓋文件。
以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
SpringBoot配置mybatis駝峰命名規(guī)則自動轉(zhuǎn)換的實現(xiàn)
這篇文章主要介紹了SpringBoot配置mybatis駝峰命名規(guī)則自動轉(zhuǎn)換的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2020-09-09
Spring cloud alibaba之Ribbon負載均衡實現(xiàn)方案
Spring cloud Ribbon是基于Netflix Ribbon實現(xiàn)的一套客戶端的負載均衡工具,Ribbon客戶端提供一系列完善的配置,如超時、重試等,Ribbon也可以實現(xiàn)自己的負載均衡算法,感興趣的朋友跟隨小編一起看看吧2021-07-07
通過端口1433連接到主機127.0.0.1的 TCP/IP 連接失敗,錯誤:“connect timed out”的解
這篇文章主要介紹了通過端口1433連接到主機127.0.0.1的 TCP/IP 連接失敗,錯誤:“connect timed out”的解決方法,需要的朋友可以參考下2015-08-08
SpringMVC 方法四種類型返回值總結(jié)(你用過幾種)
這篇文章主要介紹了SpringMVC 方法四種類型返回值總結(jié)(你用過幾種),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2019-05-05
java利用CompletionService保證任務(wù)先完成先獲取到執(zhí)行結(jié)果
這篇文章主要為大家詳細介紹了java如何利用CompletionService來保證任務(wù)先完成先獲取到執(zhí)行結(jié)果,文中的示例代碼講解詳細,需要的可以參考下2023-08-08

