Nginx升级
1. 开始之前先查看一下当前使用的版本
/usr/local/nginx/sbin/nginx -V
记下以前编译的参数。
2.下载新版本
然后:解压 > 编译前的准备 > 编译
tar -zxvf tengine-2.1.1.tar.gz
cd tengine-2.1.1
./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-openssl=/u01/openssl-1.0.0e --with-pcre=/u01/pcre-8.36
make
3. 执行完后,这里不用再 make install 了,接下来重名/sbin/nginx为nginx.old
mv /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx.old
4. 复制编译后objs目录下的nginx文件到nginx的安装目录sbin/下
cp /u01/tengine-2.1.1/objs/nginx /usr/local/nginx/sbin/
5. 测试一下新复制过来文件生效情况:
/usr/local/nginx/sbin/nginx -t
6. 让nginx把nginx.pid文件修改成nginx.pid.oldbin,随即启动nginx,实现不间断
ps -ef|grep nginx (看主进程id)
kill -USR2
kill -WINCH
kill -QUIT
7. 升级完成了,最后在看一下升级后的版本
/usr/local/nginx/sbin/nginx -v
Nginx访问控制
使用auth_basic来添加访问认证:
在http、server、location块中可添加:
auth_basic "whatever u want to write"; #提示语句
auth_basic_user_file /../nginx/conf/htpasswd; #密码文件存放位置
密码生成需要使用Apache的htpasswd模块:
yum install httpd -y
htpasswd -bc /../nginx/conf/htpasswd es_admin adm2016 #如果要添加用户则使用-b
chmod 400 /../nginx/conf/htpasswd
重启nginx:
./nginx -s reload
Nginx日志分割
制定一个定时任务,每天23:59切割日志:
crontab -e:
59 23 * * * /usr/local/nginx/logs/cut_log.sh
script:
{
#/bin/bash
yesterday=$(date +%Y-%m-%d)
savepath_log='/usr/local/nginx/logs/accesslogs'
nglogs='/usr/local/nginx/logs'
if [ ! -d ${savepath_log} ];then
mkdir -p ${savepath_log}
fi
mv ${nglogs}/access.log ${savepath_log}/access_${yesterday}.log
#mv ${nglogs}/error.log ${savepath_log}/error_${yesterday}.log
#mv ${nglogs}/host.access.log ${savepath_log}/host.access_${yesterday}.log
}
kill -USR1 $(cat /usr/local/nginx/logs/nginx.pid)