Nginx平滑升级重定向rewrite

news2024/11/19 18:38:12

文章目录

  • Nginx平滑升级&重定向rewrite
    • nginx平滑升级
        • 流程
        • 环境
        • 查看旧版的配置信息
        • 下载新版nginx源码包和功能模块包
        • 编译配置新版本
        • 平滑升级
        • 验证
    • 重定向rewrite
        • 配置重定向准发
        • 访问测试

Nginx平滑升级&重定向rewrite

nginx平滑升级

流程

平滑升级:
(升级版本、增加新功能)
1.获取老版本的编译信息
2.老版本备份
3.编译新版本或者新功能(不能执行make install)
4.手动替换新版本并重启
5.验证新版本


环境
操作系统旧版本新版本新加功能
centos-8nginx-1.22.1nginx-1.24.0echo-nginx-module

部署nginx请阅读nginx服务和LNMP架构&部署Discuz论坛系统

查看旧版的配置信息

升级的同时要保留旧版的功能,所以要查看详细的编译信息

//查看当前版本nginx的详细信息,记住旧版的编译信息
[root@wanf ~]# nginx -V
nginx version: nginx/1.22.1
built by gcc 8.5.0 20210514 (Red Hat 8.5.0-4) (GCC) 
built with OpenSSL 1.1.1k  FIPS 25 Mar 2021
TLS SNI support enabled
configure arguments: --prefix=/usr/local/nginx --user=nginx --group=nginx --with-debug --with-http_ssl_module --with-http_realip_module --with-http_image_filter_module --with-http_gunzip_module --with-http_gzip_static_module --with-http_stub_status_module --http-log-path=/var/log/nginx/access.log --error-log-path=/var/log/nginx/error.log
[root@wanf ~]# 
下载新版nginx源码包和功能模块包

Nginx官网

GitHub官网

//下载新版nginx源码包
[root@wanf ~]# wget http://nginx.org/download/nginx-1.24.0.tar.gz -P /usr/src/
[root@wanf ~]# ls /usr/src/
debug    nginx-1.22.1         nginx-1.24.0.tar.gz  php-8.2.10.tar.gz
kernels  nginx-1.22.1.tar.gz  php-8.2.10

//在GitHub下载模块代码
[root@wanf ~]# yum -y install git
[root@wanf ~]# git clone https://github.com/openresty/echo-nginx-module.git
[root@wanf ~]# mv echo-nginx-module/ /usr/src/
[root@wanf ~]# ls /usr/src/
debug              kernels       nginx-1.22.1.tar.gz  php-8.2.10
echo-nginx-module  nginx-1.22.1  nginx-1.24.0.tar.gz  php-8.2.10.tar.gz
[root@wanf ~]# 
编译配置新版本
//备份旧版nginx主程序
[root@wanf ~]# cp /usr/local/nginx/sbin/nginx /opt/nginx-buckup-20231019
[root@wanf ~]# ls /opt/
nginx-buckup-20231019

//复制旧版的编译参数,并加上新的功能模块,进行编译
[root@wanf ~]# cd /usr/src/
[root@wanf src]# ls
debug              kernels       nginx-1.22.1.tar.gz  php-8.2.10
echo-nginx-module  nginx-1.22.1  nginx-1.24.0.tar.gz  php-8.2.10.tar.gz
[root@wanf src]# tar -xf nginx-1.24.0.tar.gz 
[root@wanf src]# cd nginx-1.24.0/
[root@wanf nginx-1.24.0]# ./configure \
--prefix=/usr/local/nginx \
--user=nginx \
--group=nginx \
--with-debug \
--with-http_ssl_module \
--with-http_realip_module \
--with-http_image_filter_module \
--with-http_gunzip_module \
--with-http_gzip_static_module \
--with-http_stub_status_module \
--http-log-path=/var/log/nginx/access.log \
--error-log-path=/var/log/nginx/error.log \
--add-module=../echo-nginx-module/
(配置过程省略)

//编译新版本(只执行make,不执行make install)
[root@wanf nginx-1.24.0]# make
(编译过程省略)
平滑升级

先关闭旧版nginx服务,然后把新编译的nginx主程序替换掉旧版,再启动服务即可

//新版nginx主程序文件,/opjs/nginx就是主程序
[root@wanf nginx-1.24.0]# ls
auto     CHANGES.ru  configure  html     Makefile  objs    src
CHANGES  conf        contrib    LICENSE  man       README
[root@wanf nginx-1.24.0]# ls objs/
addon         Makefile  nginx.8            ngx_auto_headers.h  ngx_modules.o
autoconf.err  nginx     ngx_auto_config.h  ngx_modules.c       src
[root@wanf nginx-1.24.0]# 

//平滑升级。停止服务,替换文件,启动服务要一步执行完。否则可能导致升级失败。
[root@wanf nginx-1.24.0]# cd objs/
[root@wanf objs]# systemctl stop nginx;\cp nginx /usr/local/nginx/sbin/nginx;systemctl start nginx
验证
//端口号80已经启动
[root@wanf objs]# ss -anlt
State   Recv-Q  Send-Q    Local Address:Port     Peer Address:Port  Process  
LISTEN  0       128           127.0.0.1:9000          0.0.0.0:*              
LISTEN  0       511             0.0.0.0:80            0.0.0.0:*              
LISTEN  0       128             0.0.0.0:22            0.0.0.0:*              
LISTEN  0       80                    *:3306                *:*              
LISTEN  0       128                [::]:22               [::]:*              

//已经升级为新版nginx-1.24.0
[root@wanf objs]# nginx -v
nginx version: nginx/1.24.0     
[root@wanf objs]# 

//测试新添加的echo功能
//修改配置文件
[root@wanf ~]# vim /usr/local/nginx/conf/nginx.conf
......
location /status {
          echo "hallo wanf";
          stub_status on;
          allow 192.168.179.0/24;
          deny all;
        }
......

//测试配置文件语法;语法没有报错
[root@wanf ~]# 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
[root@wanf ~]# 

升级成功


重定向rewrite

以下是拿Discuz论坛系统做案例

假设原来的域名是www.wanf2.com,但是公司换了新的域名为www.wanf1.com,那么用户使用旧域名就无法访问到论坛系统

LNMP架构部署论坛系统请阅读LNMP架构&部署Discuz论坛系统

旧域名无法访问

在这里插入图片描述在这里插入图片描述

使用新域名可以访问


配置重定向准发

为了用户体验,需要做一个转发,让用户访问旧域名的时候,会跳转到新域名

//修改配置文件,在旧域名的虚拟主机里面添加一个转发
[root@wanf ~]# vim /usr/local/nginx/conf/nginx.conf
......
    server {
        listen       80;
        server_name  www.wanf2.com;


        location / {
            root   html;
            index  index.php index.html index.htm;
            rewrite ^/(.*)$ http://www.wanf1.com/$1 break;   //添加此行,改为新域名
        }

        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }

        location ~ \.php$ {
            root           html;
            fastcgi_pass   127.0.0.1:9000;
            fastcgi_index  index.php;
            fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
            include        fastcgi.conf;
        }
    }
......

//重启服务
[root@wanf ~]# systemctl restart nginx.service 
[root@wanf ~]# systemctl restart php-fpm.service 

访问测试

访问旧域名,自动跳转访问新域名

在这里插入图片描述

在这里插入图片描述


访问新域名,直接可以访问

在这里插入图片描述


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1116985.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

最短路相关笔记

Floyd Floyd 算法,是一种在图中求任意两点间最短路径的算法。 Floyd 算法适用于求解无负边权回路的图。 时间复杂度为 O ( n 3 ) O(n^3) O(n3),空间复杂度 O ( n 2 ) O(n^2) O(n2)。 对于两点 ( i , j ) (i,j) (i,j) 之间的最短路径,有…

Qt扫盲-QBrush理论使用总结

Q 理论使用总结 一、概述1. 填充模式2. 笔刷颜色3. 纹理 二、 Qt::GlobalColor 一、概述 QBrush类定义了由 QPainter 绘制的形状的填充模式。画笔有样式、颜色、渐变和纹理。 brush style() 使用Qt::BrushStyle 枚举定义填充模式。默认的笔刷样式是 Qt::NoBrush(取决于你如何…

全光谱护眼灯有哪些?2023全光谱护眼台灯推荐

随着电子设备的不断普及,手机、平板电脑、显示器、电视机等几乎是家家户户的必备品,也正因为眼睛有那么多时间、那么多机会去盯着屏幕,所以如今近视低龄化现象也越来越严重了。随着科技的不断发展,台灯的发展也越来越多样化&#…

在模拟冷藏牛肉加工条件下,冷和酸对荧光假单胞菌和单核细胞增生李斯特菌双菌种生物膜的综合影响

1.1 Title:Combined effects of cold and acid on dual-species biofilms of Pseudomonas fluorescens and Listeria monocytogenes under simulated chilled beef processing conditions 1.2 分区/影响因子:Q1/5.3 1.3 作者:Zhou Guanghui…

黎曼几何与切空间之间的投影

公式: 从黎曼空间投影到切空间,其中P为黎曼均值,也是切空间的参考中心点,Pi是要投影到切空间的点。 从切空间投影回来,其中Si为切空间中的向量。 function Tcov CovToTan(cov,Mcov)Cm12 Mcov^(-1/2);X_new logm(Cm…

Android之自定义View之底部选择弹窗

一、底部选择弹窗 效果: 1、自定义类 可自定义item数量的底部弹窗 (1)CustomBottomPop自定义类 package com.custom.jfrb.ui.first.customView; //自己的包位置import android.content.Context; import android.view.LayoutInflater; i…

聚观早报 | 遥感AI大模型发布;拼多多启动11.11大促

【聚观365】10月21日消息 遥感AI大模型发布 拼多多启动11.11大促 OPPO Find N3开启预售 魅族20 Classic开启预定 埃安昊铂HT开启预售 遥感AI大模型发布 阿里达摩院发布业内首个遥感AI大模型,一个模型即可识别农田、农作物、建筑等地表万物,让AI进一…

【2023淘宝双十一活动什么时间开始?天猫双十一2023具体时间安排

2023双十一活动什么时间开始?让我们先来了解一下双十一的优惠活动以及玩法吧。请收藏这份2023年淘宝天猫双十一玩法优惠攻略,让你轻松购得心仪的商品! 红包派送 活动期间,每天都可以领取超级红包!请注意&#xff0c…

【JavaEE重点知识归纳】第8节:面向对象程序三大特性:封装、继承、多态

目录 一:封装 1.封装的概念 2.访问限定符 3.封装扩展包 二:继承 1.概念 2.语法 3.父类成员的访问 4.super关键字 5.子类构造方法 6.super和this 7.继承方式 8.final关键字 9.继承和组合 三:多态 1.概念 2.实现条件 3.重写 …

【supervisor】 问题处理 unix:///var/run/supervisor/supervisor.sock no such file

问题描述 最近笔者在配置 supervisor,希望用 supervisor 进行进程服务管理的时候遇到了一些问题,具体是: 运行 supervisorctl status 的时候遇到了 unix:///var/run/supervisor/supervisor.sock no such file 的问题。在运行 sudo service …

MySQL日志 错误日志 二进制日志 查询日志 慢查询日志

一、错误日志 错误日志是MySQL中最重要的日志之一,它记录了当mysqld启动和停止时,以及服务器在运行过程中发生任何严重错误时的相关信息。当数据库出现任何故障导致无法正常使用时,建议首先查看此日志。 该日志是默认开启的,默认存放目录/var/log/,默认的日志文件名…

了解多媒体展厅弧幕投影系统收费构成,轻松制定预算

随着数字多媒体技术在内容展示行业中的广泛应用,基于投影、LED等技术手段的多媒体互动装置呈现多样化发展趋势,越来越多的新颖模式出现在大众眼前,其中就包括了备受关注的弧幕投影系统,作为投影技术显示形式的一种,它打…

抖音招聘直播报白有成本低和招聘效果精准的优势

抖音的短视频流量能够让岗位信息覆盖更广泛的人群,增加招聘信息的曝光度。通过抖音的短视频流量红利和精准推送,能够提高岗位信息的曝光度和求职者的留存率。如果你想做招聘报白却不知道怎么处理,可以咨询我。 创意创新:抖音招聘注重创意和创…

遍历完全二叉树节点

完全二叉树的节点个数 递归普通二叉树遍历解法 我们先来普及一下完全二叉树的概念:在完全二叉树中,除了最底层节点可能没填满外,其余每层节点数都达到最大值,并且最下面一层的节点都集中在该层最左边的若干位置。若最底层为第 h 层…

C语言之排序

1.冒泡排序 冒泡排序就不多说了,只需要两层循环嵌套,两两比较确定相对正确的顺序即可。 2.插入排序 插入排序的思想就是每一次向后寻找一个再将其与前面有序的部分进行对比,寻找合适位置插入。 这里关键要避免让前移超出目前读取的数字&…

Java版ORM最初雏形

经过一个晚上的加班,终于把ORM初步结构工程搭好了。工程依赖有点难用,编辑器提示比VS差很多。 首先LIS.Core创建一个最初的容器雏形,先能反射得到对象给ORM获得数据库驱动 然后ORM创建数据库驱动差异接口,不同数据库实现接口后配…

MATLAB中 tf2zpk函数用法

目录 语法 说明 示例 IIR滤波器的极点、零点和增益 tf2zpk函数的功能是将传递函数滤波器参数转换为零极点增益形式。 语法 [z,p,k] tf2zpk(b,a) 说明 [z, p, k] tf2zpk(b, a) 从传递函数参数 b 和 a 中找到零点矩阵 z,极点向量 p,以及相关的增益…

岗亭一键报警器设计

岗亭一键报警器设计 岗亭一键报警器设计人性化,拥有多种功能,例如: 紧急报警:遇到紧急情况时,只需按下报警器按钮,即可迅速向监控中心发送报警信号,以便相关人员及时采取应对措施。远程监控&am…

NLP:从头开始的文本矢量化方法

一、说明 NLP 项目使用文本,但机器学习算法不能使用文本,除非将其转换为数字表示。这种表示通常称为向量,它可以应用于文本的任何合理单位:单个标记、n-gram、句子、段落,甚至整个文档。 在整个语料库的统计 NLP 中&am…

EPLAN_007#3D图形的导入、编辑和定义

一定要打开对象捕捉,否则会严重偏移!!! 一、导入3D模型,合并模型 1、新建一个宏项目 2、导入(3D图形) 可以对目标进行旋转查看 3、合并图形(不建议合并) 框选目标 点合并…