精华内容
下载资源
问答
  • 主要介绍了Nginx 根据URL参数转发的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
  • nginx配置根据参数转发

    万次阅读 2018-08-23 17:27:50
    因此,设计解决方案为:由程序将需要跳转的完整url作为参数pic_url的值,加入整个url内,所以需要在代理中实现中转,将请求转发给pic_url url: 原: https://n1-test.xxx.com/angentImg/?type=image&pic...

    需求:
    因浏览器安全策略,在reference为https类型时,无法跳转获取http协议链接的数据。
    因此,设计解决方案为:由程序将需要跳转的完整url作为参数pic_url的值,加入整个url内,所以需要在代理中实现中转,将请求转发给pic_url

    url:
    原:
    https://n1-test.xxx.com/angentImg/?type=image&pic_url=http://www.wipo.int/branddb/jsp/data.jsp?SOURCE=EMTM&TYPE=jpg&KEY=014835301&qi=2-FbonCURiPwm/abnckAV

    希望转发给:
    http://www.wipo.int/branddb/jsp/data.jsp?SOURCE=EMTM&TYPE=jpg&KEY=014835301&qi=2-FbonCURiPwm/abnckAV

    实现方法:

        location ~/angentImg/ {
          if ($query_string ~*  ^(.*)type=image&pic_url=(.*)$){
             set $pic_url $2;
             # set $pic_url $arg_pic_url
             proxy_pass $pic_url;
             }
        }
    
    解释:  
    1.set $1 $2 将$2变量的值赋值给$1变量
    2.arg_(VAR_NAME)用来获取url后指定参数对应的值,比如arg_pic_url可以获取到连接中pic_url这个参数的值
    3.$query_string 可以获取路径之后包含所有参数kv的string
    4.但是如果要获取的参数本身也是一个url,且该url包含有自带的参数,例如在这个例子里,直接使用$pic_url只能捕获http://www.wipo.int/branddb/jsp/data.jsp?SOURCE=EMTM这一段值,它后方的&之后的参数是无法捕捉到。因此使用正则匹配,将pic_url=后方的字符串全部赋予给了变量$2,将流量转发向$2值的url
    

    配置完上面这些后,发现链接还是无法打开,报错502:
    这里写图片描述

    怀疑目标url做了防盗链处理,但经过测试,这是个cdn地址,并没有配置防盗链,继续检查,发现nginx日志有异常记录:
    这里写图片描述

    域名无法解析?dns已经配置了呀,本地也是可以浏览器正常访问该图片url,尝试在nginx服务器上添加/etc/hosts 固定dns记录,发现依然有同样的报错,求助万能的google,找到了问题的原因:

    在Ngnix中如果用变量作为反向代理的地址时,可能会出现“no resolver defined to resolve xxx.xxx”的问题,原因是 Nginx 0.6.18以后的版本中启用了一个resolver指令,在使用变量来构造某个server地址的时候一定要用resolver指令来指定DNS服务器的地址,所以解决这个问题的方法很简单:在nginx的配置文件中的http{}部分添加一行DNS解析即可,注意,要写在nginx配置的http{}内:

    resolver 8.8.8.8 ipv6=off;
    

    再次尝试,图片可以正常访问,检查浏览器控制台可以看到各项url参数均正常携带:
    这里写图片描述

    展开全文
  • Nginx 根据URL参数转发

    万次阅读 2018-02-10 09:19:52
    nginx配置文件 server { listen 83; server_name localhost; index index.html index.htm; root D: /workspace-xxxx/xxx_Web; error_page 500 502 503 504 / 50x.html; location = /50x.html { root html; ...

    使用场景:

        需要根据截取URL动态配置跳转路径,常见于访问内网不固定ip地址的文件图片,

    请求地址:http://11.19.1.212:82/bimg4/32.52.62.42:222/DownLoadFile?filename=LOC:12/data/20180208/15/2e0ae54dfd752210083404deed15269c_222403
    实际需要访问的内网地址:http://32.52.62.42:222/DownLoadFile?filename=LOC:12/data/20180208/15/2e0ae54dfd752210083404deed15269c_222403

    nginx配置文件

    server {
        listen 83;
        server_name localhost;
        index index.html index.htm;
    
        root D: /workspace-xxxx/xxx_Web;
    
        error_page 500 502 503 504 / 50x.html;
        location = /50x.html {
                root   html;
            }
        location ^~ /xxx/ {
            proxy_pass http: //192.168.60.36:8090/xxxx/;
            proxy_redirect default;
            proxy_set_header Host $host;
            proxy_set_header X - Real - IP $remote_addr;
            proxy_set_header X - Forwarded - Host $host;
            proxy_set_header X - Forwarded - Server $host;
            proxy_set_header X - Forwarded - For $proxy_add_x_forwarded_for;
            proxy_set_header Upgrade $http_upgrade;
            proxy_set_header Connection "Upgrade";
        }
    
    
    # 此处为截取请求地址中bimg4之后的路径,并赋给转发地址
        location ^ ~ / bimg4 / {
            if ($request_uri~ / bimg4 / (. * )) {
                set $bucketid $1;
            }
            proxy_pass http: //$bucketid;
        }
    
    }
    
    

    展开全文
  • nginx 链接转发添加参数

    千次阅读 2020-04-23 15:39:04
    1:通常最简单转发是; location /XX/XX { proxy_ pass ... } 2.给需要转发的链接添加参数 location /XX/XX { set $args "$args&a1=xxx&a2=xxx"; proxy_ pass http://ip:port/xxxx; }...

    1:通常最简单转发是;

     location  /XX/XX {

        proxy_ pass  http://ip:port/xxxx;

    }

    2.给需要转发的链接添加参数 

     location  /XX/XX {

        set $args "$args&a1=xxx&a2=xxx";

        proxy_ pass  http://ip:port/xxxx;

    }

    可以直接设置 args参数 来修改链接参数

    展开全文
  • 主要给大家介绍了一次关于nginx实现根据URL转发请求的实战经历,文中通过示例代码介绍的非常详细,对大家学习或者使用nginx具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
  • ``` 访问链接:... ``` ``` 转发到:www.123.com/api/v1/upload/preview/b181ace7-8b35-47a9-a6c6-b4617b9a44ff ``` 需要怎么才能实现?
  • nginx配置根据url参数转发

    千次阅读 2018-05-03 15:49:00
    1,举例说明 若url为:http://localhost/index.htm?PAGE=dhcp 根据参数PAGE的值dhcp,转发到dhcp.html页面 2,nginx配置实现 ①编辑nginx/conf/的nginx.conf配置文件 loc...

    1,举例说明

         若url为:http://localhost/index.htm?PAGE=dhcp

          根据参数PAGE的值dhcp,转发到dhcp.html页面

    2,nginx配置实现

        ①编辑nginx/conf/的nginx.conf配置文件

    location ^~/index.htm {    
          proxy_pass http://127.0.0.1:81/web_router/$arg_PAGE.html;
    }

    其中$arg_PAGE就是获取到的PAGE参数值。

        由于在html页面中,获取的js相对路径有改变,就要对js或css等文件进行根路径配置,否则找不到文件

    153730_N8gY_3553496.png

    153934_hYbm_3553496.png

    我js所在路径:nginx-1.13.8\html\web_router\js

    由于我的nginx根路径是html文件夹。路径不正确所有找不到指定文件。

          加上如下配置,即可解决问题:

    前提条件是我请求的js文件是在web_router文件夹下面

    location ~* \.(gif|jpg|jpeg|png|css|js|ico)$ {  
       root html/web_router/;  
    }

      ②保存文件,重启nginx.

    3,验证

        通过浏览器输出url,更改PAGE参数值,查看是否装发到目标页面。

     

    转载于:https://my.oschina.net/u/3553496/blog/1806194

    展开全文
  • 例如我的请求路径是http://localhost/test1?a=1,希望此请求转发到http://localhost/test2上,proxy_pass 之后还是会携带?后面的参数,请求的地址是http://localhost/test2?a=1,需要去掉?后面的参数
  • 在实际项目中,由于https安全策略,https页面无法请求到http协议的图片(暂时谷歌浏览器这样的) 例如 url:... #代表地址栏url参数 } 重启nginx即可生效
  • nginx根据post请求参数转发

    万次阅读 2019-07-23 09:16:22
    在工作中遇到了根据post请求做转发的需求,决定使用nginx来完成。 1.源码安装nginx上form-input-nginx模块 wget http://nginx.org/download/nginx-1.16.0.tar.gz tar -zxvf nginx-1.16.0.tar.gz cd nginx-...
  • nginx可以很方便的配置成反向代理服务器:  server {  listen 80;  server_name localhost;  location / {  proxy_pass http://x.x.x.x:9500;  proxy_set_header Host $host:80;  proxy_set_header X-Real-...
  • nginx中wss转发

    2021-01-19 17:59:09
    # 实际websocket服务器地址 upstream wss_svr { server 172.31.180.40:9521; } #PROXY-START/ location ~* \.(php|jsp|...{ ... # 转发 proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; ...
  • Nginx实现请求转发

    千次阅读 2020-06-28 23:34:15
    什么是请求转发? 环境配置 到官网下载nginx,这里使用的windows版本,最好使用Linux版本(性能好) ...(2)配置Nginx转发规则,在http{}加入下面配置: server { listen 9001; server_name localhost;
  • nginx代理转发导致header参数丢失问题描述原因猜想问题解决萌新发言...因为其他项目也是走的nginx代理转发,header中的参数并没有丢失的情况,然后对比下A项目和其他正常的项目的参数,发现A项目丢失的参数都是有...
  • nginx带变量参数跳转

    千次阅读 2019-06-26 11:10:54
    proxy_pass转发url的参数,可以通过在location中用rewrite来做,所以完善后的配置如下: location ~ ^/api/([0-9]+)(\.[0-9]+)*/client/ { rewrite /(.*)$ /$1 break; proxy_pass http://bb...
  • nginx转发get请求丢失参数

    千次阅读 2020-01-17 17:17:21
    nginx转发请求时,需要剥离某些字段。 如: http://127.0.0.1/myname/api/baseinfo/getlist?class=1 需要将请求设置为: http://127.0.0.1:8080/api/baseinfo/getlist?class=1 一开始的location配置为: ...
  •  } } 访问必须 https://1.1.1.2:8080?id=111111 2、nginx配置ssl证书,并实现代理转发 server { listen 443 ssl; #SSL协议访问端口号为443。此处如未添加ssl,可能会造成Nginx无法启动。 server_name ***.com.cn; ...
  • 配置nginx四层转发

    千次阅读 2019-05-16 13:30:44
    所谓四层就是基于IP+端口的负载均衡,通过虚拟IP+端口接收请求,然后再分配到...我们如果想通过外网直接访问mysql怎么做呢,这里我们可以使用nginx端口转发来实现。 1、安装nginx ./configure --prefix=/applicatio...
  • Nginx-http转发

    2020-08-28 18:35:29
    是将A网络地址通过nginx转发在B机器上通过B机器上的端口向外转发。那么,此时B机器就承担了代理的角色。用户使用B机器以及对应的转发端口,可以访问到A机器的内容。 2、模板 这是一个简单的进行转发的模板文件nginx....
  • nginx转发请求导致参数丢失

    万次阅读 2019-05-14 14:00:13
    在使用nginx转发请求时,发现get请求获取不到请求的参数 原来的配置为: location / { proxy_pass http://localhost:8080; } 配置这样且每次请求的主机域名和ip都为127.0.0.1,无法获取到实际请求的数据,nginx在...
  • conf 代码 location /showImg{ proxy_pass http://192.168.0.219:9012/showImg; } 说明 /showImg: 项目原目录层级 ... 跳转到的服务地址加上...这里也不需要写正则,转发请求时会自动将后面的参数带上。 ...
  • nginx代理转发说明

    2020-10-19 16:29:49
    1、nginx默认转发header,个别字段除外 说明: (1)proxy_hide_header 语法: proxy_hide_headerfield; 默认值: — 上下文: http,server,location nginx默认不会将“Date”、“Server”、“X-Pad...
  • 解决nginx不能转发带有下划线的header

    千次阅读 2019-09-02 19:43:58
    现象:刚开始只有一台服务器,前端请求时在header中添加了 tmp_token,后台也可以获取...当时我就在本地装了一个nginx,把nginx的日志调到debug模式,结果发现了下面的提示: client sent invalid header line: “t...
  • nginx转发带参数

    2011-07-23 20:34:50
    Nginx: rewrite重定向的参数处理问题 星期日, 九 19th, 2010 | 发布在:Web服务器 | 1 条评论 今天在给某网站写rewrite重定向规则时,碰到了这个关于重定向的参数处理问题。默认的情况下,Nginx在进行...
  • nginx 4层转发 stream模块

    千次阅读 2019-01-30 17:56:12
    一般nginx用于7层负载均衡和web service的代理转发 nginx从1.9.0开始,新增加了一个...stream模块默认没有编译到nginx, 编译nginx时候上 --with-stream 1 ./configure --with-stream ...
  • nginx + lua 根据post请求参数转发

    千次阅读 2019-10-04 06:47:50
    location / { content_by_lua_file "lua/dispatch.lua"; } location @user_profile_api12 { content_by_lua_block { ngx.say("xxxx") ...
  • Nginx端口转发简明配置 最近想要实现蜜罐运维端口的跨区转发(A区,C区不通,走B区中转实现 A到B到C的运维)。看完官方文档和几篇不错的博客后,现小结记录,方便以后快速配置Nginx转发相关功能。 Nginx是一款轻量...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 44,755
精华内容 17,902
关键字:

nginx带参数转发