Debian VPS上nginx实现CDN前端加速

文章目录

Debian VPS上Nginx反向代理配置一文里我介绍了怎么利用nginx实现反向代理,从而达到利用vps访问其他网站的目的,今天再介绍一个nginx的用处–CDN前端加速。

安装nginx服务器

添加dotdeb源

1
2
3
4
5
6
7
8
9
10
11
12
13
#debian6
echo "deb http://packages.dotdeb.org squeeze all" >>/etc/apt/sources.list
echo "deb-src http://packages.dotdeb.org squeeze all" >>/etc/apt/sources.list
 
#debian7
echo -e 'deb http://packages.dotdeb.org wheezy all' >> /etc/apt/sources.list
echo -e 'deb-src http://packages.dotdeb.org wheezy all' >> /etc/apt/sources.list
#添加dotdeb源,已多次介绍dotdeb源的好处
 
#import GnuPG key
wget http://www.dotdeb.org/dotdeb.gpg
cat dotdeb.gpg | apt-key add -
rm dotdeb.gpg

更新源

1
2
3
apt-get update
apt-get install nginx-full
#nginx-full这个包里面包含着所有需要用到的模块。

这样便省去了编译的麻烦。

nginx文件配置

1、nginx.conf的http层及events层配置
将nginx.conf的events层修改为以下代码:

1
2
use epoll;    
worker_connections 1024;     #所以nginx支持的总连接数就等于worker_processes * worker_connections

在nginx.conf的http层加入以下代码:

1
2
3
4
5
6
7
8
9
10
11
proxy_connect_timeout    5;
proxy_read_timeout       60;
proxy_send_timeout       5;
proxy_buffer_size        16k;
proxy_buffers            4 64k;
proxy_busy_buffers_size 128k;
proxy_temp_file_write_size 128k;
proxy_temp_path   /home/cache/temp;
#临时文件目录
proxy_cache_path  /home/cache/path levels=1:2 keys_zone=cache_one:5m inactive=7d max_size=1g;
#5m为内存占用,1g为最大硬盘占用,cache_one为缓存区名字,如果修改则下文的配置亦要相应修改。

2、新建缓存目录

1
2
3
mkdir /home/cache/path -p
mkdir /home/cache/temp
chmod 777 -R /home/cache

3、虚拟主机配置
配置你要绑定域名的虚拟主机

1
2
vi /etc/nginx/conf.d/example.com.conf  
#example.com是你要绑定的域名

配置文件内容:{后端(ip为1.2.3.4)绑定域名example.com,前端绑定域名example.com,域名解析到前端,实现cdn加速。}

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
server{
   listen 80;
   server_name example.com www.example.com;    
   index index.php index.html index.htm;  
 
   location / {
       proxy_cache_key "$scheme://$host$request_uri";
       #缓存key规则,用于自动清除缓存。
 
       proxy_cache cache_one; 
       #缓存区名称,与前面定义的相同
 
       proxy_cache_valid  200 304 3h;
       proxy_cache_valid 301 3d;
       proxy_cache_valid any 10s;
       #200 304状态缓存3小时 301状态缓存3天 其他状态缓存(如502 404)10秒
 
      proxy_set_header   X-Real-IP  $remote_addr;
      proxy_set_header   X-Forwarded-For $proxy_add_x_forwarded_for;
      #向后端传递访客ip
 
      proxy_set_header   Referer http://example.com;    
      #强制定义Referer,程序验证判断会用到
 
      proxy_set_header   Host $host;
      #定义主机头
 
      proxy_pass http://1.2.3.4;    
      #指定后端ip,可以加端口
 
      #proxy_cache_use_stale invalid_header error timeout http_502;
      #当后端出现错误、超时、502状态时启用过期缓存,慎用。
      }
}

4、域名绑定至前端ip,并重启nginx

1
/etc/init.d/nginx restart

参考文章:NginX 反代系列教程(重写)

本文出自 TENNFY博客,转载时请注明出处及相应链接。

本文永久链接: https://www.tennfy.com/2297.html

下一篇文章:

上一篇文章:

3人参与了讨论

  1. 可以这样实现呀,还有其他的办法吗?

  2. 极雪 说:

    :neutral: Nginx已玩腻,球Varnish+Memcached前端缓存方法

发表评论

电子邮件地址不会被公开。 必填项已用 * 标注

*

4 + 6 = ?


您可以使用这些 HTML 标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

返回顶部