Centos7 编译安装 Nginx
本文介绍是用二进制包的方式编译安装Nginx
内容版权声明:本文内容来自作者拜读 陶辉老师 著 《深入理解Nginx》模块开发与架构解析 一书中,如有侵犯权益请联系本人。
准备篇-使用Nginx的必备软件
GCC编译器
GCC(GNU Compiler Collection)可用来编译C语言程序。
PCRE库
PCRE(Perl Compatible Regular Expressions,Prel兼容正则表达式)是由Philip Hazel开发的函数库,目前为很多软件所使用,该库支持正则表达式。它由RegEx演化而来,实际上,Perl正则表达式也是源自于Henry Spencer写的RegEx.
zlib库
zlib库用于对HTTP包的内容做gzip压缩,在nginx.conf配置文件中看到gzip on,并指定对某些类型(content-type)的HTTP响应使用gzip压缩以减少网络传输量,那么在编译就必须要把zlib编译进Nginx。
OpenSSL开发库
假设我们的服务器不只是要支持HTTP,还需要只要更安全的SSL协议上传输HTTP,那么就需要拥有OpenSSL。另外,如果想使用MD5、SHA1等散列函数,也是需要同理的相应进行安装。
以上的4个库仅是完成Web服务器最基本功能。
安装篇-Nginx获取&安装
获取Nginx
解压
编译安装
安装Nginx最简单的方式是,进入nginx-1.0.14目录后执行一下3行命令
1.configure命令做了大量“幕后”工作,包括检测操作系统内核和已经安装软件,参数的解析,中间目录的生成以及根据各种参数生成一些C源码文件、Makefile文件等。
2.make命令根据configure命令生成的Makefile文件编译Nginx工程,并且目标文件、最终的二进制文件。
3.make install命令根据configure执行时的参数将部署到指定的安装目录,包括相关目录的建立和二进制文件、配置文件的复制。
使用篇-常用命令
(1)默认方式启动
直接执行Nginx二进制程序
这时是读取默认路径下的配置文件:/usr/local/nginx/conf/nginx.conf
(2)另行指定配置文件方式启动
使用-c参数指定配置文件
(3)另行指定安装目录启动方式
使用-p参数指定Nginx的安装目录
(4)另行指定全局配置项启动方式
使用-g参数临时指定一些全局配置项,以使新的配置项生效
(5)测试配置信息是否有错误
在不启动Nginx的情况下,使用-t参数仅测试配置文件是否有错误
(6)在测试配置节点不输出信息
测试配置选项时,使用-q参数可以不把error级别以下的信息输出到屏幕
(7)显示版本信息
使用-v参数显示Nginx版本信息
(8)显示编译阶段参数(维护nginx服务器非常实用的命令)
使用-V参数除了可以显示Nginx版本信息外,还可以显示配置编译阶段的信息,如GCC编译器的版本、操作系统的版本、执行configure时的参数等等
(9)快速停止服务
使用-s stop可以强制停止Nginx服务。-s参数其实是告诉Nginx程序向正在运行的Nginx服务发送信号量,Nginx程序通过nginx.pid文件得到master进程的进程Id,再向运行中的master进程发送TERM信号来快速地关闭Nginx服务。
如果读者对Linux有基本使用基础,那么我如下地操作你肯定能看懂,实际做了什么:
以上两个命令的效果于执行/usr/local/nginx/sbin/nginx -s stop效果完全一致。
(10)“优雅”地停止服务
如果你希望Nginx服务可以正常地处理完当前所有请求再停止服务,可以使用-s quit参数来停止服务
1.该命令与快速停止Nginx服务器是有区别的。当快速停止服务时,worker进程与master进程再收到信号后会立刻跳出循环,退出进程。而“优雅”地停止服务时,首先会关闭监听端口,停止接收新的连接,然后把当前正在处理地连接全部处理完,最后再退出进程。
2.与快速停止服务相似,可以直接发送QUIT信号给master进程来停止服务,其效果与执行-s quit命令是一样。如下命令:
1.停止master主进程
2.停止worker工作线程
(11)使运行中的Nginx重读配置项并生效
使用-s reload参数可以使云中的Nginx服务重新加载nginx.conf文件
实际上,Nginx会先检查新的配置项是否有误,如果全部正确就以“优雅”的方式关闭,再重新启动Nginx来实现这个目的
(12)日志文件回滚
使用-s reopen参数可以重新打开日志文件,这样可以先把当前日志文件改名或转移到其他目录中进行备份,再重新打开就会生成新的日志文件。
(13)平滑升级Nginx(待编写)
。。。。。
configure编译配置篇(待编写)
。。。。。。
nginx.conf配置篇(待编写)
。。。。。。
版权声明: 本文为 InfoQ 作者【Kevin Liao】的原创文章。
原文链接:【http://xie.infoq.cn/article/d63cc1316a6aa1c1d05621fef】。文章转载请联系作者。
评论