为什么要使用Apache或Nginx等呢?
Why bother using Apache or Nginx, etc?
我被分配了一个项目,需要我添加一些HTML页面服务。这个嵌入式系统(运行Linux CentOS 6.3)有一些额外的功能,但也已经有许多责任。
我考虑过Apache,但由于膨胀而放弃了它,我研究过Nginx,但现在也在回避它。似乎我得到了更多的"功能",结果,更多的CPU使用比我需要的。
有人可以启发我,为什么我不只是实现HTTP协议自己使用异步套接字?
我的具体需求是:
-
接收和解码get和post。
-
按要求发送CSS, JS和JPG文件。
-
根据get/post的解码输出报头、cookie、报头和正文数据
考虑到我不需要这些web服务器提供的无数东西,我是否天真地认为这门课程是我自己做的?你有什么建议或警告吗?
基本上,你使用一个web服务器,因为这样你就可以在一个已经测试过的表单中获得你想要的功能,比你的第一个代码可能更可靠,并且得到了其他大型社区的支持。如果Apache和nginx对你来说太重量级了(尽管nginx的特点是它对于重负载是多么的轻量级),特别是如果你期望的负载非常轻,那么看看其他的选择。
Wiki有一整个页面的轻量级web服务器的比较
一个容易陷入的陷阱:认为"我不需要产品X中的所有功能,我只编写我自己需要的功能",最终只是完全重新实现产品X,一次一个新发现的需求。
我有点怀疑,一个可以运行CentOS的嵌入式系统是如此的资源匮乏,以至于它不能舒适地运行Nginx(甚至Apache,人们在树莓派上运行得很好,适当的配置调整),给出合理的假设,你实际服务的页面有多少。我在Pentium 266上运行它,它有256MB的内存,提供一些简单的PHP应用程序,大约每两秒钟提供一个页面,没有问题。我记得,它是相当模块化的,因此您可以选择不加载您认为不需要的功能。然后,当你的需求改变时,你发现你确实需要它,你可以把它插回去:)
如果你真的关心资源消耗,看看为嵌入式应用设计的web服务器。我听说切罗基语很不错。猫鼬看起来也很有希望。
我从这个开始http://www.w3.org/Protocols/HTTP/HTTP2.html
- 如何使用默认参数等选择模板专业化
- 如果我只是不访问queue_front节点的子节点,而是将它们推到队列中呢?还是BFS吗
- 在Linux中哪里可以找到互斥、未来等的源代码
- 我不小心调用了一个没有自己类对象的成员函数.但这是怎么回事呢
- 等<thing>效于char32_t
- 现代CMake(3.8+)-FindCUDA已弃用,非.cu文件呢
- 使用 Clang++ 有没有办法将文件作为命名空间等包含?
- 在 Python 和 c++ 2d 数组初始化之间.这是怎麽?为什么呢?
- 将函数参数完美转发到函数指针:按值传递呢?
- 具有多种约束(例如重量、体积等)的背包
- 我如何编写一个告诉星期几的程序?(泽勒全等)
- 以现代 CMake 方式控制包含的库中的构建选项(测试等)
- 在 C++ 中声明 const 对象需要用户定义的默认构造函数.如果我有一个可变成员变量,为什么不呢?
- 如何将find_if与链表等非容器一起使用?
- C++ queue.front();为什么不从第一个元素开始呢?
- 从 QFontDatabase 设置 QFont 将所有标签设置为等宽字体?Qt C++
- 如何正确使用QLayouts(hbox,vbox等)?
- 是否可以使用单个定义定义函数的常量和常规版本?(使用模板,自动,decltype等)
- 我怎么能等这么多事情呢
- 为什么要使用Apache或Nginx等呢?