将apache请求转发到c++程序
Forwarding apache request to a c++ program
我基本上是在寻找如何解决这个问题的技巧和窍门。
我有一个服务器软件(Linux),它是用C++编写的。我需要做的是通过对apache Web服务器的http调用。
当然,也可以将数据存储在数据库中并为其编写servlet,或者使用IPC来获取数据,但我希望保持简单并将其捆绑在一个文件中。我也想知道这个想法是否可行。
因此,工作流程如下所示:客户端->Apache Web服务器->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代理请求。这可能是你最好的方法。(例如,Mongoose非常容易嵌入。)
最后,您可以使用一个完整的Apache模块(将您的C++服务器重新设计为Apache模块,或者使用一个Apache模块与您的C++服务进行通信)。这可能比你想做的更复杂,尽管有像CPPSERV这样的现有项目采用这种方法。
- Mongodb c++驱动程序:如何查询元素的数组
- C++,系统无法执行指定的程序
- 在C++程序中输入的文本文件将不起作用,除非文本被复制和粘贴
- 在VS代码中交叉编译Windows与Linux上的MinGW的SDL程序
- C++ Windows 驱动程序MSB3030无法复制该文件,因为它找不到
- 重载操作程序时出错>>用于类中的字符串 memebr
- 获取日期异步信号安全吗?如果在信号处理程序中使用,它会导致死锁吗
- 试图在visual studio上用C++创建一个桌面应用程序
- 模板元程序查找相似的连续类型名称
- FFmpeg:制作一个应用程序比直接使用ffmepg更好吗
- 如何通过cpp程序运行shell脚本
- 有没有什么方法可以使用一个函数中定义的常量变量,也可以由c++中同一程序中的其他函数使用
- IPC使用多个管道和分支进程来运行Python程序
- 如何将c++程序的一些输出传递给shell,以便在shell中使用
- 使用C++程序合并排序没有得到正确的输出
- 基于boost的程序的静态链接——zlib问题
- 程序崩溃并显示"std::out_of_range"错误
- 在C应用程序中运行C++(带有STL)函数
- 使用mongocxx驱动程序时包含头文件问题
- 如何在c++程序中找到函数的地址