Nginx 根据URL带的参数转发

使用场景:

    需要根据截取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;
    }

}


你可能感兴趣的:(算法及思想,网络)