看你要做到什么地步,比如可以:
◎ 启用单独域名,比如:image.xxoo.com
  然后所有站点的图片都直接访问该域名,图片最好是都以静态文件保存,不要实时去读取数据库。
  甚至互联网链路都可以为该图片服务器单独专用一条链路。
◎ 使用单独的context,比如:www.xxoo.com/img
  这个需要现有一台前置机,比如Apache或EngineX负责提供反向代理;
  如果可以的话,图片就直接放在该前置机上了,不是/img目录的,反向代理给后面的中间件。你看看选哪种,或还有其它附加需求,有疑问再细化讨论。

解决方案 »

  1.   

    就是2台Apache;一台是图片服务器;另外一台是访问服务器;存在:跨域问题;和访问效率;
    请问指导下;
      

  2.   


    如果你打算用Apache做反向代理的话,根本不存在跨域,就是同一个域。比你想象的更简单,Apache承担这样一个角色:
    1、接受所有GET/POST请求;
    2、分析URL,看其访问的 context 是啥;
    3、根据context不同,将请求重发给后端的不同服务器,比如:
    www.xxoo.com/images -> 192.168.1.10:8080/
    www.xxoo.com/jsp -> 192.168.1.11:8080/
    www.xxoo.com/css -> 192.168.1.12:8080/
    www.xxoo.com/script -> 192.168.1.13:8080/
    你Google了解下:apache  proxy  虚拟目录
      

  3.   

    高手:一台是访问服务器A;用户在A服务器上传图片。然后会把图片上传到B图片服务器上面;然后用户访问服务器A的时候;会把B图片服务器上的图片下载到A来访问;
    1:我上传下载是不是要写在服务器A上面;还是》?
      

  4.   

    码了很多字,一提交,5xx了,真郁闷。没啥勇气重打了,简单点说吧你提出来的结构不太合理,要调整下:服务器A:
    ——提供访问入口,装Apache,负责提供图片下载和服务器B的反向代理;
    ——本地共享一个目录出去比如:C:\images
    ——配置路径 Alias  /images  C:\images
    ——配置反向代理 --> B服务器B:
    ——躲在A后面,装Tomcat,负责提供文件上传和其它功能;
    ——本地网络共享A服务器,比如: N: --> \\A\images
    ——上传Servlet将所上传文件保存至网络硬盘 N:
      

  5.   

    谢谢了;String filepath = "/resources/images" +htmlService.getAccessPathName()+"/"+ getSysNodeId();
    String filepathSql = "/resources/images" +htmlService.getAccessPathName()+"/"+ getSysNodeId(); ServletContext servletContext = (ServletContext) FacesContext
    .getCurrentInstance().getExternalContext().getContext();
     // filepath = servletContext.getRealPath(filepath); File folder = new File(filepath);
    if (!folder.exists()) {
    folder.mkdir();
    }
    System.out.println("filePath:" + filepath);
      File files = new File(filepath, fileNewName);
    //
    // FileInputStream fis = (FileInputStream) item.getInputStream();
    // FileOutputStream out = new FileOutputStream(files);
    int bytesum = 0; int byteread = 0;
    URL url = new URL("http://192.168.7.103:8090/ImageServer/WebRoot"); 
    URLConnection conn = url.openConnection();//获得连接
    FileInputStream fis = (FileInputStream) conn.getInputStream();//生成输入流文件 
    FileOutputStream out = new FileOutputStream(files); 
    int bytes = 0;
    byte[] bteFile = new byte[1024];
    while ((bytes = fis.read(bteFile)) != -1) {
    out.write(bteFile, 0, bytes);
    }
      

  6.   

    我想上传到到另外一个tomcat这样哪里错了
      

  7.   

    安全问题是操作系统去保证的。如果并无压力要求,而且只是想从技术上做做研究,你就按你自己的设想去玩吧。B服务器开通FTPServer好了,你就可以用A服务器通过Java代码执行FTP协议把图片上传到B服务器了,也可以通过FTP从B上下载图片。只不过整个做法没有带来任何性能上的好处,反而浪费了不少处理量。