Nginx反代Cloudflare网站
2020-09-25 06:13:32    9    0    0
emengweb

反代Cloudflare的好处在哪里

可以解决国内用户访问慢的问题(反代机器的线路质量决定)
可以解决源站和反代机器之间延迟过高,延迟不稳定的问题,缓解源站压力,被Cloudflare缓存的页面可以直接从Cloudflare读取。

如果只是简单的反代http页面,在反代服务器简单的配置以下即可,例如使用宝塔面板的,默认设置即可成功实现反代cloudflare http站点
(反代服务器如果跟cloudflare给予的Anycast节点IP延迟过高,或者因为反代服务器IP是广播问题而造成的cloudflare分配到错误的节点问题,可以通过修改反代服务器的hosts文件进行修改)

如果接下来只是单纯的Nginx文件配置设置,把反代的地址从http改为https的话,你会发现报错(有些Nginx环境配置好后可以打开页面,但是动态链接无法使用,例如无法评论,无法注册登录,也是相同报错)只要在反代设置规则里面加入

proxy_ssl_name $host;
proxy_ssl_server_name on;

即可成功反代Cloudflare的https站点

方法来自好东东大佬

补充教程:

proxy_pass https://你的网站ip;
proxy_set_header Host $proxy_host;​

直接写IP,然后加个 proxy_set_header Host $proxy_host;
就不需要改hosts文件了

Nginx缓存到内存

这个只需将缓存目录设置在/dev/shm/下即可

配置文件:

proxy_cache_path /dev/shm/moec.top levels=1:2 keys_zone=laoxong:1m inactive=30m max_size=50m;
server {
 listen 80;
 listen 443 ssl http2;
 ssl_certificate /usr/local/nginx/conf/ssl/moec.crt;
 ssl_certificate_key /usr/local/nginx/conf/ssl/moec.key;
 ssl_session_timeout 1d;
 ssl_session_cache builtin:1000 shared:SSL:10m;
 add_header Strict-Transport-Security "max-age=63072000; includeSubdomains; preload";
 ssl_protocols TLSv1.1 TLSv1.2 TLSv1.3;
 ssl_ciphers "TLS-CHACHA20-POLY1305-SHA256:TLS-AES-256-GCM-SHA384:TLS-AES-128-GCM-SHA256:EECDH+CHACHA20:EECDH+CHACHA20-draft:EECDH+ECDSA+AES128:EECDH+aRSA+AES128:RSA+AES128:EECDH+ECDSA+AES256:EECDH+aRSA+AES256:RSA+AES256:EECDH+ECDSA+3DES:EECDH+aRSA+3DES:RSA+3DES:!MD5";

 ssl_prefer_server_ciphers on;

 ssl_stapling on;
 ssl_stapling_verify on;

 server_name 你的域名;
 access_log /usr/local/nginx/caches/moec.top_nginx.log combined;

 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 laoxong;
 proxy_cache_key $uri$is_args$args;
 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;
 }
 location ~ /purge(/.*) {
                allow              all;
                allow              127.0.0.1;
            #   deny               all;
                proxy_cache_purge laoxong $1$is_args$args;
 }
}

注意max_size不要超了内存大小哦

/dev/shm的容量默认最大为内存的一半大小,使用df -h命令可以看到。但它并不会真正的占用这块内存,如果/dev/shm/下没有任何文件,它占用的内存实际上就是0字节。

如果需要使用到这个目录,并且默认的大小不够使用,而其他程序占用的内存又比较少的时候,可以修改器最大占用内存的大小,来达到自己的目的。
其实修改它的原理很简单,对其进行重新挂载即可,挂载的时候指定挂载参数。

mount -o size=5128M  -o remount /dev/shm

上面对/dev/shm进行了重新挂载,并修改其大小为5G

上一篇: n.eko - 一个漂亮的虚拟浏览器

下一篇: 保存Docker容器修改并上传更新到Docker Hub的方法

9 人读过
comments powered by Disqus
文档导航