嗨,我有一些愚蠢的想法,比如代理mysql连接。
我已经上传了我的概念图片到这里,http://i52.tinypic.com/o7src3.png
本地网络上有一台机器在不同的端口上运行多个mysql服务器。由于安全原因,本机无法直接向互联网显示。客户端连接到默认mysql端口(3306),而不知道这些端口。客户端请求通过标识其域名来路由以更正mysql服务器端口。
我试着使用mysql,但这个场景似乎无法实现使用mysql(我没有更努力地尝试)。
是否有一种使用iptable或任何其他方法来实现这一目标的方法?
非常感谢您的答复。
发布于 2011-09-16 19:22:13
问题是,没有等同于主机:( HTTP虚拟服务器)可以用来区分同一台机器上的abc.com和xyz.com。代理服务器只看到端口3306上进入1.2.3.4的连接。您可以在一个物理主机(端口转发/NAT)上使用多个IP来完成这一任务,但在一个IP上则不能这样做,代理不知道用于连接它的名称。
发布于 2011-09-16 19:53:40
您可以在某种程度上使用iptable来完成这一任务。
iptables -t nat -A PREROUTING --source dbs1.abc.com --dport 3306 -j DNAT --to 123.63.1.23:13307
iptables -t nat -A PREROUTING --source dbs2.abc.com --dport 3306 -j DNAT --to 123.63.1.23:13306但是,您可以说“通过标识C服务器端口的域名来路由mysql请求。”iptables中的--source参数不能是域名。它可以是主机名(但主机的IP地址通常用于强制iptables解析名称可能会危害您的健康)或IP地址范围。
https://serverfault.com/questions/282614
复制相似问题