面向轻量级web服务器的C++兼容性
C++ compatibility for lightweight web servers
我对Web服务器事务非常陌生,而且还是一个比较天真的C++学生。我现在正在做一个项目,我必须创建一个插件到现有的网络服务器。这是一个公司的商业项目,但也是我的学士论文项目。我不太确定哪台网络服务器适合我的项目。我正在寻找的web服务器应该处理网络套接字,并将http或https请求作为对象呈现,插件(我想要开发的)应该从中读取头、url、数据,并相应地为公司的数据存储的文件系统API翻译(特别是翻译SOAP和REST),反之亦然。该插件必须使用C++开发。服务器环境为Linux Cent OS 6。该公司的普通员工以前从未使用过linux服务器环境。这是一家小公司。它们以前只使用windows和IIS web服务器。我们的项目经理不愿意使用Apache,因为它占地面积大,速度慢,而IIS不适合linux。因此,我们正在寻找一个免费的轻量级linux网络服务器。
我看到人们谈论了很多关于Nginx、G-WAN、Cherokee、Lightspeed、Varnish、Tntnet等。但我并没有真正找到任何关于这些网络服务器比较的标准判断来源。所以,请让我知道,哪台网络服务器更适合我。正在等待回应。
有几个,例如lighttpd。以下是如何为其构建C插件的描述
注意
我希望web服务器的源代码尽可能少。
源代码的长度不是衡量程序性能和内存使用情况的好指标。
"我真的没有找到任何关于这些web服务器的比较。"
一位学者对你引用的大多数服务器进行了这样的比较。Tntnet在其他地方进行了测试。
"请告诉我,哪台网络服务器对我来说更合适。"
考虑到您所表达的限制:
该公司以前从未使用过linux服务器环境。这是一家小公司。它们只适用于windows和IIS web服务器之前我们的项目经理不愿意使用Apache,因为它占用空间大而且速度慢,而IIS不适合linux。因此,我们正在寻找一个免费的轻量级网络服务器linux"
G-WAN(150KB)是最轻量级的,它的C/C++ scripts
将为您省去重新编译和链接其他服务器所需的modules
的麻烦。
G-WAN最初是由从未在Linux上冒险的人在Windows上编写的(在Windows发布6个月后制作Linux端口之前)。
因此,G-WAN被设计得尽可能简单(在没有配置文件或系统脚本的情况下应用最佳设置),因为这让开发人员的生活更轻松。
但不要相信我的话(我是G-WAN团队的一员),并尝试一下——这是查看它是否符合您需求的唯一方法。
如果您想用C++编写web应用程序,就会想到Wt工具包。
您也可以用C++编写FastCGI或SCGI应用程序,并通过适当配置web服务器(例如lighttpd或旧的Apache)来注册它。
还有几个库可以使您的应用程序成为HTTP服务器。例如洋葱(它在C中,但可以从C++中使用)。
- 将成员变量添加到共享库中的类中,不会破坏二进制兼容性吗
- 提升序列化 1:73 的向后兼容性问题
- 在gcc中意外调用了Const重载.编译器错误或兼容性修复程序
- 各种版本的 Mac OSX 向后兼容性如何?(Xcode C++
- Visual Studio 19-17 库兼容性根据 GL 标志
- C++ ABI 兼容性问题/张量流
- Oracle OCCI 和 g++ 7.1 的兼容性问题
- 为什么库API+编译器ABI足以确保具有不同版本gcc的对象之间的兼容性
- 对指针和恒常性兼容性的引用
- 检查操作系统兼容性
- 添加noexcept是否会破坏二进制兼容性
- 右值需要分配什么向后兼容性
- 如何在不添加对库的依赖的情况下添加与库结构的兼容性
- 在Qt中使用C++Lambda函数作为插槽是否有助于保持库的二进制兼容性?
- python 和 swig 版本兼容性问题
- Tensorflow C++ API 和 Caffe 兼容性问题与 Glog 相关
- 当要求兼容性时,核心OpenGL上下文?
- 启用和禁用 RTTI 的模块之间的兼容性
- 值为 std::string,同时保持向后兼容性
- 将 OpenGL 兼容性配置文件与英特尔 HD GPU + Mesa 结合使用