我想通过 cdn 为我的域名提供 index.html 文件(以及一些其他静态页面)。
是否可以使用 Amazon EC2 实例和 Rackspace 云文件来实现这一点?
我发现了可以执行此类操作的东西,但仅适用于 /images 和 /files 目录:
server {
listen 80;
server_name cdn.failverse.com;
access_log /var/log/nginx/cdn.failverse.access.log;
location / {
root /var/www/vhosts/domain2/public/cdn;
index index.html;
if (!-e $request_filename)
{
rewrite ^/images/(.*)$ http://c0918182.cdn.cloudfiles.rackspacecloud.com/$1 redirect;
rewrite ^/files/(.*)$ http://c0918176.cdn.cloudfiles.rackspacecloud.com/$1 redirect;
}
}
}
http://failverse.com/using-your-own-domain-with-rackspace-cloud-files/
如果我可以将云文件作为我自己的子域名(即 cdn.mydocmain.com)的一部分,那就太好了(如果我必须使用 Rackspace 服务器来处理所有事情,那也没问题)。
谢谢
答案1
好吧,重定向到 CDN 是没有意义的(根据您的示例配置),因为当请求/响应经过您的服务器,然后浏览器向 CDN 发出新请求并获得响应时,您可能已经将内容发送给客户端并完成了。尝试使用代理 CDN 执行此操作还存在一些问题,如果能以一种稳健的方式解决这些问题,那将是一件很有趣的事情。
使用 CDN 的典型方式是,所有静态资产(图片、JS、CSS)都可以从子域(如cdn.example.com
)提供,而用户直接请求的页面包含指向单独域上的 CDN 资产的链接。尝试提供一切但是如果你做想走那条路,你真的必须服务一切——没有动态内容,什么都没有。最接近的做法是将动态内容放在一个域上,将静态页面放在 CDN 上,并在它们之间建立链接,但坦率地说,如果没有一个非常好的自动化网站构建和分发系统,这种方式可能会很疯狂。