【运维知识进阶篇】集群架构-Rewrite重定向(上)

简介: 【运维知识进阶篇】集群架构-Rewrite重定向

Rewrite主要实现url地址重写,以及重定向,就是把传入web的请求重定向到其他url的过程。

分以下几种场景使用

1、地址跳转,用户访问一个URL,将其定向到另一个URL

2、协议跳转,用户通过http协议请求网站时,将其重新跳转至https协议方式

3、伪静态,动态页面静态化,为了搜素引擎收录。

4、搜索引擎,SEO优化依赖于url路径,好记的url便于支持搜索引擎录入

Rewrite标记

每个Rewrite后面都有flag标记,主要有以下几种

flag 规则
last 停止当前匹配,并重新发送请求
barek 终止匹配,不发送新请求
redirector 临时跳转,关闭nginx请求就不跳转了,302
premanent 永久跳转,访问过一次就不会访问原站了,301,第一次请求会保存缓存到浏览器中,通过浏览器缓存跳转

更改配置文件,准备代码文件进行测试last与break

1. [root@Web01 conf.d]# vim rewrite.conf
2. server {
3.         listen 80;
4.         server_name rewrite.koten.com;
5.         root /code/rewrite/;
6. 
7. location / {
8. rewrite /1.html /2.html;
9. rewrite /2.html /3.html;
10.         }
11. 
12. location /2.html {
13. rewrite /2.html /a.html;
14.         }
15. 
16. location /3.html {
17. rewrite /3.html /b.html;
18. "rewrite.conf" 18L, 343C written 
19. [root@Web01 conf.d]# systemctl restart nginx
20. [root@Web01 conf.d]# mkdir -p /code/rewrite
21. [root@Web01 conf.d]# echo 1.html > /code/rewrite/1.html
22. [root@Web01 conf.d]# echo 2.html > /code/rewrite/2.html
23. [root@Web01 conf.d]# echo 3.html > /code/rewrite/3.html
24. [root@Web01 conf.d]# echo a.html > /code/rewrite/a.html
25. [root@Web01 conf.d]# echo b.html > /code/rewrite/b.html

发现访问1.html,实际重定向到了b.html

添加last标记

1. [root@Web01 conf.d]# vim rewrite.conf
2. server {
3.         listen 80;
4.         server_name rewrite.koten.com;
5.         root /code/rewrite/;
6. 
7. location / {
8. rewrite /1.html /2.html last;
9. rewrite /2.html /3.html;
10.         }
11. 
12. location /2.html {
13. rewrite /2.html /a.html;
14.         }
15. 
16. location /3.html {
17. rewrite /3.html /b.html;
18. "rewrite.conf" 18L, 348C written 
19. [root@Web01 conf.d]# systemctl restart nginx

跳过了当前location,进行下一location重定向,最终跳转到a.html

添加down标记

1. [root@Web01 conf.d]# vim rewrite.conf
2. server {
3.         listen 80;
4.         server_name rewrite.koten.com;
5.         root /code/rewrite/;
6. 
7. location / {
8. rewrite /1.html /2.html break;
9. rewrite /2.html /3.html;
10.         }
11. 
12. location /2.html {
13. rewrite /2.html /a.html;
14.         }
15. 
16. location /3.html {
17. rewrite /3.html /b.html;
18. "rewrite.conf" 18L, 349C written 
19. [root@Web01 conf.d]# systemctl restart nginx

break后不再进行重定向操作,最终定向到2.html

redirect与permanent测试

1. [root@Web01 conf.d]# vim rewrite.conf
2. server {
3.         listen 80;
4.         server_name rewrite.koten.com;
5.         root /code;
6. 
7. location /test {
8.                 #临时重定向
9. rewrite ^(.*)$  http://www.koten.vip redirect;    
10.                 #return 302 http://www.koten.vip
11. 
12.                 #永久重定向
13.                 #rewrite ^(.*)$  http://www.koten.vip permanent;  
14.                 #return 301 http://www.koten.vip;
15.         }
16. }
17. ~                                                  
18. ~                                                  
19. "rewrite.conf" 12L, 356C written 
20. [root@Web01 conf.d]# systemctl restart nginx

访问rewrite.koten.com/test,定向到www.koten.vip

 

Rewrite使用案例

我们先开启rewrite日志对规则进行匹配调试

rewrite_log on;  #加入到/etc/nginx/nginx.conf中

案例1:用户访问/abc/1.html实际上真实访问的是/ccc/bbb/2.html中

1. [root@Web01 conf.d]# mkdir -p /code/rewrite/ccc/bbb/
2. [root@Web01 conf.d]# echo '/ccc/bbb/2.html' > /code/rewrite/ccc/bbb/2.html
3. [root@Web01 conf.d]# vim rewrite.conf
4. server {
5.         listen 80;
6.         server_name rewrite.koten.com;
7.         root /code/rewrite;
8. 
9. location /abc {
10. rewrite (.*) /ccc/bbb/2.html redirect;
11.                 #return 302 /ccc/bbb/2.html
12.         }
13. }
14. ~                                                  
15. ~                                                  
16. ~                                                  
17. ~                                                  
18. ~                                                  
19. "rewrite.conf" 10L, 217C written 
20. [root@Web01 conf.d]# systemctl restart nginx

案例2:用户访问/2018/ccc/bbb/2.html实际上真实访问的是/2023/ccc/bbb.2.html

1. [root@Web01 conf.d]# mkdir -p /code/rewrite/2023/ccc/bbb/
2. [root@Web01 conf.d]# echo '/2023/ccc/bbb/2.html' > /code/rewrite/2023/ccc/bbb/2.html
3. [root@Web01 conf.d]# vim rewrite.conf
4. server {
5.         listen 80;
6.         server_name rewrite.koten.com;
7.         root /code/rewrite;
8. 
9. location /2018 {
10. rewrite ^/2018/(.*) /2023/$1 redirect;
11.         }
12. }
13. ~                                                  
14. ~                                                  
15. ~                                                  
16. ~                                                  
17. ~                                                  
18. ~                                                  
19. "rewrite.conf" 9L, 188C written  
20. [root@Web01 conf.d]# systemctl restart nginx

案例3:用户访问/test实际上访问的是https://www.koten.vip

1. [root@Web01 conf.d]# vim rewrite.conf
2. server {
3.         listen 80;
4.         server_name rewrite.koten.com;
5. 
6. location /test {
7. rewrite (.*) https://www.koten.vip redirect;
8.         }
9. }
10. ~                                                  
11. ~                                                  
12. ~                                                  
13. ~                                                  
14. ~                                                  
15. ~                                                  
16. ~                                                  
17. "rewrite.conf" 8L, 154C written
18. [root@Web01 conf.d]# systemctl restart nginx

目录
相关文章
|
5月前
|
机器学习/深度学习 人工智能 运维
云架构不是养祖宗,智能运维教你省心又省钱
云架构不是养祖宗,智能运维教你省心又省钱
160 2
|
5月前
|
数据采集 运维 数据可视化
AR 运维系统与 MES、EMA、IoT 系统的融合架构与实践
AR运维系统融合IoT、EMA、MES数据,构建“感知-分析-决策-执行”闭环。通过AR终端实现设备数据可视化,实时呈现温度、工单等信息,提升运维效率与生产可靠性。(238字)
|
9月前
|
负载均衡 算法 关系型数据库
大数据大厂之MySQL数据库课程设计:揭秘MySQL集群架构负载均衡核心算法:从理论到Java代码实战,让你的数据库性能飙升!
本文聚焦 MySQL 集群架构中的负载均衡算法,阐述其重要性。详细介绍轮询、加权轮询、最少连接、加权最少连接、随机、源地址哈希等常用算法,分析各自优缺点及适用场景。并提供 Java 语言代码实现示例,助力直观理解。文章结构清晰,语言通俗易懂,对理解和应用负载均衡算法具有实用价值和参考价值。
大数据大厂之MySQL数据库课程设计:揭秘MySQL集群架构负载均衡核心算法:从理论到Java代码实战,让你的数据库性能飙升!
|
7月前
|
消息中间件 负载均衡 中间件
⚡ 构建真正的高性能即时通讯服务:基于 Netty 集群的架构设计与实现
本文介绍了如何基于 Netty 构建分布式即时通讯集群。随着用户量增长,单体架构面临性能瓶颈,文章对比了三种集群方案:Nginx 负载均衡、注册中心服务发现与基于 ZooKeeper 的消息路由架构。最终选择第三种方案,通过 ZooKeeper 实现服务注册发现与消息路由,并结合 RabbitMQ 支持跨服务器消息广播。文中还详细讲解了 ZooKeeper 搭建、Netty 集群改造、动态端口分配、服务注册、负载均衡及消息广播的实现,构建了一个高可用、可水平扩展的即时通讯系统。
850 0
|
4月前
|
运维 Prometheus 监控
别再“亡羊补牢”了!——聊聊如何优化企业的IT运维监控架构
别再“亡羊补牢”了!——聊聊如何优化企业的IT运维监控架构
211 8
|
5月前
|
存储 监控 NoSQL
Redis高可用架构全解析:从主从复制到集群方案
Redis高可用确保服务持续稳定,避免单点故障导致数据丢失或业务中断。通过主从复制实现数据冗余,哨兵模式支持自动故障转移,Cluster集群则提供分布式数据分片与水平扩展,三者层层递进,保障读写分离、容灾切换与大规模数据存储,构建高性能、高可靠的Redis架构体系。
|
7月前
|
运维 监控 Cloud Native
从“守机器”到“写策略”——云原生架构把运维逼成了架构师
从“守机器”到“写策略”——云原生架构把运维逼成了架构师
186 1
|
6月前
|
运维 监控 安全
“没服务器了,那我这运维是白干了吗?”——无服务器架构对运维的冲击与转机
“没服务器了,那我这运维是白干了吗?”——无服务器架构对运维的冲击与转机
161 0
|
4月前
|
人工智能 运维 监控
运维安全还能靠“人盯人”?别闹了,聊聊自动化处理的真功夫
运维安全还能靠“人盯人”?别闹了,聊聊自动化处理的真功夫
205 17
|
9月前
|
数据采集 机器学习/深度学习 人工智能
运维人的“福音”?AI 驱动的自动化网络监控到底香不香!
运维人的“福音”?AI 驱动的自动化网络监控到底香不香!
1088 0

热门文章

最新文章