内网服务器如何调用第三方的API?
1.一台反向代理,能访问外网 LINUX NGINX;
2.两台应用服务器跑PHP程序 LINUX NGINX PHP;
3.一台DB、一台CACHE
现在开放平台很多,我们项目采用了不少第三方的API如(七牛、微信、支付宝等),问题是这些API都需要向外网请求的。我的代码都跑在内网里面,调用不到API。
我现在的解决办法就是把需要调外网的都另外写一份代码放到外网服务器上跑,但是这样问题很多,一些公共的类什么的也要维护两份。
我想问问能否在外网机上做代理,给内网机通过代理访问外网的方式来调用开放平台的接口呢?
回复内容:
我的服务器架构是:
1.一台反向代理,能访问外网 LINUX NGINX;
2.两台应用服务器跑PHP程序 LINUX NGINX PHP;
3.一台DB、一台CACHE
现在开放平台很多,我们项目采用了不少第三方的API如(七牛、微信、支付宝等),问题是这些API都需要向外网请求的。我的代码都跑在内网里面,调用不到API。
我现在的解决办法就是把需要调外网的都另外写一份代码放到外网服务器上跑,但是这样问题很多,一些公共的类什么的也要维护两份。
我想问问能否在外网机上做代理,给内网机通过代理访问外网的方式来调用开放平台的接口呢?
能访问外网的服务器上搭建一个http透明代理只允许内网访问,内网CURL指定proxy就可以了。
你跑PHP的机器是怎么做到不能上网的?
可以使用SSH的端口转发功能实现。
假定A是本地内网主机,B是远程提供第三方服务的主机,这两台主机之间无法连通。但是,现在还有一台C,可以同时连通前面两台主机。因此,很自然的想法就是,通过C,将A连上B。
在A上执行如下命令:
ssh -L 3002:B:3001 C
参数的意思是“本地端口:目标主机:目标主机端口"。这条命令的意思就是指定SSH绑定本地端口3002,然后指定C将所有的数据,转发到目标主机B的3001端口(你也可以指定其它端口)。
这样一来,我们只要连接A的3002端口,就等于连上了B的3001端口。这样我们还可以让那些不加密的网络连接,全部改走SSH连接,从而提高安全性。
推荐阅读
-
如何在服务器端调用winzip命令行对上传的多个文件打包压缩
-
如何将你的python程序制作为第三方API接口可供任何人调用
-
Asp.Net Core 调用第三方Open API查询物流数据的示例
-
angularjs如何调用jQuery添加?Angular5中调用第三方库及jQuery的添加详情
-
angularjs如何调用jQuery添加?Angular5中调用第三方库及jQuery的添加详情
-
PHP的C扩展如何调用第三方库
-
ssh 内网穿透 - 如何在家里访问公司内网的服务器
-
javascript - 如何防止第三方网站私自调用网站的后端接口
-
如何通过 URL 发送 GET 请求调用云服务器 ECS API
-
PHP的C扩展如何调用第三方库