我们正在一个项目中使用 Citrix Netscaler 作为我们网站的前端。我们将 Citrix Netscaler 配置为使用 SSL 卸载,但当我们请求 PDF 文件时,SSL 卸载无法正常工作。浏览 html 页面时,它工作正常。Citrix Netscaler 中的 SSL 卸载是否存在问题?
答案1
是的,同意Imml的观点,信息不足。
最可能的原因是:
- “快速 webview” 启用了 PDF,而愚蠢的 Acrobat/Acroread 客户端发送过大的 HTTP“Range:”请求标头,而这些标头被 Netscaler 丢弃。Web 服务器日志中 HTTP 206 响应的激增就是这种情况的一个很好的指标。
- 令人难以置信的愚蠢的 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
时,此计数器会增加。POST
Content-Length
经过不断的搜索,我们找到了这篇文章:https://support.citrix.com/article/CTX205113
通过启用选项“ erase extra data from server
”可以解决该错误。
我希望我的解决方案能够帮助你。