一、Nginx入门(安装、启停及版本升级)

1、Nginx安装(自定义安装)

#安装gcc编译环境、pcre正则校验库、zlib压缩算法库、openssl证书校验库
yum -y install -y gcc pcre-devel pcre zlib zlib-devel openssl openssl-devel

#下载nginx nginx官网 https://nginx.org/en/download.html
wget https://nginx.org/download/nginx-1.22.0.tar.gz

#创建资源统一管理目录文件
cd /usr/local
mkdir -p nginx/core
mv /usr/sbin/nginx-1.22.0.tar.gz nginx/core

#解压缩
tar -xzf nginx-1.22.0.tar.gz

#进入安装环境配置
./configure --prefix=/usr/local/nginx \
--sbin-path=/usr/local/nginx/sbin/nginx \
--modules-path=/usr/local/nginx/modules \
--conf-path=/usr/local/nginx/conf/nginx.conf \
--error-log-path=/usr/local/nginx/logs/error.log \
--http-log-path=/usr/local/nginx/logs/access.log \
--pid-path=/usr/local/nginx/logs/nginx.pid \
--lock-path=/usr/local/nginx/logs/nginx.lock

2、Nginx文件目录结构分析

#CGI(Common Gateway Interface)通用网关[接口],主要解决的问题是从客户端发送一个请求和熟虑,服务端获取到请求和数据后可以调用CGI[程序]处理及相应结果给客户端的一种标准规范
#fastcgi.conf: fastcgi相关配置
#fastcgi.conf.default: fastcgi.conf的备份文件
#fastcgi_params: fastcgi的参数文件
#fast_params.default: fastcgi_params的备份文件
#scgi_params: scgi的参数文件
#scgi_params.default: scgi_params的备份文件
#uwsgi_params: uwsgi的参数文件
#uwsgi_params.default: uwsig_params的备份文件
#mime.types: 记录的是HTTP协议中的Content-type的值和文件后缀名的对应关系
#mime.types.default: mime.types的备份文件
#nginx.conf: nginx的何昕配置文件
#nginx.conf.default: nginx.conf的备份文件
#html: 存放nginx自带的两个静态的html页面
 50x.html: 访问失败后的失败页面
 index.htmk: 成功访问的默认首页
#logs: 记录日志的文件,当nginx服务启动后,这里面会有access.log、error.log和nginx.pid三个文件
#sbin: 存放执行程序文件nginx
 nginx是用来控制nginx的启动和停止等相关的命令

3、Nginx服务启停方式

        方式一:Nginx服务信号控制

#Nginx中的master和worker进程?
nginx工作方式为一个master进程管理多个worker进程

#Nginx的工作方式

#如何获取进程的PID
1、查看/usr/local/nginx/logs/nginx.pid
2、ps -ef | grep nginx

#信号有哪些
TERM/INT 立即关闭整个服务
QUIT '优雅'的关闭整个服务
HUP 重读配置文件并使用服务对新配置项生效
USR1 重新打开日志文件,可以用来进行日志切割
USR2 平滑升级到最新版的nginx
WINCH 所有子进程不再接受处理新连接,相当于给work进程发送QUIT指令

#如何通过控制信号控制Nginx的启停等相关操作
    
调用命令为: kill -signal PID
signal 即为信号, PID即为获取到的master线程ID
    
1、发送TERM/INT信号给master进程,会将Nginx服务立即关闭
  kill -TERM PID / kill -TERM `cat/usr/local/nginx/logs/nginx.pid`
  kill -INT PID / kill -INT `cat/usr/local/nginx/logs/nginx.pid`

查看Nginx进程信息:ps -ef | grep nginx

root     23942     1  0 13:39 ?        00:00:00 nginx: master process ./nginx
nobody   23943 23942  0 13:39 ?        00:00:00 nginx: worker process
root     27585  1369  0 14:54 pts/0    00:00:00 grep --color=auto nginx

        方式二:Nginx的命令行控制

#此方式是通过Nginx安装目录下的sbin下的可执行文件nginx来进行Nginx状态控制,我们可以通过nginx -h来查看都有哪些参数可以用:

#显示帮助信息
-?,-h         : this help
#打印版本信息并退出
  -v            : show version and exit
#打印版本号信息及配置信息并退出
  -V            : show version and configure options then exit
#测试nginx的配置文件语法是否正确并退出
  -t            : test configuration and exit
#测试nginx的配置文件语法是否正确并列出用到的配置文件信息然后退出
  -T            : test configuration, dump it and exit
#在配置测试期间禁止显示非错误消息
  -q            : suppress non-error messages during configuration testing
#signal信号,后面可以跟:
      #stop [快速关闭,类似于TERM/INT信号的作用]
      #quit[优雅的关闭,类似于QUIT信号的左右]
      #reopen[重新打开日志文件类似于USR1信号的左右]
      #reload[类似于HUP信号的作用]
  -s signal     : send signal to a master process: stop, quit, reopen, reload
#指定Nginx的prefix路径,(默认为: /usr/local/nginx)
  -p prefix     : set prefix path (default: /usr/local/nginx/)
#指定Nginx的错误日志路径,(默认为: /usr/local/nginx/logs/error.log)
  -e filename   : set error log file (default: /usr/local/nginx/logs/error.log)
#指定Nginx的配置文件路径,(默认为: /usr/local/nginx/conf/nginx.conf)
  -c filename   : set configuration file (default: /usr/local/nginx/conf/nginx.conf)
#用来补充Nginx配置文件,向Nginx服务指定启动时应用全局的配置
  -g directives : set global directives out of configuration file

4、Nginx服务器版本升级

如果想对Nginx的版本进行更新,或者要应用一些新的模块,最简单的做法就是停止当前的Nginx服务,然后开启新的Nginx服务,但是这样会导致在一段时间内,用户是无法访问服务器。为了解决这个问题,我们就需要用到Nginx服务器提供的平滑升级功能。这个也是Nginx的一大特点,使用这种方式,就可以使Nginx7*24小时不间断的提供服务了,有以下两种方案:

        方案一: 使用Nginx服务信号完成Nginx的升级

        方案二: 使用Nginx安装目录的make命令完成升级

        前置工作:环境准备

#1、先准备两个版本的Nginx,如:1.14.2和1.16.1

#2、使用Nginx源码安装的方式将1.14.2安装成功并正确访问
./configure
make & make install

#3、将Nginx1.16.1进行参数配置和编译,不需要进行安装。
./configuer
make

        方案一:使用Nginx服务信号进行升级

        第一步:将1.14.2版本的sbin目录下的nginx进行备份

cd /usr/local/nginx/sbin
mv nginx nginxold

        第二步:将Nginx1.16.1安装目录编译后的objs目录下的nginx文件,拷贝到原来/usr/local/nginx/sbin目录下

cd ~/nginx/core/nginx-1.16.1/objs
cp nginx /usr/local/nginx/sbin

        第三步:发送信号USR2Nginx的1.14.2版本对应的master进程

kill -USR2 `more /usr/local/nginx/logs/nginx.pid.`

        第四步:发送信号QUITNginx的1.14.2版本对应的master进程

kill -QUIT `more /usr/local/bginx/logs/nginx.oldbin`

        方案二:是用Nginx安装目录的make命令完成升级

        第一步:将1.14.2版本的sbin目录下的nginx进行备份

cd /usr/local/nginx/sbin
mv nginx nginxold

        第二步:将Nginx1.16.1安装目录编译后的objs目录下的nginx文件,拷贝到原来/usr/local/nginx/sbin目录下

cd ~/nginx/core/nginx-1.16.1/objs
cp nginx/usr/local/nginx/sbin

        第三步:进入到安装目录,执行make upgrade

        第四步:查看是否更新成功

./nginx -v

在整个过程中,其实Nginx是一致对外提供服务的。并且当Nginx的服务器启动成功后,我们是可以通过浏览器进行直接访问的,同时我们可以通过更改html目录下的页面

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值