配置文件
#设置worker进程的用户,指的是Linux中的用户,会涉及到NGINX操作目录或文件的一些权限,默认就是nobody
#user nobody;
#worker进程的数量
worker_processes 1;
#错误日志 debug info notice warn error crit 从左到右级别越来越高
#error_log logs/error.log;
#error_log logs/error.log notice;
#error_log logs/error.log info;
#NGINX的进程号
#pid logs/nginx.pid;
events {
#默认使用epoll
use epoll
#每个worker进程允许的客户端最大连接数,根据自己机器的硬件配置进行修改
worker_connections 1024;
}
#网络传输的相关模块
http {
#可以导入外部的指令块配置,提高可读性,避免单个配置文件过大,可以导致自定义文件,比如配置多个server时,自定义一个server的config,然后导入,也是可以的
include mime.types;
#默认的type类型
default_type application/octet-stream;
# $后跟变量
#log_format main '$remote_addr(客户端IP)
#- $remote_user(远程客户端用户名)
#[$time_local](时间和时区)
#"$request" '(请求的URL以及method)
# '$status(响应的状态码)
#$body_bytes_sent(响应客户端内容字节数)
#"$http_referer" '(记录用户从哪个链接跳转过来的)
#'"$http_user_agent"(用户所使用的代理,一般都来自浏览器)
#"$http_x_forwarded_for"'(通过代理服务器来记录客户端的IP);
#记录用户的每一次请求,每一次请求都能在这个日志里面查找
#access_log logs/access.log main;
#使用高效文件传输,提升传输性能,启用后才能使用tcp_nopush,是指当下数据积累到一定大小后才发送,提高效率
sendfile on;
#tcp_nopush on;
#设置客户端与服务端请求的超时时间,保证客户端多次请求的时候不会创建新的建立,节约资源损耗
#keepalive_timeout 0;
keepalive_timeout 65;
#启用压缩,html/js/css压缩后传输会更快
#gzip on;
#在http指令快中设置多个虚拟主机
server {
#监听端口
listen 80;
#IP 域名
server_name localhost;
#charset koi8-r;
#access_log logs/host.access.log main;
#请求路由映射,匹配拦截
location / {
#请求位置
root html;
#首页设置
index index.html index.htm;
}
#error_page 404 /404.html;
# redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
# proxy the PHP scripts to Apache listening on 127.0.0.1:80
#
#location ~ \.php$ {
# proxy_pass http://127.0.0.1;
#}
# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
#
#location ~ \.php$ {
# root html;
# fastcgi_pass 127.0.0.1:9000;
# fastcgi_index index.php;
# fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;
# include fastcgi_params;
#}
# deny access to .htaccess files, if Apache's document root
# concurs with nginx's one
#
#location ~ /\.ht {
# deny all;
#}
}
# another virtual host using mix of IP-, name-, and port-based configuration
#
#server {
# listen 8000;
# listen somename:8080;
# server_name somename alias another.alias;
# location / {
# root html;
# index index.html index.htm;
# }
#}
# HTTPS server
#
#server {
# listen 443 ssl;
# server_name localhost;
# ssl_certificate cert.pem;
# ssl_certificate_key cert.key;
# ssl_session_cache shared:SSL:1m;
# ssl_session_timeout 5m;
# ssl_ciphers HIGH:!aNULL:!MD5;
# ssl_prefer_server_ciphers on;
# location / {
# root html;
# index index.html index.htm;
# }
#}
}
使用命令查看当前worker进程的用户信息,自己可以配置为root用户权限
[root@VM_0_14_centos conf]# ps -ef|grep nginx
root 12066 7239 0 15:14 pts/0 00:00:00 grep nginx
root 17525 1 0 11:41 ? 00:00:00 nginx: master process ./nginx
//我们可以发现worker进程操作的用户默认是nobody
nobody 17526 17525 0 11:41 ? 00:00:00 nginx: worker process
NGINX的 pid 打开失败以及失效的解决方案
1:如果文件夹没了,mkdir 创建文件夹
2:重新指定nginx.conf
./nginx -c /usr/local/nginx/conf/nginx.conf
3:使用默认的pid
nginx日志切割
现有的日志文件都会存在access.log文件中,但是随着时间的推移,这个文件会越来越大,不便于运维人员查看,所以我们可以通过把这个大的日志文件切割为不同的小文件,切割规则可以按天作为单位,如果每天都有几百个G或者几个T的日志文件的话,则可以按需求以每半天或者每小时去切割日志。
1:创建一个shell可执行文件:cut_my_log.sh,内容如下
#!/bin/bash
LOG_PATH="/var/log/nginx/"
RECORD_TIME=$(date -d "yesterday" +%Y-%m-%d-%H:%H)
PID=/var/run/nginx/nginx.pid
mv ${LOG_PATH}/access.log ${LOG_PATH}/access.log.${RECORD_TIME}.log
mv ${LOG_PATH}/error.log ${LOG_PATH}/error.log.${RECORD_TIME}.log
#向nginx主进程发送信号,由于重新打开日志文件
kill -USR1 'cat $PID'
2:为cut_my_log.sh添加可执行的权限
chmod +x cut_my_log.sh
3:测试日志切割后的结果
./cut_my_log.sh
使用定时任务
1:安装定时任务
yum install corntabs
2:corntab -e 编辑并且添加一行新的任务
*/1 * * * * /usr/local/nginx/sbin/cut_my_log.sh
3:重启定时任务
service cornd restart
常用命令
service cornd start 启动任务
service cornd stop 关闭任务
service cornd restart 重启服务
service cornd reload 重新载入配置
cornd -e 编辑任务
cornd -l 查看任务列表