关于使用Nginx反向代理到二级目录,jsp中request.getContextPath()的取值

杜维 发布于 2012/03/20 11:13
阅读 10K+
收藏 1

问题概述:
关于使用Nginx反向代理到二级目录, jsp中request.getContextPath()的取值.
当通过http://www.ABC01.com访问时, 实际上代理到了http://192.168.xxx.yyy:8080/ABC01/,
上边这个地址访问的是tomcat中项目里名为index.jsp的文件, 此文件中使用request.getContextPath()组合成进一步的地址target_url, 然后
window.open(target_url, ...), 通过这种方式弹出的登录画面. 但requets.getContextPath
的取值结果好像总是http://www.ABC01.com/ABC01/.../...这种, 因此浏览器报告页面
找不到错误. 不知道怎么将二级目录/ABC01/这个去掉呢? (本人没有系统学过Nginx, 但
的确有需求, 因此请大家帮助一下, 过后我还会系统学习一下Nginx的)

问题背景:
搭建测试环境, 由于资源有限, 因此在一台Windows 7的电脑上安装了虚拟机VMware.
VMware上安装的是Fedora 14, 并通过Tomcat运行了我们的项目工程ABC01, ABC02.
实际上项目工程两个都是一样的, 只是分给两个测试小组来测试用.
由于某些原因, 不能给VMware分配公司内网的IP, 因此只能通过Windows 7电脑的一个
IP, 并且经过Nginx的反向代理来实现这个需求, 并且让公司内网中的其它人能够访问
VMware中的程序.

环境描述:
Windows 7系统上使用的Nginx反向代理到VMware中.
VMware中项目工程的访问地址为
http://192.168.xxx.yyy:8080/ABC01
http://192.168.xxx.yyy:8080/ABC02

Nginx配置:
server {
    listen          80;
    server_name     www.ABC01.com; # 通过Windows的hosts配置来DNS这个域名
    location / {
        proxy_pass http://192.168.xxx.yyy:8080/ABC01/;
        proxy_redirect off;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
}
另一个配置相同, 唯有server_name与proxy_pass不同(ABC01变为了ABC02).

加载中
0
杜维

通过仔细在论坛中查找, 发现了类似的帖子.
http://www.oschina.net/question/208700_35450
研究中...

同时还是希望各位高手能够帮忙看看我的情况.

0
sp42
sp42

http://www.xiecd.com/article/5501.html

不能直接指向目录的,我们只能通过重定向来完成

0
黑and白
黑and白

引用来自“sp42”的评论

http://www.xiecd.com/article/5501.html

不能直接指向目录的,我们只能通过重定向来完成

试了一下,url中还是会看到目录名,session丢失了。求指教

0
Lowis
Lowis
同样问题,求解
返回顶部
顶部