加速nginx: 开启gzip和缓存

转载自

https://www.darrenfang.com/2015/01/setting-up-http-cache-and-gzip-with-nginx/

nginx 是一个高性能的 Web 服务器,之前也写过一些关于 nginx 的文章。为了提高博客的响应速度,可以从设置 nginx 的 gzip 和缓存这2方面入手。为字体开启 gzip 和缓存能大大减少带宽的消耗。

开启gzip

配置

# 开启gzip
gzip on;

# 启用gzip压缩的最小文件,小于设置值的文件将不会压缩
gzip_min_length 1k;

# gzip 压缩级别,1-10,数字越大压缩的越好,也越占用CPU时间,后面会有详细说明
gzip_comp_level 2;

# 进行压缩的文件类型。javascript有多种形式。其中的值可以在 mime.types 文件中找到。
gzip_types text/plain application/javascript application/x-javascript text/css application/xml text/javascript application/x-httpd-php image/jpeg image/gif image/png;

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

# 禁用IE 6 gzip
gzip_disable "MSIE [1-6]\.";

关于具体的参数说明可以参考 nginx 的文档

gzip_comp_level 参数

关于 gzip_comp_level 的合理值,可以参考下图。来自 serverfault

Images

从图中可以看出 gzip_comp_level 大于2时效果并不是很明显。所以可以将值设置为1或者2。

开启缓存

配置

location ~* ^.+\.(ico|gif|jpg|jpeg|png)$ { 
        access_log   off; 
        expires      30d;
}

location ~* ^.+\.(css|js|txt|xml|swf|wav)$ {
    access_log   off;
    expires      24h;
}

location ~* ^.+\.(html|htm)$ {
        expires      1h;
}

其中的缓存时间可以自己根据需要修改。

关于字体

为静态资源开启缓存能够较少服务器带宽的消耗,特别是在css中使用字体时,同时配合gzip压缩能够大大减少下载字体造成的带宽影响。

设置字体缓存

需要注意的是,字体有很多格式,为所有字体格式设置缓存是很有必要的。

location ~* ^.+\.(eot|ttf|otf|woff|svg)$ {
        access_log   off;
        expires max;
}

启用gzip

只需要为 ttf、otf 和 svg 字体启用 gzip,对其他字体格式进行 gzip 压缩时效果不明显。

gzip_types  font/ttf font/otf image/svg+xml

各种字体类型压缩效果可以参考以下测试结果:

Images

Images

Images

Images

Images

可以看到对 woff 和 eot 进行 gzip 压缩效果不好。

字体总结

扩展名 是否压缩 Content-type
.eot application/vnd.ms-fontobject
.ttf font/ttf
.otf font/opentype
.woff 否 font/x-woff
.svg image/svg+xml


修改版ddscat(mddscat)增加二维电场数据导出功能

说明

github: https://github.com/xingtingyang/mddscat

该软件基于Bruce T.Draine以及Piotr J.Flatau博士的ddscat 7.3.0,基本上只是代码的拷贝,仅仅在电场的数据导出方面做了一些修改。因此所有的权利都归他们。

windows编译说明
使用git-bash和mingw进行编译,如果mingw中没有带openmp,那么就Makefile文件中如下两项设置成空,如果包含,则设置成如下,参考UserGuide即可。

mingw中未包含openmp(设置包含时的选项,编译会出错)

mingw中包含openmp

设置完成之后,使用mingw32-make all即可编译出ddscat, ddpostprocess, vtrconvert…等等软件。

使用getpar生成ddpostprocess.par
getpar i 生成如何计算的电场的尺寸以及如何使用的参数
getpar x/y/z 使用默认offset=0和slice=200生成默认的不同平面的ddpostprocess.par
getpar x/y/z offset[real] 使用自定义offset和默认slice=200生成默认的不同平面的ddpostprocess.par
getpar x/y/z offset[real] slice[int] 使用自定义offset和slice生成默认的不同平面的ddpostprocess.par
新的ddpostprocess(*.exe)对于ddpostprocess.par的编写

ddpostprocess导出的数据可以使用如下的代码进行处理



Journal of Materials Chemistry C曲折的投稿经历

这篇文章是过年时写好的,做的是基于空心AgAu@AgAu双LSPR纳米粒子的制备以及在Hg2+和Pb2+中的检测,一开始和老师商量的先投ACS Applied Materials & Interfaces,然而,几天之后编辑表示虽然我的论文有些新意,但是重金属的检测有些老套了,让转投到ACS Applied Nano Materials,这个期刊是ACS Applied Materials & Interfaces的姊妹刊,但是鉴于我需要这篇论文毕业,而这个姊妹刊尚没有影响因子,是去年新出来的期刊。所以老师推荐我拒绝转投了。

和老师商量之后,准备投Journal of Materials Chemistry C,大约7天就送审了,心里蛮期待。然后20多天之后,审稿意见回来了,共两个审稿意见,一个建议据搞并转投RSC Advances,一个大修,编辑基于审稿意见给了转投到RSC Advances。可是RSC Advances目前不仅从2区降为3区,而且还是open access的,需要交钱,而我们组没有投open access期刊的传统,况且是一个3区的期刊。我开始心里有些难过起来,如果我想投快的期刊,估计只能往二区投了。但是我仔细分析了据搞的审稿意见,我认为审稿人据搞过于草率,据搞理由也不太充分。然后我和老师商量能否重投,于是花了近1个月补实验,并完成了对所有审稿人意见的回复。并再次投到Journal of Materials Chemistry C,再次送审,又一个月后,收到了编辑大修意见。此次三个审稿意见,一个小修,一个据搞还有一个说仔细改改就可以接收,无另外提意见。我花了24天补完实验以及回复审稿意见,然后再次提交,约15天收到接收的消息,并给了Back Cover的机会。

此处投稿经历让我明白,能争取的一定要争取。争取了,即使结果不好,也不会有遗憾。



使用Visual Studio Code编译C/C++

Visual Studio Code 的作用和优点此处不再多讲。此处专门讲如何使用Visual Studio Code进行C/C++语言的编写和编译。

下载MinGw

不同MinGw的版本内容不一致,此处推荐在如下的网站进行下载: https://github.com/luzexi/MinGW.git,然后放在合适的位置即可。

安装C/C++扩展

配置

  • 新建一个空文件夹;
  • 使用Visual Studio Code加载以上文件夹;
  • 根据如下的模板,配置tasks.json(任务), launch.json(调试), c_cpp_properties.json(配置MinGW中的lib位置);
tasks.json

如果是编译多个文件,那么可以将args部分更换成

launch.json

c_cpp_properties.json

编写main.cpp

运行Task

CTRL+SHIFT+P,然后输入Task, 运行Build and Run CEX这个Task即可。

工程附件

下载地址: cex



Latex如何新建浮动类型

废话不多说,看代码



Package Control: There are no packages available for installation

如何解决Sublime Text 3的package control的如下错误

根据Sublime Text 3的加载日志(CTRL+`),首先看看是否是因为channel得json文件被墙,查看日志发现如下的内容

那么发现当前的channel地址为https://web.archive.org/web/20150905194312/https://packagecontrol.io/,将该地址粘贴在浏览器地址栏,发现无法打开,那么应该是该地址有问题。所以一句下面的办法更改这个地址。

Preferences > Package Settings > Package Control > Settings – User

将channel的地址设置为https://packagecontrol.io/channel_v3.json即可。

参考



Latex如何使用长表格longtable绘制跨页表格

首先引用longtable表格

默认的列类型可以使用p,但是是左对齐的,这里新建一个家具中对齐的列类型

编写表格代码

效果图

Images

参考