步奏一: 先下载linux下nginx的安装包

【nginx】-安装&信号量&日志管理

步奏二:解压

【nginx】-安装&信号量&日志管理

步奏三:进入nginx目录下,编译nginx文件

【nginx】-安装&信号量&日志管理

布奏四:编译

./configure --prefix=/usr/local/nginx

注意:上边将临时文件目录指定为/var/temp/nginx,需要在/var下创建tempnginx目录


构建完后生成了makefile文件

【nginx】-安装&信号量&日志管理

步骤五:进行make还有安装

当前目录下执行make。

当前目录下执行make install。

步奏六: 如下路径下找到nginx的可执行文件

【nginx】-安装&信号量&日志管理

步奏七:启动或者停止nginx服务器

【nginx】-安装&信号量&日志管理

如上图所示,启动nginx,然后关闭防火墙。

步奏八:验证nginx服务器是否启动

【nginx】-安装&信号量&日志管理

如图所示linux环境下nginx服务器,安装成功。

cd /usr/local/nginx, 看到如下4个目录

./

 ....conf配置文件 

 ... html网页文件

 ...logs  日志文件

 ...sbin  主要二进制程序


步奏十:停止与重启服务器

【nginx】-安装&信号量&日志管理

信号量控制

TERM, INT

Quick shutdown

QUIT

Graceful shutdown  优雅的关闭进程,即等请求结束后再关闭

HUP

Configuration reload ,Start the new worker processes with

 a new configuration Gracefully shutdown the old worker processes

改变配置文件,平滑的重读配置文件

USR1

Reopen the log files重读日志,在日志按月/日分割时有用

USR2

Upgrade Executable on the fly平滑的升级

WINCH

Gracefully shutdown the worker processes优雅关闭旧的进程(配合USR2来进行升级)












具体语法:

Kill -信号选项  nginx的主进程号

Kill -HUP 4873 //平滑的加载配置文件

Kill -信号控制 `cat/xxx/path/log/nginx.pid` 

Kill -USR1 `cat /xxx/path/log/nginx.pid` //重读日志


nginx.conf 默认日志

下有一个日志配置的地方

 #access_log  logs/host.access.log  main;

使用的格式”main”格式.

除了main格式,你可以自定义其他格式.

main格式是什么?

log_format  main  '$remote_addr - $remote_user [$time_local]"$request" '

    #                  '$status $body_bytes_sent"$http_referer" '

    #                  '"$http_user_agent""$http_x_forwarded_for"';

 

【nginx】-安装&信号量&日志管理

如上图所示

$remote_addr 访问的ip

$remote_user 请求的用户

$time_local 访问的时间

$request 请求方式

$status 响应码

$body_bytes_sent"$http_referer" 请求源

http_x_forwarded_for:在经过代理时,代理把你的本来IP加在此头信息中,传输你的原始IP

等等,如上是nginx的日志,默认是main格式的日志,放在相对路劲logs文件夹下。

 

 

nginx.conf 自定义日志 可以把上面的日志重组重排

server段中这样来声明自定义日志

  log_format  mylog '$remote_addr- "$request" '

                       '$status$body_bytes_sent "$http_referer" '

                          '"$http_user_agent" "$http_x_forwarded_for"';

在下面的server/location,我们就可以引用 mylog

access_loglogs/access_8080.log mylog; 

日志备份与重写:shell脚本

#!/bin/bash

log_base="/usr/local/nginx/logs"

log_path=${log_base}/$(date-d yesterday +"%Y")/$(date -d yesterday +"%m")

mkdir-p $log_path

mv $log_base/access.log$log_path/access_$(date-d yesterday +"%Y%m%d").log

kill -USR1 `cat /usr/local/nginx/logs/nginx.pid`

重新创建日志并重写

crontab  -e 添加定时任务
*/1 * * * * /data/sh runlog.sh 定时执行日志切割脚本 这样就实现了动态日志文件的管理


相关文章:

  • 2021-08-21
  • 2021-12-19
  • 2021-11-30
  • 2021-11-20
  • 2022-12-23
  • 2021-09-14
  • 2021-11-19
  • 2022-02-15
猜你喜欢
  • 2021-06-14
  • 2022-01-16
  • 2021-05-15
  • 2021-05-26
  • 2021-11-20
  • 2021-10-03
相关资源
相似解决方案