首页 > 其他 > 详细

Nginx笔记

时间:2020-04-01 10:58:39      阅读:72      评论:0      收藏:0      [点我收藏+]

零、换源

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

 

Nginx笔记

原文:https://www.cnblogs.com/Ethen/p/12609835.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!