我们在 slicehost.com 上的 Ubuntu 2GB 切片上运行 Tomcat 6
JSP 应用程序 fwiw 是 Open Clinica 3.1 我在书中几乎实现了 SSL,如您所见:
<Connector port="8443"
scheme="https" SSLEnabled="true"
keystorePass="XXXXX" keystoreFile="XXXXX"
maxKeepAliveRequests="0"
sessionCacheSize="0" sessionTimeout="0" compression="on" maxThreads="500"
clientAuth="false" sslProtocol="TLS" />
Run Code Online (Sandbox Code Playgroud)
问题在于 Open Clinica Java 应用程序执行大量 HTTP 请求来构建页面 - 使用 Chrome 开发人员工具,我可以看到对典型页面的 70-80 个请求。
当您为每个请求添加 SSL 握手时,额外的网络延迟只会缩短应用程序响应时间。FWIW - 客户端用户位于以色列、欧洲和美国 - 因此在用户旁边运行本地服务器的选项实际上并不可行。我知道由于 slicehose 在美国 - 到以色列的网络延迟很差,但我觉得由于服务器的 HTTP 性能可以接受到好的 - 我们应该能够做得更好。
为了尽量减少 ssl 握手 - 我定义了无限制的 sessionCacheSize 和 SessionTimeout,如上面的连接器定义所示
但是,当我在客户端运行 ssldump 时,我仍然看到很多握手正在进行,这似乎表明 Tomcat 实际上忽略了这些参数
服务器没有压力 - 有 5 个同时使用的用户,大约有 100MB 的可用内存,几乎没有交换。