加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Linux > 正文

转发apache请求到c程序

发布时间:2020-12-13 18:56:06 所属栏目:Linux 来源:网络整理
导读:我基本上在寻找有关如何处理该问题的提示和技巧. 我有一个服务器软件(Linux),用C语言编写.我需要做的是 通过提供在该软件内部生成的一些信息 对apache webserver的http调用. 当然可以将数据存储在数据库中并为其编写servlet,或者使用IPC来获取数据,但我想保

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

我有一个服务器软件(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进程中始终嵌入像Mongoose或cpp-netlib这样的Web服务器,并将Apache设置为代理请求.这可能是您最好的方法. (例如,猫鼬非常容易嵌入.)

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读