在Apache Web服务器中为特定请求设置优先级

我们有一个与我们的用户CometChat集成的网站; 由于我们的apache服务器对聊天服务有很多请求,所以我们希望为这些请求设置一个不同的(较低的)优先级,而优先服务其他服务。

据我们所知,做到这一点的一种方法是使用mod_qos,这可以让我们限制一段时间内请求的数量(例如每秒请求数)。 这不完全是我们想要做的,但可能是一个部分的解决scheme。

我的问题是:是否有一个更好的解决scheme来优先处理请求? 如果你build议使用mod_qos ,这将是一个很好的mod_qosconfiguration来实现我所问的?

谢谢

这是不可能的, 直接在Apache Web服务器的请求优先级。

也就是说,由于apache包含了一个完整的代理和负载均衡解决scheme,所以有很多的调整。

您应该考虑使用ProxyPass代理分离后端(可以在同一台服务器上运行)

这会将聊天服务的请求与其他请求分开,然后您可以决定每个后端有多less资源可用来回答请求。

一个完整的解决scheme将超出这种格式的范围,但mod_proxy的Apache文档将让你开始; 特别是查看ProxyPass选项,允许您设置每个后端的优先级和请求限制。

如果你有独特的服务,你提供的,而你是CPU绑定,然后选项

1)放大(更大的机器,8个CPU核心或更多!)

2)扩大规模 – 一旦达到放大一台机器的限制,扩大规模,采用负载均衡解决scheme的多台机器 – 提供容错性作为自由的积极副作用。

要考虑的事情:

服务分离。 在不同的机器或集群上运行聊天和Web服务

优化您的平台,使用有效的解决scheme。 考虑caching请求/前端代理。

好的,把你的评论带上。 唯一的另一种方式,我可以认为这是可以做到的

运行两个httpd实例(比如8000(聊天)和8001(web))。

在端口80上运行一个像nginx这样的高速反向代理。

把你的一个httpd实例设置为较低的优先级。

调整你的httpconfiguration。