1

我正在优化我的网站以通过不同的域提供静态资产,从而减少下载/上传带宽并且更容易缓存。

现在,我正在使用带有 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 或端口上运行。只是想知道这是否会使它更快。

有任何想法吗?我走得太远了吗?

4

3 回答 3

1

分离静态内容的好主意。也许您应该更进一步,使用 CDN(内容交付网络)。我使用过 Akamai 和 Amazon 的 Cloud Front,每一个都有与其性能相关的成本。还有便宜的(免费的!?)替代品。有关更多信息,请参阅 CDN 的 wiki 页面:http ://en.wikipedia.org/wiki/Content_delivery_network

于 2011-08-01T23:43:21.993 回答
1

我相信 thttpd 速度非常快,同时占用 CPU 资源很少,因此将其用于静态文件可以减少 CPU 负载。但是,重新启动 HTTP 连接会花费更多。

于 2011-08-01T23:35:13.933 回答
0

事实证明,我只是坚持使用一台 NGINX http 服务器来同时提供动态和静态文件。静态文件位于不同的域下,此解决方案是配置工作最少的最佳解决方案。

于 2012-08-15T02:46:20.803 回答