Рейтинг:1

Блокировка потока Nginx с фильтрацией субдоменов по подстановочным знакам

флаг us

Я настроил сервер Nginx в качестве прокси-сервера L4 (прямой прокси-сервер с модулем Stream) со следующей конфигурацией в файле nginx.conf;

транслировать {
резольвер 8.8.8.8;
сервер {
    слушать 443;
    ssl_preread включен;
    proxy_connect_timeout 5 с;
    proxy_pass $ssl_preread_server_name:$server_port;
  } 
}

все работает нормально, с конфигурацией выше. но скажем, я хочу ограничить доступ к URL-адресам, проходящим через мой прокси-сервер. Не путем ограничения IP-адреса, а с помощью имен URL.
Я провел исследование и настроил следующий файл конфигурации, и каким-то образом мне удалось контролировать URL-адреса, передаваемые на мой прокси-сервер.
Но проблема начинается отсюда. Если вызывается большой веб-сайт, поскольку он имеет много ссылок или субдоменов, загруженных за сценой, и зная, что я ограничил URL-адреса, разрешенные для передачи, а субдомены с подстановочными знаками не работают в блоке потока, я не могу загрузить запрошенный веб-сайт. полностью.
Есть ли решение использовать его в блоке потока для поддержки подстановочного знака для поддомена домена? моя новая конфигурация выглядит следующим образом:

транслировать {


 карта $ ssl_preread_server_name $ имя {
     ipchicken.com ipchicken.com;
     www.bbc.com www.bbc.com;
     www.bbc.co.uk www.bbc.co.uk;
     bbci.co.uk bbci.co.uk;
}


сервер {

    резольвер 8.8.8.8;
    слушать 443;
    ssl_preread включен;
    proxy_connect_timeout 5 с;
    proxy_pass $имя:$server_port;
   }
 }

 События {
}
Рейтинг:3
флаг gr

Вы ищете имена хостов ключевое слово. С этим ключевым словом вы можете использовать *.example.com в качестве подстановочного знака для пример.com домен. Точно так же, как и для имя сервера директива, которую вы можете использовать .example.com для обоих пример.com и *.example.com:

карта $ ssl_preread_server_name $ имя {
    имена хостов;
    .ipchicken.com $ssl_preread_server_name;
    .bbc.com $ssl_preread_server_name;
    .bbc.co.uk $ssl_preread_server_name;
    .bbci.co.uk $ssl_preread_server_name;
}

В качестве альтернативы вы можете использовать любое регулярное выражение в карта блок, т.е.

карта $ ssl_preread_server_name $ имя {
    # охватывает 'bbc.com', 'www.bbc.com' и 'static.bbc.com':
    ~^(?:www\.|static\.)?bbc\.com$ $ssl_preread_server_name;
    ...
}

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.