设计注意事项-C++服务器开发
Design Considerations - C++ Server Development
我想将我的web应用程序原型(PHP服务器端)转换为C++解决方案。这已经决定了。我在维基百科、谷歌和SO上找到了最好的方法。
我已经决定使用Linux和Apache(或自定义服务器)。
我想我学到的是,这可以通过多种方式来实现。按照速度或效率的顺序。
- 写入服务器
- 编写Apache模块
- 编写它以使用快速CGI
- 将其编写为使用CGI
我有大约1400行PHP,所以我的web应用程序很小。我也知道网络CS课程通常让学生编写一个基本的网络服务器作为实验室。顾名思义,Fast CGI声称比CGI更快。。我听说模块是最快的,因为它与Apache的集成更紧密。编写自己的服务器可能是最快的,因为它是特定于应用程序的,而不是所有用途的。
我正试图把一个我可以在一年内完成的项目放在一起,并将代码库控制在6000行左右
什么是最快的、合理的方法?
相关SO帖子
- 编译或解释
- Apache模块
- C++服务器Hello World
C++Web库
- CppCMS
- Wt
类似SO
- 需要C++Web库
我从nginx上的FastCGI处理程序开始——它非常快,CGI是一个非常稳定的API。编写自己的服务器可能是一种很好的学习体验,但我不确定你是否能够使它的性能接近nginx或Apache。
我没有足够的权限对问题发表评论,所以把我的评论作为答案。
考虑到您已经在php中构建了原型,如果您关心php的运行时性能,请使用hiphop for php!在部署时。在c/c++中开发apache模块有一个相当陡峭的学习曲线。
我强烈建议使用CppCMS。
- FastCGI支持(不仅仅是FastCGI)
- 它最初是为性能而设计的
- web开发所需的所有工具
- 该技术已经被证明是高性能技术,并且已经在许多网站上使用
披露:我是CppCMS 的作者
小钞:
编写服务器
为什么有很多好的网络服务器可以很好地完成这项工作。
编写Apache模块
您与特定技术绑定
编写它以使用快速CGI
这是最好的方法,因为它独立于web服务器,设计用于运行用户应用程序。
编写它以使用CGI
CGI适用于很少执行的小型任务。不适用于高性能应用程序。
注意:web开发是一项相当复杂的任务,因此使用框架可以帮助您完成您的业务逻辑,而不是处理小细节
我不得不同意其中一位评论者的观点。C++可能不是最好的选择,您可能应该使用Opa或类似的语言更快地完成工作。
- "unknown ca"自生成的 CA、证书和客户端/服务器
- 当我编译webrtc服务器时,Windows上只支持clang-cl
- 如何通过套接字将文本文件的内容从服务器发送到客户端
- 有没有办法知道Tracer是否成功地完全连接到了jaegerclientcpp中的jaeger后端服务器
- 如何用RISC-V GD32VF103CBT6开发板卸载精确的ADC过采样
- 从服务器传输到客户端的消息不会出现
- QTcpSocket在不阻塞GUI的情况下重新连接到服务器
- OpenSSL TLS服务器-使用客户端证书白名单
- 我正在开发服务器,ip作为参数传递不起作用
- 我可以与 python 服务器而不是 c++ 客户端建立 tcp/ip 套接字吗?
- 提升 Asio TCP 服务器 处理多个客户端
- 如何在 Minecraft 服务器上执行命令
- 调试编译的服务器在数据库打开时崩溃
- 使用 QT 开发服务器应用程序是个好主意吗?(QT5)
- 开发C++应用程序,目标服务器有不同的std lib版本,最佳实践是什么
- 用于在C++或Delphi中开发XMPP服务器的库
- 内存/线程泄漏,使用 WinSock2 开发简单的 HTTP 服务器
- 如何在Windows中开发服务器
- 设计注意事项-C++服务器开发
- 在有限的资源上开发服务器的最合适的方法