我有一个 IIS 网站,该网站通过 Apache(ProxyPass 和 ProxyPassReverse - 这种奇怪配置的原因是历史原因)。Apache 位于其他公司代理服务器后面。该网站有静态文件和一个用于提供 JSON 的 WebAPI 部分的虚拟目录。
用户有时会得到错误的内容 - 例如,访问主页会返回主页上链接的图像、网站上的其他 html 页面或一些 JSON(来自 WebAPI)。主页已关闭缓存。
这种情况通常发生在服务器承受压力(数据库冻结)时,但在其他情况下也会发生(但很少发生),但频率或一致性不足以进行调试。
IIS:版本 6.1
Apache:版本 2.2.13
什么原因可能导致这个间歇性问题,或者有什么好方法可以查明发生了什么?
答案1
可能是“错误”页面重定向到主页。或者只是显示主页。这也解释了为什么当服务器负载很高时会出现此问题。我会检查 IIS 配置。
以下是我以通用方式调试问题的方法。
我会尝试隔离问题。为此,我会记录以下路径上的流量:
- 网络客户端 - Apache
- 阿帕奇-IIS
然后我会检查发生了什么。并尝试匹配请求和响应。您可以使用任何网络嗅探器记录流量,并使用 Wireshark 进行分析。您还可以使用以下工具记录来自托管交换机的流量SPAN 或 RSPAN。
然后我会尝试重现该问题。您可以克隆机器并使用负载测试软件测试克隆,例如JMeter。检查 Web 服务器的错误日志。尝试找出您达到的限制。可能是连接池限制、超时……