标签: ajp

使用ProxyPass页面而不是图像

由于可怕的,可怕的错误,我们改变了将Apache连接到Tomcat的方式.我们用的是mod_jk:

JkMount /path ajp13
Run Code Online (Sandbox Code Playgroud)

现在我们正在使用mod_proxy_ajp:

ProxyPass /path ajp://localhost:8009/path
ProxyPassReverse /path ajp://localhost:8009/path
Run Code Online (Sandbox Code Playgroud)

但是,有一个功能JkMount提供但ProxyPass不提供:选择文件类型的能力.这使得代理html文件成为可能,但不能代理图像 - 换句话说,让好的快速Apache服务于静态的东西,并仅仅为动态的东西使用缓慢的Tomcat.

JkMount /*.html ajp13
Run Code Online (Sandbox Code Playgroud)

有没有办法实现这一目标ProxyPass?可能使用周围的<Location>指令或类似的东西?

apache proxy ajp mod-jk proxypass

3
推荐指数
1
解决办法
1万
查看次数

tomcat ajp 8009 协议系列不可用

#question 根据tomcat的官方例子,我经常配置测试和启动。遇到一个奇怪的问题,发现8009启动有问题,端口和防火墙都正常,不知道怎么处理。

server.xml https://tomcat.apache.org/tomcat-7.0-doc/cluster-howto.html(配置示例)

# tomcat log   
<code>   

    INFO: Server version name:   Apache Tomcat/7.0.103
    INFO: Server version number: 7.0.103.0
    INFO: OS Name:               Linux
    INFO: CATALINA_HOME:         /home/tomcat/apache-tomcat-7.0.103

    INFO: Command line argument: -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager
    INFO: Command line argument: -Djdk.tls.ephemeralDHKeySize=2048
    INFO: Command line argument: -Dorg.apache.catalina.security.SecurityListener.UMASK=0027
    INFO: Command line argument: -Dignore.endorsed.dirs=
    INFO: Command line argument: -Dcatalina.base=/home/tomcat/apache-tomcat-7.0.103
    INFO: Command line argument: -Dcatalina.home=/home/tomcat/apache-tomcat-7.0.103
    INFO: Command line argument: -Djava.io.tmpdir=/home/tomcat/apache-tomcat-7.0.103/temp
    Apr 13, 2020 5:47:16 PM org.apache.catalina.core.AprLifecycleListener lifecycleEvent
    INFO: The APR based Apache Tomcat Native library which allows optimal …
Run Code Online (Sandbox Code Playgroud)

tomcat ajp

3
推荐指数
1
解决办法
2101
查看次数

AJP足够安全吗?

我们需要在托管服务中托管java richfaces/hibernate应用程序.作为我们安全部门的要求,我们无法从该应用程序与内部数据库建立任何连接.一个建议的解决方案是创建内部Web服务,但更改所有数据库层很难.我想改用AJP.它足够安全吗?

[编辑]通过问这个我的意思是apache httpd将服务https并通过包装AJP进入我们的内部服务器可能会监控通道(明文)?我找不到协议本身的文档.

ajp

2
推荐指数
1
解决办法
1967
查看次数

如何在Tomcat中设置AJP数据包大小?

我按照这里的说明在AJP中设置maxPacketSize ...

AJP连接器doc

它在文档中声明我需要"你还必须在Tomcat端更改AJP连接器的packetSize属性!属性packetSize仅在Tomcat 5.5.20+和6.0.2+中可用."

我不知道怎么改变它!

这个doc谈到在Tomcat中更改它,但是我无法找到实际需要更改它的位置(什么属性文件/配置文件等)

Tomcat AJP连接器

有人能给我一个线索吗?

谢谢!

tomcat ajp

2
推荐指数
1
解决办法
2万
查看次数

mod_proxy_ajp错误:将html呈现为text/plain,提示用户"另存为..."

我们有一个奇怪的,间歇性的错误,发生在mod_proxy_ajp,即使用apache作为tomcat服务器的前端.

错误

  • 用户点击链接浏览器会提示用户"另存为...."(例如在Firefox中"你选择了顶级开放的thread.jsp,这是一个应用程序/八位字节流"...... firefox应该对这个文件做什么)
  • 用户说"嗯?" 并按"取消"
  • 用户再次点击同一链接
  • 浏览器正确显示页面

此错误间歇性地发生,但遗憾的是很少在我们的测试服务器上并且经常在生产中.

在firefox的LiveHttpHeaders中,我在上面的用例中看到以下内容:

  • 首页下载(即点击链接)是"text/plain"
  • 第二次下载是"text/html"

我认为问题可能源于ProxyPassReverse(即混淆了是否使用http或ajp),但所有这些proxypassreverse设置都导致了同样的错误:

另外,我检查了apache错误日志(设置为debug),看不到警告或错误......

**但它适用于mod_proxy_http ??**

似乎切换到mod_proxy_http'解决了这个问题.有限的测试,我无法在测试环境中重现问题.

因为这个问题是间歇性的,所以我不能100%确定mod_proxy_http"解决"了这个问题

环境

  • Apache 2.2 Windows
  • Jboss 4.2.2后端(tomcat 6)

另一个数据点

无论好坏,tomcat中的servlet过滤器会在将html发送到apache之前对其进行gzip压缩.(这意味着额外的工作,因为apache必须在执行ProxyPassReverse的"查找和替换"之前解压缩).我不知道"gzip"是否会混乱.

问题

  • 有人见过这个吗?
  • 什么工具有助于分析原因?

谢谢

附录1:这是LiveHttpHeaders输出

浏览器错误地将html视为"text/plain"

http://forums.customer.com/pe/action/forums/displaythread?rootPostID=10842016&channelID=1&portalPageId=1002

GET http://forums.customer.com/pe/action/forums/displaythread?rootPostID=10842016&channelID=1&portalPageId=1002 HTTP/1.1
Host: forums.customer.com
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.2.13) Gecko/20101203 Firefox/3.6.13 ( .NET CLR 3.5.30729)
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-us,en;q=0.5
Accept-Encoding: gzip,deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive: 115
Proxy-Connection: keep-alive
Cookie: __utma=156962862.829309431.1260304144.1297956514.1297958674.234; __utmz=156962862.1296760237.232.50.utmcsr=forumstest.customer.com|utmccn=(referral)|utmcmd=referral|utmcct=/pe/action/forums/displaythread; s_vi=[CS]v1|258F5B88051D3FC3-40000105C056085F[CE]; inqVital=xd|0^sesMgr|{"sID":4,"lsts":1292598007}^incMgr|{"id":"755563420055418864","group":"CHAT","ltt":1292598006741,"sid":"755563549194447187","igds":"1290627502757","exempt":false}^inq|{"customerID":"755562378269271622"}^saleMgr|{"state":"UNSOLD","qDat":{},"sDat":{}}; inqState=sLnd|1^Lnd|{"c":4,"flt":1274728016,"lldt":17869990,"pgs":{"201198":{"c":1,"flt":1274728016,"lldt":0},"0":{"c":3,"flt":1274845009,"lldt":17752997}},"pq":["0","0","0","201198"],"fsld":1274728016697}; …
Run Code Online (Sandbox Code Playgroud)

apache tomcat mod-proxy ajp

2
推荐指数
1
解决办法
5859
查看次数

Tomcat 7 Websockects通过AJP无法正常工作.有什么建议?

有没有人知道如果将协议设置为AjpNioProtocol,Tomcat版本7.0.27 AJP Connecter是否可以支持http升级(websockets). http://tomcat.apache.org/tomcat-7.0-doc/config/ajp.html#Connector_Comparison

我正在使用大气,但即使有一个基本的套接字请求,客户端websocket也会关闭.Atmo错误:连接已关闭,未发送关闭帧.

java tomcat ajp websocket atmosphere

2
推荐指数
1
解决办法
3230
查看次数

响应中的状态代码重复

我通常在 Tomcat 服务器中部署 Java Web 应用程序,并使用 proxy_ajp 通过 Apache 代理访问它们。问题是,在我的最新设置(基本相同)中,我发现我在所有请求中获得的状态代码都是重复的(即“状态代码:200 200”)。我在每个浏览器、Postman 以及我可能得到的任何状态代码中都得到了这个,一切似乎都工作正常,但我担心我的设置可能不是最佳的。

虽然我找不到解决方案,但我已将问题范围缩小到ajp_proxy,就好像我改变了一样

ProxyPass / ajp://localhost:8009/
ProxyPassReverse / ajp://localhost:8009/
Run Code Online (Sandbox Code Playgroud)

和:

ProxyPass / http://localhost:8080/
ProxyPassReverse / http://localhost:8080/
Run Code Online (Sandbox Code Playgroud)

正如预期的那样,我的请求只得到一个状态代码。

我已经搜索过这个问题,但没有发现任何与之相关的内容,因此我们将非常感谢任何信息。

服务器信息:

  • Apache版本:Apache/2.4.18(Ubuntu)
  • Tomcat版本:apache-tomcat-8.5.13

提前致谢。

apache tomcat ajp proxypass

2
推荐指数
1
解决办法
3167
查看次数

Apache错误地将jsp页面转换为"text/plain"

我有一个相当正常的设置,其中Apache代理通过AJP协议向在Tomcat内运行的servlet发出请求.

我们已经在Apache 2.0.46/Tomcat 5.0.28上运行此设置多年没有问题,但最近更新到Apache 2.2.3/Tomcat 5.5.

问题是我们已经注意到,间歇性地(可能是3次中的一次)Apache会以某种方式将servlet服务的页面的"Content-Type"HTTP头从"text/html"转换为"text/plain",导致浏览器显示HTML源而不是呈现它.

有没有人见过这种行为,知道可能是什么原因?我怀疑我们在servlet代码中做了一些不好的事情,旧版本的Tomcat/Apache更加宽容.

更新:我已经确认它是Apache更改标头.如果我直接浏览到Tomcat,则不会出现问题.

apache tomcat ajp

1
推荐指数
1
解决办法
5486
查看次数

使用mod_proxy_ajp在端口80上破坏tomcat(错误)

我的tomcat在8080上运行

apache在80上运行

我实现了

<Location />
    ProxyPass ajp://localhost:8080/ retry=0 timeout=30
    ProxyPassReverse ajp://localhost:8080/
       </Location>
Run Code Online (Sandbox Code Playgroud)

我无法通过apache访问我的java应用程序,并且不断出错

[Thu May 23 15:47:33 2013] [error] (120006)APR does not understand this error code: proxy: read response failed from (null) (localhost)
[Thu May 23 15:48:15 2013] [error] (70014)End of file found: ajp_ilink_receive() can't receive header
[Thu May 23 15:48:15 2013] [error] ajp_read_header: ajp_ilink_receive failed
[Thu May 23 15:48:15 2013] [error] (120006)APR does not understand this error code: proxy: read response failed from (null) (localhost)
Run Code Online (Sandbox Code Playgroud)

任何建议解决ajp代理错误

apache proxy tomcat ajp

1
推荐指数
1
解决办法
5736
查看次数

标签 统计

ajp ×9

tomcat ×7

apache ×5

proxy ×2

proxypass ×2

atmosphere ×1

java ×1

mod-jk ×1

mod-proxy ×1

websocket ×1