[记录]利用反向代理优化境外访问速度

[记录]利用反向代理优化境外访问速度

原来用的 CDN 有境外节点,访问速度也很快.但是莫名其妙给我们域名删除了(虽然是白嫖的) :-x

现在换成了华为云家的 CDN,该说不说国内访问比原来的速度快多了…但是境外访问实在是惨不忍睹.所有境外访问回应的节点都是北京节点.速度自然慢的很.

前几天一直都是利用 DNS 线路解析,境外但是用的 CF 的免费 CDN,虽然我们设置了缓存但是还是很慢….

于是我们就想利用我们白嫖的香港服务器

[记录]利用反向代理优化境外访问速度

然后在境外服务器添加域名:

[记录]利用反向代理优化境外访问速度

该说不说宝塔真实小白利器! :neutral:

添加反代

[记录]利用反向代理优化境外访问速度

发送域名(host)为博客域名,目标 URL 为 CDN 服务器给你的 cname 域名.

然后点击配置文件:

宝塔配置好的反代为:

#PROXY-START/location  ~* \.(php|jsp|cgi|asp|aspx)${    proxy_pass https://blog.枫叶.cn.**.***;    proxy_set_header Host blog.枫叶.cn;    proxy_set_header X-Real-IP $remote_addr;    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;    proxy_set_header REMOTE-HOST $remote_addr;}location /{    proxy_pass https://blog.枫叶.cn.**.***;    proxy_set_header Host blog.枫叶.cn;    proxy_set_header X-Real-IP $remote_addr;    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;    proxy_set_header REMOTE-HOST $remote_addr;        add_header X-Cache $upstream_cache_status;#Set <a href="https://blog.枫叶.cn/tag/nginx" title="查看更多关于 Nginx 的文章" target="_blank">Nginx</a> Cache    proxy_ignore_headers Set-Cookie Cache-Control expires;    proxy_cache cache_one;    proxy_cache_key $host$uri$is_args$args;    proxy_cache_valid 200 304 301 302 1h;    expires 12h;}#PROXY-END/

这样就反代成功了,但是我们需要把静态文件都存到我们反代的服务器里面,要不然每次都去 CDN 那取费流量.
使用 proxy_store 模块.
配置如下(在反代配置文件里最下面加上):

#我们需要缓存的文件后缀,可以自己按照自己的情况配置location ~*\.(png|jpg|gif|svg|jpeg|js|css|ttf|woff|eot)$ {        #由于我们还有别的网站调用了博客的 JS,所以就加了这个,可以去掉 add_header 的行        add_header Access-Control-Allow-Origin *;        add_header Access-Control-Allow-Methods 'GET, POST, OPTIONS';        add_header Access-Control-Allow-Headers 'DNT,X-Mx-ReqToken,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Authorization';      #所有链接,浏览器缓存过期时间为 365 天        expires 365d;        #此目录为服务器的根目录,下面的 if 语句就是判断此目录下是否有响应的文件        root /www/wwwroot/blog.枫叶.cn;         #表示开启缓存        proxy_store on;        #表示用户读写权限        proxy_store_access user:rw group:rw all:rw;        #此处为文件的缓存路径,这个路径是和 url 中的文件路径一致的        proxy_temp_path /www/wwwroot/blog.枫叶.cn;        #发送的 host  就是博客域名        proxy_set_header Host blog.枫叶.cn;        #这句话的意思是请求时让源服务器不压缩数据,如果你开启了 gzip 的话必须加这个.要不然 CSS 和 JS 文件会乱码        proxy_set_header Accept-Encoding identity;        if ( !-e $request_filename)  {                #此处为要被代理的服务器的地址 CDN 的 cname 地址                proxy_pass https://blog.枫叶.cn.**.***;        }}
这是我们的配置,请自行更换你的域名

完整如下:

#PROXY-START/location  ~* \.(php|jsp|cgi|asp|aspx)${    proxy_pass https://blog.枫叶.cn.**.***;    proxy_set_header Host blog.枫叶.cn;    proxy_set_header X-Real-IP $remote_addr;    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;    proxy_set_header REMOTE-HOST $remote_addr;}location /{    proxy_pass https://blog.枫叶.cn.**.***;    proxy_set_header Host blog.枫叶.cn;    proxy_set_header X-Real-IP $remote_addr;    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;    proxy_set_header REMOTE-HOST $remote_addr;        add_header X-Cache $upstream_cache_status;#Set <a href="https://blog.枫叶.cn/tag/nginx" title="查看更多关于 Nginx 的文章" target="_blank">Nginx</a> Cache    proxy_ignore_headers Set-Cookie Cache-Control expires;    proxy_cache cache_one;    proxy_cache_key $host$uri$is_args$args;    proxy_cache_valid 200 304 301 302 1h;    expires 12h;}#我们需要缓存的文件后缀,可以自己按照自己的情况配置location ~*\.(png|jpg|gif|svg|jpeg|js|css|ttf|woff|eot)$ {        add_header Access-Control-Allow-Origin *;        add_header Access-Control-Allow-Methods 'GET, POST, OPTIONS';        add_header Access-Control-Allow-Headers 'DNT,X-Mx-ReqToken,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Authorization';      #所有链接,浏览器缓存过期时间为 365 天        expires 365d;        #此目录为服务器的根目录,下面的 if 语句就是判断此目录下是否有响应的文件        root /www/wwwroot/blog.枫叶.cn;         #表示开启缓存        proxy_store on;        #表示用户读写权限        proxy_store_access user:rw group:rw all:rw;        #此处为文件的缓存路径,这个路径是和 url 中的文件路径一致的        proxy_temp_path /www/wwwroot/blog.枫叶.cn;        #发送的 host  就是博客域名        proxy_set_header Host blog.枫叶.cn;        #这句话的意思是请求时让源服务器不压缩数据,如果你开启了 gzip 的话必须加这个.要不然 CSS 和 JS 文件会乱码        proxy_set_header Accept-Encoding identity;        if ( !-e $request_filename)  {                #此处为要被代理的服务器的地址 CDN 的 cname 地址                proxy_pass https://blog.枫叶.cn.**.***;        }}#PROXY-END/

[记录]利用反向代理优化境外访问速度

可以了.静态文件都缓存在这个香港服务器上,而动态文件都会请求源站.当然,你可以缓存.html 文件这样文章页也会缓存了…但是你修改的话需要自己删除. :-x

就是这样,先使用几天试试效果怎么样~~~ :-)


没有账号? 忘记密码?
网站地图