Nginx启动停止重启

学习前准备工作

你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。

环境准备

1.查看linux内核版本:uname -a
2.安装GCC编译器,用来编译C语言:yum install -y gcc
3.安装C++编译器:yum install -y gcc-c++
4.安装PCRE库,如果我们在配置文件nginx.conf里使用了正则表达式,那么在编译Nginx时就必须把PCRE库编译进Nginx,因为Nginx的HTTP模块要靠它来解析正则表达式。当然,如果你确认不会使
用正则表达式,就不必安装它。其yum安装方式如下:yum install -y pcre pcre-devel
5.安装zlib库,zlib库用于对HTTP包的内容做gzip格式的压缩,如果我们在nginx.conf里配置了gzip on,并指定对于某些类型(content-type)的HTTP响应使用gzip来进行压缩以减少网络传输量,那
么,在编译时就必须把zlib编译进Nginx。其yum安装方式如下:yum install -y zlib zlib-devel
6.安装OpenSSL开发库,
如果我们的服务器不只是要支持HTTP,还需要在更安全的SSL协议上传输HTTP,那么
就需要拥有OpenSSL了。另外,如果我们想使用MD5、SHA1等散列函数,那么也需要安装
它。其yum安装方式如下:yum install -y openssl openssl-devel
总结:上面所列的4个库只是完成Web服务器最基本功能所必需的。

磁盘目录

1.Nginx源代码存放目录
该目录用于放置从官网上下载的Nginx源码文件,以及第三方或我们自己所写的模块源
代码文件。
2.Nginx编译阶段产生的中间文件存放目录
该目录用于放置在configure命令执行后所生成的源文件及目录,以及make命令执行后生
成的目标文件和最终连接成功的二进制文件。默认情况下,configure命令会将该目录命名为
objs,并放在Nginx源代码目录下。
3.部署目录
该目录存放实际Nginx服务运行期间所需要的二进制文件、配置文件等。默认情况下,
该目录为/usr/local/nginx。
4.日志文件存放目录
日志文件通常会比较大,当研究Nginx的底层架构时,需要打开debug级别的日志,这个
级别的日志非常详细,会导致日志文件的大小增长得极快,需要预先分配一个拥有更大磁盘
空间的目录。

获取Nginx源码

下载地址

http://nginx.org/en/download.html

下载后解压:tar -zxvf nginx-1.0.14.tar.gz

编译安装

安装Nginx最简单的方式是,进入nginx-1.0.14目录后执行以下3行命令:

./configure
make
make install
configure命令做了大量的“幕后”工作,包括检测操作系统内核和已经安装的软件,参数
的解析,中间目录的生成以及根据各种参数生成一些C源码文件、Makefile文件等。
make命令根据configure命令生成的Makefile文件编译Nginx工程,并生成目标文件、最终
的二进制文件。
make install命令根据configure执行时的参数将Nginx部署到指定的安装目录,包括相关目
录的建立和二进制文件、配置文件的复制。

命令行启动

默认方式启动:./nginx/sbin/nginx
这时,会读取默认路径下的配置文件:./nginx/conf/nginx.conf
指定配置文件启动:./nginx/sbin/nginx -c tmpnginx.conf
指定安装目录启动:./nginx/sbin/nginx -p usrlocal/nginx/
指定全局配置项的启动方式,可以通过-g参数临时指定一些全局配置项,以使新的配置项生效。例如:./nginx/sbin/nginx -g "pid varnginx/test.pid;"
测试配置文件是否正确:./nginx/sbin/nginx -t
停止服务:./nginx/sbin/nginx -s stop
优雅停止服务./nginx/sbin/nginx -s quit
重载配置项:./nginx/sbin/nginx -s reload

平滑升级Nginx

当Nginx服务升级到新的版本时,必须要将旧的二进制文件Nginx替换掉,通常情况下这
是需要重启服务的,但Nginx支持不重启服务来完成新版本的平滑升级。
升级时包括以下步骤:
1)通知正在运行的旧版本Nginx准备升级。通过向master进程发送USR2信号可达到目
的。例如:kill -s SIGUSR2 <nginx master pid>
这时,运行中的Nginx会将pid文件重命名,如将./nginx/logs/nginx.pid重命名
./nginx/logs/nginx.pid.oldbin,这样新的Nginx才有可能启动成功。
2)启动新版本的Nginx,可以使用以上介绍过的任意一种启动方法。这时通过ps命令可
以发现新旧版本的Nginx在同时运行。
3)通过kill命令向旧版本的master进程发送SIGQUIT信号,以“优雅”的方式关闭旧版本的
Nginx。随后将只有新版本的Nginx服务运行,此时平滑升级完毕。

链接: link.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值