我目前有一个可在单个服务器上运行的symfony应用程序(前端,后端,数据库)
我现在需要在大客户上实现此应用程序,但他不允许我从DMZ连接到数据库。我需要在网络中实现一个服务器,它将与数据库通信,并通过Web服务将数据提供给DMZ上的应用程序。
有没有简单的方法将我的symfony应用程序分成两部分,通过Web服务进行通信?一部分是前端,与客户沟通,另一部分需要是后端,与数据库通信。这两部分之间的沟通需要通过网络服务。
我目前唯一能想到的方法是,在DMZ服务器上重做大部分后端连接到Web服务而不是数据库,并在网络端重写我的前端,从html转换为Web服务。是否有任何插件或方法可以自动执行此操作,或者我是否从头开始执行此操作?
答案 0 :(得分:0)
如果您真的希望有一种优雅的方法来解决这种情况,如果项目计划在高可用性和大量负载下工作,您可以考虑实施一种ESB解决方案。但你必须自己判断它是不是用大炮射击。
这种弹性溶胶的实例是WSO2
这种解决方案可以扩展任何项目在任何类型的终点之间的沟通方面的可能性。
修改强>
您还可以运行Doctrine Rest Driver
https://github.com/CircleOfNice/DoctrineRestDriver
我认为这是一个很好的解决方案。
答案 1 :(得分:0)
我最终实现了自己的登录控制器,并设置了应用程序,以便根据设置将所有接收的数据传递到本地或远程服务器。我不得不在某种程度上禁用symfony安全性并实现我自己的安全性。
不是一个完美的解决方案,但它现在有效,我们已经决定在不久的将来将后端从symfony切换到nodeJS,所以对我们来说不是问题。