项目从阿里云迁移到政府外网,由于项目之前已使用阿里云短信通信,但是在政务云并无短信服务,若需继续使用阿里云短信,则需要做一些相关处理,其实很只需要做下代理即可, 应用服务器本身无法连接外网且外网无法连接到服务器,则添加代理机,通过代理机进行访问阿里云短信服务器,主要方式为:
修改阿里云短信服务API,增加代理设置:
本地代理机搭建:
- yum install squid
- vi /etc/squid/squid.conf
将http_access deny all 中deny 改为allow,http_port后面的是端口号,默认为3128。可改可不改。
3. service squid restart
4. 如果有防火墙, iptables -I INPUT -p tcp --dport 3128 -j ACCEPT
- 代码修改,两种方式:
- 调用短信API前,设置系统属性;
在调用短信程序之前增加代理配置。
System.setProperty("http.proxySet", "true");
System.setProperty("http.proxyHost", "192.168.2.XXX");
System.setProperty("http.proxyPort", "" + 3128);
2、修改源码
找到阿里云短信SDK中的HttpRequest类,其中有一个的方法为:getHttpConnection,再其中添加:
if (httpConn == null) {
Proxy proxy = new Proxy(Proxy.Type.HTTP, new InetSocketAddress("192.168.2.XXX", Integer.parseInt("3128")));
httpConn = (HttpURLConnection)url.openConnection(proxy);
}
使用路由器设置可关闭外网进行验证:
https://jingyan.baidu.com/article/49711c61a81fd2fa451b7c4f.html