【运维知识进阶篇】集群架构-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年运维经验,持续分享运维干货,感谢大家的阅读和关注!

目录
相关文章
|
16天前
|
弹性计算 运维 Serverless
卓越效能,极简运维,体验Serverless高可用架构,完成任务可领取转轮日历!
卓越效能,极简运维,体验Serverless高可用架构,完成任务可领取转轮日历!
|
1月前
|
运维 监控 安全
自动化运维的利剑:Ansible在现代IT架构中的应用
在数字化浪潮中,企业对IT系统的敏捷性和可靠性要求日益提高。Ansible,一种简单但强大的自动化运维工具,正成为现代IT架构中不可或缺的一部分。它通过声明式编程语言YAM,简化了系统配置、应用部署和任务自动化的过程,显著提升了运维效率和准确性。本文将深入探讨Ansible的核心特性、应用场景以及如何有效整合进现有IT环境,为读者揭示其在自动化运维中的实用价值和未来发展潜力。
|
6天前
|
存储 负载均衡 监控
揭秘 Elasticsearch 集群架构,解锁大数据处理神器
Elasticsearch 是一个强大的分布式搜索和分析引擎,广泛应用于大数据处理、实时搜索和分析。本文深入探讨了 Elasticsearch 集群的架构和特性,包括高可用性和负载均衡,以及主节点、数据节点、协调节点和 Ingest 节点的角色和功能。
22 0
|
1月前
|
运维 Devops 应用服务中间件
自动化运维的利剑:Ansible在现代IT架构中的应用
【10月更文挑战第42天】本文旨在揭示自动化运维工具Ansible如何革新现代IT架构,通过简化配置管理和部署流程,提升效率和可靠性。我们将探索Ansible的核心功能、语言特性以及其在DevOps文化中的角色。文章还将展示如何借助Ansible构建模块化和可重用的配置代码,实现快速迭代与部署,并确保系统一致性。通过阅读本文,运维人员将了解如何利用Ansible优化日常任务,加速产品上线速度,同时提高系统的稳健性。
42 5
|
1月前
|
人工智能 运维 网络架构
阿里云引领智算集群网络架构的新一轮变革
11月8日至10日,CCF ChinaNet(中国网络大会)在江苏张家港召开,众多院士、教授和技术领袖共聚一堂,探讨网络未来发展方向。阿里云研发副总裁蔡德忠发表主题演讲,展望智算技术发展趋势,提出智算网络架构变革的新思路,发布高通量以太网协议和ENode+超节点系统规划,引起广泛关注。阿里云HPN7.0引领智算以太网生态蓬勃发展,成为业界标杆。未来,X10规模的智算集群将面临新的挑战,Ethernet将成为主流方案,推动Scale up与Scale out的融合架构,提升整体系统性能。
|
1月前
|
存储 缓存 NoSQL
【赵渝强老师】Memcached集群的架构
Memcached 是一个高性能的分布式内存对象缓存系统,通过在内存中维护一个巨大的 Hash 表来存储各种格式的数据,如图像、视频、文件及数据库检索结果等。它主要用于减轻数据库压力,提高网站系统的性能。Memcached 不支持数据持久化,因此仅作为缓存技术使用。其数据分布式存储由客户端应用程序实现,而非服务端。
【赵渝强老师】Memcached集群的架构
|
1月前
|
调度 Docker 容器
【赵渝强老师】Docker Swarm集群的体系架构
Docker Swarm自1.12.0版本起集成至Docker引擎,无需单独安装。它内置服务发现功能,支持跨多服务器或宿主机创建容器,形成集群提供服务。相比之下,Docker Compose仅限于单个宿主机。Docker Swarm采用主从架构,Swarm Manager负责管理和调度集群中的容器资源,用户通过其接口发送指令,Swarm Node根据指令创建容器运行应用。
|
1月前
|
机器学习/深度学习 运维 监控
智能运维在现代IT架构中的转型之路####
【10月更文挑战第29天】 本文旨在探讨智能运维(AIOps)如何成为现代IT架构不可或缺的一部分,通过分析其核心价值、关键技术及实践案例,揭示AIOps在提升系统稳定性、优化资源配置及加速故障响应中的关键作用。不同于传统运维模式的被动响应,智能运维强调预测性维护与自动化处理,为企业数字化转型提供强有力的技术支撑。 ####
75 0
|
21天前
|
弹性计算 API 持续交付
后端服务架构的微服务化转型
本文旨在探讨后端服务从单体架构向微服务架构转型的过程,分析微服务架构的优势和面临的挑战。文章首先介绍单体架构的局限性,然后详细阐述微服务架构的核心概念及其在现代软件开发中的应用。通过对比两种架构,指出微服务化转型的必要性和实施策略。最后,讨论了微服务架构实施过程中可能遇到的问题及解决方案。
|
1月前
|
Cloud Native Devops 云计算
云计算的未来:云原生架构与微服务的革命####
【10月更文挑战第21天】 随着企业数字化转型的加速,云原生技术正迅速成为IT行业的新宠。本文深入探讨了云原生架构的核心理念、关键技术如容器化和微服务的优势,以及如何通过这些技术实现高效、灵活且可扩展的现代应用开发。我们将揭示云原生如何重塑软件开发流程,提升业务敏捷性,并探索其对企业IT架构的深远影响。 ####
43 3

热门文章

最新文章