`
sillycat
  • 浏览: 2552556 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

Nginx Proxy Route by Query Parameter

 
阅读更多
Nginx Proxy Route by Query Parameter

Here comes our requirement, I need to route to different backend based on the URL query parameters. If parameter=1, I need go server1, parameter=2, I need go server2.

Here is how I test that
resolver 8.8.8.8;
  set $ocpServer 'https://ocp.sillycat.com';
  set $testServer 'http://requestbin.fullcontact.com/1ki7o9g1';
  location / {
    if ( $http_user_agent = 'oldclients' ) {
        proxy_pass       http://local-sillycat-external-ip:5080;
    }
    if ( $http_user_agent != 'oldclients' ) {
        proxy_pass       $ocpServer;
    }
    #for testing the header, comments out
    if ( $arg_api = 'describeNode') {
        proxy_pass $testServer;
    }
   
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Sillycat-Agent 'nginx';
    proxy_ssl_server_name on;
  }

In this case, I will go to different route based on http_user_agent header, but the top condition is api=describeNode, it this query parameter exists, I will go to $testServer which my testing end point.

References:
https://stackoverflow.com/questions/23988344/making-nginx-check-parameter-in-url#
https://serverfault.com/questions/811912/can-nginx-location-blocks-match-a-url-query-string
分享到:
评论

相关推荐

    Nginx之proxy_redirect使用详解

    在讨论Nginx的proxy_redirect指令时,我们首先要明确其在Nginx配置中的作用和重要性。proxy_redirect指令主要用于在反向代理过程中修改响应头中的Location和Refresh字段值。在Web服务器配置中,特别是在使用Nginx...

    Nginx反向代理和proxy

    此文比较详细讲述了Nginx与proxy共同搭建反向代理服务的配置方法

    linux-一个用于nginxproxy的轻量级协同容器它能够自动创建更新LetsEncrypt证书

    标题中的“Linux-一个用于nginx-proxy的轻量级协同容器它能够自动创建更新LetsEncrypt证书”指的是一个专门设计用于nginx-proxy的轻量级Docker容器,它的主要功能是自动化处理Let's Encrypt证书的申请和更新过程。...

    Nginx转发到动态域名的proxy.conf

    Nginx在vhost里的配置站点,通过proxy转发到动态域名的具体配置。 反向代理,动态域名 ,Proxy

    docker-letsencrypt-nginx-proxy-companion-examples, 结合 Docker gen和 letsencrypt Nginx 代理伙伴的示例.zip

    docker-letsencrypt-nginx-proxy-companion-examples, 结合 Docker gen和 letsencrypt Nginx 代理伙伴的示例 docker-letsencrypt-nginx-proxy-companion-examples这个库是使用 nginx代理插件, docker gen和 docker-...

    nginx-proxy-manager中的Nginx配置

    **Nginx配置详解——以Nginx Proxy Manager为例** Nginx Proxy Manager是一款基于Nginx构建的网络代理管理工具,它允许用户通过友好的Web界面轻松地配置和管理Nginx反向代理设置。在深入理解Nginx Proxy Manager的...

    linux-nginxproxy设置一个运行nginx和dockergen的容器

    使用docker-gen的Docker容器的自动化nginx代理

    nginx-upstream-jvm-route-1.15

    【标题】"nginx-upstream-jvm-route-1.15" 涉及的核心知识点是Nginx的upstream模块与JVM路由的整合,特别针对Nginx 1.15版本。这个项目旨在解决在配置Nginx时遇到的特定错误提示“nginx: [emerg] invalid parameter ...

    nginx_tcp_proxy_module-master.zip

    nginx_tcp_proxy_module-master.zip

    nginx-upstream-jvm-route 和 nginx 对应版本,亲测可用

    此资源有两个文件,含 nginx-upstream-jvm-route 和 nginx 对应版本,都是tar.gz文件。 安装方法网上很多就不写了,亲测可用。 不用担心版本不匹配造成安装失败,再浪费积分去到处下载尝试的烦恼。 此资源有两个文件...

    nginx-upstream-jvm-route nginx共享Session

    标题 "nginx-upstream-jvm-route nginx共享Session" 涉及到的是在使用Nginx作为反向代理服务器时,如何实现多个Java应用服务器(通常指的是JVM实例)之间的Session共享。这通常在构建高可用性和负载均衡的Web服务...

    Nginx启用proxy_cache缓存的方法

    Nginx提供的proxy_cache功能是针对反向代理场景下的缓存机制,可以有效减少后端服务器的压力并提高响应速度。proxy_cache机制允许Nginx将从后端服务器获得的静态内容缓存到磁盘上,当相同请求再次发生时,可以直接从...

    详解Nginx启用proxy_buffer缓冲

    顾名思义,proxy_buffer 是用于 proxy 模式的缓冲功能。本文介绍其基本用法。 buffer 是什么 buffer ,即缓冲区,它在 Nginx 上发挥的作用就是 启用一个缓冲区,先在这个缓冲区内进行存储,再把数据发送出去 。和...

    nginx静态文件缓存的解决方案1

    proxy_cache_path /usr/local/nginx/cache levels=1:2 keys_zone=cache_one:200m inactive=1d max_size=30g; # ... } ``` 这里,`proxy_cache_path` 指定了缓存存储的路径,`levels` 参数定义了缓存目录的层级,`...

    详解Nginx服务器中配置超时时间的方法

    5. **proxy_connect_timeout**: 定义Nginx与上游服务器(如反向代理的目标服务器)建立连接的超时时间。默认值为60秒,注意这个超时时间不应超过75秒。 6. **proxy_read_timeout**: 该参数设置了Nginx等待上游...

    docker-nginx-proxy-manager:Nginx代理管理器的Docker容器

    Nginx代理管理器的Docker容器 这是的Docker容器。 Nginx代理管理器使您可以轻松转发到在家中或其他情况下运行的网站,包括... --name=nginx-proxy-manager \ -p 8181:8181 \ -p 8080:8080 \ -p 4443:4443 \ -v

    nginx系列(十)nginx缓存代理proxy_cacahe和CDN实现的原理

    “nginx系列(十)nginx缓存代理proxy_cache和CDN实现的原理”这个标题揭示了本文将探讨的主题,主要集中在两个关键点上:一是Nginx的缓存代理机制proxy_cache,二是如何利用Nginx实现内容分发网络(CDN)的功能。...

    ngx_http_proxy_connect_module.zip

    在这个配置中,Nginx监听8080端口,当接收到CONNECT请求时,会尝试连接到配置的`$proxy_host:$proxy_port`。 使用该模块需要注意一些安全问题,因为透明代理可能被滥用为攻击跳板或绕过防火墙策略。为了安全起见,...

Global site tag (gtag.js) - Google Analytics