我有一个当前在EC2实例上运行的Web应用程序,其中MySQL与它一起运行。
我正在构建另一个需要MySQL数据库信息的后端批处理服务。但是,我不希望它直接访问数据库。我想要做的是在Web应用程序中构建一些API路由,即charArr
,/private/foo
只能在内部访问(例如在VPC内),而所有其他路由将继续作为按照正常情况。
我想知道如何设置它?
答案 0 :(得分:1)
您的VPC使用私有子网(您可以配置地址)。您需要做的就是确保进入您服务器的流量来自同一个子网。
由于您希望现有的Web应用程序为这些专用路由提供服务,因此您需要在代码中查找原始IP地址。 (如果你不知道如何做到这一点,你可能会问一个新问题。)
另一种方法是运行第二个服务(或相同的服务,但在第二个端口上侦听)。如果所有私有流量都来自端口8081
(例如)并且所有公共流量都来自端口8080
,则您只能使用AWS的安全组来仅允许子网本地流量端口8081和8080的所有流量。
答案 1 :(得分:1)
在Web应用程序前运行http / s Apache反向代理服务器。使用此新的Web层来控制所有内部和外部http / s流量。
/private
指令阻止对<Location >
的访问/private
allow,deny
规则来减少安全规则,以确保仅允许来自内部ip-range的流量不要打扰端口8080,并使用80,443进行所有内部和外部流量。内部流量会针对不同的域名发出请求,并且可以使用基于Apache名称的虚拟主机来管理/分离您的内部和外部流量https://httpd.apache.org/docs/current/vhosts/name-based.html