雨润年华

开源节流,站点域名更改为 www.5201.pub

AMH4.2免费版手动编译升级Nginx1.8版本方法 Aug 3, 2016

从AMH免费版本停留在4.2版本之后就没有进行更新和升级,而且官方提供的解决文档也比较少,毕竟免费且没有盈利的产品还是没有多少兴趣的。但是,对于大部分网站环境来说,安装和使用AMH4.2免费版本还是够用的,WEB面板与一键包、或者手工编译环境,无非就是在系统中安装几个环境组合而已。

比如,AMH环境采用的是Nginx、PHP、MYSQL组合而已,默认的版本中PHP5.3、Nginx1.4、MYSQL5.5,稍微PHP和Nginx有点老了,我们今天在将Nginx1.4升级到当前稳定版1.8版本就比较完美。

- 阅读全文 -

给Nginx加速的小小技巧 Aug 2, 2016

本博客linpx.com就是用下面的配置进行加速····日后可能会有变化,想起就更新吧····

开启Gzip

给Nginx上 ngx_http_gzip_module 这个模块,用 nginx -V 命令查看 configure arguments 是否有,没有的话需要编译加载这个模块

假设我们都已经有这个模块了

用vim打开配置文件,假设我的nginx.conf在/usr/local/nginx目录下

vim /usr/local/nginx/nginx.conf
然后在 http{} 两个大括号之间

加入下面的内容,部分设置参数需要跟站点情况进行修改,加入的时候建议删除注释

gzip on;

该指令用于开启或关闭gzip模块(on/off)

gzip_buffers 16 8k;

设置系统获取几个单位的缓存用于存储gzip的压缩结果数据流。16 8k代表以8k为单位,安装原始数据大小以8k为单位的16倍申请内存

gzip_comp_level 6;

gzip压缩比,数值范围是1-9,1压缩比最小但处理速度最快,9压缩比最大但处理速度最慢

gzip_http_version 1.1;

识别http的协议版本

gzip_min_length 256;

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

gzip_proxied any;

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

gzip_vary on;

在http header中添加Vary: Accept-Encoding ,给代理服务器用的

gzip_types
text/xml application/xml application/atom+xml application/rss+xml application/xhtml+xml image/svg+xml
text/javascript application/javascript application/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;

进行压缩的文件类型,这里特别添加了对字体的文件类型

gzip_disable "MSIE [1-6].(?!.*SV1)";

禁用IE 6 gzip

给文件做缓存

图片文件,字体文件,js和css都是些可以用来缓存的文件,这里通过设置Expires和Cache-Control头实现,直接在配置文件中配置location即可

location ~ .*.(gif|jpg|jpeg|png|bmp|swf|flv|ico)$ {
expires 30d;
access_log off;
}

location ~ .*.(eot|ttf|otf|woff|svg)$ {
expires 30d;
access_log off;
}

location ~ ..(js|css)?$ {
expires 7d;
access_log off;
}
当然可以通过其他方法实现更好的缓存,例如在配置文件中加入 proxy_cache_
或 fastcgi_cache_* ,这里推荐一篇文章:zhangge.net/5067.html ,暂且这样···

参考

nginx.org/en/docs/http/ngx_http_gzip_module.html
www.packtpub.com/networking-and-servers/mastering-nginx

u=1715106346,3339388042&fm=21&gp=0.jpg

C语言union关键字的意义和用法 Jun 6, 2016

union 维护足够的空间来置放多个数据成员中的“一种”,而不是为每一个数据成员配置空间,在union 中所有的数据成员共用一个空间,同一时间只能储存其中一个数据成员,所有的数据成员具有相同的起始地址。例子如下:

union StateMachine
{
   char character;
   int number;
   char *str;
   double exp;
};

一个union 只配置一个足够大的空间以来容纳最大长度的数据成员,以上例而言,最大长度是double 型态,所以StateMachine 的空间大小就是double 数据类型的大小。

在C++里,union 的成员默认属性页为public。union 主要用来压缩空间。如果一些数据不可能在同一时间同时被用到,则可以使用union。
以前在学校学习C语言的时候一直搞不懂那个共用体union有什么用的。工作之后才发现它的一些妙用,现举例如下:

- 阅读全文 -