看你要做到什么地步,比如可以:
◎ 启用单独域名,比如:image.xxoo.com
然后所有站点的图片都直接访问该域名,图片最好是都以静态文件保存,不要实时去读取数据库。
甚至互联网链路都可以为该图片服务器单独专用一条链路。
◎ 使用单独的context,比如:www.xxoo.com/img
这个需要现有一台前置机,比如Apache或EngineX负责提供反向代理;
如果可以的话,图片就直接放在该前置机上了,不是/img目录的,反向代理给后面的中间件。你看看选哪种,或还有其它附加需求,有疑问再细化讨论。
◎ 启用单独域名,比如:image.xxoo.com
然后所有站点的图片都直接访问该域名,图片最好是都以静态文件保存,不要实时去读取数据库。
甚至互联网链路都可以为该图片服务器单独专用一条链路。
◎ 使用单独的context,比如:www.xxoo.com/img
这个需要现有一台前置机,比如Apache或EngineX负责提供反向代理;
如果可以的话,图片就直接放在该前置机上了,不是/img目录的,反向代理给后面的中间件。你看看选哪种,或还有其它附加需求,有疑问再细化讨论。
解决方案 »
- HashMap换成FastMap 相对会比较好吗?--菜鸟提问
- 高手进来 这个oracle存储过程改为sqlserver2000如何写
- java里html解析类
- JavaScript实现类似于google搜索提示的功能的问题.
- 找不到 org.jboss包。
- hibernate 新手, 愁死啦。 俺再搞不出来 ,就要回家 卖地瓜啦1
- struts的多个相同名称的select的问题
- 不能建立FileInputStream 快气炸了 望各位帮帮忙 谢谢
- 急问诸位高手
- spring mvc @RequestMapping("/flow_statistic.jspx")注解报错
- ejb3.0中如何使用ibatis
- tomcat异常,关于AxisHTTPSessionListener
请问指导下;
如果你打算用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 虚拟目录
1:我上传下载是不是要写在服务器A上面;还是》?
——提供访问入口,装Apache,负责提供图片下载和服务器B的反向代理;
——本地共享一个目录出去比如:C:\images
——配置路径 Alias /images C:\images
——配置反向代理 --> B服务器B:
——躲在A后面,装Tomcat,负责提供文件上传和其它功能;
——本地网络共享A服务器,比如: N: --> \\A\images
——上传Servlet将所上传文件保存至网络硬盘 N:
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);
}