我们项目组内部上了一套 Trac,跑在 http://192.168.1.93:8000 这个地址上,是用的 Apache 的虚拟主机,
内网通过管理员这边, 只有一个 192.168.1.90:80 端口对外开放,映射了一个域名,上面已经跑了一套 Apache+Perl 的系统了,用的 Apache 的虚拟主机,现在想要把这个 Trac 代理出去,领导说映射到 192.168.1.90:80/trac
然后我在 192.168.1.90 的机器上添加了下面的内容:
ProxyPreserveHost Off ProxyRequests Off ProxyPass "/trac" "http://192.168.1.93:8000/" ProxyPassReverse "/trac" "http://192.168.1.93:8000/"
在外面访问 xxxx.com/trac 的时候,能够看到 trac 的登录页面,可是不能用啊,因为两个方面的原因,
第一方面,Trac 里面的那些静态文件都是以 /开头的,比如 /chrome/css/trac.min.css,所以在浏览器里的地址就变成了 xxx.com/chrome/css/trac.min.css,而不是 xxx.com/trac/chrome/css/trac.min.css
第二方面,链接也点击不了,因为 Trac 生成的链接也是以 /开头的,所有链接地址变成了和前面的 css 一样的路径
求助这样的 Apache 能实现这样代理吗
不能用其他软件,因为现在 Apache 跑着的这套 Perl 的程序挺重要,不能动,也没人敢随便动,看不懂,所以就要用 Apache 来做代理
谢啦
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.