遇到这么个业务,当我访问http://www.a.com/a.mp4?a=1&orig=www.b.com我要反向代理到
http://www.b.com?a=1注意这里我的orig参数是不反代过去的。配置如下:
location ~ .*\.mp4$ {
set $pro_target $arg_orig;
if ($args ~ "^(.*)&orig=(.*)$") {
set $args $1;
}
rewrite ^/ $uri?$args? break;
proxy_cache_valid any 0s;
proxy_ssl_session_reuse off;
proxy_ssl_server_name on;
proxy_cache off;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Scheme $scheme;
proxy_pass https://$pro_target;
}
把参数里的orig去掉。只要前面的参数。然后放到服务器,注意,因为我代理的是https所以这里一定要加这两句:
proxy_ssl_session_reuse off;
proxy_ssl_server_name on;
否则会报:
SSL_do_handshake() failed (SSL: error:14094438:SSL routines:ssl3_read_bytes
然后我放到服务器上,报如下错:
no resolver defined to resolve xxx
所以在server里添加解析:
resolve