零、换源
sed -i s@/archive.ubuntu.com/@/mirrors.aliyun.com/@g /etc/apt/sources.list apt-get clean
一、vim有conf语法高亮
编译源码包中有contrib文件夹,供我们做语法高亮使用。
cp -r contrib/vim/* /usr/share/vim/vimfiles/
二、热更新,无感版本升级
编译安装的时候不要执行make install 。将make好的二进制文件(C语言编译后的文件都会放在src目录)nginx复制到老的sbin文件夹中。
//先备份老的nginx二进制文件 cp nginx nginx.old //将编译好的新版本nginx二进制文件复制进sbin中 cp nginx.new nginx //找到当前nginx的master进程发送热更新信号,此时会新启一个master进程(新版本nginx),老的worker也在进行,但是新的worker会以新版本在运行,平滑的过渡。 ps -ef | grep nginx root 12716 1 0 2018 ? 00:00:00 nginx: master process /usr/local/nginx/sbin/nginx www-data 12717 12716 0 2018 ? 00:00:12 nginx: worker process www-data 12718 12716 0 2018 ? 00:00:20 nginx: worker process www-data 12719 12716 0 2018 ? 00:00:11 nginx: worker process www-data 12720 12716 0 2018 ? 00:00:05 nginx: worker process root 20486 20043 0 00:07 pts/0 00:00:00 grep --color=auto nginx kill -USR2 12716
//现在通知老的worker进程发出信号,优雅的关闭worker进程。
kill -WINCH 12716
三、日志文件的切割
生产环境中access.log和error.log往往会非常庞大,我们必须定时(每天)去切割移走,怎么优雅的将文件搬走,又让nginx重新讲日志写入log中呢?
通过mv命令可以将access.log移动走,这里为什么不用cp而用mv呢,因为linux文件系统中,改名并不会影响已经打开文件的写入操作,内核inode不变,这样就不会出现丢日志了,如果使用cp则在cp和重启中间会遗失一部分日志信息。
mv access.log access_bak.log nginx -s reopen //或者使用kill -USR2 nginx.pid 重新拉起一个worker
每日文件备份使用contrab
原文:https://www.cnblogs.com/Ethen/p/12609835.html