Белый список 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
Я хотел бы контролировать, какой домен может быть прокси. Я не знаю, как это сделать без if.
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;
}
}