我必须设置对远程API服务的访问权限,其中请求被IP白名单。
我遇到的问题是我的networking节点在云中,他们的IP地址经常发生变化。
因此,我想通过具有固定IP地址的服务器来代理来自我的web节点的API请求。
另一个警告是,这些请求必须通过HTTPS进行。
所以我需要在一个域上接收HTTPS请求,解密它们,然后将请求转发到目标域。
例:
Web节点请求代理: https : //api.proxy.internal.com代理然后请求: https : //external.api.com
这可能吗? 我想在Ubuntu 14.04 LTS服务器上运行这个。
我可以使用HaProxy或NGINX作为反向代理吗?
你可以使用HAProxy,Nginx,ATS,Squid或者Pound或者一套iptables规则。
但是你没有告诉我们你正试图解决的问题。
如果服务需要指定的IP地址,那么推测它有一些应该保护的价值 – 任何你设置的位置应该确保有相同或更好的保护。 可能最简单的解决scheme是使用HTTPS到客户端证书validation的代理节点 – 您如何实现这一点取决于AWS上的应用程序堆栈。 然后在代理节点上,重新封装连接到API的stream量。 这可以通过一对stunnel或stud实例来完成(一个作为AWS实例的服务器,validation客户端证书,连接未encryption的stream或者第二个实例与API交谈)。
(请注意,您需要中断SSL连接才能进行身份validation)。
假设在AWS上维护您的服务有一定的优势,并且AWS不提供固定的IP地址,则您需要在其他地方使用固定的IP地址。 虽然有很多廉价的托pipe公司,如果你想确保访问服务的高可用性,你将需要在不同地点的2个节点和通过它们分配stream量的方式。 就我个人而言,我会去configurationhaproxy或者pound作为一个简单的TCPstream(即忽略HTTP)来configuration你的AWS实例。