You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Drupal 7.67 HTTPS环境下AJAX批量请求异常终止问题排查求助

关于Drupal HTTPS环境下批量AJAX任务中断的问题分析与解决建议

让我来拆解一下你遇到的这个问题——HTTP环境正常但HTTPS下30分钟左右批量任务就会因为AJAX连接中断失败,结合你给出的错误信息和环境细节,这个问题大概率和服务器的HTTPS配置、超时机制或者Drupal的HTTPS识别逻辑有关,咱们一步步来梳理:

一、核心差异定位:HTTP vs HTTPS的关键区别

既然同一服务器上HTTP环境完全正常,那基本可以排除代码逻辑、PHP基础配置(你提到的max_input_vars等参数)或者数据库层面的问题,重点要放在HTTPS专属的配置上。

二、具体排查方向与解决建议

1. 先确认Drupal的HTTPS环境识别配置

Drupal如果没有正确识别当前是HTTPS环境,可能会导致AJAX请求的URL生成异常(比如偷偷从HTTPS跳回HTTP),进而引发跨协议的连接重置。这一步建议优先处理:
在Drupal的settings.php文件中添加以下配置:

$conf['https'] = TRUE;
// 如果你的服务器是通过反向代理(比如Nginx转Apache)提供HTTPS的,再加上下面两行
$conf['reverse_proxy'] = TRUE;
$conf['reverse_proxy_addresses'] = array($_SERVER['REMOTE_ADDR']);

添加后重新测试批量任务,看是否还会出现中断。

2. 检查Web服务器的HTTPS超时设置

HTTPS连接通常会有单独的超时配置,很可能你的服务器给HTTPS设置的超时时间刚好是30分钟,到点就主动断开了连接:

  • 如果你用的是Apache:检查httpd.conf或虚拟主机配置中的Timeout和SSLSessionTimeout参数,建议把Timeout调整到600秒(10分钟)以上,SSLSessionTimeout设置成3600秒(1小时)左右。
  • 如果你用的是Nginx:检查nginx.conf或站点配置中的proxy_read_timeout、ssl_session_timeout,同样把超时时间调整到足够覆盖你的批量任务时长。

3. 排查服务器进程回收机制

服务器日志里的“internal dummy connexion”是Web服务器(比如Apache)自己发起的测试连接,用来检测子进程是否存活。如果这个日志刚好在AJAX中断的时间点出现,可能是服务器进程被强制回收了:

  • 比如Apache的MaxRequestsPerChild参数,如果设置过小,进程处理一定数量的请求后就会重启,刚好中断你的长时批量任务。可以把这个参数调大(比如设置为10000)或者直接设为0(不限制进程的请求处理数量)。

4. 检查防火墙/负载均衡的超时设置

如果你的服务器前端有防火墙或者负载均衡设备,这些设备可能会对HTTPS连接设置更严格的超时规则,哪怕Web服务器设置了更长时间,中间设备也会提前断开连接。可以联系运维人员查看这些设备的日志,确认是否有连接超时的记录,并调整超时时间。

5. 验证SSL证书与加密套件的完整性

虽然你提到证书有效期到2020年,但还要确认证书是否包含完整的中间证书链——有些浏览器会因为缺少中间证书导致连接不稳定,进而出现重置。另外,也可以尝试调整服务器的SSL加密套件配置,优先使用TLS 1.2及以上的现代加密套件,避免老旧套件带来的长连接稳定性问题。

三、总结

这个问题的核心是HTTPS环境下的连接超时或识别异常,建议按照「Drupal配置→Web服务器超时→进程回收→中间设备→SSL证书」的顺序逐步排查,应该能找到根源。

内容的提问来源于stack exchange,提问作者etudiant

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.14 07:22:58