Nginx反向代理自建CDN加速


Notice: Undefined variable: t_url in /data/wwwroot/zuotian.org/build/usr/plugins/Copyright/Plugin.php on line 147


如果手里有3台机器以上,可以配合Cloudxns智能地区解析来做网站CDN可以自定义缓存内容以及时间


1、安装nginx
分享两种简单的安装方式
apt install nginx #Debian/Ubuntu
yum -y install nginx #CentOS/Redhat
这样从源里安装的可能不是最新版,我这样安装的是1.6.2版本的。。发现配置里加了HTTP2怎么都启动不了。。原来是版本太老了,并不支持http2

apt-get -y install wget screen curl python #for Debian/Ubuntu
yum install wget screen curl python #for CentOS/Redhat
wget http://mirrors.linuxeye.com/oneinstack-full.tar.gz
tar xzf oneinstack-full.tar.gz
~/oneinstack/install.sh --nginx_option 1 --reboot

将会自动编译nginx并重启系统,好了后可以检查下版本

root@AAEX-CDN1:~# nginx -v
nginx version: nginx/1.12.2

默认nginx主配置文件在/usr/local/nginx/conf/nginx.conf


2、修改配置

  • 源站IP :10.0.0.1
  • CDN1 :10.0.0.2 美国节点
  • CDN2 :10.0.0.3 韩国节点
  • CDN3 :10.0.0.4 香港节点

要对zuotian.org进行反代,就需要修改hosts,从源站IP缓存内容。

root@AAEX-CDN1:~# cat /etc/hosts
127.0.0.1    localhost
127.0.0.1 AAEX-CDN1
127.0.1.1    debian
10.0.0.1 zuotian.org

#The following lines are desirable for IPv6 capable hosts
::1     localhost ip6-localhost ip6-loopback
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters

注意上面是v4的hosts,下面是v6的hosts,加好保存后会立即生效。

user root;  #当前的用户
worker_processes 4;
pid /run/nginx.pid;

events {
    worker_connections 768;
    # multi_accept on;
}

http {

proxy_cache_path /var/tmp/zuotian.org levels=1:2 keys_zone=caches:200m inactive=180m max_size=5g;

#proxy_cache_path后的目录:一个放置缓存的目录(keys_zone=name:size)的目录,用于存放key和响应的元数据。
#levels:冒号用于分隔在每个级别(1或2)的子目录名长度,最多三级
#keys_zone=caches设置一个共享内存区,用于存储缓存键和元数据,缓存空间名字为caches,后面大小为内存缓存空间。
#max_size:缓存的最大值,当大小超过这个值,缓存管理器溢出最近最少使用的缓存条目
#inactive:超时时间,如果超过这个时间资源没有被访问则删除。


    server {
  listen 80;
  listen 443 ssl http2;
  ssl_certificate /home/证书.crt;
  ssl_certificate_key /home/私匙.key;
  ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
  ssl_ciphers EECDH+CHACHA20:EECDH+AES128:RSA+AES128:EECDH+AES256:RSA+AES256:EECDH+3DES:RSA+3DES:!MD5;
  ssl_prefer_server_ciphers on;
  ssl_session_timeout 10m;
  ssl_session_cache builtin:1000 shared:SSL:10m;
  ssl_buffer_size 1400;
  add_header Strict-Transport-Security max-age=15768000;
  ssl_stapling on;
  ssl_stapling_verify on;
  server_name 反代的域名;
  access_log off;
  #error_page 404 /404.html;
  #error_page 502 /502.html;
  
  charset utf-8,gbk;
        location / {
        proxy_set_header Accept-Encoding "";
           proxy_pass https://反代的域名;
           proxy_redirect off;
           proxy_set_header X-Real-IP $remote_addr;
           proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
           proxy_cache caches;
           proxy_cache_valid  200 304  30m;
           proxy_cache_valid  301 24h;
           proxy_cache_valid  500 502 503 504 0s;
           proxy_cache_valid any 1s;
           proxy_cache_min_uses 1;
           expires 12h;
   }
 }
}

更多详细参数请看nginx 缓存与优化参数配置


配置全部写入后,systemctl restart nginx重启nginx并自动生效
centos6 debian7 ubuntu14的系统需要使用service nginx restart来重启
因为在centos7 debian8 ubuntu16及以上,管理方式改为了systemd
将此机IP添加到Cloudxns的A记录@解析,自己决定地域。差不多就能用了。
如有错误欢迎在以下指出。

标签: nginx, 自建CDN, 反向代理

已有 2 条评论

  1. 吼啊

    1. 你天天奸视我博客

添加新评论