转发apache请求到c程序

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

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

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

所以工作流程看起来像:
客户 – > Apache Webserver – > C软件

是否有任何现有的库或可以处理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设置为代理请求.这可能是您最好的方法. (例如,猫鼬非常容易嵌入.)

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

相关文章

文章浏览阅读1.8k次,点赞63次,收藏54次。Linux下的目录权限...
文章浏览阅读1.6k次,点赞44次,收藏38次。关于Qt的安装、Wi...
本文介绍了使用shell脚本编写一个 Hello
文章浏览阅读1.5k次,点赞37次,收藏43次。【Linux】初识Lin...
文章浏览阅读3k次,点赞34次,收藏156次。Linux超详细笔记,...
文章浏览阅读6.8k次,点赞109次,收藏114次。【Linux】 Open...