002. Nginx语法,重载,热部署,日志分割

一:Nginx通用语法

  • Nginx通用语法
    • 配置文件由指令和指令块组成
    • 指令结束用分号区分, 指令与参数之间用空格分隔
    • 指令块用{}将指令进行区分
    • include语句允许组合多个配置文件以提高文件的可读性
    • 使用#符号添加注释, 使用$符号使用变量
    • 部分指令参数支持正则表达式
  • Nginx语法案例:
    # 像worker_processes这就是一个指令, 而像events就是一个指令块。
    worker_processes  1; # 指令结束用分号区分, 指令与参数之间用空格区分
    
    events {
          
           # 指令块用{}对指令进行区分
        worker_connections  1024;
    }
    
    http {
          
          
        include       mime.types; # 像mime.types是个配置文件, 可以将其他的配置直接加载进来
        default_type  application/octet-stream;
        sendfile        on;
        keepalive_timeout  65;
        
        server {
          
          
            listen       8080;
            server_name  localhost;
            
            location / {
          
          
                root   html;
                index  index.html index.htm;
            }
            
            error_page   500 502 503 504  /50x.html;
            location = /50x.html {
          
           # 像/50x.html这样的, 支持正则表达式进行路由匹配。
                root   html;
            }
        }
        include servers/*;
    }
    
  • 时间配置参数
    • ms: 毫秒
    • s: 秒
    • m: 分钟
    • h: 小时
    • d: 天
    • w: 周
    • M: 月
    • y: 年
  • 空间配置参数
    • 不写:bytes
    • k/K:千字节
    • m/M: 兆字节
    • g/G: G字节

二:Nginx重载,热部署,日志分割

2.1: Nginx命令行

  • Nginx指令案例: nginx -s reload
  • 查看帮助文档:nginx -h
  • 使用指定的配置文件: nginx -c 配置文件路径
  • 覆盖配置文件中的配置:nginx -g 配置名称
  • 指定运行目录:nginx -p 路径
  • 发送信号:nginx -s 指令名称
    • 停止服务信号:stop
    • 优雅的停止服务信号:quit
    • 重载配置文件信号:reload
    • 重新开始记录日志文件信号: reopen
  • 测试nginx配置文件语法:nginx -t/-T
  • 查看nginx版本信息: nginx -v/-V

2.2: 命令行演示Nginx重载

  • 什么是重载?
    • 再不影响当前运行的情况下, 重新加载配置, 启动/卸载某些内容。
  • 重载案例:
    • 1: 修改nginx.conf中的配置
    • 2: 执行重启nginx: nginx -s reload

2.3: 命令行演示Nginx热部署

  • 什么是热部署?
    • 热部署就是在不影响服务的情况下, 对nginx进行平滑的升级。
  • 热部署案例:
    • 1: 下载新版本的nginx, 并对新的nginx进行编译。
    • 2: 用编译后的nginx文件, 替换现在正在运行的nginx文件。
    • 3: 删除旧的主nginx进程, 然后重新启动一个新的nginx主进程。
      • kill -USR2 nginx主进程号
      • 注意:此时会有两个nginx主进程, 新的连接将访问新的nginx主进程。老的worker进程也存在, 但是不再监听80, 443端口, 而新的worker进程会监听80, 443端口。
    • 4: 优雅的关闭老的worker进程
      • kill -WINCH 老的nginx主进程号
      • 注意: 此时老的nginx主进程不会退出, 但是worker进程会退出。
      • 原因:worker进程退出, 说明旧的请求已经全部处理完了。 老的nginx主进程不会退出, 是因为新的nginx进程如果有问题, 需要重新拉起老的nginx主进程。

2.4: 命令行演示Nginx日志切割

  • 复制当前的日志: cp 当前日志路径 目标日志路径
  • 进行日志切割:nginx -s reopen

猜你喜欢

转载自blog.csdn.net/qq_41341757/article/details/128519980
今日推荐