Nginx升级&访问控制&日志分割

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)

发表评论

您的电子邮箱地址不会被公开。