1.什么是LNMP

LNMP架构和LAMP架构相似,LNMP即Linux+Nginx+MySQL+PHP

在LNMP架构中,PHP会启动php-fpm服务,Nginx把用户请求的PHP交给php-fpm服务去处理,php-fpm服务和MySQL进行交互,数据库验证成功后会返回给php-fpm,php-fpm再返回给Nginx,Nginx返回给用户

2.安装Nginx

  1. 搭建准备环境

    yum install -y gcc gcc-gcc+ automake pcre pcre-devel zlib zlib-devel open openssl-devel
  2. 编译安装Nginx1.17.1

    mkdir /Nginx_1171
    cd /Nginx_1171
    wget http://nginx.org/download/nginx-1.17.1.tar.gz
    tar -vxf nginx-1.17.1.tar.gz
    ./configure --prefix=/Nginx
    make && make install

3.Nginx安装目录主要内容

cd /Nginx
ls *

conf:
fastcgi.conf koi-utf nginx.conf uwsgi_params
fastcgi.conf.default koi-win nginx.conf.default uwsgi_params.default
fastcgi_params mime.types scgi_params win-utf
fastcgi_params.default mime.types.default scgi_params.default

html:
50x.html index.html

logs:

sbin:
nginx

Nginx服务器的安装目录主要包括了conf、html、logs和sbin四个目录

  • conf目录存放了Nginx的所有配置文件,其中nginx.conf是Nginx服务器的主配置文件
  • html目录存放了Nginx服务器运行过程中调用的HTML网页文件
  • logs目录存放了Nginx服务器运行过程中产生的日志
  • sbin目录只有一个nginx文件,是Nginx服务器的主程序

4.Nginx服务的启动与停止

1.Nginx服务的信号控制

使用方法:

kill SIGNAL PID
  • SIGNAL,用于指定信号
信号 作用
TERM或INT 快速停止Nginx服务
QUIT 平缓停止Nginx服务
HUP 使用新的配置文件启动进程,之后平缓停止原有进程,也就是所谓的平滑重启
USR1 重新打开日志文件,常用于日志切割
USR2 使用新版本的Nginx文件启动服务,之后停止原有的Nginx进程,也就是所谓的平滑升级
WINCH 平缓停止worker process,用于Nginx服务器平滑升级
  • PID,指定Nginx主进程的PID

    也可以使用位于logs目录下的nginx.pid动态获取PID号

    kill SIGNAL 'filepath'

2.Nginx服务的启动

./sbin/Nginx

3.Nginx服务的停止

发送信号

./sbin/nginx -g TERM | INT | QUIT

其中TERM和INT用于快速停止,QUIT用于平缓停止

或者使用动态PID

kill TERM | INT | QUIT '/Nginx/logs/nginx.pid'

4.Nginx服务的重启

./sbin/nginx -g HUP [-c newConfFile]
  • HUP,用于发送平滑启动信号
  • newConfFile,可选项,用于指定新配置文件的路径

或者使用新的配置文件代替旧的配置文件后,使用:

kill HUP '/Nginx/logs/nginx.pid'

5.Nginx服务器的平滑升级

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

Nginx服务器平滑升级方法:

./sbin/nginx -g USR2

其中USR2信号用于发送平滑升级信号。或者,使用:

kill USR2 '/Nginx/logs/nginx.pid'

通过ps aux | grep nginx命令查看新的Nginx服务是否启动正常,再使用:

./sbin/nginx -g WINCH

其中WINCH信号用于发送平滑停止旧服务信号。或者,使用:

kill WINCH './Nginx/logs/nginx.pid'

未完待续