LNMP架构-nginx编译安装/平滑升级

1. nginx源码编译安装

1.1 下载nginx安装包

wget http://nginx.org/download/nginx-1.22.0.tar.gz

1.2 下载nginx所需的依赖性

yum install -y gcc pcre-devel openssl-devel

1.3 解压下载的nginx安装包

[root@vm5 ~]# ls
nginx-1.22.0.tar.gz
[root@vm5 ~]# tar -zxvf nginx-1.22.0.tar.gz 
nginx-1.22.0/
nginx-1.22.0/auto/
nginx-1.22.0/conf/
nginx-1.22.0/contrib/
nginx-1.22.0/src/
.......

1.4 编译nginx,三部曲

[root@vm5 ~]# ls
nginx-1.22.0  nginx-1.22.0.tar.gz
[root@vm5 ~]# cd nginx-1.22.0/
[root@vm5 nginx-1.22.0]# ls
auto     CHANGES.ru  configure  html     man     src
CHANGES  conf        contrib    LICENSE  README
[root@vm5 nginx-1.22.0]# ./configure --prefix=/usr/local/nginx --with-http_ssl_module --with-http_stub_status_module
checking for OS
 + Linux 3.10.0-957.el7.x86_64 x86_64
checking for C compiler ... found
 + using GNU C compiler
......
[root@vm5 nginx-1.22.0]# make
make -f objs/Makefile
make[1]: Entering directory `/root/nginx-1.22.0'
cc -c -pipe  -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g  -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs \
	-o objs/src/core/nginx.o \
.......
[root@vm5 nginx-1.22.0]# make install
make -f objs/Makefile install
make[1]: Entering directory `/root/nginx-1.22.0'
test -d '/usr/local/nginx' || mkdir -p '/usr/local/nginx'
test -d '/usr/local/nginx/sbin' \
	|| mkdir -p '/usr/local/nginx/sbin'
test ! -f '/usr/local/nginx/sbin/nginx' \
	|| mv '/usr/local/nginx/sbin/nginx' \
.......

1.6 创建Nginx链接,启动nginx

[root@vm5 nginx-1.20.0]# ln -s /usr/local/nginx/sbin/nginx  /usr/sbin/
[root@vm5 nginx-1.20.0]# nginx           

1.5 访问主机ip,看是否可以可以访问到nginx的默认测试发布目录

[root@vm5 ~]# ip addr
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 52:54:00:ce:a8:b0 brd ff:ff:ff:ff:ff:ff
    inet 172.25.32.5/24 brd 172.25.32.255 scope global noprefixroute eth0
       valid_lft forever preferred_lft forever
    inet6 fe80::5054:ff:fece:a8b0/64 scope link 
       valid_lft forever preferred_lft forever
[root@vm5 ~]# curl 172.25.32.5
<!DOCTYPE html>
<html>
<head>
<title>Welcome to nginx!</title>
<style>
    body {
        width: 35em;
        margin: 0 auto;
        font-family: Tahoma, Verdana, Arial, sans-serif;
    }
</style>
</head>
<body>
<h1>Welcome to nginx!</h1>
<p>If you see this page, the nginx web server is successfully installed and
working. Further configuration is required.</p>

<p>For online documentation and support please refer to
<a href="http://nginx.org/">nginx.org</a>.<br/>
Commercial support is available at
<a href="http://nginx.com/">nginx.com</a>.</p>

<p><em>Thank you for using nginx.</em></p>
</body>
</html>

2. nginx平滑升级
2.1  下载nginx新版本软件,正常执行./configure 和make 但不要执行make install
​[root@vm5 ~]# wget http://nginx.org/download/nginx-1.20.0.tar.gz
[root@vm5 ~]# ls
nginx-1.20.0  nginx-1.20.0.tar.gz  nginx-1.22.0.tar.gz
[root@vm5 ~]# tar zxvf nginx-1.22.0.tar.gz
nginx-1.22.0/
nginx-1.22.0/auto/
nginx-1.22.0/conf/
nginx-1.22.0/contrib/
......
[root@vm5 ~]# ls
nginx-1.20.0  nginx-1.20.0.tar.gz  nginx-1.22.0  nginx-1.22.0.tar.gz
[root@vm5 ~]# cd nginx-1.22.0/
[root@vm5 nginx-1.22.0]# ls
auto     CHANGES.ru  configure  html     man     src
CHANGES  conf        contrib    LICENSE  README
[root@vm5 nginx-1.22.0]# ./configure --prefix=/usr/local/nginx --with-http_ssl_module --with-http_stub_status_module
checking for OS
 + Linux 3.10.0-957.el7.x86_64 x86_64
.....
[root@vm5 nginx-1.22.0]# make
make -f objs/Makefile
make[1]: Entering directory `/root/nginx-1.22.0'
cc -c -pipe  -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g  -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs \
.....
2.2 备份原程序
[root@vm5 ~]# cd /usr/local/nginx/sbin/
[root@vm5 sbin]# cp nginx nginx.old
[root@vm5 sbin]# ls
nginx  nginx.old

2.3  拷贝新程序

[root@vm5 ~]# cd nginx-1.22.0/
[root@vm5 nginx-1.22.0]# ls
auto     CHANGES.ru  configure  html     Makefile  objs    src
CHANGES  conf        contrib    LICENSE  man       README
[root@vm5 nginx-1.22.0]# cd objs/
[root@vm5 objs]# ls
autoconf.err  nginx    ngx_auto_config.h   ngx_modules.c  src
Makefile      nginx.8  ngx_auto_headers.h  ngx_modules.o
[root@vm5 objs]# ./nginx  -v
nginx version: nginx/1.22.0
[root@vm5 objs]# \cp -f nginx /usr/local/nginx/sbin/nginx

2.4  获取当前nginx主进程pid

[root@vm5 objs]# ps ax|grep nginx
26380 ?        Ss     0:00 nginx: master process nginx
26381 ?        S      0:00 nginx: worker process
26411 pts/0    R+     0:00 grep --color=auto nginx

2.5 升级新程序

[root@vm5 objs]# kill -USR2 26380
[root@vm5 objs]# ps ax|grep nginx
26380 ?        Ss     0:00 nginx: master process nginx
26381 ?        S      0:00 nginx: worker process
26412 ?        S      0:00 nginx: master process nginx
26413 ?        S      0:00 nginx: worker process
26415 pts/0    R+     0:00 grep --color=auto nginx
2.6 关闭原worker进程但保留主进程:为了回退
 
[root@vm5 objs]# kill -WINCH 26380

2.7 访问nginx,查看nginx版本,已经由原来的1.20版本升级至1.22版本

[root@vm5 objs]# curl  localhost -I
HTTP/1.1 200 OK
Server: nginx/1.22.0
Date: Thu, 14 Jul 2022 07:15:32 GMT
Content-Type: text/html
Content-Length: 612
Last-Modified: Thu, 14 Jul 2022 02:16:43 GMT
Connection: keep-alive
ETag: "62cf7c8b-264"
Accept-Ranges: bytes

3. nginx版本回退

3.1  还原nginx程序
[root@vm5 sbin]# \cp -f nginx.old nginx

3.2 唤醒原进程

[root@vm5 sbin]# ps ax|grep nginx
26380 ?        Ss     0:00 nginx: master process nginx
26412 ?        S      0:00 nginx: master process nginx
26413 ?        S      0:00 nginx: worker process
26436 pts/0    S+     0:00 grep --color=auto nginx
[root@vm5 sbin]#  kill -HUP 26380

3.3 回收新版本的worker进程

[root@vm5 sbin]# kill -WINCH 26413

3.4 关闭新版本主进程

[root@vm5 sbin]# kill -QUIT 26412

3.5  访问nginx,查看nginx版本,已经由原来的1.22版本升级至1.20版本

[root@vm5 sbin]# curl  localhost -I
HTTP/1.1 200 OK
Server: nginx/1.20.0
Date: Thu, 14 Jul 2022 07:46:48 GMT
Content-Type: text/html
Content-Length: 612
Last-Modified: Thu, 14 Jul 2022 02:16:43 GMT
Connection: keep-alive
ETag: "62cf7c8b-264"
Accept-Ranges: bytes
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

溪野~~

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值