有哪些选项可以非常快地提供静态文件?
有没有任何选项允许在服务器的内存中caching文件等? 例如,将js文件caching在内存中。
我知道nginx,但它仍然每次读取硬盘的文件,我想要做的是通过将它们存储在内存中减less磁盘的I / O。
我每秒对js文件有大约1000个请求,而且他们正在放慢服务器的速度,甚至有时会崩溃apache。
还有什么替代方法可以让nginx在CentOS 5.6的LAMP栈上运行
内存肯定比磁盘快(如果你需要的细节,检查数字大家应该知道 )。
如果您的networking服务器上有可用的内存,您可以制作一个RAM磁盘。 如果你有一个系统的数组,也许像memcached会更好。
宙斯是我知道的最快的networking服务器。 开机时将所有内容复制到RAM磁盘上
如果你想要/需要坚持一个LAMP堆栈,有静态内容的Apache的加速模块,像Squid,Vanrish,或HAProxy的前端反向代理也可以帮助。
根据您为什么需要服务器“更快”(在这种情况下是一个无意义的术语),您可能会从负载平衡服务器场或不同的Internet连接中受益。
我知道nginx,但它仍然每次读取硬盘的文件
不,它不会每次从磁盘读取文件。 既然你使用的是CentOS,也就是一个Linux内核,那么它肯定会将经常访问的文件和目录条目caching到RAM中。
要么你有更多的“热”静态文件比你的服务器有内存或其他东西吃掉你的磁盘I / O。 成千上万的对静态文件的请求应该是每个合理的Web服务器软件的花生。 即使Apache应该也可以,但是lighttpd或者nginx可能更适合这个任务,特别是在静态文件很大的情况下。
也许日志水平是如此之高,不断写作折磨高清? 如果是这样,并且需要存储日志,请考虑通过networking将日志发送到单独的中央系统日志服务器。
第二,build议使用像Varnish这样的caching系统。 根据你的需要,如果你有一些dynamic的内容,我会build议做这样的设置:
使用Varnish作为前端,Apache和Nginx都在后端。 当请求的内容没有被caching时,它(Varnish)会将请求传递给Apache以获取dynamic内容,并将请求传递给Nginx以获取静态内容。
这样,你的东西大部分存储在RAM(清漆caching)中。 Varnish是一个令人难以置信的快速caching服务器/反向代理(也可以configuration为多个服务器的一个很好的负载平衡器)。