frp 内网穿透
快速反向代理

frps利用nginx反代缓存,http加速

由于frp的http和https,都是从用户的穿透服务中完整输出数据的,这对于一些使用frp的用户,网络比较差/上传低,打开自己的这些服务,要加载大半天的。
我们可以使用nginx的反代缓存,把frp用户的http和https中的静态资源缓存到服务器本地,从而减少frp用户本身的网络资源请求访问,直接略过大部分,从而在服务器加速。
效果是拔群的!

需要在frps服务端的服务器上安装使用nginx
注意:仅适用http https 协议,网站

SSH
新建缓存目录
mkdir -pv /home/nginx/cache
赋予权限
chmod -R 777 /home/nginx/cache

在nginx.conf中http{}里添加以下参数


          proxy_cache_path /home/nginx/cache levels=1:2 keys_zone=frp_cache:50m max_size=5g inactive=3d;

server
{
    listen 80;
    server_name your.nat.ee;
    resolver 223.5.5.5 208.67.222.222 8.8.8.8 valid=300s;
    resolver_timeout 10s;
    add_header X-Cache $upstream_cache_status;
    
    #ERROR-PAGE-START  错误页配置,可以注释、删除或修改
    proxy_intercept_errors on;
    error_page 404 https://www.nat.ee/error_page/404.html;
    #ERROR-PAGE-END
    
    location / {
           proxy_pass http://127.0.0.1:8080;
           proxy_redirect http://$host/ http://$http_host/;
           proxy_set_header X-Real-IP $remote_addr;
           proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
           proxy_set_header Host $host;
           proxy_hide_header X-Powered-By;
           proxy_ignore_headers Cache-Control;
           proxy_hide_header Cache-Control;
           proxy_ignore_headers Set-Cookie;
           proxy_hide_header Set-Cookie;
           limit_conn perip 5;
           limit_rate 128k;
       }
       location ~ .*\.(jpg|jpeg|gif|png|svg|css|scss|js|ico|xml|woff|woff2|ttf|otf|eot)$ {
           resolver 127.0.0.1;
           proxy_pass http://127.0.0.1:8080;
           proxy_redirect http://$host/ http://$http_host/;
           proxy_set_header X-Real-IP $remote_addr;
           proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
           proxy_set_header Host $host;
           proxy_cache frp_cache;
           proxy_cache_use_stale updating;
           proxy_cache_key $uri$is_args$args;
           proxy_cache_valid 200 206 301 302 304 3d;
           proxy_cache_lock on;
           proxy_cache_lock_timeout 5s;
           proxy_cache_use_stale updating error timeout invalid_header http_500 http_502;
           proxy_http_version 1.1;
           proxy_ignore_headers Cache-Control;
           proxy_hide_header Cache-Control;
           proxy_ignore_headers Set-Cookie;
           proxy_hide_header Set-Cookie;
           expires 3d;
           limit_conn perip 6;
           limit_rate 128k;
        }
}

(jpg|jpeg|gif|png|svg|css|scss|js|ico|xml|woff|woff2|ttf|otf|eot)为需要进行缓存的静态资源,你可以添加或者修改。

proxy_cache_valid为服务器缓存,其中200 206 301 302 304为HTTP状态码(http://tool.chinaz.com/pagestatus/)针对状态码缓存,而最后面的 3d 为缓存过期时间,当用户没有在这个有效时间内访问到这个资源,则会过期清除,直到用户重新访问到这个资源则重新缓存。
expires 为访问用户本地缓存
d 天数 h 小时 m 分钟 s 秒

http://127.0.0.1:8080;的8080端口为你frps.ini服务端配置文件vhost_http_port = 8080端口

server_name your.nat.ee; 这里填写对应域名。

也支持泛解析,例如:server_name *.nat.ee;需要域名已经泛解析才行。

配置成功后,并且访问目标网站,让其进行缓存,在/home/nginx/cache目录里会生成多个缓存目录和文件。

至于,手动清除缓存方法。

到/home/nginx/cache文件夹删除所有缓存文件。
或者给你的nginx重新编译,添加ngx_cache_purge模块
官方网站:http://labs.frickle.com/nginx_ngx_cache_purge/
github:https://github.com/FRiCKLE/ngx_cache_purge/
参数:

location ~ /purge(/.*) {
                  allow all;
                  proxy_cache_purge frp_cache $uri$is_args$args;
        }

具体用法和编译教程,自己网上搜索。

赞(0) 打赏
原创不易,未经授权,严禁转载:frp 内网穿透 » frps利用nginx反代缓存,http加速

评论 2

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
  1. #1

    你好,关于https加缓存总是不成功,nginx报错如下:
    *1 upstream prematurely closed connection while reading response header from upstream, client: 10.0.0.2, server: xxxxx, request: “GET / HTTP/1.1”, upstream: “http://127.0.0.1:xxx/”, host: “xxxxxx”

    leo2个月前 (04-08)回复
    • https和这教程的不一样!
      自己查阅资料

      荣耀1个月前 (04-12)回复

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏