使用Nginx(图片、CSS、JS)提供静态数据,使用Apache(应用程序代码+数据库)提供动态数据,这样做是否有用?
不仅让Nginx提供静态图片服务非常有用,而且让Nginx代理到Apache也是一个很大的优势。这是因为慢速客户端会导致Apache需要占用线程时间比必要的时间长。Nginx可以处理慢速客户端并允许Apache尽快完成请求,释放线程(和内存)以处理其他请求。Nginx将根据您的本地连接速度尽快接受请求,并将响应返回到慢速客户端。
根据您的应用程序而定。想法是,您的应用程序可能由每个页面的多个静态请求组成。如果您可以使用小内存占用回答这些请求,那么您可能需要更少的Apache工作进程,这可能会对相同数量的流量产生更高的内存占用。
由于保持活动撕裂,这也很有用。
想象一下浏览器对大量动态数据的http请求。 客户端的网络连接比内部网络连接慢得多(当nginx和apache在同一主机上时,这是最常见的情况,因此它们通过环回接口进行通信)。 Apache将所有数据上传到nginx,它的工作人员准备好快速为下一个请求提供服务,而nginx将数据发送到客户端。
由于nginx的速度和足迹,它可以同时处理更多的连接,因此这种共生关系非常有效。