繁体   English   中英

转发apache请求到c ++程序

[英]Forwarding apache request to a c++ program

我基本上在寻找有关如何处理该问题的提示和技巧。

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

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

所以工作流程看起来像:Client - > Apache Webserver - > C ++ Software

是否有任何现有的库或某些东西可以处理Apache - > C ++连接? 或者它是否只是将请求重定向到c ++中的套接字并手动执行? 基本上像tomcat连接器。

编辑

请注意,服务器软件在后台永久运行,不应通过呼叫“启动”

有几个选择。

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

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

您还可以在C ++进程中始终嵌入像Mongoosecpp-netlib这样的Web服务器,并设置Apache来代理对它的请求。 这可能是您最好的方法。 easy to embed.) (例如,猫鼬容易嵌入。)

最后,您可以使用完整的Apache模块(将C ++服务器重新设计为Apache模块,或者使用Apache模块与C ++服务进行通信)。 这可能比您想要的更复杂,尽管现有的项目如CPPSERV采用这种方法。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM