风起漂泊 发表于 2018-11-14 08:34:03

Nginx初识

  configure脚本:
  1、cat >test.txt
  EOF
  多行追加
  2、uname
  用于打印当前操作系统的相关信息
  3、2>/dev/null
  /dev/null 代表空设备文件
  1 表示stdout标准输出,系统默认值是1,所以">/dev/null"等同于"1>/dev/null"
  2 表示stderr标准错误
  & 表示等同于的意思,2>&1,表示2的输出重定向等同于1
  4、configure脚本生成的文件
  默认在obj/
  |---ngx_auto_headers.h    保存了宏
  |---autoconf.err    保存configure执行过程中产生的结果
  |---ngx_auto_config.h      保存了宏
  |---ngx_modules.c   关键文件,定义了ngx_modules数组,该数组指明了每个模块在Ngnix中的优先级
  |---src    存放编译时产生的目标文件
  |      |---core
  |      |---event
  |      |      |---modules
  |      |---os
  |      |      |---unix
  |      |      |---win32
  |      |---http
  |      |      |---modules
  |      |                |---perl
  |      |---mail
  |      |---misc
  |---Makefile    编译Nginx工程、在加入install参数后安装Nginx
  Nginx的命令行控制:
  1、默认启动方式
  直接执行nginx二进制程序
  /usr/local/nginx/sbin/nginx
  不加参数默认读取 默认路径下的配置文件/use/local/nginx/conf/nginx.conf
  2、另行指定配置文件
  /usr/local/nginx/sbin/nginx -c /tmp/nginx.conf
  此时会读取-c 后面的文件来启动Nginx
  3、另行指定安装目录
  -p
  4、另行指定全局配置项
  /usr/local/nginx/sbin/nginx -g "pid /var/nginx/test.pid;"会把pid文件写到test.pid中
  -g的一个约束条件是指定的配置项不能与默认路径下的nginx.conf中的配置项冲突,具体可查看/usr./ocal/nginx/conf/nginx.conf文件内容;另一个约束条件是以-g方式启动的Nginx服务在执行其他命令时,需把-g参数也带上,否则可能出现配置项不匹配的情形
  5、测试配置信息是否有错误
  /usr/local/nginx/sbin/nginx-t
  6、在测试配置阶段不输出信息
  /usr/local/nginx/sbin/nginx-t -q
  7、显示Nginx版本信息
  /usr/local/nginx/sbin/nginx-v
  8、显示版本信息和编译阶段的参数
  /usr/local/nginx/sbin/nginx-V
  9、快速地停止服务
  /usr/local/nginx/sbin/nginx -s stop
  强制停止Nginx服务, -s告诉Nginx程序向正在运行的Nginx服务发送信号量,Nginx程序会通过/usr/local/nginx/logs/nginx.pid文件获取master进程的ID,再向master进程发送TERM信号来快速关闭Nginx服务
  效果和kill -s SIGTERM一样
  worker进程与master进程收到信号后会立刻跳出循环,退出进程
  10、“优雅”地停止服务
  /usr/local/nginx/sbin/nginx -s quit
  会发送QUIT信号给master进程    效果和kill-s SIGQUIT一样
  首先会关闭监听端口,停止接收新的连接,然后把当前正在处理的连接全部处理完,最后再退出进程
  11、使运行中的Nginx重读配置项并生效

  /usr/local/nginx/sbin/nginx -s>  Nginx会先检查配置项是否有误,如果正确则以“优雅”的方式关闭,在重新启动Nginx
  效果同kill -s SIGHUP
  12、日志文件回滚
  /usr/local/nginx/sbin/nginx -s reopen
  重新打开日志文件,这样可以先把当前日志文件改名或转移到其他目录中进行备份,再重新打开时就会生成新的日志文件
  13、平滑升级Nginx
  当服务器升级到新版本时,必须将旧的二进制文件替换掉,nginx支持不重启服务完成过新版本的平滑升级
  1、通知正在运行的旧版本Nginx准备升级,向master进程发送USER2信号
  kill -s SIGUSER2
  这时会重命名/usr/local/nginx/logs/nginx.pid为/usr/local/nginx/log/nginx.pid.oldbin
  2、以以上方式的任一种启动新版本的Nginx,这时通过ps可看到旧版本的服务还在运行
  3、通过kill向旧版本master进程发送SIGQUIT信号即可,以“优雅”方式关闭
  14、显示命令行帮助
  /usr/local/nginx/sbin/nginx -h
  /usr/local/nginx/sbin/nginx -?
  关闭80端口
  fuser -k 80/tcp

页: [1]
查看完整版本: Nginx初识