【运维知识进阶篇】集群架构-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天前
|
人工智能 云计算 网络架构
阿里云引领智算集群网络架构的新一轮变革
11月8日~10日在江苏张家港召开的CCF ChinaNet(即中国网络大会)上,众多院士、教授和业界技术领袖齐聚一堂,畅谈网络未来的发展方向,聚焦智算集群网络的创新变革。
阿里云引领智算集群网络架构的新一轮变革
|
3天前
|
负载均衡 Dubbo 算法
集群容错架构设计
集群容错架构设计
13 1
集群容错架构设计
|
2天前
|
人工智能 运维 网络架构
阿里云引领智算集群网络架构的新一轮变革
11月8日至10日,CCF ChinaNet(中国网络大会)在江苏张家港召开,众多院士、教授和技术领袖共聚一堂,探讨网络未来发展方向。阿里云研发副总裁蔡德忠发表主题演讲,展望智算技术发展趋势,提出智算网络架构变革的新思路,发布高通量以太网协议和ENode+超节点系统规划,引起广泛关注。阿里云HPN7.0引领智算以太网生态蓬勃发展,成为业界标杆。未来,X10规模的智算集群将面临新的挑战,Ethernet将成为主流方案,推动Scale up与Scale out的融合架构,提升整体系统性能。
|
8天前
|
运维 Serverless 数据处理
Serverless架构通过提供更快的研发交付速度、降低成本、简化运维、优化资源利用、提供自动扩展能力、支持实时数据处理和快速原型开发等优势,为图像处理等计算密集型应用提供了一个高效、灵活且成本效益高的解决方案。
Serverless架构通过提供更快的研发交付速度、降低成本、简化运维、优化资源利用、提供自动扩展能力、支持实时数据处理和快速原型开发等优势,为图像处理等计算密集型应用提供了一个高效、灵活且成本效益高的解决方案。
34 1
|
23天前
|
运维 Serverless 数据处理
Serverless架构通过提供更快的研发交付速度、降低成本、简化运维、优化资源利用、提供自动扩展能力、支持实时数据处理和快速原型开发等优势,为图像处理等计算密集型应用提供了一个高效、灵活且成本效益高的解决方案。
Serverless架构通过提供更快的研发交付速度、降低成本、简化运维、优化资源利用、提供自动扩展能力、支持实时数据处理和快速原型开发等优势,为图像处理等计算密集型应用提供了一个高效、灵活且成本效益高的解决方案。
55 3
|
18小时前
|
机器学习/深度学习 运维 监控
智能运维在现代IT架构中的转型之路####
【10月更文挑战第29天】 本文旨在探讨智能运维(AIOps)如何成为现代IT架构不可或缺的一部分,通过分析其核心价值、关键技术及实践案例,揭示AIOps在提升系统稳定性、优化资源配置及加速故障响应中的关键作用。不同于传统运维模式的被动响应,智能运维强调预测性维护与自动化处理,为企业数字化转型提供强有力的技术支撑。 ####
16 0
|
24天前
|
负载均衡 安全 调度
Docker Swarm集群架构
【10月更文挑战第8天】
49 1
|
28天前
|
运维 Linux Apache
,自动化运维成为现代IT基础设施的关键部分。Puppet是一款强大的自动化运维工具
【10月更文挑战第7天】随着云计算和容器化技术的发展,自动化运维成为现代IT基础设施的关键部分。Puppet是一款强大的自动化运维工具,通过定义资源状态和关系,确保系统始终处于期望配置状态。本文介绍Puppet的基本概念、安装配置及使用示例,帮助读者快速掌握Puppet,实现高效自动化运维。
47 4
|
6天前
|
机器学习/深度学习 数据采集 运维
智能化运维:机器学习在故障预测和自动化响应中的应用
智能化运维:机器学习在故障预测和自动化响应中的应用
23 4
|
24天前
|
存储 运维 监控
高效运维:从基础架构到自动化管理的全面指南
【10月更文挑战第11天】 本文将深入探讨如何通过优化基础架构和引入自动化管理来提升企业IT运维效率。我们将从服务器的选择与配置、存储解决方案的评估,到网络的设计与监控,逐一解析每个环节的关键技术点。同时,重点讨论自动化工具在现代运维中的应用,包括配置管理、持续集成与部署(CI/CD)、自动化测试及故障排除等方面。通过实际案例分析,展示这些技术如何协同工作,实现高效的运维管理。无论是IT初学者还是经验丰富的专业人员,都能从中获得有价值的见解和实操经验。
50 1