回到主页

Nginx反向加速并替换内容

加速不稳定的CDN

· Nginx

访问有些外网站点时经常发现个别依赖的资源加载很慢,调试后发现是资源所在的第三方CDN分发节点非常不稳定,直接ping的话有很高的概率丢包。

公司查询技术资料的空闲机器上可以配一下反向代理,针对不稳定的CDN节点做一个转发加速(空闲机器上访问CDN节点非常快)。

先代理目标网页,把里面来自CDN的节点资源请求地址替换成example666


server {
  listen 443;
  listen [::]:443;
  server_name example555.com;

  ssl on;
  ssl_certificate ***;
  ssl_certificate_key ***;
  ssl_session_timeout 5m;
  ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
  ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
  ssl_prefer_server_ciphers on;

  sub_filter_once off;
  sub_filter_types text/html;

  location / {
    proxy_set_header Accept-Encoding "";
    sub_filter "https://cdn.slow.com" "https://example666.com";
    proxy_pass https://slow.com/;
  }
}

监听example666,把请求再代理到CDN节点,以此实现加速


server {
        listen 443;
        listen [::]:443;
        server_name example666.com;

        ssl on;
        ssl_certificate   ***;
        ssl_certificate_key  ***;
        ssl_session_timeout 5m;
        ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
        ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
        ssl_prefer_server_ciphers on;

        location / {
                proxy_ssl_server_name on;
                proxy_ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
                proxy_redirect off;
                proxy_set_header host cdn.slow.net;
                proxy_pass https://cdn.slow.net;
        }
}