Generic placeholder image
闲敲代码、落灯花
What's past is prologue

联系邮箱:email@hezehua.net


联系QQ:1907330840

座右铭

保持热情,持续学习,每日精进

网站配置CDN的艰辛历程

网站配置CDN的艰辛历程

本文与作者在csdn上的博文【网站配置CDN的艰辛历程】保持同步


以前就想着配置cdn了,但是一直配置不得法,添加完配置也没有生效,这两天认真研究了一下,终于解决了。
首先是在阿里云上的cdn配置:

加速域名:image.aaa.com,就是让网站访问图片的域名
回源域名:bbb.com,就是能真实访问到图片资源的域名,不过由于我的图片路径是IP访问的,我配置的是回源IP。
最重要的就是以上两个,之前我没区分加速与回源的意思,配置反了一直不生效~~~
然后在域名解析中配置image.aaa.com的cname记录,当ping
image.aaa.com时提示的域名是:******.w.kunlungr.com时就算生效了,不出意外的话,直接通过image.aaa.com访问资源是成功的。

接下来是服务器上的配置:
我的项目架构是这样的:

两台aws服务器部署了网站,一台阿里云服务器做NFS让两台应用服务器共享图片资源,一个域名用于前端访问,通过IP直接访问后端接口。
CDN回源的IP就是阿里云服务器IP,我在这台服务器上简单搭建了NGINX服务器只用来访问静态资源:http://ip/image/xxx/xxx.jpg,而aws服务器上的后端接口都是8080端口,前端端口是80,也就是访问aaa.com的时候,图片路径为http://ip:8080/xxx/xxx.jpg

通过cdn加速域名image.aaa.com访问回源IP(阿里云服务器的IP)来获取图片http://image.aaa.com/xxx/xxx.jpg,只需要配置服务器实现简单的请求转发就可以从CDN缓存中获取图片了:

将http://ip:8080/xxx/xxx.jpg转发到http://image.aaa.com/image/xxx/xxx.jpg

当然如果直接将aws服务器上的接口返回的图片路径替换成http://image.aaa.com/xxx/xxx.jpg的话,效果更好,减少了转发的环节。

猜你喜欢
Nginx架构设计
阅读 180

1、Nginx是高度模块化设计的 2、Nginx模块化设计的特点 (1)高度抽象的模块接口 (2)模块接口非常简单,具有很高的灵活性 (3)配置模块的设计 (4)核心模块接口的简单化 (5)多层次、多类别的模块设计 3、所有模块都遵循同样的ngx_module_t接口设计规范 4、...

nginx之反向代理服务器
阅读 150

本文摘抄自: 《深入理解Nginx 模块开发与架构解析》 反向代理(reverse proxy)方式是指用代理服务器来接受Internet上的连接请求,然后将请求转发给内部网络中的上游服务器,并将从上游服务器上得到的结果返回给Internet上请求连接的客户端,此时代理服务器对外的表现...

Nginx进程间通信机制
阅读 187

3种消息传递方式 1、共享内存 当多个进程共享同一块内存时,在任何一个进程修改了共享内存中的内容后,其它进程通过访问这段共享内存都能够得到修改后的内容。 Nginx通过进程间共享数据的主要方式就是共享内存。 2、套接字 频道是Nginx m...

配置虚拟主机
阅读 169

server { listen 8080; server_name localhost; location / { root /xxx/xxx/wordpress; index inde...

nginx之worker进程个数
阅读 225

nginx.conf配置文件中有一个worker_processes配置项,默认配置为: worker_processes 1 worker进程的数量会直接影响性能。 每一个worker进程都是单线程进程,它们调用各个模块以实现多种多样的功能,如果这些模块确认不会出现阻塞式...

nginx之虚拟主机与请求的分发
阅读 250

由于IP地址有限,因此经常存在多个主机域名对应同一个IP地址的情况,这时nginx.conf中就可以按照server_name(对应用户请求中的主机域名)并通过server块来定义虚拟主机,每个server块就是一个虚拟主机,它只处理与之相对应的主机域名请求。这样,一台服务器上的nginx就能...

nginx配置静态资源允许跨域访问
阅读 207

在server模块中添加配置: add_header 'Access-Control-Allow-Origin' '*'; 例: server { listen 80; add_header 'Access-Control-Allow-...