我正在开发一个项目,将用 C 编写的 Web 服务器嵌入到设备中。要求是它应该支持 Web 服务(SOAP / JSON-RPC)并且应该与 ARM 处理器兼容。对具体产品有什么建议或先看哪里?
2 回答
鉴于您的描述:具有 256MB RAM 的基于 Linux 的平台,您基本上可以使用任何您喜欢的 Web 服务器。256MB RAM 将您的设备从典型的嵌入式领域带入服务器空间。
不要太担心 ARM 支持,因为它得到了 Linux 社区的良好支持。它是 Debian 官方支持的架构之一。我自己在 ARM 上运行了几个 Web 服务器,运行 Debian 和 lighttpd,硬件只有 32MB RAM。
前三名最受欢迎的网络服务器(并且受欢迎程度非常重要,因为这意味着如果您遇到问题,您可以轻松地用 google 搜索):
lighttpd - 因为它是单线程的,所以对 RAM 的使用非常轻,而且对 CPU 的使用也非常轻。缺点是如果您尝试在其上运行重量级、CPU 密集型 CGI 应用程序,则响应速度可能会很慢,因为它是单线程的。
Apache2 - 大量使用 RAM。Apache 的默认操作模式是尽可能长时间地保持线程处于活动状态以处理繁重的负载。这意味着大多数时候你在睡眠进程上用尽了 RAM。但是,如果您确实需要处理重负载,这是一件好事。适合重型 CGI 应用程序。
Nginx - 块上的新孩子。不像 lighttpd 或 Apache 那样有很好的文档记录(目前,显然文档随着时间的推移而改进),但人们一直在说它优于两者。它像 Apache2 一样是多线程的,但像 lighttpd 一样是非阻塞的,因此它具有两全其美的优点:它使用的 RAM 通常比 Apache2 少(尽管比 lighttpd 多),并且在负载下的性能至少与 Apache2 一样好。对我来说唯一真正的缺点是文档。