【问题标题】:Symfony2 long polling on SSL serverSSL 服务器上的 Symfony2 长轮询
【发布时间】:2017-01-16 08:43:27
【问题描述】:

我有一个 Symfony2 应用程序,它实现了长池化机制。用户登录应用程序,并在某个时间启动一个长池请求以通知用户一些更改,同时他仍在应用程序内部工作。

php 会话保存在数据库中,因此在长池期间打开其他 ajax 请求时不会出现会话锁定问题。

安装 SSL 证书后,问题出现了,长池似乎在他运行时锁定了其他请求,表现得像正常的 php 会话。尽管 php 会话仍然从数据库中保存/读取,但应用程序的行为就像存在锁定机制一样,并且不允许同时进行两个请求。

这是配置 SSL 模块的问题还是我遗漏了有关 Symfony 行为的某些内容?如果我禁用 SSL,一切都会很好,同时多个请求也不成问题。

后期编辑:

显然问题出在 HTTP2 标头上。如果我使用 HTTP2 标头并发请求排队并一个接一个地执行。使用 HTTP1.1 一切正常。这真的很奇怪,因为我根据 apache 文档检查了服务器配置,这应该适用于我的 SSL 模块。有没有人经历过这样的事情?

【问题讨论】:

    标签: php symfony ssl long-polling


    【解决方案1】:

    是从客户端用 jQuery 还是 Angular 做的?如果是这样,请检查 JS 控制台并调试网络。另外,您可以了解一下您服务器的 SSL apache conf 吗?某些参数可能会使服务器的默认配置超载,并与工作的非 ssl 配置发生冲突。

    【讨论】:

    • 我正在为应用程序使用 ExtJS 5.1。控制台上没有错误,服务器上也没有错误。此外,服务器的旧 SSL 配置和新配置之间的唯一区别是证书文件的路径,这是:<IfModule http2_module> ProtocolsHonorOrder On Protocols http/1.1 h2 </IfModule>
    • 好吧,如果证书或协议订单管理的路径会影响您的问题,那将是非常意外的......我看不出是什么引发了这个问题。你检查过apache日志吗?您是否尝试删除 ProtocolsHonorOder ?我们永远不知道......;
    • 显然从协议中删除 h2 完成了这项工作。我仍然需要了解为什么会发生这种情况,但目前我将只使用 Protocols h2c http/1.1
    猜你喜欢
    • 2013-05-25
    • 1970-01-01
    • 1970-01-01
    • 2019-02-10
    • 1970-01-01
    • 2012-06-10
    • 1970-01-01
    • 1970-01-01
    • 2012-07-03
    相关资源
    最近更新 更多