首页 » SEO优化 » phprequestscheme技巧_Nginx 基于请求头的分发

phprequestscheme技巧_Nginx 基于请求头的分发

访客 2024-11-20 0

扫一扫用手机浏览

文章目录 [+]

#nginx分发器设置http { upstream web1 { # 名为web1的反向代理群组 server server1; } upstream web2 { # 名为web2的反向代理群组 server server2; } server { # web1虚拟主机 listen 80; server_name www.web1.com; # 基于域名分发必须有域名 location / { proxy_pass http://web1; } } server { # web2虚拟主机 listen 80; server_name www.web2.com; # 基于域名分发必须有域名 location / { proxy_pass http://web2; } }}2、基于开拓措辞分发

适用于稠浊开拓的网站,某些大型网站既有php也有jsp

# 分发器上nginx配置http { upstream php { server server1; } upstream asp { server server2; } upstream html { server server2; } server { location ~ \.php$ { # 以php结尾的 proxy_pass http://php; } location ~ \.asp$ { # 以asp结尾的 proxy_pass http://asp; } location ~ \.html$ { # 以html结尾的 proxy_pass http://html; } }}3、基于浏览器分发

常运用于PC端和移动端区分或浏览器适配

phprequestscheme技巧_Nginx 基于请求头的分发

upstream curl { server server1; }upstream firefox { server server2; }upstream other { server server3; }server { listen 80; server_name www.web1.com; location / { proxy_pass http://other; if ( $http_user_agent ~ curl ) { proxy_pass http://curl; } if ( $http_user_agent ~ firefox ) { proxy_pass http://firefox; } }}4、基于源IP分

通过ngx_http_geo_module模块,根据客户端ip访问到不同的server

phprequestscheme技巧_Nginx 基于请求头的分发
(图片来自网络侵删)

upstream bj.server { server server1; # web01}upstream sh.server { server server2; # web02}upstream default.server { server server3; # web03}geo $geo { # IP库 default default; server1 bj; # 北京 server2 sh; # 上海}server { listen 80; server_name www.web1.com; location / { proxy_pass http://$geo.server$request_uri; }}5. 根据http header转发到不同的做事

根据要求 Header 转发不同后端做事server。

http { map $http_custom_header $backend_name { default backend1; "version2.0" backend2; } upstream backend1 { server backend1.example.com; } upstream backend2 { server backend2.example.com; } server { listen 80; location / { proxy_pass http://$backend_name; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; } }}

在这个配置中,$http_custom_header 是一个变量,代表HTTP要求header中的自定义字段。
map 指令根据这个变量的值来设置一个变量 $backend_name。
如果要求header中的自定义字段值为 "version2.0",则会将要求转发到 backend2.example.com;否则,会转发到 backend1.example.com。

也可以如下配置

map $http_accept $version { default ""; "application/vnd.demo.v2.0+json" "v2.0";}upstream backend1 { server backend1.example.com;}upstream backend2 { server backend2.example.com;}server { listen 80; server_name olive.com; charset utf-8; autoindex off; location / { proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; proxy_set_header X-Forwarded-Port $server_port; proxy_set_header X-Forwarded-Ssl on; if ($version="v2.0"){ proxy_pass http://backend2; break; } proxy_pass http://backend1; }}

在这个配置中,$http_accept 是一个变量,代表HTTP要求header中的http_accept字段。
map 指令根据这个变量的值来设置一个变量 $version。
如果要求header中的自定义字段值为 "application/vnd.demo.v2.0+json",则$version的值为v2.0;否则$version的值为空字符串。
然后if条件判断根据$version的值进行转发。

标签:

相关文章

复制文本框代码开启智能时代的大门

人工智能技术逐渐渗透到人们生活的方方面面。如今,在众多的AI应用中,复制文本框代码成为了热门话题。本文将从复制文本框代码的原理、应...

SEO优化 2025-02-18 阅读0 评论0

域代码在Word2003中的应用与优化

文字处理软件在办公、学习、生活中扮演着越来越重要的角色。Word作为微软公司推出的办公软件之一,具有强大的功能,深受广大用户喜爱。...

SEO优化 2025-02-18 阅读0 评论0

旋转编码器智能时代的精密导航仪

传感器技术在各个领域得到了广泛应用。旋转编码器作为一种重要的传感器,因其高精度、高可靠性等特点,成为工业自动化、机器人、航空航天等...

SEO优化 2025-02-18 阅读0 评论0

无主之地职业Mod游戏世界的无限可能

在游戏世界中,Mod(Modifications,即修改)作为玩家对游戏内容进行个性化创作的工具,已经成为了游戏文化的重要组成部分...

SEO优化 2025-02-18 阅读0 评论0