有两台服务器,一台服务器有内网IP和外网IP并部署了WEB系统,另外一台服务器是内网的并作为文件服务器。
现在通过外网域名访问系统后需要下载附件。
地址是:http://10.20.30.1/uploadfile/file20130526.doc但是因为是域名访问,是没有权限访问10.20.30.1这台内网服务器的,那怎么才能下载文件呢?
要求两台服务器的功能不变,怎么可以实现下载的功能啊,请高手赐教!

解决方案 »

  1.   

    如果是asp.net mvc 我会写一个uploadfile的控制器,方法index,所有url都是www.xx.com/uploadfile/index/file20130526.doc
    index方法可以WebClient("http://10.20.30.1/uploadfile/file20130526.doc");方式得到文件,然后直接返回
      

  2.   

    需要web服务器读取内网文件服务器,然后发给用户
      

  3.   

    通过 http://www.xxx.com/uploadfile/file20130526.doc 不就能访问了嘛。这是互联网基本原理,因此你不用知道内部实现具体代码,也应该知道功能是如何访问的,这样才能用懂行人的url地址给底下人布置任务。技术上再多说无关的,其实就会找到很荒唐的技术理由了。你需要的不是什么时髦技术,而是会提出设计来。
      

  4.   

    软件(业余)架构设计师,他是根据基本的架构原理来设计就行了。例如他可能写下这样的需求文档:
    要求从互联网任何地方使用地址  http://www.xxx.com/app1/download?name=file20130526.doc&pass=p1234
    来下载文档 file20130526.doc。这个文档是在内部网络某台服务器上的,外网服务器可以访问到。访问之前需要先由业务处理网页临时分配一个授权口令pass,这个口令必须在20秒钟内使用掉,否则这个下载url就会自动作废........
    总之,一个设计师是从需求来设计的,而不是从底层堆砌技术的。而你的那种很小气的设计方式,我看出总是纠缠在底层的一些技术上,缺乏创意。或许你干什么设计工作都首先担心可行性问题。
      

  5.   

    用 Nginx(部署在内外双网卡机器上)做一下反向代理即可。
      

  6.   

    如果web服务器没有限制主机头,只要映射ip+port即可,否则就要用ls的办法了。
      

  7.   

    既然是内网,再让是http无法访问的了
    这个你绕住了
    需要通过www制定统一下载接口,凡事通过www,均制定到10.20.30.1