问题描述
我有一个托管在IIS 7.5&上的JSP Web应用程序;在Win 2008 R2 64位上通过BonCode AJP13 v1.0.26通过Tomcat 8.0.30.
I have a JSP web-app hosted on IIS 7.5 & Tomcat 8.0.30 via BonCode AJP13 v1.0.26 on Win 2008 R2 64 bit.
在生产环境中,一些用户遇到间歇性的BonCode错误:
On the production environment, some users are getting an intermittent BonCode error:
Generic Connector Error: Please check...
有人知道BonCode 1.0.26,IIS 7.5及更高版本的工作配置吗? Tomcat 8?
Has anyone got a known working configuration for BonCode 1.0.26, IIS 7.5 & Tomcat 8?
详细信息
受影响的用户似乎在漫游通过VPN连接的笔记本电脑和家庭工人即台式机似乎不受影响.
The users affected seem to be roaming laptops and home-workers that connect via a VPNie desktops seem unaffected.
Tomcat/JSP Web应用程序上没有身份验证.
There is no authentication on Tomcat / JSP web-app.
Tomcat的单个实例与IIS 7.5位于同一服务器上.即没有负载平衡等.
A single instance of Tomcat is on the same server as IIS 7.5.ie no load-balancing etc.
仅使用纯HTTP即不是HTTPS,也没有关联的证书.
Only plain HTTP is being usedie not HTTPS and no associated certificates.
客户诊断
- IE 11开发人员工具>网络
显示了HTTP 502的生成.
shows the generation of a HTTP 502.
- 提琴手
显示了HTTP 502的生成.
shows the generation of a HTTP 502.
服务器诊断
- BonCode日志
有时会看到:
2016-02-29 15:59:01 1.0.26 ERROR
TCP Client level -- Server/Port:localhost/8009
Value cannot be null.
Parameter name: buffer
2016-02-29 15:59:01 One Connection raised an error
但是通常不会显示任何相关错误/警告
but usually, no related errors / warnings are being shown
- IIS失败的跟踪请求
显示了模块"ManagedPipelineHandler"中HTTP 502的生成.
shows the generation of a HTTP 502 in module ‘ManagedPipelineHandler’.
- Tomcat日志
没有错误,因为未转发servlet/JSP请求.
no errors, as expected as servlet/JSP requests are not being forwarded.
配置文件
BonCode-BonCodeAJP13.settings
BonCode - BonCodeAJP13.settings
<Settings>
<Port>8009</Port>
<Server>localhost</Server>
<MaxConnections>0</MaxConnections>
<LogLevel>4</LogLevel>
<LogDir>E:\inetpub\logs\BonCode</LogDir>
<FlushThresholdTicks>0</FlushThresholdTicks>
<EnableRemoteAdmin>False</EnableRemoteAdmin>
<PacketSize>65536</PacketSize>
</Settings>
Tomcat-server.xml
Tomcat - server.xml
...
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443"
packetSize="65536" />
...
注释
我知道,除了BonCode之外,还有以下其他连接器选项:
I am aware that, as well as BonCode, there are these other connector options:
- Tomcat ISAPI
- IIS ARR
如果对BonCode不满意,我们可能会在下一个尝试IIS ARR.
If we get no joy with BonCode, we will probably try IIS ARR next.
感谢阅读.
推荐答案
经过反复试验,似乎必须过滤掉授权HTTP标头.
After much trial and error, it seems that the authorization HTTP header must be filtered out.
某些客户端计算机,漫游笔记本电脑等似乎会生成非常大的授权数据包-我看到的大小约为12K.
Some client machines, roaming laptops etc, seem to generate very large authorization packets - I have seen sizes of about 12K.
无论出于何种原因,尽管在BonCode和Amp上都将包大小设置为64K Tomcat 8,此标头似乎太大.
For whatever reason, despite setting the packet size to 64K on both BonCode & Tomcat 8, this header seems to be too large.
现在这是我们的BonCode配置-注意更新的 HeaderBlacklist 值
This is now our BonCode configuration - note the updated HeaderBlacklist value
<Settings>
<Port>8009</Port>
<Server>localhost</Server>
<MaxConnections>0</MaxConnections>
<LogLevel>2</LogLevel>
<LogDir>E:\inetpub\logs\BonCode</LogDir>
<FlushThreshold>0</FlushThreshold>
<EnableRemoteAdmin>False</EnableRemoteAdmin>
<HeaderBlacklist>AUTHORIZATION,URL,SERVER_SOFTWARE,SERVER_NAME,SERVER_PROTOCOL</HeaderBlacklist>
<PacketSize>65536</PacketSize>
</Settings>
这篇关于BonCode连接器,IIS 7.5及更高版本Tomcat 8,间歇性通用连接器错误的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!