jemalloc是比glibc中的malloc高效很多的内存管理方案。
在nginx中也支持使用jemalloc进行内存管理,那更应该一试了。
一、安装jemalloc
cd /opt/soft
wget https://github.com/jemalloc/jemalloc/releases/download/4.2.1/jemalloc-4.2.1.tar.bz2 -O jemalloc-4.2.1.tar.bz2
tar -xvf jemalloc-4.2.1.tar.bz2
cd jemalloc-4.2.1
./configure
make && make install_bin install_include install_lib
echo '/usr/local/lib' > /etc/ld.so.conf.d/local.conf
ldconfig
这样就应该安装完毕了。
二、添加jemalloc tag重新编译nginx
由于博客从ghost转到了jekyll,很多东西需要进行优化配置。首先从网上找一个比较适合自己的模板,在github上找到了wangana这款模板,觉得挺合适,然后就clone下来开始了改造。
首先是将一些不要的功能都精简掉,同时因为这个模板原来css、font、js等等的资源都是存在本地,考虑到这个主机是托管在国外一个128MB的迷你型VPS上(还要跑个nginx),所以就将其能在国内找到CDN的资源,如jquery,bootstrap,fontawesome都从国内的公共CDN引用,然后再将主css传到七牛上,同时使用多说而不是disqus,同时找到了多说的完美https方案就用上了。
然后发现fontawesome的性能依旧不是特别理想,所以再将fontawesome换成了iconfont。所以目前博客在国内完全刷新大概需要2s,握手交换传输主页这个时间差不多是极限了。
最后再根据自己的需要增加了博客分页的功能,以后再根据需要作一下修正。
国内有个阿里云学生版主机,不过快毕业了,可能就废弃了,这个国外便宜主机就留着慢慢渣干性能。
一、nginx的配置文件(主要部分)如下:
server1.conf
server {
listen 8189;
server_name 127.0.0.1;
root /opt/nginx/html/php;
index index.html index.htm index.php;
location ~ \.php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
server2.conf
从hexo到ghost又回到jekyll
还是觉得jekyll这种本地管理的方式最适合自己,不过现在不再部署到github上了,而是通过rsync直接同步到自己的服务器上,感觉这样也不错,服务器的配置自己可控可写。
Resin4配置文件发生了较大变化,分为:
app-default.xml web应用配置 cluster-default.xml 集群配置 resin.xml resin.properties 会被修改的变量
一.删除/注释resin社区版本不支持的功能
1.health: 修改resin.xml, 删除
<resin:import path="${__DIR__}/health.xml"/>
2.LoadBalance 修改resin.xml, 删除
<web-app id="">
<resin:LoadBalance regexp="" cluster="app"/>
</web-app>
rsync有两种常用的认证方式,一种为rsync-daemon方式,另外一种则是ssh。 在一些场合,使用rsync-daemon方式会比较缺乏灵活性,ssh方式则成为首选。但是今天实际操作的时候发现当远端服务器的ssh默认端口被修改后,rsync时找不到一个合适的方法来输入对方ssh服务端口号。 在查看官方文档后,找到一种方法,即使用-e参数。 -e参数的作用是可以使用户自由选择欲使用的shell程序来连接远端服务器,当然也可以设置成使用默认的ssh来连接,但是这样我们就可以加入ssh的参数了。 具体语句写法如下:
rsync -e 'ssh -p 1234' username@hostname:SourceFile DestFile`
实习项目
过程
1.下载nginx-1.11.3源码包并且编译。
因为nginx HTTP rewrite module 需要PCRE包,同时其依赖的zlib本机也没有安装。所以一并下载源码包编译。
其中遇到过一次错误,就是nginx依赖的是PCRE而不是PCRE2,在下载的时候需要区分清楚。
PCRE和zlib编译安装过程比较简单,只需./configure好然后make && make install即可。
然后可以进入nginx编译过程。
在./configure时需要添加好参数 –with-pcre=PATH/TO/pcre –with-zlib=PATH/TO/zlib
执行make && make install 编译安装