Linux版本中Nginx平滑升级与回退

下面我会详细讲解"Linux版本中Nginx平滑升级与回退"的攻略,包括以下步骤:

1.备份现有的Nginx配置文件和二进制文件

在进行平滑升级或回退之前,需要先备份现有的Nginx配置文件和二进制文件。可以通过以下命令备份:

$ sudo cp -r /etc/nginx ~/nginx_backup
$ sudo cp -r /usr/sbin/nginx ~/nginx_backup

2.下载新的Nginx源代码

下载新的Nginx源代码,可以从官网https://nginx.org/en/download.html下载。

$ wget https://nginx.org/download/nginx-1.20.1.tar.gz
$ tar -zxvf nginx-1.20.1.tar.gz

3.编译新的Nginx二进制文件

编译新的Nginx二进制文件,需要使用configure脚本生成Makefile文件,具体命令如下:

$ cd nginx-1.20.1
$ ./configure --prefix=/usr/local/nginx --with-http_ssl_module --with-http_stub_status_module --with-stream --with-stream_ssl_module
$ make && make install

其中,--prefix指定安装目录,--with-http_ssl_module指定开启http的ssl模块,--with-http_stub_status_module指定开启http的状态监控模块,--with-stream指定开启stream模块,--with-stream_ssl_module指定开启stream的ssl模块。

4.检查配置文件语法

使用以下命令检查新的配置文件语法:

$ sudo /usr/local/nginx/sbin/nginx -t

如果输出的结果为:“nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful”,则表示配置文件语法正确。

5.平滑升级或回退

在进行平滑升级或回退之前,需要先检查当前正在运行的Nginx的主进程号,可以通过以下命令查询:

$ ps -ef | grep nginx

得到主进程号后,可以向主进程发送USR2信号,让其重新加载新的二进制文件和配置文件,同时保持原有的工作进程继续处理请求。命令如下:

$ kill -USR2 主进程号

这时可以检查新的版本是否生效,可以使用以下命令:

$ /usr/local/nginx/sbin/nginx -v

得到新版本的信息后,可以检查新的配置是否生效,命令如下:

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

如果输出的结果为:“nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful”,则表示新的配置文件已经生效。

如果新版本有问题,需要回退到旧版本,可以向主进程发送QUIT信号,使其释放原有的工作进程,然后重新启动旧版本的Nginx即可。命令如下:

$ kill -QUIT 主进程号
$ /usr/sbin/nginx -c /etc/nginx/nginx.conf

在实际操作中,需要根据自己的情况进行调整和修改,以上是一般来说的流程。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Linux版本中Nginx平滑升级与回退 - Python技术站

(0)
上一篇 2023年5月16日
下一篇 2023年5月16日

相关文章

  • 详解nginx实现https网站设置

    详解Nginx实现HTTPS网站设置 1. 什么是HTTPS? HTTPS全称是“HTTP Secure”,是一种更为安全的网站加密传输协议。 普通的HTTP协议传输的数据都是明文的,容易被黑客窃取和篡改,而HTTPS协议采用SSL或者TLS协议进行加密传输,可以有效保护数据的安全。 2. 设置HTTPS的必备条件 云服务器一台 域名一个 申请SSL证书,可…

    Nginx 2023年5月16日
    00
  • 在docker容器中如何自动生成配置文件(以nginx配置为例)

      应用场景类似于多个域名要起多个容器,有些参数有些域名需要,有些域名不需要,或者参数的值不太一样,需要去对应的配置文件修改,不太灵活,如果通过变量的方式直接定义在Dockerfile文件中,需要哪些参数,不需要哪些参数,哪些参数需要修改对应的值,直接在Dockerfile中修改岂不美哉?下面的方法仅仅起到抛砖引玉的作用,具体业务还需要写对应的脚本和Dock…

    Nginx 2023年4月11日
    00
  • nginx访问日志中添加接口返回值

    因为nginx作为web服务器时,会代理后端的一些接口,这时访问日志中只能记录访问接口的status码,也就是说,只能获得200、404 这些的值   那么如何获得接口返回的response值呢?   下面开始1、需要在nginx中安装lua插件 下载luaJIT插件 # cd /usr/local/src # wget http://luajit.org/…

    Nginx 2023年4月13日
    00
  • 编译安装NGINX

    1. 查看安装系统环境 [root@web01 ~]# cat /etc/redhat-release CentOS release 6.7 (Final) [root@web01 ~]# uname -r 2.6.32-573.el6.x86_64 [root@web01 ~]# uname -m x86_64   2.  采用yum安装方式安装pcre库…

    Nginx 2023年4月11日
    00
  • Linux10.5 Nginx域名重定向

    更改test.com.conf server { listen 80; server_name test.com test1.com test2.com; index index.html index.htm index.php; root /data/wwwroot/test.com; if ($host != ‘test.com’ ) { rewrite…

    Nginx 2023年4月11日
    00
  • zabbix 2.4.5 自定义key监控nginx

    一、环境 ubuntu 14.04 LTS zabbix 2.4.5 nginx/1.4.6 二、配置 1、确定Nginx HttpStubStatusModule模块已经安装,可以通过nginx -V来查看 nginx -V nginx version: nginx/1.4.6 (Ubuntu) built by gcc 4.8.2 (Ubuntu 4.8…

    Nginx 2023年4月11日
    00
  • nginx 请求文件 进行用户认证/鉴权: internal(限制为内部调用)

      在进行WEB开发时, 必然会遇到向用户返回文件的场景(如图片, 文档等等), 当返回的文件较小时, 我们可以直接通过接口以数据流的形式向前台返回, 因为文件较小, 因此也不会太过于影响响应速度及服务器性能, 但是当文件较大时, 再使用接口中返回数据流的方式就显得极其不合适了. 此时, 就需要通过 nginx 读取文件资源向用户进行返回.   但是, 如果…

    Nginx 2023年4月9日
    00
  • Nginx (Mainline Stable Legacy)区别

    Nginx官网提供了三个类型的版本Mainline version:Mainline 是 Nginx 目前主力在做的版本,可以说是开发版Stable version:最新稳定版,生产环境上建议使用的版本 Legacy versions:遗留的老版本的稳定版 http://nginx.org/en/download.html

    Nginx 2023年4月13日
    00
合作推广
合作推广
分享本页
返回顶部