通过代理让你的内网JAVA服务器不改代码的情况下能链接上互联网

今天遇到这么一个场景,有一个服务器A是能链接到互联网,只能与内网中的网络通讯。服务器B能链接到互联网,并且A与B之间网络是互通的。A上面搭载着JAVA服务,在不改动代码的情况下,如何让A链接上互联网?

一、最开始的解决方案。
最开始的解决方案是使用nginx做正向代理,即在B上面搭建nginx,然后把请求目标的域名指向B的ip,让B进行转发。

结果:nginx无法转发https的请求,有尝试过使用插件,但是插件编译时出现问题,结果否定了这个方案。

二、解决方案。
使用squid在B上面做正向代理,在A上面配置linux全局代理指向B,在A JVM 中配置代理指向B

三、操作步骤
在B中下载squid

yum install squid

配置squid

echo "1" >/proc/sys/net/ipv4/ip_forward #打开内核转发,在CentOS7中已经打开,无需设置。
vi /etc/squid/squid.conf

这里写图片描述

启动squid

service squid start

在A中配置代理

vim /etc/profile

加入以下配置
这里写图片描述

在A JVM 中加入以下启动参数

java中配置代理
java中支持 HTTP代理、HTTPS代理、Socket代理、FTP代理 等。

-DproxyHost 
-DproxyPort [默认值:80] 
-DnonProxyHosts
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值