将apache请求转发给c ++程序

我基本上寻找如何解决这个问题的提示和技巧。

我有一个服务器软件(Linux),它是用C ++编写的。 我需要做的是提供一些信息,这是在该软件内生成的,通过http调用到Apachenetworking服务器。

当然,将数据存储在数据库中并为其编写一个servlet或使用IPC来获取数据是可能的,但是我想保持简单,并将其捆绑在一个文件中。 而且我想知道这个想法是否可行。

所以工作stream将如下所示:客户端 – > Apache Web服务器 – > C ++软件

是否有任何现有的库或可以处理Apache – > C ++连接的东西? 或者它会像只是将请求redirect到一个在c + +中的套接字,并手动执行? 基本上像tomcat连接器

编辑

请注意,服务器软件在后台永久运行,不应该由电话“启动”

有几个选项。

CGI很简单,并且一直存在。 在CGI下,Web服务器将为每个Web请求生成一个单独的进程。 正如你在你的评论中提到的,你可以编写一个CGI脚本来调用你的C ++程序的RPC。

FastCGI是CGI的替代品; 不是为每个Web请求产生一个单独的进程,而是定义一个协议,让Web服务器将多个Web请求分派到一个长期运行的进程。 它适用于Web应用程序。 但是,对于您的场景,如果您有一个预先存在的需要添加Web界面的服务器进程,则可能无法正常工作; 基于我有限的理解,Web服务器通常希望启动和停止长时间运行的FastCGI进程(响应传入请求,服务器负载,空闲时间等),而不是连接到预先存在的FastCGI进程。 (大多数服务器可以让你重新配置,我想,但这不是默认设置。)

您也可以在您的C ++过程中始终嵌入一个像Mongoose或cpp-netlib这样的Web服务器,并设置Apache来代理对它的请求。 这可能是你最好的办法。 (例如,猫鼬非常容易嵌入。)

最后,你可以使用一个完整的Apache模块(或者将你的C ++服务器重新设计为Apache模块,或者让Apache模块与你的C ++服务进行通信)。 这可能比你想要做的更复杂,虽然有像CPPSERV这样的现有项目采用这种方法。