天天看点

Hexo优化篇:Nginx压缩和缓存

Nginx模板一份,一切尽在其中。

Tips:由于版本问题,配置文件可能存在不同的写法。例如:Nginx 版本为 nginx/1.15.0 以上请使用 listen 443 ssl 代替 listen 443 和 ssl on。更多SSL 证书安装部署问题…
server {
	#监听80端口
	listen		 80;	

	#填写绑定证书的域名
	server_name www.your_domain.com; 
	
	#把http的域名请求转成https
	return 301 https://$host$request_uri; 

}

server {
    # 加上default_server是为了偷懒不写www时,直接访问youdomain.com不至于跑到其他二级域名去。
	listen		443 ssl http2 default_server;
	#填写绑定证书的域名
	server_name 	www.your_domain.com; 
	
	#证书文件名称
	ssl_certificate /your_path/your_ssl_certificate.crt; 
	#私钥文件名称
	ssl_certificate_key /your_path/your_ssl_certificate_key.key; 
	ssl_session_timeout 5m;
	ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
	# 取消了 TLSv1 支持,感觉有点多余
	ssl_protocols TLSv1.1 TLSv1.2 TLSv1.3;
	ssl_prefer_server_ciphers on;
	
    #记录一下日志,www目录自己创建的,用来区分不同的域名
    access_log /var/log/nginx/www/access.log main;

    # hexo的静态文件目录(此处以我的为例)
    # 重点:这个必须放置在外面,否则开启缓存之后无法访问
    root   /path/hexo_blog/public;
    location / {
        #		root   /path/hexo_blog/public; 
        index  index.html index.htm;
    }


    ## 开启压缩 -- begin

    # 开启gzip
    gzip off;

	# 设置允许压缩的页面最小字节数,页面字节数从header头得content-length中进行获取。默认值是0,不管页面多大都压缩  
	gzip_min_length 256;

    # gzip 压缩级别 1-10 数字越大,压缩率越高,cpu使用越强
    gzip_comp_level 5;

	#这里设置无论header头是怎么样,都是无条件启用压缩
	# gzip_proxied any;	
        
	# 进行压缩的文件类型
 	gzip_types text/xml text/css text/javascript application/x-httpd-php image/jpeg image/gif image/png application/xml application/atom+xml application/rss+xml application/xhtml+xml image/svg+xml text/javascript application/javascript a
pplication/x-javascript text/x-json application/json application/x-web-app-manifest+json text/css text/plain text/x-component font/opentype font/ttf application/x-font-ttf application/vnd.ms-fontobject image/x-icon;

	#这里设置无论header头是怎么样,都是无条件启用压缩
	gzip_proxied any;

    # 是否在http header中添加Vary: Accept-Encoding,建议开启
    gzip_vary on;

	#IE 6及一下禁用gzip 
	gzip_disable "MSIE [1-6]\.(?!.*SV1)";

    ## 开启压缩 -- end

	## 开启缓存 -- begin
    location ~ .*\.(?:jpg|jpeg|gif|png|ico|cur|gz|svg|svgz|mp4|ogg|ogv|webm)$ {
        expires      7d;
    }

    location ~ .*\.(?:js|css)$ {
        expires      7d;
    }

#    location ~ .*\.(?:htm|html)$ {
#        add_header Cache-Control "private, no-store, no-cache, must-revalidate, proxy-revalidate";
#	}
	## 开启缓存 -- end


    error_page 404 /404.html;
    location = /404.html {
    }

    error_page 500 502 503 504 /50x.html;
    location = /50x.html {
    }

}

           

https证书免费申请地址(一次可使用12个月)

  • 腾讯云:SSL证书选购 - 腾讯云 (tencent.com)
    Hexo优化篇:Nginx压缩和缓存
  • 又拍云:https://www.upyun.com/
    Hexo优化篇:Nginx压缩和缓存
  • FreeSSL:https://freessl.cn/
    Hexo优化篇:Nginx压缩和缓存

免费域名申请地址:

  • freenom:Freenom - 人人都熟悉的名字
    Hexo优化篇:Nginx压缩和缓存
    Hexo优化篇:Nginx压缩和缓存
    Hexo优化篇:Nginx压缩和缓存

免费dns解析器:

  • dnspod:https://www.dnspod.cn/products/dns
  • cloudflare: Cloudflare 中国官网

继续阅读