Nginx 安装和操作

1.常用功能

  1. HTTP代理和反向代理
  2. 负载均衡
  3. Web缓存

2.服务器安装部署

cd /opt/software

mkdir nginx

cp nginx-1.2.3.tar.gz nginx/

cd nginx

tar xf nginx-1.2.3.tar.gz

cd nginx-1.2.3

ls -l

2.1安装包目录

目录说明
srcNginx 源代码
manNginx 帮助文档
html存放静态网页文档
confNginx 配置文件
auto脚本文件
configureNginx 自动脚本程序

配置生成Makefile

./configure --prefix=/nginx

--prefix 指定了Nginx 软件安装目录为刚建立的ngnix目录。

编译

make

安装

make install

如果在没有改动源代码的情况下,需要重新编译和安装Nginx 软件,就不必再使用 configure 脚本自动生成 Makefile 了。

可以先使用以下命令删除上次安装的 Nginx 软件:

rm -rf /nginx/*

然后定位到nginx-1.2.3.tar.gz 解压目录,清除上次编译的遗留文件:

cd /nginx/nginx-1.2.3/; make clean

之后再使用以下命令进行编译和安装:

make; make install

到此,我们就安装好了一个最基本的Nginx服务器了。

2.2 Nginx 服务器安装目录

目录说明
sbin只有一个nginx 文件,这就是Nginx服务器的主程序
confNginx 所有配置文件
html存放静态网页文件
logs日志文件夹

3.Nginx 服务的启停

3.1 服务的信号控制

Nginx 服务在运行时,会保持一个主进程和一个或多个worker process 工作进程。

我们通过给Nginx 服务的主进程发送信号就可以控制服务的启停了。

如何给主进程发送信号呢?

首先得知道主进程的进程号PID。

获取PID有两种方法:

  1. 文件查看PID。启动Nginx 服务后,默认在Nginx 服务器的安装目录下的logs目录中,会产生文件名为nginx.pid 的文件,此文件中保持的就是Nginx服务主进程的PID。
  2. 命令查看PID。ps -ef |grep nginx可以查看 master process 主进程的PID。

向Nginx 服务主进程发送信号的方法。

格式

kill -[SIGNAL] PID

Nginx 服务可接收的信号

信号说明
kill -TERM PID快速停止Nginx 服务
kill -INT PID快速停止Nginx 服务
kill -9 PID强制关闭Nginx 服务
kill -QUIT PID平缓停止Nginx 服务
kill -HUP PID平滑重启Nginx 服务。使用新的配置文件启动进程,之后平缓停止原有进程。
kill -USR1 PID重新打开日志文件,常用于日志切割
kill -USR2 PID平滑升级。使用新版本的Nginx文件启动服务,之后平缓停止原有Nginx进程
kill -WINCH PID平缓停止 worker process,用于Nginx 服务器平滑升级

3.2 Nginx 服务的启动

启动Nginx 服务器直接运行安装目录下 sbin 目录中的二进制文件即可。

./sbin/nginx

查看Nginx 服务的进程状态

ps -ef |grep nginx

Nginx 的帮助信息

➜  nginx ./sbin/nginx -h                                                                                               
nginx version: nginx/1.14.0                                                                                            
Usage: nginx [-?hvVtTq] [-s signal] [-c filename] [-p prefix] [-g directives]                                          

Options:
  -?,-h         : this help
  -v            : show version and exit
  -V            : show version and configure options then exit
  -t            : test configuration and exit
  -T            : test configuration, dump it and exit
  -q            : suppress non-error messages during configuration testing
  -s signal     : send signal to a master process: stop, quit, reopen, reload
  -p prefix     : set prefix path (default: /opt/software/nginx/)
  -c filename   : set configuration file (default: conf/nginx.conf)
  -g directives : set global directives out of configuration file

3.3 Nginx 服务的停止

停止 Nginx 服务有两种方法

  1. 快速停止(TERM 和 INT 信号用于快速停止)
  2. 平缓停止(QUIT用于平缓停止)
kill -[TERM | INT | QUIT] PID

强制关闭(不建议使用)

kill -9 PID

3.4 Nginx 服务的重启

更改Nginx 服务器的配置和加入新模块后,如果希望当前的Nginx 服务应用新的配置或使用新模块生效,就需要重启Nginx 服务。

平滑重启是这样一个过程:

  1. Nginx 服务进程接收到信号后,首先读取新的Nginx 配置文件。
  2. 如果配置语法正确,则启动新的Nginx服务,然后平缓关闭旧的服务进程。
  3. 如果新的Nginx 配置有问题,将显示错误,仍然使用旧的Nginx 进程提供服务。

使用以下命令平滑重启

kill -HUP PID

3.5 服务器的升级

如果要对当前的 Nginx 服务器进行版本升级,应用新模块,最简单的办法是停止当前 Nginx 服务,然后开启新的 Nginx 服务,但这样就会导致在一段时间内,用户无法访问服务器。

为了解决这个问题,Nginx 服务器提供平滑升级的功能。

平滑升级的过程是这样的:

  1. Nginx 服务接收到 USR2 信号后,首先将旧的 nginx.pid 文件添加后缀 .oldbin,变为 nginx.pid.oldbin 文件。
  2. 然后执行新版本的Nginx 服务器的二进制文件启动服务。
  3. 如果新的服务启动成功,系统中将有新旧两个Nginx 服务共同提供 Web 服务。
  4. 之后,需要向旧的 Nginx 服务进程发送 WINCH 信号,使旧的 Nginx 服务平滑停止,并删除 nginx.pid.oldbin 文件。
  5. 在发送 WINCH 信号之前,可以随时停止新的 Nginx 服务。

为了实现 Nginx 服务器的平滑升级,新的服务器安装路径应该和旧的保持一致。

因此建议在安装新服务器之前先备份旧服务器。

如果由于某种原因无法保持新旧服务器安装路径一致,则可以先使用以下命令将旧服务器的安装路径更改为新服务器的安装路径:

./Nginx/nginx -p newInstallPath

其中,newInstallPath 为新服务器的安装路径。之后,备份旧服务器,安装新服务器即可。

做好准备工作后,使用以下命令平滑升级 Nginx 服务。

kill -USR2 PID

通过 ps -ef |grep nginx 查看新的 Nginx 服务启动正常。

再使用 WINCH 信号用于发送平滑停止旧服务信号。

kill -WINCH PID

这样就在不停止提供 Web 服务的前提下完成了 Nginx 服务器的平滑升级。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值