【发布时间】:2012-01-11 08:07:42
【问题描述】:
我没有将 c++ 与 apache 或其他 Web 服务器一起使用的经验。但现在想将它与 yaws 一起使用以从传递的数据生成 pdf。可能有人有这样做的经验。请任何链接。我还没有找到。最好不要使用可执行文件而是使用库并从 yaws 模块调用其函数。
【问题讨论】:
我没有将 c++ 与 apache 或其他 Web 服务器一起使用的经验。但现在想将它与 yaws 一起使用以从传递的数据生成 pdf。可能有人有这样做的经验。请任何链接。我还没有找到。最好不要使用可执行文件而是使用库并从 yaws 模块调用其函数。
【问题讨论】:
由于您在问题中包含了cgi 标签,因此一种方法是使用Yaws CGI capabilities。您只需将 C++ 程序作为 CGI 程序运行。 Yaws 还支持 FCGI,它可以让您避免为每个请求启动 C++ 程序的新实例,而是在 Yaws 和程序的守护程序实例之间建立专用 TCP 连接。
另一种方法是编写一个Yaws appmod 导出一个out/1 函数。对此的参数将是一个#arg 记录,详细说明正在服务的请求的所有信息。然后,您的out/1 函数可以调用用 C++ 编写的Erlang NIF,从它需要的请求中传递任何信息,然后接受回复并将它们作为响应返回给 Yaws。 PDF 数据可以从您的 NIF 作为 Erlang 二进制文件返回。使用这种方法,您的 C++ 代码与 Yaws 在相同的 OS 进程中运行,因此您必须小心,您的代码永远不会崩溃,否则它将导致整个 Erlang VM 崩溃,但除此之外,这种方法会比 Yaws 更有效FCGI 或 CGI。
【讨论】: