我正在优化我的网站,通过不同的域为静态资产提供服务,这样它们的下载/上传带宽就会减少,缓存也更容易。
现在,我使用的是带有NGINX和Passenger的Rails 3.1。
到目前为止,我已经设置了系统,以便所有资产都通过与我现在拥有的类似的域提供服务(它不是子域,而是一个不同的域……这样,来自真实域的任何cookie都不会在请求中传输)。NGINX服务端的配置如下:
server {
listen 80;
server_name similarwebsite.com;
root /path/to/static/files;
}
server {
listen 80;
server_name website.com;
root /path/to/rails/files/public;
}我发现拥有一个独立的资产环境要比Rails的环境好得多(我真的不喜欢仅仅为了交付几个简单的资产而进行的所有Rack抽象)。
我的问题现在仍然存在,我是否应该将静态文件拆分到不同的HTTP服务器上,如thttpd?现在,它们都在同一台机器上运行,但是所有的资源都可以通过thttpd来删除,所有的rails内容都可以通过nginx来删除。thttpd实例可以在不同的IP或端口上运行。只是想知道这会不会让它更快。
有什么想法吗?我是不是太过分了?
发布于 2012-08-15 10:46:21
原来我只是坚持使用一个NGINX http服务器来同时提供动态和静态文件。静态文件位于不同的域中,此解决方案是配置工作量最少的最佳解决方案。
发布于 2011-08-02 07:35:14
我相信thttpd是非常快的,同时CPU也很少,所以将它用于静态文件可以减少CPU负载。但是,重启HTTP连接的成本会更高一些。
发布于 2011-08-02 07:43:22
分离静态内容的好主意。也许你应该更进一步,使用CDN (内容分发网络)。我用过Akamai和Amazon的Cloud Front,它们都有与性能相关的成本。有便宜的(免费的!?)也有其他选择。有关更多信息,请参阅CDN的维基页面:http://en.wikipedia.org/wiki/Content_delivery_network
https://stackoverflow.com/questions/6905644
复制相似问题