Назад | Перейти на главную страницу

Добавить в белый список 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

Я хочу контролировать, какой домен можно использовать для проксирования. Я не знаю, как это сделать без если.

я использую / вместо того ?, прокси на 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;
    }
}