请求 PDF 文件时,Citrix Netscaler 的 SSL 卸载不起作用

请求 PDF 文件时,Citrix Netscaler 的 SSL 卸载不起作用

我们正在一个项目中使用 Citrix Netscaler 作为我们网站的前端。我们将 Citrix Netscaler 配置为使用 SSL 卸载,但当我们请求 PDF 文件时,SSL 卸载无法正常工作。浏览 html 页面时,它工作正常。Citrix Netscaler 中的 SSL 卸载是否存在问题?

答案1

是的,同意Imml的观点,信息不足。

最可能的原因是:

  1. “快速 webview” 启用了 PDF,而愚蠢的 Acrobat/Acroread 客户端发送过大的 HTTP“Range:”请求标头,而这些标头被 Netscaler 丢弃。Web 服务器日志中 HTTP 206 响应的激增就是这种情况的一个很好的指标。
  2. 令人难以置信的愚蠢的 MSIE+Acrobat 交互,其中 MSIE 阻止将 HTTPS 内容保存到磁盘,似乎下载了 PDF 文件,然后使用不存在的文件启动 Acrobat 插件。

服务器端解决方法分别是:1. 创建 PDF 时禁用快速 Web 视图,和/或增加 HTTP 标头大小限制 2. 要允许 PDF 缓存,请设置 Cache-control:删除“no-cache”,添加 max-age=0;取消设置任何 Pragma:标头。或者另存为,然后手动打开 PDF。

答案2

我也遇到过同样的问题。我们为 Web 应用程序配置了 SSL 卸载,每个 HTML 页面都可以顺利加载,但“ application/acrobat”应该发送到客户端并由 Web 浏览器呈现的内容总是在连接重置时完成,因此无法加载内容。

我们发现“ block HTTP invalid request”选项阻止了该内容。如果我们在 HTTP 全局参数中删除该选项,PDF 数据就可以在客户端 Web 浏览器上呈现。禁用“ block HTTP invalid request”参数不是一个选项,因为我们需要它来保护应用程序,所以我们进行了进一步调查,以找出导致 NetScaler 阻止该流量的根本原因。

我们使用以下 shell 命令查看阻塞原因的统计数据:

root@ns# nsconmsg -g http_err_noreuse_ -d stats

Index reltime     counter-value symbol-name&device-no
    1  483000                 0 http_err_noreuse_multipart
    3       0                 0 http_err_noreuse_IncompleteHeader
    5       0                 0 http_err_noreuse_link_server
    7       0                 0 http_err_noreuse_large_data
    9       0                 0 http_err_noreuse_IncompleteChunk
   11       0                 0 http_err_noreuse_InvalidHeader
   13       0                 0 http_err_noreuse_ResponseBeforeData
   15       0                 0 http_err_noreuse_non_trackable_res
   17       0                 0 http_err_noreuse_http_0_9
   19       0                25 http_err_noreuse_morethanCtLen

我们发现阻止流量的原因是。当主体大于请求标头中提供的值http_err_noreuse_morethanCtLen时,此计数器会增加。POSTContent-Length

经过不断的搜索,我们找到了这篇文章:https://support.citrix.com/article/CTX205113

通过启用选项“ erase extra data from server”可以解决该错误。

我希望我的解决方案能够帮助你。

相关内容