白名单 nginx proxy_pass $args

白名单 nginx proxy_pass $args

我已将 nginx 配置为代理请求:

server  {
    listen      80;
    server_name proxy.mydomain.com;

    location /proxy {
        resolver 8.8.8.8;
        proxy_pass $args/;
    }
}

所以我可以提出如下请求:http://proxy.mydomain.com/proxy?http://www.test.com

我想控制允许代理哪些域名。我不知道如何在没有如果

答案1

我使用/而不是?,来代理www.test.com/xyz,它将是http://proxy.mydomain.com/proxy/www.test.com/xyz

server {
    listen 80;
    server_name proxy.mydomain.com;

    location ~ ^/proxy/(?<proxy_host>[^/]+)/(?<proxy_path>.+)$ {
        proxy_pass http://$proxy_host/$proxy_path?$args;
    }
}

相关内容