Nginx 安装和操作

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/jeikerxiao/article/details/82800996

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安装包目录

目录 说明
src Nginx 源代码
man Nginx 帮助文档
html 存放静态网页文档
conf Nginx 配置文件
auto 脚本文件
configure Nginx 自动脚本程序

配置生成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服务器的主程序
conf Nginx 所有配置文件
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 服务器的平滑升级。

猜你喜欢

转载自blog.csdn.net/jeikerxiao/article/details/82800996