nginx平滑升级

#平滑升级

kill -USR2 <PID号>

 //查看nginx版本

  
  1. [root@l1 logs]# nginx -v //查看nginx版本

  2. nginx version: nginx/1.26.0

  3. [root@l1 logs]#

安装一个1.25版本实验一下 

  
  1. [root@l2 ~]# cd /opt/

  2. [root@l2 opt]#

[root@l2 opt]# ls

nginx-1.25.5.tar.gz nginx-1.26.0.tar.gz rh
进行初始化配置 
[root@l2 opt]# systemctl disable --now firewalld.service

Removed symlink /etc/systemd/system/multi-user.target.wants/firewalld.service.

Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.

[root@l2 opt]# setenforce 0

[root@l2 opt]# vim /etc/selinux/config
安装软件包 
[root@l2 opt]# df

文件系统 1K-块 已用 可用 已用% 挂载点

devtmpfs 1913548 0 1913548 0% /dev

tmpfs 1930628 0 1930628 0% /dev/shm

tmpfs 1930628 12528 1918100 1% /run

tmpfs 1930628 0 1930628 0% /sys/fs/cgroup

/dev/mapper/centos-root 38770180 5714188 33055992 15% /

/dev/sda1 1038336 191100 847236 19% /boot

tmpfs 386128 12 386116 1% /run/user/42

tmpfs 386128 0 386128 0% /run/user/0

[root@l2 opt]# mount /dev/sr0 /mnt

mount: /dev/sr0 写保护,将以只读方式挂载

[root@l2 opt]# yum -y install pcre-devel zlib-devel openssl-devel gcc gcc-c++ make

//安装软件包 
创建用户  
[root@l2 opt]# useradd -M -s /sbin/nolongin nginx
 编译安装Nginx
[root@l2 opt]# cd /opt/

[root@l2 opt]# ls

nginx-1.25.5.tar.gz nginx-1.26.0.tar.gz rh

[root@l2 opt]# tar xf nginx-1.25.5.tar.gz //解压

[root@l2 opt]# cd nginx-1.25.5/

[root@l2 nginx-1.25.5]#
./configure \

--prefix=/usr/local/nginx \

--user=nginx \

--group=nginx \

--with-http_stub_status_module

 

[root@l2 nginx-1.25.5]# ./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_stub_status_module --with-http_ssl_module

//指定安装路径,指定运行用户,运行组 ,开启模块,htps协议
[root@l2 nginx-1.25.5]# make && make install
 设置软链接,可以直接调用nginx命令来进行管理
[root@l2 nginx-1.25.5]# cd /usr/local/nginx/

[root@l2 nginx]# ls sbin/

nginx

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

[root@l2 nginx]#

[root@l2 nginx]# /usr/local/nginx/sbin/nginx //运行

[root@l2 nginx]#



[root@l2 nginx]# cd /usr/lib/systemd/system

[root@l2 system]# vim nginx.service

[root@l2 system]#


[Unit]

Description=nginx

After=network.target


[Service]

Type=forking

PIDFile=/usr/local/nginx/logs/nginx.pid

ExecStart=/usr/local/nginx/sbin/nginx

ExecReload=/bin/kill -s HUP $MAINPID

ExecStop=/bin/kill -s QUIT $MAINPID

PrivateTmp=true


[Install]

WantedBy=multi-user.target


[root@l2 system]# chmod 754 /lib/systemd/system/nginx.service

[root@l2 system]#

启动nginx服务 ​​​​​​​

/usr/local/nginx/sbin/nginx


netstat -lntp | grep 80
 查看pid进程号
  1. [root@l2 ~]# cat /usr/local/nginx/logs/nginx.pid

  2. 14039

  3. [root@l2 ~]#

查看版本 
[root@l2 ~]# nginx -v

nginx version: nginx/1.25.5
[root@l2 ~]# netstat -lntp | grep 80

tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 14039/nginx: master

//已在运行

升级

新版本升级:
tar -zxvf nginx-1.xx.xx.tar.gz 
cd nginx-1.xx.xx
./configure \
--prefix=/usr/local/nginx \
--user=nginx \
--group=nginx \
--with-http_stub_status_module
--with-http_ssl_module 

[root@l2 ~]# cd /opt/

[root@l2 opt]# ls

nginx-1.25.5 nginx-1.25.5.tar.gz nginx-1.26.0.tar.gz rh

[root@l2 opt]# tar xf nginx-1.26.0.tar.gz

[root@l2 opt]#

[root@l2 opt]# ls

nginx-1.25.5 nginx-1.26.0 rh

nginx-1.25.5.tar.gz nginx-1.26.0.tar.gz

[root@l2 opt]# cd nginx-1.26.0/

[root@l2 nginx-1.26.0]#

[root@l2 nginx-1.26.0]# ls

auto CHANGES.ru configure html man src

CHANGES conf contrib LICENSE README

[root@l2 nginx-1.26.0]# ./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_stub_status_module --with-http_ssl_module

//做配置
[root@l2 nginx-1.26.0]# make -j 2

//进行编译

​​​​​​​

nginx文件做个替换
[root@l2 objs]# cd /usr/local/nginx/sbin/

[root@l2 sbin]# ls

nginx

[root@l2 sbin]# mv nginx nginx_old //做个备份

[root@l2 sbin]#


[root@l2 sbin]# cp /opt/nginx-1.26.0/objs/nginx ./

[root@l2 sbin]# ls

nginx nginx_old

[root@l2 sbin]#




[root@l2 sbin]# cd /opt/nginx-1.26.0/

[root@l2 nginx-1.26.0]# ls

auto CHANGES.ru configure html Makefile objs src

CHANGES conf contrib LICENSE man README

[root@l2 nginx-1.26.0]#
 升级
[root@l2 sbin]# cd /opt/nginx-1.26.0/

[root@l2 nginx-1.26.0]# ls

auto CHANGES.ru configure html Makefile objs src

CHANGES conf contrib LICENSE man README


[root@l2 nginx-1.26.0]# make upgrade //升级

/usr/local/nginx/sbin/nginx -t

nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok

nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful

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

sleep 1

test -f /usr/local/nginx/logs/nginx.pid.oldbin

kill -QUIT `cat /usr/local/nginx/logs/nginx.pid.oldbin`

[root@l2 nginx-1.26.0]#

查看版本
[root@l2 nginx-1.26.0]# nginx -v
nginx version: nginx/1.26.0

[root@l2 nginx-1.26.0]#

[root@l2 nginx-1.26.0]# nginx -V

nginx version: nginx/1.26.0

built by gcc 4.8.5 20150623 (Red Hat 4.8.5-44) (GCC)

built with OpenSSL 1.0.2k-fips 26 Jan 2017

TLS SNI support enabled

configure arguments: --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_stub_status_module --with-http_ssl_module

[root@l2 nginx-1.26.0]#

  •  注:
  • mv /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx_old
  •  cp objs/nginx /usr/local/nginx/sbin/nginx
  • make upgrade  #要保证当前 nginx 进程是通过 /usr/local/nginx/sbin/nginx 启动的,而不是通过查找环境变量中那个 nginx 命令启动的
  • #或者先 killall nginx ,再/usr/local/nginx/sbin/nginx

相关推荐

  1. Nginx编译后平滑升级

    2024-06-05 22:32:09       44 阅读
  2. Nginx如何对运行老业务的服务器平滑升级版本

    2024-06-05 22:32:09       54 阅读
  3. NGINX安装升级

    2024-06-05 22:32:09       55 阅读
  4. nginx升级版本

    2024-06-05 22:32:09       43 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-06-05 22:32:09       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-06-05 22:32:09       100 阅读
  3. 在Django里面运行非项目文件

    2024-06-05 22:32:09       82 阅读
  4. Python语言-面向对象

    2024-06-05 22:32:09       91 阅读

热门阅读

  1. Python表达且:深入剖析其逻辑与实现

    2024-06-05 22:32:09       26 阅读
  2. Oracle数据库面试题-5

    2024-06-05 22:32:09       22 阅读
  3. 前端面试指南(一面)

    2024-06-05 22:32:09       32 阅读
  4. 力扣567.字符串的排列

    2024-06-05 22:32:09       25 阅读
  5. 二百三十九、Hive——Hive函数全篇

    2024-06-05 22:32:09       25 阅读
  6. C++容器之链表(std::list)

    2024-06-05 22:32:09       29 阅读
  7. android-handler

    2024-06-05 22:32:09       35 阅读
  8. Python创建虚拟环境及安装

    2024-06-05 22:32:09       27 阅读
  9. Python|OpenCV-自动检测并识别车牌号(16)

    2024-06-05 22:32:09       34 阅读
  10. 【sklearn | 5】:集成学习与模型解释

    2024-06-05 22:32:09       32 阅读