configure脚本:
1、cat <EOF >>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
| |---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 <nginx master pid> 一样
worker进程与master进程收到信号后会立刻跳出循环,退出进程
10、“优雅”地停止服务
/usr/local/nginx/sbin/nginx -s quit
会发送QUIT信号给master进程 效果和kill-s SIGQUIT <nginx master pid> 一样
首先会关闭监听端口,停止接收新的连接,然后把当前正在处理的连接全部处理完,最后再退出进程
11、使运行中的Nginx重读配置项并生效
/usr/local/nginx/sbin/nginx -s reload
Nginx会先检查配置项是否有误,如果正确则以“优雅”的方式关闭,在重新启动Nginx
效果同kill -s SIGHUP <nginx master pid>
12、日志文件回滚
/usr/local/nginx/sbin/nginx -s reopen
重新打开日志文件,这样可以先把当前日志文件改名或转移到其他目录中进行备份,再重新打开时就会生成新的日志文件
13、平滑升级Nginx
当服务器升级到新版本时,必须将旧的二进制文件替换掉,nginx支持不重启服务完成过新版本的平滑升级
1、通知正在运行的旧版本Nginx准备升级,向master进程发送USER2信号
kill -s SIGUSER2 <nginx master pid>
这时会重命名/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