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

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

案例4:访问course-11-22-33.html实际真实访问/course/11/22/33/course_33.html

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

案例5:将http请求跳转到https

1. [root@Web01 conf.d]# vim /etc/nginx/conf.d/rewrite.conf
2. server {
3.         listen 443;
4.         server_name rewrite.koten.com;
5. 
6.         location / {
7.                 root /code;
8.                 index index.php index.html;
9.         }
10. }
11. 
12. server {
13.         listen 80;
14.         server_name rewrite.koten.com;
15. 
16.         rewrite ^(.*) https://$server_name$1 redire
17. ct;
18. "rewrite.conf" 17L, 285C written 
19. [root@Web01 conf.d]# nginx -t
20. nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
21. nginx: configuration file /etc/nginx/nginx.conf test is successful
22. [root@Web01 conf.d]# systemctl restart nginx

案例6:错误页跳转

1. [root@Web01 rewrite]# cat /etc/nginx/conf.d/rewrite.conf
2. server {
3.         listen 80;
4.  server_name rewrite.koten.com;
5. 
6.         root /code/rewrite;
7. 
8.         error_page 403 404 500 501 502 @error_test;
9.         location @error_test {
10.         rewrite ^(.*)$ /404.png break;
11.         }
12. }
13. 
14. [root@Web01 rewrite]# systemctl restart nginx

案例7:在跳转的请求行后加上想要的参数&showoffline=1

1. [root@Web01 rewrite]# vim /etc/nginx/conf.d/rewrite.conf
2. server {
3.     listen 80;
4.     server_name rewrite.koten.com;
5. 
6. set $args "&showoffline=1";
7.     location / {
8.         root /code/rewrite;
9.         index index.html;
10.     }
11. if ($remote_addr = 10.0.0.1 ){
12.         rewrite (.*) http://rewrite.koten.com$1;
13.     }
14. }
15. ~                                                  
16. ~                                                  
17. ~                                                  
18. <rewrite.conf" 13L, 252C written 
19. [root@Web01 rewrite]# systemctl restart nginx
20.

案例8:网站维护,指定IP正常访问,其他IP跳转至维护页面

1. [root@Web01 rewrite]# vim /etc/nginx/conf.d/rewrite.conf
2. server {
3.     listen 80;
4.     server_name rewrite.koten.com;
5.     root /code/rewrite;
6.     charset utf-8,gbk;
7. 
8.     location / {
9.         index index.html;
10. if ($remote_addr != "10.0.0.2"){
11.             rewrite ^(.*)$ /网站维护.jpg break; #如
12. 果来源IP不等于10.0.0.1,则跳转维护页面
13.         }
14.     }
15. 
16. 
17. }
18. <rewrite.conf" 16L, 321C written 
19. [root@Web01 rewrite]# systemctl restart nginx

 

Nginx内置参数

1. $args               #这个变量等于请求行中的参数。
2. $content_length     #请求头中的Content-length字段。
3. $content_type       #请求头中的Content-Type字段。
4. $document_root      #当前请求在root指令中指定的值。
5. $host               #请求主机头字段,否则为服务器名称。
6. $http_user_agent    #客户端agent信息
7. $http_cookie        #客户端cookie信息
8. $limit_rate         #这个变量可以限制连接速率。
9. $request_body_file  #客户端请求主体信息的临时文件名。
10. $request_method     #客户端请求的动作,通常为GET或POST。
11. $remote_addr        #客户端的IP地址。
12. $remote_port        #客户端的端口。
13. $remote_user        #已经经过Auth Basic Module验证的用户名。
14. $request_filename   #当前请求的文件路径,由root或alias指令与URI请求生成。
15. $query_string       #与$args相同。
16. $scheme             #HTTP方法(如http,https)。
17. $server_protocol    #请求使用的协议,通常是HTTP/1.0或HTTP/1.1。
18. $server_addr        #服务器地址,在完成一次系统调用后可以确定这个值。
19. $server_name        #服务器名称。
20. $server_port        #请求到达服务器的端口号。
21. $request_uri        #包含请求参数的原始URI,不包含主机名,如:”/foo/bar.php?arg=baz”。
22. $uri                #不带请求参数的当前URI,$uri不包含主机名,如”/foo/bar.html”。
23. $document_uri       #与$uri相同。
24. $X-Forwarded-For:HTTP的请求端真实的IP,只有在通过了HTTP 代理或者负载均衡服务器时才会添加该项。标准格式如下:X-Forwarded-For: client1, proxy1, proxy2

我是koten,10年运维经验,持续分享运维干货,感谢大家的阅读和关注!

目录
相关文章
|
2月前
|
人工智能 运维 监控
构建高性能微服务架构:现代后端开发的挑战与策略构建高效自动化运维系统的关键策略
【2月更文挑战第30天】 随着企业应用的复杂性增加,传统的单体应用架构已经难以满足快速迭代和高可用性的需求。微服务架构作为解决方案,以其服务的细粒度、独立性和弹性而受到青睐。本文将深入探讨如何构建一个高性能的微服务系统,包括关键的设计原则、常用的技术栈选择以及性能优化的最佳实践。我们将分析微服务在处理分布式事务、数据一致性以及服务发现等方面的挑战,并提出相应的解决策略。通过实例分析和案例研究,我们的目标是为后端开发人员提供一套实用的指南,帮助他们构建出既能快速响应市场变化,又能保持高效率和稳定性的微服务系统。 【2月更文挑战第30天】随着信息技术的飞速发展,企业对于信息系统的稳定性和效率要求
|
2月前
|
存储 监控 NoSQL
Redis 架构深入:主从复制、哨兵到集群
大家好,我是小康,今天我们来聊下 Redis 的几种架构模式,包括主从复制、哨兵和集群模式。
Redis 架构深入:主从复制、哨兵到集群
|
2月前
|
分布式计算 API 数据处理
Flink【基础知识 01】(简介+核心架构+分层API+集群架构+应用场景+特点优势)(一篇即可大概了解flink)
【2月更文挑战第15天】Flink【基础知识 01】(简介+核心架构+分层API+集群架构+应用场景+特点优势)(一篇即可大概了解flink)
62 1
|
3月前
|
消息中间件 运维 应用服务中间件
容器化运维:构建高可用RabbitMQ集群的Docker Compose指南
容器化运维:构建高可用RabbitMQ集群的Docker Compose指南
197 0
|
3月前
|
网络协议 中间件 数据库
Zookeeper学习系列【三】Zookeeper 集群架构、读写机制以及一致性原理(ZAB协议)
Zookeeper学习系列【三】Zookeeper 集群架构、读写机制以及一致性原理(ZAB协议)
100 0
|
4月前
|
机器学习/深度学习 NoSQL Redis
Redis高可用之集群架构(第三部分)
Redis高可用之集群架构(第三部分)
|
4月前
|
存储 弹性计算 运维
ACK集群高弹性架构有哪些优缺点
ACK集群高弹性架构有哪些优缺点
44 0
|
20小时前
|
Kubernetes API 开发者
构建高效微服务架构:后端开发的新范式
【5月更文挑战第2天】 随着现代软件开发的演进,传统的单体应用已难以满足快速变化的业务需求和敏捷开发的挑战。本文探讨了如何通过构建高效的微服务架构来提升后端开发的灵活性、可维护性和扩展性。我们将深入分析微服务的核心组件,包括服务拆分、容器化、API网关和持续集成/持续部署(CI/CD)等关键技术,并讨论它们如何共同作用以支持复杂的业务场景和云原生应用的需求。
6 1
|
20小时前
|
负载均衡 Java API
构建高效微服务架构:API网关与服务熔断策略
【5月更文挑战第2天】 在微服务架构中,确保系统的高可用性与灵活性是至关重要的。本文将深入探讨如何通过实施有效的API网关和设计合理的服务熔断机制来提升分布式系统的鲁棒性。我们将分析API网关的核心职责,包括请求路由、负载均衡、认证授权以及限流控制,并讨论如何利用熔断器模式防止故障传播,维护系统的整体稳定性。文章还将介绍一些实用的技术和工具,如Netflix Zuul、Spring Cloud Gateway以及Hystrix,以帮助开发者构建一个可靠且高效的微服务环境。
|
2天前
|
监控 安全 开发者
构建高效可靠的微服务架构:后端开发的新范式
【4月更文挑战第30天】随着现代软件开发的复杂性日益增加,传统的单体应用架构已难以满足快速迭代与灵活部署的需求。微服务架构作为一种新兴的设计理念,它通过将一个大型应用程序拆分成一系列小而专注的服务来提供解决方案。本文旨在探讨如何构建一个高效且可靠的微服务架构系统,涵盖从设计原则、技术选型到部署实践的全方位知识,为后端开发者提供一种全新的开发思路和实践指导。