一、修改用户与组:
Nginx运行时进程需要有用户与组的支持,用以实现对网站文件读取时进行访问控制。主进程由 root创建,子进程由指定的用户与组创建。nginx 默认使用 nobody 用户账户与组账号,一般也要进行修改。
修改 nginx 用户与组有两种办法,一种是在编译安装时指定用户和组;第二种是修改配置文件指定用户与组。
(1)编译 nginx 时指定用户与组,即修改 ./configure 后面指定用户与组的参数。
./configure \
--prefix=/usr/local/nginx \
--user=nginx \ //指定用户名是 nginx
--group=nginx \ //指定组名是 nginx
--with-http_stub_status_module
(2)修改 nginx 配置文件,指定用户与组。
user nginx nginx; //修改用户为nginx,组为nginx
(3)重启服务后,查看进程情况,主进程由root创建,子进程则由nginx创建。
命令:ps aux | grep nginx
二、日志切割:
随着 Nginx运行时间的增加,产生的日志也会增加,需要定期地进行日志文件的切割。但是 Nginx 没有类似于 Apache 的 cronlog 日志分割处理能力,但是可以通过 Nginx 的信号控制功能脚本实现日志的自动切割,并将脚本加入到 linux 的计划任务中,让脚本在每天的固定时间执行,便可实现日志切割功能。
(1)第一步:首先编写脚本 /opt/fenge.sh ,把nginx 的日志文件 /usr/local/nginx/logs/access.log ,移动到目录 /var/log/nginx 下面,以当前时间作为日志文件名称;然后用 kill -USER1 创建新的日志文件 /usr/local/nginx/logs/access.log,最后删除30天之前的日志文件。
vim /opt/fenge.sh
#!/bin/bash
#Filename:fenge.sh
d=$(date -d "-1 day" "+%Y%m%d")
logs_path="/var/log/nginx"
pid_path="/usr/local/nginx/logs/nginx.pid"
[ -d $logs_path ] || mkdir -p $logs_path
//检测是否存在日志文件目录,没有的话创建一个
mv /usr/local/nginx/logs/access.log ${logs_path}/test.com-access.log-$d
//移动并重新命名日志文件
kill -USR1 $(cat $pid_path) //重建新的日志文件
find $logs_path -mtime +30 | xargs rm -rf //删除30天之前的日志文件
(2)第二步:执行脚本,测试日志文件是否被分割。
[root@Nginx opt]# chmod +x fenge.sh
[root@Nginx opt]# ./fenge.sh
(3)另外,还可以设置crontab,定期执行脚本自动进行日志分割。
0 1 * * * /opt/fenge.sh
// 表示每天凌晨一点执行 fenge.sh脚本,进行日志分割
三、设置连接超时:
在企业网中,为了避免同一个客户长时间占用连接,造成资源浪费,可设置相应的连接超时参数,实现对连接访问时间的控制。可以修改配置文件 nginx.conf ,设置 keepalive_time 超时时间。
#keepalive_timeout 0;
keepalive_timeout 65 180; //第一个参数指定服务器超时时间,第二个参数指定了客户端的超时时间;
client_header_timeout 80; //指定等待客户端发送发送请求头的超时时间;
client_body_timeout 80; //指定请求体读超时时间;
重启服务后,可以通过访问网址抓取数据报文,会有显示超时时间:
1、以下是未设置超时时间时的报文:
2:这是设置超时时间后的报文数据: