apache - mod_proxy 可以处理带参数的 GET 响应(使用 tomcat 作为后端)

标签 apache tomcat mod-proxy

我有 Apache 反向代理,它转发请求到使用 mod_jk 连接 tomcat 的后端 Apache,应用程序在 java/jsps 中 在 Apache 反向代理中,当 GET 请求中有不带参数的请求时,我有这个配置:

ProxyRequests     Off
ProxyPreserveHost On
ProxyPass /users/ http://1x2.xxx.4.xx:5xxxx/jsp/app/New/
ProxyPassReverse /users/  http://1x2.xxx.4.xx:5xxxx/jsp/app/New/
CustomLog /home/Apache/logs/proxy_log common

mod_proxy 日志:

1xx.1xx.3.xx - - [20/Nov/2012:14:07:54 +0200] "GET /users/ HTTP/1.1" 200 3547
1xx.1xx.3.xx - - [20/Nov/2012:14:07:57 +0200] "GET /users/ HTTP/1.1" 200 3547
1xx.1xx.3.xx - - [20/Nov/2012:14:07:58 +0200] "GET /users/index.jsp?event=pi&id=&p= HTTP/1.1" 200 3615
1xx.1xx.3.xx - - [20/Nov/2012:14:08:02 +0200] "GET /users/ HTTP/1.1" 200 3547
1xx.1xx.3.xx - - [20/Nov/2012:14:08:07 +0200] "GET /users/index.jsp?event=pi&id=test&p=test HTTP/1.1" 200 3615
1xx.1xx.3.xx - - [20/Nov/2012:14:16:48 +0200] "GET /users/ HTTP/1.1" 200 3547
1xx.1xx.3.xx - - [20/Nov/2012:14:27:05 +0200] "GET /users/index.jsp?event=pi&id=test&p=test HTTP/1.1" 302 -
1xx.1xx.3.xx - - [20/Nov/2012:14:27:05 +0200] "GET /jsp/app/New/Home.jsp?event=Validated HTTP/1.1" 404 306
1xx.1xx.3.xx - - [20/Nov/2012:14:29:25 +0200] "GET /users/index.jsp?event=pi&id=test&p=test HTTP/1.1" 302 -
1xx.1xx.3.xx - - [20/Nov/2012:14:29:25 +0200] "GET /jsp/app/New/Home.jsp?event=Validated HTTP/1.1" 404 306
1xx.1xx.3.xx - - [20/Nov/2012:15:11:37 +0200] "GET /users/ HTTP/1.1" 200 3547
1xx.1xx.3.xx - - [20/Nov/2012:15:11:44 +0200] "GET /users/index.jsp?event=pi&id=test&p=test HTTP/1.1" 302 -
1xx.1xx.3.xx - - [20/Nov/2012:15:11:45 +0200] "GET /jsp/app/New/Home.jsp?event=Validated HTTP/1.1" 404 306

正如您每次收到来自 :

的回复时所看到的
"GET /jsp/app/New/Home.jsp?event=Validated HTTP/1.1" 404 306

失败了
当我尝试在没有代理服务器的情况下直接使用它时,该页面正在运行。

最佳答案

您需要使用 Apache Httpd v2.2+ 并在 ProxyPass 配置中指定“nocanon”选项,这会告诉 Apache 不要规范化请求查询字符串:

ProxyPass /users/ http://1x2.xxx.4.xx:5xxxx/jsp/app/New/ nocanon

关于apache - mod_proxy 可以处理带参数的 GET 响应(使用 tomcat 作为后端),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13474312/

相关文章:

django - 无法使用 Apache 导入/没有名为 Django 的模块错误

angularjs - Elastic Beanstalk : remove hashbang urls from SPA

java - Spring Security 教程不适用于 Tomcat 服务器

java - 运行Servlet时出现异常: java. lang.ClassNotFoundException : javax. servlet.http.HttpServletRequest

apache http 服务器负载均衡器监控

ubuntu apache2 mod_proxy 替换内部 url

php - MSSQL 字段别名 (AS) 已停止工作

c - Apache 过滤器请求主机名比较不起作用

java - Tomcat 更新事件

apache - 配置Apache以避免使用Dart进行跨域调用