zoukankan      html  css  js  c++  java
  • 二层架构微调就实现三层

    问个问题,我开发的两层系统有点大,转成三层比较麻烦,我有个这样的情况,大家看能不能提点建议。
    数据库是SQL2000、开发环境Berlin10.1、数据库组件用的是ADO、用的是经典CS模式连接。
    因为客户那边的话,很多客户端是不给上互联网的,,同时连接到一台局域网内的服务器,目前我是把数据库放在服务器上。
    我现在想把数据库放在云系统中,当然每台客户端通过互联网直连是可以访问的,我现在就是想解决大部分客户端不能上互联网、但可同时连接到一台服务器上、那台服务器又可以上互联网的情况下,实现都可以访问云端数据库的功能。
    各位给一些建议或提示,有没有这样的捷径:不过多的修改程序、不用三层技术开发(或者搞搞就能用)、不用VPN,所有的机器通过某一台能上网的机器(就算是服务器)有点什么技术就可以连上云系统中的SQL Server,就把这个活给干了。


    如果原来2层的客户端使用CLIENTDATASET,操作数据用了统一接口,那么改3层真是分分钟的事情。否则~ 你晓得的啦!


    楼上很多人都乱说!
    楼主只要能访问sql server就行了,客户虽然不让上互联网,可是这种限制从需求上并不包括数据库服务器,所以只要简单地让客户端仅能访问某个IP(sql server服务器的IP)就行了,这个和限制访问互联网不矛盾,当然从安全角度看还是VPN更好一些。所以根本和软件修改无关!
    一个是通过路由设置一下就行了,不然搞一个代理服务器(安装在局域网内的服务器上也是一样的),反正都可以实现。从网管的角度还是路由设置一下的好


    极其简单
    打开那台服务器的防火墙配置,设一个端口转发,把内网网卡的1433端口映射到云端服务器的1433端口即可。XP都能实现这功能。
    根据多年的经验,切不可请网管改路由,否则网络有P大点事都会怪罪到你头上


    安全问题也简单
    1、如果你服务器IP固定或者变化范围很小,,在sqlserver那边防火墙设个ip白名单,只允许你的服务器连接sqlserver就行了
    2、如果IP变化大(如拨号方式上网),用不了白名单,稍微麻烦一点儿,需要你在服务器和sqlserver机器上都装一个stunnel(或者类似的东西),搞一个加密隧道,公网上达到VPN的安全效果,又比配VPN简单太多

    实际上这种情况我们通常是这么做:
    1、云端用云数据库(server_db),有云厂商维护,自己省事,没有公网ip,只能由LAN访问
    2、云端开一台云主机(server_cloud),linux的,和云数据库在同一LAN
    3、你的服务器(server_local),linux/windows都行,可以上internet访问云主机,用来当跳板
    4、然后客户端填db地址时用 server_local 的内网地址

    注意,高潮来了,在server_local上运行一条命令,你的系统就转起来了:

    plink user@server_cloud -L 1433:server_db:1433 -C

    而且公网传输使用ssh加密,安全无忧;server_db 也不暴露在公网,继续安全无忧。

    注:plink适用于windows,要用linux命令有所不同

    http://bbs.2ccc.com/topic.asp?topicid=519378

  • 相关阅读:
    两种接口传送数据协议(xml和json)
    两种访问接口的方式(get和post)
    myeclipse 编写java代码提示 dead code 原因
    svn文件冲突,树冲突详解
    linux操作提示:“Can't open file for writing”或“operation not permitted”的解决办法
    embed标签属性
    程序员必读的书刊收藏
    python实现冒泡排序和快速排序
    python简单词频统计
    Qt出现堆溢出(Error Code -1073741823)
  • 原文地址:https://www.cnblogs.com/findumars/p/6086434.html
Copyright © 2011-2022 走看看