Nginx 配置缓存

memset0 2020-06-08 2:56:16

mem 给 OJ 加了很多奇怪的新功能,自然也引入了许多乱七八糟的库(

mem 发现,如果不走 CDN 的话速度会很慢,但是连上 CDN 服务器的速度却比连自己的服务器慢==这是为什么呢。。。?

观察了下 Network,mem 发现,走 CDN 的文件会直接返回 (disk cache)(memory cache),而走服务器的请求一般会返回 304 Not Modified

虽然两种方式都不需要重新下载静态文件,但显然第二者多了到服务器的延时。切换页面的卡顿感也是因为这个原因造成的(

可以通过 Nginx 来配置缓存规则,本站的配置如下:

server {
	listen 80;
	listen [::]:80;
	listen 443 ssl;
	listen [::]:443 ssl;
	
	server_name apple.memset0.cn;
	include ssl.conf;

	proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
	proxy_set_header X-Forwarded-Proto $scheme;
	proxy_set_header X-Real-IP $remote_addr;
	proxy_set_header Host $host;

	location ~* \.(?:css|js|woff|woff2|ttf|png|ico|jpg|jpeg)$ {
		expires 1M;
		access_log off;
		add_header Cache-Control "public";
		proxy_pass http://127.0.0.1:15283;
	}

	location / {
		proxy_pass http://127.0.0.1:15283;
	}

	access_log  /etc/nginx/log/appleOJ.log;
}