【发布时间】:2011-02-25 04:38:16
【问题描述】:
我们计划在生产中启动我们的应用程序。 该应用程序有许多模块——Apache 上的 PHP 代码、tomcat java 应用程序、C++ 代码应用程序。 所有这些模块都需要连接到 MySQL 数据库。
我们希望通过在其间放置防火墙,将应用程序和数据库分成两个独立的安全层。这是为了将数据库服务器与任何不相关的访问完全隔离,以保护敏感数据。防火墙将只允许从运行应用程序的服务器到 MySQL 端口上的数据库服务器的连接。
通常,如果空闲时间足够长,防火墙会断开连接。这会严重影响应用程序和数据库之间的连接。连接失败需要由应用检测并重新发起,这个逻辑并不是到处都实现的。
问题: 1. 如果无法让应用程序更能容忍丢失的连接情况,那么解决问题的最佳方法是什么?可以以不会导致此行为的方式设置防火墙吗?根本不使连接过期将填满连接表并使防火墙崩溃。将过期时间设置为更高的值也可能会冒着在高峰时间填满连接表的风险,而且并不总是很清楚哪个时间间隔足够长…… 2. 这种安全分层架构首先会带来真正的安全优势吗?
提前谢谢你。
胡里奥。
【问题讨论】: