linux上安装相关命令:
序号 | 作用 | 命令 | 说明 |
---|---|---|---|
1 | 安装GCC编译器 | yum install -y gcc | GCC(GNU Compiler Collection)可用来编译C语言程序。Nginx不会直接提供二进制可执行程序,GCC是必需的编译工具 |
2 | 安装PCRE库 | yum install -y pcre pcre-devel | PCRE(Perl Compatible Regular Expressions,Perl兼容正则表达式)是由Philip Hazel开发的函数库,目前为很多软件所使用,该库支持正则表达式。果我们在配置文件nginx.conf里使用了正则表达式,那么在编译Nginx时就必须把PCRE库编译进Nginx,因为Nginx的HTTP模块要靠它来解析正则表达式 |
3 | 安装zlib库 | yum install -y zlib zlib-devel | zlib库用于对HTTP包的内容做gzip格式的压缩,如果我们在nginx.conf里配置了gzip on,并指定对于某些类型(content-type)的HTTP响应使用gzip来进行压缩以减少网络传输量,那么,在编译时就必须把zlib编译进Nginx |
4 | 安装OpenSSL开发库 | yum install -y openssl openssl-devel | 如果我们的服务器不只是要支持HTTP,还需要在更安全的SSL协议上传输HTTP,那么就需要拥有OpenSSL了。另外,如果我们想使用MD5、SHA1等散列函数,那么也需要安装它 |
5 | 安装nginx |
./configure make make install | 进入nginx目录后,分别执行这三条命令 |
启动相关命令(以下命令在usr/local/nginx/sbin目录下执行):
序号 | 作用 | 命令 | 说明 |
---|---|---|---|
1 | 默认方式启动 | ./nginx | 会读取默认路径下的配置文件:usr/local/nginx/conf/nginx.conf。实际上,在没有显式指定nginx.conf配置文件路径时,将打开在configure命令执行时使用--conf-path=PATH指定的nginx.conf文件 |
2 | 另行指定配置文件的启动方式 | ./nginx -c tmpnginx.conf | 使用-c参数指定配置文件,这时,会读取-c参数后指定nginx.conf配置文件来启动Nginx。 |
3 | 另行指定全局配置项的启动方式 | ./nginx -g "pid varnginx/test.pid;" | 上面这行命令意味着会把pid文件写到varnginx/test.pid中.-g参数的约束条件是指定的配置项不能与默认路径下的nginx.conf中的配置项相冲突,否则无法启动。就像上例那样,类似这样的配置项:pid logs/nginx.pid,是不能存在于默认的nginx.conf中的.另一个约束条件是,以-g方式启动的Nginx服务执行其他命令行时,需要把-g参数也带上,否则可能出现配置项不匹配的情形(./nginx -g "pid varnginx/test.pid;" -s stop) |
4 | 测试配置信息是否有错误 | ./nginx -t | 在不启动Nginx的情况下,使用-t参数仅测试配置文件是否有错误,执行结果中显示配置是否正确 |
5 | 在测试配置阶段不输出信息 | ./nginx -t -q | 测试配置选项时,使用-q参数可以不把error级别以下的信息输出到屏幕 |
6 | 显示版本信息 | ./nginx -v | 使用-v参数显示Nginx的版本信息 |
停止相关命令(以下命令在usr/local/nginx/sbin目录下执行):
序号 | 作用 | 命令 | 说明 |
---|---|---|---|
1 | 快速地停止服务 | ./nginx -s stop | 使用-s stop可以强制停止Nginx服务。-s参数其实是告诉Nginx程序向正在运行的Nginx服务发送信号量,Nginx程序通过nginx.pid文件中得到master进程的进程ID,再向运行中的master进程发送TERM信号来快速地关闭Nginx服务 |
2 | 直接通过kill命令来发送信号 | kill -s SIGTERM 10800 | 先通过ps命令来查看nginx master的进程ID,再使用kill |
3 | “优雅”地停止服务 | ./nginx nginx -s quit |
如果希望Nginx服务可以正常地处理完当前所有请求再停止服务,那么可以使用-s quit参数来停止服务。该命令与快速停止Nginx服务是有区别的。当快速停止服务时,worker进程与master进程在收到信号后会立刻跳出循环,退出进程。而“优雅”地停止服务时,首先会关闭监听端口,停止接收新的连接,然后把当前正在处理的连接全部处理完,最后再退出进程 |
4 | 使运行中的Nginx重读配置项并生效 | ./nginx -s reload | 在不启动Nginx的情况下,使用-t参数仅测试配置文件是否有错误,执行结果中显示配置是否正确 |
5 | 平滑升级Nginx | kill -s SIGUSR2 <nginx master pid> | 通知正在运行的旧版本Nginx准备升级。通过向master进程发送USR2信号可达到目的,运行中的Nginx会将pid文件重命名,如将usrlocal/nginx/logs/nginx.pid重命名为usrlocal/nginx/logs/nginx.pid.oldbin,这样新的Nginx才有可能启动成功。 |
参考文档:1.淘辉.深入理解Nginx模块开发与架构解析[M].机械工业出版社,2016(2)