Wt(机智)+ Apache + Fastcgi

Posted

技术标签:

【中文标题】Wt(机智)+ Apache + Fastcgi【英文标题】:Wt (Witty) + Apache + Fastcgi 【发布时间】:2015-12-22 04:27:02 【问题描述】:

我试图了解 Wt 在通过 fastcgi 连接器和 apache 将会话作为动态 fastcgi 脚本使用时如何管理会话。我的wt_config.xml 是默认的。我什么都没做,所以,当前关于进程和线程管理的 Wt 选项是默认选项:

<server>
  <application-settings location="*">
    <session-management>      
      <!--
        <dedicated-process>
          <max-num-sessions>100</max-num-sessions>
        </dedicated-process>
      -->

      <shared-process>
        <num-processes>1</num-processes>
      </shared-process>

      // Others....
    </session-management>

    <connector-fcgi>
      <num-threads>1</num-threads>
      // Others....
    </connector-fcgi>

    // Others...
  </application-settings>
</server>

有了这样的配置,我会有多少进程?所有课程都只有一个?还是每个新会话只使用一个? shared-process 到底是什么意思?

如果我将我的应用程序用作聊天,使用服务器推送来刷新内容,如果我同时运行多个进程,我会不会遇到问题? (因为不同的客户端可以连接到不同的进程)。

【问题讨论】:

【参考方案1】:

当 Wt 应用程序在带有 FastCGI 连接器的 Apache 下运行时,首先启动 Wt FastCGI 调度进程。该进程从 Web 服务器接收 FastCGI 请求并将它们转发到实际执行您的应用程序工作的工作进程。工作进程的数量由shared-process 选项控制。之所以称为共享,是因为活动 Wt 会话的数量最终可能会超过工作进程的数量。在这种情况下,调度进程会尝试将新的 Wt 会话平均分配给工作进程。

shared-process 选项不同,当您使用dedicated-process 时,将为每个新的 Wt 会话启动一个新的工作进程。

WServer::postWServer::postAll 发送的推送事件将仅传递给当前进程中的 Wt 会话。如果你想在所有进程中向所有 Wt 会话发布事件,你应该实现一些自定义的进程间通信机制。

我在这里讨论过:http://redmine.webtoolkit.eu/issues/2897

【讨论】:

以上是关于Wt(机智)+ Apache + Fastcgi的主要内容,如果未能解决你的问题,请参考以下文章

重量(机智)。对 Javascript 实现不工作一无所知

Wt C++ - 将 GET 值添加到 URL

Linux之apache服务搭建

如何使用内置 Web 服务器部署 Wt 应用程序?

用于生产服务器的重量 httpd

机友分享 导入机智云Android开源项目的正确姿势